Repository: github/semantic Branch: main Commit: d1d07eb6228b Files: 3053 Total size: 5.1 MB Directory structure: gitextract_vw5g09h3/ ├── .bazelignore ├── .bazelrc ├── .dockerignore ├── .ghci.repl ├── .ghci.sample ├── .gitattributes ├── .github/ │ └── workflows/ │ ├── bazel.yml.disabled │ └── haskell.yml ├── .gitignore ├── .gitmodules ├── .hlint.yaml ├── .hspec ├── .licenses/ │ └── semantic/ │ └── cabal/ │ ├── MonadRandom.txt │ ├── QuickCheck.txt │ ├── StateVar.txt │ ├── adjunctions.txt │ ├── aeson-pretty.txt │ ├── aeson.txt │ ├── algebraic-graphs.txt │ ├── ansi-terminal.txt │ ├── ansi-wl-pprint.txt │ ├── array.txt │ ├── asn1-encoding.txt │ ├── asn1-parse.txt │ ├── asn1-types.txt │ ├── async.txt │ ├── attoparsec-iso8601.txt │ ├── attoparsec.txt │ ├── base-compat-batteries.txt │ ├── base-compat.txt │ ├── base-orphans.txt │ ├── base-prelude.txt │ ├── base.txt │ ├── base64-bytestring.txt │ ├── basement.txt │ ├── bifunctors.txt │ ├── binary.txt │ ├── blaze-builder.txt │ ├── byteable.txt │ ├── bytestring.txt │ ├── call-stack.txt │ ├── case-insensitive.txt │ ├── cereal.txt │ ├── charset.txt │ ├── clock.txt │ ├── cmark-gfm.txt │ ├── colour.txt │ ├── comonad.txt │ ├── connection.txt │ ├── constraints.txt │ ├── containers.txt │ ├── contravariant.txt │ ├── cookie.txt │ ├── cryptonite.txt │ ├── data-default-class.txt │ ├── deepseq-generics.txt │ ├── deepseq.txt │ ├── directory-tree.txt │ ├── directory.txt │ ├── distributive.txt │ ├── dlist.txt │ ├── enclosed-exceptions.txt │ ├── erf.txt │ ├── exceptions.txt │ ├── fastsum.txt │ ├── filepath.txt │ ├── fingertree.txt │ ├── foldl.txt │ ├── freer-cofreer.txt │ ├── fused-effects.txt │ ├── generic-monoid.txt │ ├── generics-sop.txt │ ├── ghc-boot-th.txt │ ├── ghc-boot.txt │ ├── ghc-heap.txt │ ├── ghc-prim.txt │ ├── ghc-tcplugins-extra.txt │ ├── ghc-typelits-extra.txt │ ├── ghc-typelits-knownnat.txt │ ├── ghc-typelits-natnormalise.txt │ ├── ghc.txt │ ├── ghci.txt │ ├── gitrev.txt │ ├── hashable.txt │ ├── haskeline.txt │ ├── haskell-lexer.txt │ ├── haskell-src.txt │ ├── haskell-tree-sitter.txt │ ├── heap.txt │ ├── hostname.txt │ ├── hourglass.txt │ ├── hpc.txt │ ├── http-api-data.txt │ ├── insert-ordered-containers.txt │ ├── integer-gmp.txt │ ├── integer-logarithms.txt │ ├── invariant.txt │ ├── kan-extensions.txt │ ├── kdt.txt │ ├── keys.txt │ ├── lens.txt │ ├── lifted-async.txt │ ├── lifted-base.txt │ ├── machines.txt │ ├── managed.txt │ ├── math-functions.txt │ ├── megaparsec.txt │ ├── memory.txt │ ├── mersenne-random-pure64.txt │ ├── mime-types.txt │ ├── mmorph.txt │ ├── monad-control.txt │ ├── mtl.txt │ ├── mwc-random.txt │ ├── neat-interpolation.txt │ ├── network-uri.txt │ ├── network.txt │ ├── old-locale.txt │ ├── old-time.txt │ ├── optional-args.txt │ ├── optparse-applicative.txt │ ├── parallel.txt │ ├── parsec.txt │ ├── parser-combinators.txt │ ├── parsers.txt │ ├── pem.txt │ ├── pointed.txt │ ├── pretty.txt │ ├── prettyprinter.txt │ ├── primitive.txt │ ├── process.txt │ ├── profunctors.txt │ ├── proto3-suite.txt │ ├── proto3-wire.txt │ ├── quickcheck-instances.txt │ ├── random.txt │ ├── recursion-schemes.txt │ ├── reducers.txt │ ├── reflection.txt │ ├── rts.txt │ ├── safe.txt │ ├── scientific.txt │ ├── semigroupoids.txt │ ├── semigroups.txt │ ├── semilattices.txt │ ├── servant.txt │ ├── shelly.txt │ ├── singleton-bool.txt │ ├── socks.txt │ ├── sop-core.txt │ ├── split.txt │ ├── stm-chans.txt │ ├── stm.txt │ ├── streaming-commons.txt │ ├── string-conversions.txt │ ├── swagger2.txt │ ├── syb.txt │ ├── system-fileio.txt │ ├── system-filepath.txt │ ├── tagged.txt │ ├── template-haskell.txt │ ├── temporary.txt │ ├── terminfo.txt │ ├── text.txt │ ├── tf-random.txt │ ├── th-abstraction.txt │ ├── these.txt │ ├── time-locale-compat.txt │ ├── time.txt │ ├── tls.txt │ ├── transformers-base.txt │ ├── transformers-compat.txt │ ├── transformers.txt │ ├── turtle.txt │ ├── unix-compat.txt │ ├── unix.txt │ ├── unliftio-core.txt │ ├── unordered-containers.txt │ ├── utf8-string.txt │ ├── uuid-types.txt │ ├── vault.txt │ ├── vector-builder.txt │ ├── vector-instances.txt │ ├── vector-th-unbox.txt │ ├── vector.txt │ ├── void.txt │ ├── x509-store.txt │ ├── x509-system.txt │ ├── x509-validation.txt │ ├── x509.txt │ └── zlib.txt ├── .stylish-haskell.yaml ├── BUILD.bazel ├── CODEOWNERS ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Dockerfile ├── HACKING.md ├── README.md ├── WORKSPACE ├── build/ │ ├── common.bzl │ └── example_repos.bzl ├── cabal.project ├── cabal.project.ci ├── docs/ │ ├── adding-new-languages.md │ ├── build.md │ ├── codegen.md │ ├── coding-style.md │ ├── configuration.md │ ├── core-grammar.md │ ├── development.md │ ├── examples.md │ ├── grammar-development-guide.md │ ├── why-haskell.md │ ├── why-tree-sitter.md │ └── 💡ProTip!.md ├── hie.yaml ├── notices/ │ └── THIRD_PARTY_NOTICE.md ├── proto/ │ └── semantic.proto ├── script/ │ ├── astgen │ ├── bootstrap │ ├── bootstrap-bazel │ ├── build-and-upload │ ├── clone-example-repos │ ├── fix-broken-cabal-store │ ├── generate-example │ ├── ghci-flags │ ├── profile │ ├── protoc │ ├── publish │ └── repl ├── semantic/ │ ├── BUILD.bazel │ ├── LICENSE │ ├── README.md │ ├── Setup.hs │ ├── app/ │ │ └── Main.hs │ ├── bench/ │ │ ├── Main.hs │ │ ├── Tagging.hs │ │ └── bench-fixtures/ │ │ ├── python/ │ │ │ ├── function-definition.py │ │ │ ├── if-statement-functions.py │ │ │ └── simple-assignment.py │ │ └── ruby/ │ │ ├── function-definition.rb │ │ ├── if-statement-functions.rb │ │ └── simple-assignment.rb │ ├── semantic.cabal │ ├── src/ │ │ ├── Control/ │ │ │ ├── Carrier/ │ │ │ │ └── Parse/ │ │ │ │ ├── Measured.hs │ │ │ │ └── Simple.hs │ │ │ └── Effect/ │ │ │ ├── Parse.hs │ │ │ ├── Sum/ │ │ │ │ └── Project.hs │ │ │ └── Timeout.hs │ │ ├── Data/ │ │ │ ├── Blob/ │ │ │ │ └── IO.hs │ │ │ ├── Blob.hs │ │ │ ├── Duration.hs │ │ │ ├── Edit.hs │ │ │ ├── Error.hs │ │ │ ├── Flag.hs │ │ │ ├── Graph/ │ │ │ │ └── Algebraic.hs │ │ │ ├── Handle.hs │ │ │ ├── Maybe/ │ │ │ │ └── Exts.hs │ │ │ └── Semigroup/ │ │ │ └── App.hs │ │ ├── Parsing/ │ │ │ ├── Parser.hs │ │ │ └── TreeSitter.hs │ │ ├── Semantic/ │ │ │ ├── Api/ │ │ │ │ ├── Bridge.hs │ │ │ │ ├── StackGraph.hs │ │ │ │ ├── Symbols.hs │ │ │ │ └── Terms.hs │ │ │ ├── Api.hs │ │ │ ├── CLI.hs │ │ │ ├── Config.hs │ │ │ ├── Env.hs │ │ │ ├── IO.hs │ │ │ ├── Task/ │ │ │ │ └── Files.hs │ │ │ ├── Task.hs │ │ │ ├── Telemetry/ │ │ │ │ ├── AsyncQueue.hs │ │ │ │ ├── Error.hs │ │ │ │ ├── Log.hs │ │ │ │ └── Stat.hs │ │ │ ├── Telemetry.hs │ │ │ ├── Util/ │ │ │ │ └── Pretty.hs │ │ │ ├── Util.hs │ │ │ └── Version.hs │ │ └── Serializing/ │ │ ├── Format.hs │ │ └── SExpression/ │ │ └── Precise.hs │ └── test/ │ ├── Data/ │ │ ├── Graph/ │ │ │ └── Spec.hs │ │ ├── Language/ │ │ │ └── Spec.hs │ │ └── Semigroup/ │ │ └── App/ │ │ └── Spec.hs │ ├── Examples.hs │ ├── Generators.hs │ ├── Integration/ │ │ └── Spec.hs │ ├── Properties.hs │ ├── Semantic/ │ │ ├── CLI/ │ │ │ └── Spec.hs │ │ ├── IO/ │ │ │ └── Spec.hs │ │ ├── Spec.hs │ │ └── Stat/ │ │ └── Spec.hs │ ├── Spec.hs │ ├── SpecHelpers.hs │ ├── Tags/ │ │ └── Spec.hs │ └── fixtures/ │ ├── base.rb │ ├── cli/ │ │ ├── blank.json │ │ ├── diff-empty-language.json │ │ ├── diff-no-after.json │ │ ├── diff-no-before.json │ │ ├── diff-no-language.json │ │ ├── diff-null-after.json │ │ ├── diff-null-before.json │ │ ├── diff-null-both-sides.json │ │ ├── diff-tree.json │ │ ├── diff-tree.toc.json │ │ ├── diff-unsupported-language.json │ │ ├── diff.json │ │ ├── parse-tree-empty.json │ │ ├── parse-tree.json │ │ ├── parse-tree.symbols.json │ │ ├── parse-trees.json │ │ └── parse.json │ ├── go/ │ │ ├── analysis/ │ │ │ ├── bar/ │ │ │ │ ├── bar.go │ │ │ │ └── rab.go │ │ │ ├── foo/ │ │ │ │ └── foo.go │ │ │ ├── main.go │ │ │ └── main1.go │ │ ├── corpus/ │ │ │ ├── array-types.A.go │ │ │ ├── array-types.B.go │ │ │ ├── array-types.diffA-B.txt │ │ │ ├── array-types.diffB-A.txt │ │ │ ├── array-types.parseA.txt │ │ │ ├── array-types.parseB.txt │ │ │ ├── array-with-implicit-length.A.go │ │ │ ├── array-with-implicit-length.B.go │ │ │ ├── array-with-implicit-length.diffA-B.txt │ │ │ ├── array-with-implicit-length.diffB-A.txt │ │ │ ├── array-with-implicit-length.parseA.txt │ │ │ ├── array-with-implicit-length.parseB.txt │ │ │ ├── assignment-statements.A.go │ │ │ ├── assignment-statements.B.go │ │ │ ├── assignment-statements.diffA-B.txt │ │ │ ├── assignment-statements.diffB-A.txt │ │ │ ├── assignment-statements.parseA.txt │ │ │ ├── assignment-statements.parseB.txt │ │ │ ├── binary-expressions.A.go │ │ │ ├── binary-expressions.B.go │ │ │ ├── binary-expressions.diffA-B.txt │ │ │ ├── binary-expressions.diffB-A.txt │ │ │ ├── binary-expressions.parseA.txt │ │ │ ├── binary-expressions.parseB.txt │ │ │ ├── call-expressions.A.go │ │ │ ├── call-expressions.B.go │ │ │ ├── call-expressions.diffA-B.txt │ │ │ ├── call-expressions.diffB-A.txt │ │ │ ├── call-expressions.parseA.txt │ │ │ ├── call-expressions.parseB.txt │ │ │ ├── case-statements.A.go │ │ │ ├── case-statements.B.go │ │ │ ├── case-statements.diffA-B.txt │ │ │ ├── case-statements.diffB-A.txt │ │ │ ├── case-statements.parseA.txt │ │ │ ├── case-statements.parseB.txt │ │ │ ├── channel-types.A.go │ │ │ ├── channel-types.B.go │ │ │ ├── channel-types.diffA-B.txt │ │ │ ├── channel-types.diffB-A.txt │ │ │ ├── channel-types.parseA.txt │ │ │ ├── channel-types.parseB.txt │ │ │ ├── comment.A.go │ │ │ ├── comment.B.go │ │ │ ├── comment.diffA-B.txt │ │ │ ├── comment.diffB-A.txt │ │ │ ├── comment.parseA.txt │ │ │ ├── comment.parseB.txt │ │ │ ├── const-declarations-with-types.A.go │ │ │ ├── const-declarations-with-types.B.go │ │ │ ├── const-declarations-with-types.diffA-B.txt │ │ │ ├── const-declarations-with-types.diffB-A.txt │ │ │ ├── const-declarations-with-types.parseA.txt │ │ │ ├── const-declarations-with-types.parseB.txt │ │ │ ├── const-declarations-without-types.A.go │ │ │ ├── const-declarations-without-types.B.go │ │ │ ├── const-declarations-without-types.diffA-B.txt │ │ │ ├── const-declarations-without-types.diffB-A.txt │ │ │ ├── const-declarations-without-types.parseA.txt │ │ │ ├── const-declarations-without-types.parseB.txt │ │ │ ├── const-with-implicit-values.A.go │ │ │ ├── const-with-implicit-values.B.go │ │ │ ├── const-with-implicit-values.diffA-B.txt │ │ │ ├── const-with-implicit-values.diffB-A.txt │ │ │ ├── const-with-implicit-values.parseA.txt │ │ │ ├── const-with-implicit-values.parseB.txt │ │ │ ├── constructors.A.go │ │ │ ├── constructors.B.go │ │ │ ├── constructors.diffA-B.txt │ │ │ ├── constructors.diffB-A.txt │ │ │ ├── constructors.parseA.txt │ │ │ ├── constructors.parseB.txt │ │ │ ├── float-literals.A.go │ │ │ ├── float-literals.B.go │ │ │ ├── float-literals.diffA-B.txt │ │ │ ├── float-literals.diffB-A.txt │ │ │ ├── float-literals.parseA.txt │ │ │ ├── float-literals.parseB.txt │ │ │ ├── for-statements.A.go │ │ │ ├── for-statements.B.go │ │ │ ├── for-statements.diffA-B.txt │ │ │ ├── for-statements.diffB-A.txt │ │ │ ├── for-statements.parseA.txt │ │ │ ├── for-statements.parseB.txt │ │ │ ├── function-declarations.A.go │ │ │ ├── function-declarations.B.go │ │ │ ├── function-declarations.diffA-B.txt │ │ │ ├── function-declarations.diffB-A.txt │ │ │ ├── function-declarations.parseA.txt │ │ │ ├── function-declarations.parseB.txt │ │ │ ├── function-literals.A.go │ │ │ ├── function-literals.B.go │ │ │ ├── function-literals.diffA-B.txt │ │ │ ├── function-literals.diffB-A.txt │ │ │ ├── function-literals.parseA.txt │ │ │ ├── function-literals.parseB.txt │ │ │ ├── function-types.A.go │ │ │ ├── function-types.B.go │ │ │ ├── function-types.diffA-B.txt │ │ │ ├── function-types.diffB-A.txt │ │ │ ├── function-types.parseA.txt │ │ │ ├── function-types.parseB.txt │ │ │ ├── go-and-defer-statements.A.go │ │ │ ├── go-and-defer-statements.B.go │ │ │ ├── go-and-defer-statements.diffA-B.txt │ │ │ ├── go-and-defer-statements.diffB-A.txt │ │ │ ├── go-and-defer-statements.parseA.txt │ │ │ ├── go-and-defer-statements.parseB.txt │ │ │ ├── grouped-import-declarations.A.go │ │ │ ├── grouped-import-declarations.B.go │ │ │ ├── grouped-import-declarations.diffA-B.txt │ │ │ ├── grouped-import-declarations.diffB-A.txt │ │ │ ├── grouped-import-declarations.parseA.txt │ │ │ ├── grouped-import-declarations.parseB.txt │ │ │ ├── grouped-var-declarations.A.go │ │ │ ├── grouped-var-declarations.B.go │ │ │ ├── grouped-var-declarations.diffA-B.txt │ │ │ ├── grouped-var-declarations.diffB-A.txt │ │ │ ├── grouped-var-declarations.parseA.txt │ │ │ ├── grouped-var-declarations.parseB.txt │ │ │ ├── if-statements.A.go │ │ │ ├── if-statements.B.go │ │ │ ├── if-statements.diffA-B.txt │ │ │ ├── if-statements.diffB-A.txt │ │ │ ├── if-statements.parseA.txt │ │ │ ├── if-statements.parseB.txt │ │ │ ├── imaginary-literals.A.go │ │ │ ├── imaginary-literals.B.go │ │ │ ├── imaginary-literals.diffA-B.txt │ │ │ ├── imaginary-literals.diffB-A.txt │ │ │ ├── imaginary-literals.parseA.txt │ │ │ ├── imaginary-literals.parseB.txt │ │ │ ├── import-statements.A.go │ │ │ ├── import-statements.B.go │ │ │ ├── import-statements.diffA-B.txt │ │ │ ├── import-statements.diffB-A.txt │ │ │ ├── import-statements.parseA.txt │ │ │ ├── import-statements.parseB.txt │ │ │ ├── increment-decrement-statements.A.go │ │ │ ├── increment-decrement-statements.B.go │ │ │ ├── increment-decrement-statements.diffA-B.txt │ │ │ ├── increment-decrement-statements.diffB-A.txt │ │ │ ├── increment-decrement-statements.parseA.txt │ │ │ ├── increment-decrement-statements.parseB.txt │ │ │ ├── int-literals.A.go │ │ │ ├── int-literals.B.go │ │ │ ├── int-literals.diffA-B.txt │ │ │ ├── int-literals.diffB-A.txt │ │ │ ├── int-literals.parseA.txt │ │ │ ├── int-literals.parseB.txt │ │ │ ├── interface-types.A.go │ │ │ ├── interface-types.B.go │ │ │ ├── interface-types.diffA-B.txt │ │ │ ├── interface-types.diffB-A.txt │ │ │ ├── interface-types.parseA.txt │ │ │ ├── interface-types.parseB.txt │ │ │ ├── label-statements.A.go │ │ │ ├── label-statements.B.go │ │ │ ├── label-statements.diffA-B.txt │ │ │ ├── label-statements.diffB-A.txt │ │ │ ├── label-statements.parseA.txt │ │ │ ├── label-statements.parseB.txt │ │ │ ├── map-literals.A.go │ │ │ ├── map-literals.B.go │ │ │ ├── map-literals.diffA-B.txt │ │ │ ├── map-literals.diffB-A.txt │ │ │ ├── map-literals.parseA.txt │ │ │ ├── map-literals.parseB.txt │ │ │ ├── map-types.A.go │ │ │ ├── map-types.B.go │ │ │ ├── map-types.diffA-B.txt │ │ │ ├── map-types.diffB-A.txt │ │ │ ├── map-types.parseA.txt │ │ │ ├── map-types.parseB.txt │ │ │ ├── method-declarations.A.go │ │ │ ├── method-declarations.B.go │ │ │ ├── method-declarations.diffA-B.txt │ │ │ ├── method-declarations.diffB-A.txt │ │ │ ├── method-declarations.parseA.txt │ │ │ ├── method-declarations.parseB.txt │ │ │ ├── modifying-struct-fields.A.go │ │ │ ├── modifying-struct-fields.B.go │ │ │ ├── modifying-struct-fields.diffA-B.txt │ │ │ ├── modifying-struct-fields.diffB-A.txt │ │ │ ├── modifying-struct-fields.parseA.txt │ │ │ ├── modifying-struct-fields.parseB.txt │ │ │ ├── parameter-declarations-with-types.A.go │ │ │ ├── parameter-declarations-with-types.B.go │ │ │ ├── parameter-declarations-with-types.diffA-B.txt │ │ │ ├── parameter-declarations-with-types.diffB-A.txt │ │ │ ├── parameter-declarations-with-types.parseA.txt │ │ │ ├── parameter-declarations-with-types.parseB.txt │ │ │ ├── pointer-types.A.go │ │ │ ├── pointer-types.B.go │ │ │ ├── pointer-types.diffA-B.txt │ │ │ ├── pointer-types.diffB-A.txt │ │ │ ├── pointer-types.parseA.txt │ │ │ ├── pointer-types.parseB.txt │ │ │ ├── qualified-types.A.go │ │ │ ├── qualified-types.B.go │ │ │ ├── qualified-types.diffA-B.txt │ │ │ ├── qualified-types.diffB-A.txt │ │ │ ├── qualified-types.parseA.txt │ │ │ ├── qualified-types.parseB.txt │ │ │ ├── rune-literals.A.go │ │ │ ├── rune-literals.B.go │ │ │ ├── rune-literals.diffA-B.txt │ │ │ ├── rune-literals.diffB-A.txt │ │ │ ├── rune-literals.parseA.txt │ │ │ ├── rune-literals.parseB.txt │ │ │ ├── select-statements.A.go │ │ │ ├── select-statements.B.go │ │ │ ├── select-statements.diffA-B.txt │ │ │ ├── select-statements.diffB-A.txt │ │ │ ├── select-statements.parseA.txt │ │ │ ├── select-statements.parseB.txt │ │ │ ├── selector-expressions.A.go │ │ │ ├── selector-expressions.B.go │ │ │ ├── selector-expressions.diffA-B.txt │ │ │ ├── selector-expressions.diffB-A.txt │ │ │ ├── selector-expressions.parseA.txt │ │ │ ├── selector-expressions.parseB.txt │ │ │ ├── send-statements.A.go │ │ │ ├── send-statements.B.go │ │ │ ├── send-statements.diffA-B.txt │ │ │ ├── send-statements.diffB-A.txt │ │ │ ├── send-statements.parseA.txt │ │ │ ├── send-statements.parseB.txt │ │ │ ├── short-var-declarations.A.go │ │ │ ├── short-var-declarations.B.go │ │ │ ├── short-var-declarations.diffA-B.txt │ │ │ ├── short-var-declarations.diffB-A.txt │ │ │ ├── short-var-declarations.parseA.txt │ │ │ ├── short-var-declarations.parseB.txt │ │ │ ├── single-import-declarations.A.go │ │ │ ├── single-import-declarations.B.go │ │ │ ├── single-import-declarations.diffA-B.txt │ │ │ ├── single-import-declarations.diffB-A.txt │ │ │ ├── single-import-declarations.parseA.txt │ │ │ ├── single-import-declarations.parseB.txt │ │ │ ├── single-import-declarationsA.parseA.txt │ │ │ ├── single-line-function-declarations.A.go │ │ │ ├── single-line-function-declarations.B.go │ │ │ ├── single-line-function-declarations.diffA-B.txt │ │ │ ├── single-line-function-declarations.diffB-A.txt │ │ │ ├── single-line-function-declarations.parseA.txt │ │ │ ├── single-line-function-declarations.parseB.txt │ │ │ ├── slice-expressions.A.go │ │ │ ├── slice-expressions.B.go │ │ │ ├── slice-expressions.diffA-B.txt │ │ │ ├── slice-expressions.diffB-A.txt │ │ │ ├── slice-expressions.parseA.txt │ │ │ ├── slice-expressions.parseB.txt │ │ │ ├── slice-literals.A.go │ │ │ ├── slice-literals.B.go │ │ │ ├── slice-literals.diffA-B.txt │ │ │ ├── slice-literals.diffB-A.txt │ │ │ ├── slice-literals.parseA.txt │ │ │ ├── slice-literals.parseB.txt │ │ │ ├── slice-types.A.go │ │ │ ├── slice-types.B.go │ │ │ ├── slice-types.diffA-B.txt │ │ │ ├── slice-types.diffB-A.txt │ │ │ ├── slice-types.parseA.txt │ │ │ ├── slice-types.parseB.txt │ │ │ ├── string-literals.A.go │ │ │ ├── string-literals.B.go │ │ │ ├── string-literals.diffA-B.txt │ │ │ ├── string-literals.diffB-A.txt │ │ │ ├── string-literals.parseA.txt │ │ │ ├── string-literals.parseB.txt │ │ │ ├── struct-field-declarations.A.go │ │ │ ├── struct-field-declarations.B.go │ │ │ ├── struct-field-declarations.diffA-B.txt │ │ │ ├── struct-field-declarations.diffB-A.txt │ │ │ ├── struct-field-declarations.parseA.txt │ │ │ ├── struct-field-declarations.parseB.txt │ │ │ ├── struct-literals.A.go │ │ │ ├── struct-literals.B.go │ │ │ ├── struct-literals.diffA-B.txt │ │ │ ├── struct-literals.diffB-A.txt │ │ │ ├── struct-literals.parseA.txt │ │ │ ├── struct-literals.parseB.txt │ │ │ ├── struct-types.A.go │ │ │ ├── struct-types.B.go │ │ │ ├── struct-types.diffA-B.txt │ │ │ ├── struct-types.diffB-A.txt │ │ │ ├── struct-types.parseA.txt │ │ │ ├── struct-types.parseB.txt │ │ │ ├── switch-statement.parseA.txt │ │ │ ├── switch-statements.A.go │ │ │ ├── switch-statements.B.go │ │ │ ├── switch-statements.diffA-B.txt │ │ │ ├── switch-statements.diffB-A.txt │ │ │ ├── switch-statements.parseA.txt │ │ │ ├── switch-statements.parseB.txt │ │ │ ├── type-aliases.A.go │ │ │ ├── type-aliases.B.go │ │ │ ├── type-aliases.diffA-B.txt │ │ │ ├── type-aliases.diffB-A.txt │ │ │ ├── type-aliases.parseA.txt │ │ │ ├── type-aliases.parseB.txt │ │ │ ├── type-assertion-expressions.A.go │ │ │ ├── type-assertion-expressions.B.go │ │ │ ├── type-assertion-expressions.diffA-B.txt │ │ │ ├── type-assertion-expressions.diffB-A.txt │ │ │ ├── type-assertion-expressions.parseA.txt │ │ │ ├── type-assertion-expressions.parseB.txt │ │ │ ├── type-conversion-expressions.A.go │ │ │ ├── type-conversion-expressions.B.go │ │ │ ├── type-conversion-expressions.diffA-B.txt │ │ │ ├── type-conversion-expressions.diffB-A.txt │ │ │ ├── type-conversion-expressions.parseA.txt │ │ │ ├── type-conversion-expressions.parseB.txt │ │ │ ├── type-declarations.A.go │ │ │ ├── type-declarations.B.go │ │ │ ├── type-declarations.diffA-B.txt │ │ │ ├── type-declarations.diffB-A.txt │ │ │ ├── type-declarations.parseA.txt │ │ │ ├── type-declarations.parseB.txt │ │ │ ├── type-switch-statements.A.go │ │ │ ├── type-switch-statements.B.go │ │ │ ├── type-switch-statements.diffA-B.txt │ │ │ ├── type-switch-statements.diffB-A.txt │ │ │ ├── type-switch-statements.parseA.txt │ │ │ ├── type-switch-statements.parseB.txt │ │ │ ├── unary-expressions.A.go │ │ │ ├── unary-expressions.B.go │ │ │ ├── unary-expressions.diffA-B.txt │ │ │ ├── unary-expressions.diffB-A.txt │ │ │ ├── unary-expressions.parseA.txt │ │ │ ├── unary-expressions.parseB.txt │ │ │ ├── var-declarations-with-no-expressions.A.go │ │ │ ├── var-declarations-with-no-expressions.B.go │ │ │ ├── var-declarations-with-no-expressions.diffA-B.txt │ │ │ ├── var-declarations-with-no-expressions.diffB-A.txt │ │ │ ├── var-declarations-with-no-expressions.parseA.txt │ │ │ ├── var-declarations-with-no-expressions.parseB.txt │ │ │ ├── var-declarations-with-types.A.go │ │ │ ├── var-declarations-with-types.B.go │ │ │ ├── var-declarations-with-types.diffA-B.txt │ │ │ ├── var-declarations-with-types.diffB-A.txt │ │ │ ├── var-declarations-with-types.parseA.txt │ │ │ ├── var-declarations-with-types.parseB.txt │ │ │ ├── var-declarations-without-types.A.go │ │ │ ├── var-declarations-without-types.B.go │ │ │ ├── var-declarations-without-types.diffA-B.txt │ │ │ ├── var-declarations-without-types.diffB-A.txt │ │ │ ├── var-declarations-without-types.parseA.txt │ │ │ ├── var-declarations-without-types.parseB.txt │ │ │ ├── variadic-function-declarations.A.go │ │ │ ├── variadic-function-declarations.B.go │ │ │ ├── variadic-function-declarations.diffA-B.txt │ │ │ ├── variadic-function-declarations.diffB-A.txt │ │ │ ├── variadic-function-declarations.parseA.txt │ │ │ └── variadic-function-declarations.parseB.txt │ │ ├── import-graph/ │ │ │ ├── main.go │ │ │ └── main.json │ │ ├── matching/ │ │ │ ├── for.go │ │ │ └── integers.go │ │ ├── tags/ │ │ │ ├── method.go │ │ │ └── simple_functions.go │ │ └── toc/ │ │ ├── method-with-receiver.A.go │ │ └── method-with-receiver.B.go │ ├── haskell/ │ │ └── corpus/ │ │ ├── algebraic-datatype-declarations.A.hs │ │ ├── algebraic-datatype-declarations.B.hs │ │ ├── algebraic-datatype-declarations.diffA-B.txt │ │ ├── algebraic-datatype-declarations.diffB-A.txt │ │ ├── algebraic-datatype-declarations.parseA.txt │ │ ├── algebraic-datatype-declarations.parseB.txt │ │ ├── blank.A.hs │ │ ├── blank.parseA.txt │ │ ├── cpp-directives.A.hs │ │ ├── cpp-directives.B.hs │ │ ├── cpp-directives.diffA-B.txt │ │ ├── cpp-directives.diffB-A.txt │ │ ├── cpp-directives.parseA.txt │ │ ├── cpp-directives.parseB.txt │ │ ├── default-declaration.A.hs │ │ ├── default-declaration.B.hs │ │ ├── default-declaration.diffA-B.txt │ │ ├── default-declaration.diffB-A.txt │ │ ├── default-declaration.parseA.txt │ │ ├── default-declaration.parseB.txt │ │ ├── expressions.A.hs │ │ ├── expressions.B.hs │ │ ├── expressions.diffA-B.txt │ │ ├── expressions.diffB-A.txt │ │ ├── expressions.parseA.txt │ │ ├── expressions.parseB.txt │ │ ├── function-declarations.A.hs │ │ ├── function-declarations.B.hs │ │ ├── function-declarations.diffA-B.txt │ │ ├── function-declarations.diffB-A.txt │ │ ├── function-declarations.parseA.txt │ │ ├── function-declarations.parseB.txt │ │ ├── gadt-declarations.A.hs │ │ ├── gadt-declarations.B.hs │ │ ├── gadt-declarations.diffA-B.txt │ │ ├── gadt-declarations.diffB-A.txt │ │ ├── gadt-declarations.parseA.txt │ │ ├── gadt-declarations.parseB.txt │ │ ├── import-declaration.A.hs │ │ ├── import-declaration.B.hs │ │ ├── import-declaration.diffA-B.txt │ │ ├── import-declaration.diffB-A.txt │ │ ├── import-declaration.parseA.txt │ │ ├── import-declaration.parseB.txt │ │ ├── layout.A.hs │ │ ├── layout.B.hs │ │ ├── layout.diffA-B.txt │ │ ├── layout.diffB-A.txt │ │ ├── layout.parseA.txt │ │ ├── layout.parseB.txt │ │ ├── literals.A.hs │ │ ├── literals.B.hs │ │ ├── literals.diffA-B.txt │ │ ├── literals.diffB-A.txt │ │ ├── literals.parseA.txt │ │ ├── literals.parseB.txt │ │ ├── module-declaration1.A.hs │ │ ├── module-declaration1.B.hs │ │ ├── module-declaration1.diffA-B.txt │ │ ├── module-declaration1.diffB-A.txt │ │ ├── module-declaration1.parseA.txt │ │ ├── module-declaration1.parseB.txt │ │ ├── module-declaration2.A.hs │ │ ├── module-declaration2.B.hs │ │ ├── module-declaration2.diffA-B.txt │ │ ├── module-declaration2.diffB-A.txt │ │ ├── module-declaration2.parseA.txt │ │ ├── module-declaration2.parseB.txt │ │ ├── module-declaration3.A.hs │ │ ├── module-declaration3.B.hs │ │ ├── module-declaration3.diffA-B.txt │ │ ├── module-declaration3.diffB-A.txt │ │ ├── module-declaration3.parseA.txt │ │ ├── module-declaration3.parseB.txt │ │ ├── module-declaration4.A.hs │ │ ├── module-declaration4.B.hs │ │ ├── module-declaration4.diffA-B.txt │ │ ├── module-declaration4.diffB-A.txt │ │ ├── module-declaration4.parseA.txt │ │ ├── module-declaration4.parseB.txt │ │ ├── module-declaration5.A.hs │ │ ├── module-declaration5.B.hs │ │ ├── module-declaration5.diffA-B.txt │ │ ├── module-declaration5.diffB-A.txt │ │ ├── module-declaration5.parseA.txt │ │ ├── module-declaration5.parseB.txt │ │ ├── newtype-declaration.A.hs │ │ ├── newtype-declaration.B.hs │ │ ├── newtype-declaration.diffA-B.txt │ │ ├── newtype-declaration.diffB-A.txt │ │ ├── newtype-declaration.parseA.txt │ │ ├── newtype-declaration.parseB.txt │ │ ├── standalone-deriving-declaration.A.hs │ │ ├── standalone-deriving-declaration.B.hs │ │ ├── standalone-deriving-declaration.diffA-B.txt │ │ ├── standalone-deriving-declaration.diffB-A.txt │ │ ├── standalone-deriving-declaration.parseA.txt │ │ ├── standalone-deriving-declaration.parseB.txt │ │ ├── statements.A.hs │ │ ├── statements.B.hs │ │ ├── statements.diffA-B.txt │ │ ├── statements.diffB-A.txt │ │ ├── statements.parseA.txt │ │ ├── statements.parseB.txt │ │ ├── tempate-haskell.A.hs │ │ ├── tempate-haskell.parseA.txt │ │ ├── template-haskell.B.hs │ │ ├── type-class-declarations.A.hs │ │ ├── type-class-declarations.B.hs │ │ ├── type-class-declarations.diffA-B.txt │ │ ├── type-class-declarations.diffB-A.txt │ │ ├── type-class-declarations.parseA.txt │ │ ├── type-class-declarations.parseB.txt │ │ ├── type-class-instance-declarations.A.hs │ │ ├── type-class-instance-declarations.B.hs │ │ ├── type-class-instance-declarations.diffA-B.txt │ │ ├── type-class-instance-declarations.diffB-A.txt │ │ ├── type-class-instance-declarations.parseA.txt │ │ ├── type-class-instance-declarations.parseB.txt │ │ ├── type-family-declarations.A.hs │ │ ├── type-family-declarations.B.hs │ │ ├── type-family-declarations.diffA-B.txt │ │ ├── type-family-declarations.diffB-A.txt │ │ ├── type-family-declarations.parseA.txt │ │ ├── type-family-declarations.parseB.txt │ │ ├── type-signatures.A.hs │ │ ├── type-signatures.B.hs │ │ ├── type-signatures.diffA-B.txt │ │ ├── type-signatures.diffB-A.txt │ │ ├── type-signatures.parseA.txt │ │ ├── type-signatures.parseB.txt │ │ ├── type-synonyms.A.hs │ │ ├── type-synonyms.B.hs │ │ ├── type-synonyms.diffA-B.txt │ │ ├── type-synonyms.diffB-A.txt │ │ ├── type-synonyms.parseA.txt │ │ └── type-synonyms.parseB.txt │ ├── java/ │ │ └── corpus/ │ │ ├── ArrayAccess.A.java │ │ ├── ArrayAccess.B.java │ │ ├── ArrayAccess.diffA-B.txt │ │ ├── ArrayAccess.diffB-A.txt │ │ ├── ArrayAccess.parseA.txt │ │ ├── ArrayAccess.parseB.txt │ │ ├── AssertStatement.A.java │ │ ├── AssertStatement.B.java │ │ ├── AssertStatement.diffA-B.txt │ │ ├── AssertStatement.diffB-A.txt │ │ ├── AssertStatement.parseA.txt │ │ ├── AssertStatement.parseB.txt │ │ ├── Binary.A.java │ │ ├── Binary.B.java │ │ ├── Binary.diffA-B.txt │ │ ├── Binary.diffB-A.txt │ │ ├── Binary.parseA.txt │ │ ├── Binary.parseB.txt │ │ ├── Boolean.A.java │ │ ├── Boolean.B.java │ │ ├── Boolean.diffA-B.txt │ │ ├── Boolean.diffB-A.txt │ │ ├── Boolean.parseA.txt │ │ ├── Boolean.parseB.txt │ │ ├── Char.A.java │ │ ├── Char.B.java │ │ ├── Char.diffA-B.txt │ │ ├── Char.diffB-A.txt │ │ ├── Char.parseA.txt │ │ ├── Char.parseB.txt │ │ ├── ClassBody.A.java │ │ ├── ClassBody.B.java │ │ ├── ClassBody.diffA-B.txt │ │ ├── ClassBody.diffB-A.txt │ │ ├── ClassBody.parseA.txt │ │ ├── ClassBody.parseB.txt │ │ ├── ClassLiteral.A.java │ │ ├── ClassLiteral.B.java │ │ ├── ClassLiteral.diffA-B.txt │ │ ├── ClassLiteral.diffB-A.txt │ │ ├── ClassLiteral.parseA.txt │ │ ├── ClassLiteral.parseB.txt │ │ ├── Comment.A.java │ │ ├── Comment.B.java │ │ ├── Comment.diffA-B.txt │ │ ├── Comment.diffB-A.txt │ │ ├── Comment.parseA.txt │ │ ├── Comment.parseB.txt │ │ ├── Continue.A.java │ │ ├── Continue.B.java │ │ ├── Continue.diffA-B.txt │ │ ├── Continue.diffB-A.txt │ │ ├── Continue.parseA.txt │ │ ├── Continue.parseB.txt │ │ ├── Continue0.A.java │ │ ├── Continue1.A.java │ │ ├── Dims.A.java │ │ ├── Dims.B.java │ │ ├── Dims.diffA-B.txt │ │ ├── Dims.diffB-A.txt │ │ ├── Dims.parseA.txt │ │ ├── Dims.parseB.txt │ │ ├── DoWhile.A.java │ │ ├── DoWhile.B.java │ │ ├── DoWhile.diffA-B.txt │ │ ├── DoWhile.diffB-A.txt │ │ ├── DoWhile.parseA.txt │ │ ├── DoWhile.parseB.txt │ │ ├── EnumDeclaration.A.java │ │ ├── EnumDeclaration.B.java │ │ ├── EnumDeclaration.diffA-B.txt │ │ ├── EnumDeclaration.diffB-A.txt │ │ ├── EnumDeclaration.parseA.txt │ │ ├── EnumDeclaration.parseB.txt │ │ ├── FieldAccess.A.java │ │ ├── FieldAccess.B.java │ │ ├── FieldAccess.diffA-B.txt │ │ ├── FieldAccess.diffB-A.txt │ │ ├── FieldAccess.parseA.txt │ │ ├── FieldAccess.parseB.txt │ │ ├── Float.A.java │ │ ├── Float.B.java │ │ ├── Float.diffA-B.txt │ │ ├── Float.diffB-A.txt │ │ ├── Float.parseA.txt │ │ ├── Float.parseB.txt │ │ ├── For.A.java │ │ ├── For.B.java │ │ ├── For.diffA-B.txt │ │ ├── For.diffB-A.txt │ │ ├── For.parseA.txt │ │ ├── For.parseB.txt │ │ ├── If.A.java │ │ ├── If.B.java │ │ ├── If.diffA-B.txt │ │ ├── If.diffB-A.txt │ │ ├── If.parseA.txt │ │ ├── If.parseB.txt │ │ ├── Import.A.java │ │ ├── Import.B.java │ │ ├── Import.diffA-B.txt │ │ ├── Import.diffB-A.txt │ │ ├── Import.parseA.txt │ │ ├── Import.parseB.txt │ │ ├── Int.A.java │ │ ├── Int.B.java │ │ ├── Int.diffA-B.txt │ │ ├── Int.diffB-A.txt │ │ ├── Int.parseA.txt │ │ ├── Int.parseB.txt │ │ ├── Interface.A.java │ │ ├── Interface.B.java │ │ ├── Interface.diffA-B.txt │ │ ├── Interface.diffB-A.txt │ │ ├── Interface.parseA.txt │ │ ├── Interface.parseB.txt │ │ ├── Lambda.A.java │ │ ├── Lambda.B.java │ │ ├── Lambda.diffA-B.txt │ │ ├── Lambda.diffB-A.txt │ │ ├── Lambda.parseA.txt │ │ ├── Lambda.parseB.txt │ │ ├── ScopedIdentifier.A.java │ │ ├── ScopedIdentifier.B.java │ │ ├── ScopedIdentifier.diffA-B.txt │ │ ├── ScopedIdentifier.diffB-A.txt │ │ ├── ScopedIdentifier.parseA.txt │ │ ├── ScopedIdentifier.parseB.txt │ │ ├── SpreadParameter.A.java │ │ ├── SpreadParameter.B.java │ │ ├── SpreadParameter.diffA-B.txt │ │ ├── SpreadParameter.diffB-A.txt │ │ ├── SpreadParameter.parseA.txt │ │ ├── SpreadParameter.parseB.txt │ │ ├── String.A.java │ │ ├── String.B.java │ │ ├── String.diffA-B.txt │ │ ├── String.diffB-A.txt │ │ ├── String.parseA.txt │ │ ├── String.parseB.txt │ │ ├── Switch.A.java │ │ ├── Switch.B.java │ │ ├── Switch.diffA-B.txt │ │ ├── Switch.diffB-A.txt │ │ ├── Switch.parseA.txt │ │ ├── Switch.parseB.txt │ │ ├── Throws.A.java │ │ ├── Throws.B.java │ │ ├── TryCatches.A.java │ │ ├── TryCatches.B.java │ │ ├── TryWithResourcesStatement.A.java │ │ ├── TryWithResourcesStatement.B.java │ │ ├── TryWithResourcesStatement.diffA-B.txt │ │ ├── TryWithResourcesStatement.diffB-A.txt │ │ ├── TryWithResourcesStatement.parseA.txt │ │ ├── TryWithResourcesStatement.parseB.txt │ │ ├── TypeArgument.A.java │ │ ├── TypeArgument.B.java │ │ ├── TypeArgument.diffA-B.txt │ │ ├── TypeArgument.diffB-A.txt │ │ ├── TypeArgument.parseA.txt │ │ ├── TypeArgument.parseB.txt │ │ ├── Update.A.java │ │ ├── Update.B.java │ │ ├── Update.diffA-B.txt │ │ ├── Update.diffB-A.txt │ │ ├── Update.parseA.txt │ │ ├── Update.parseB.txt │ │ ├── VariableDeclaration.A.java │ │ ├── VariableDeclaration.B.java │ │ ├── VariableDeclaration.diffA-B.txt │ │ ├── VariableDeclaration.diffB-A.txt │ │ ├── VariableDeclaration.parseA.txt │ │ ├── VariableDeclaration.parseB.txt │ │ ├── While.A.java │ │ ├── While.B.java │ │ ├── While.diffA-B.txt │ │ ├── While.diffB-A.txt │ │ ├── While.parseA.txt │ │ ├── While.parseB.txt │ │ ├── Wildcard.A.java │ │ ├── Wildcard.B.java │ │ ├── Wildcard.diffA-B.txt │ │ ├── Wildcard.diffB-A.txt │ │ ├── Wildcard.parseA.txt │ │ ├── Wildcard.parseB.txt │ │ ├── array-access.java │ │ ├── assertStatement.java │ │ ├── assertStringLiteral.java │ │ ├── enum.java │ │ ├── methodReference.java │ │ ├── modifier-abstract.java │ │ ├── modifier-private.java │ │ ├── modifier-protected.java │ │ ├── modifier-public.java │ │ ├── modifier-static.java │ │ ├── null.java │ │ ├── package.java │ │ ├── return.java │ │ ├── try.java │ │ └── try_with_resources.java │ ├── javascript/ │ │ ├── analysis/ │ │ │ ├── exports/ │ │ │ │ ├── lib.js │ │ │ │ └── main.js │ │ │ ├── foo.js │ │ │ ├── main.js │ │ │ └── main2.js │ │ ├── corpus/ │ │ │ ├── anonymous-function.A.js │ │ │ ├── anonymous-function.B.js │ │ │ ├── anonymous-function.diffA-B.txt │ │ │ ├── anonymous-function.diffB-A.txt │ │ │ ├── anonymous-function.parseA.txt │ │ │ ├── anonymous-function.parseB.txt │ │ │ ├── anonymous-parameterless-function.A.js │ │ │ ├── anonymous-parameterless-function.B.js │ │ │ ├── anonymous-parameterless-function.diffA-B.txt │ │ │ ├── anonymous-parameterless-function.diffB-A.txt │ │ │ ├── anonymous-parameterless-function.parseA.txt │ │ │ ├── anonymous-parameterless-function.parseB.txt │ │ │ ├── array.A.js │ │ │ ├── array.B.js │ │ │ ├── array.diffA-B.txt │ │ │ ├── array.diffB-A.txt │ │ │ ├── array.parseA.txt │ │ │ ├── array.parseB.txt │ │ │ ├── arrow-function.A.js │ │ │ ├── arrow-function.B.js │ │ │ ├── arrow-function.diffA-B.txt │ │ │ ├── arrow-function.diffB-A.txt │ │ │ ├── arrow-function.parseA.txt │ │ │ ├── arrow-function.parseB.txt │ │ │ ├── assignment-pattern.A.js │ │ │ ├── assignment-pattern.B.js │ │ │ ├── assignment-pattern.diffA-B.txt │ │ │ ├── assignment-pattern.diffB-A.txt │ │ │ ├── assignment-pattern.parseA.txt │ │ │ ├── assignment-pattern.parseB.txt │ │ │ ├── assignment.A.js │ │ │ ├── assignment.B.js │ │ │ ├── assignment.diffA-B.txt │ │ │ ├── assignment.diffB-A.txt │ │ │ ├── assignment.parseA.txt │ │ │ ├── assignment.parseB.txt │ │ │ ├── bitwise-operator.A.js │ │ │ ├── bitwise-operator.B.js │ │ │ ├── bitwise-operator.diffA-B.txt │ │ │ ├── bitwise-operator.diffB-A.txt │ │ │ ├── bitwise-operator.parseA.txt │ │ │ ├── bitwise-operator.parseB.txt │ │ │ ├── boolean-operator.A.js │ │ │ ├── boolean-operator.B.js │ │ │ ├── boolean-operator.diffA-B.txt │ │ │ ├── boolean-operator.diffB-A.txt │ │ │ ├── boolean-operator.parseA.txt │ │ │ ├── boolean-operator.parseB.txt │ │ │ ├── break.A.js │ │ │ ├── break.B.js │ │ │ ├── break.diffA-B.txt │ │ │ ├── break.diffB-A.txt │ │ │ ├── break.parseA.txt │ │ │ ├── break.parseB.txt │ │ │ ├── chained-callbacks.A.js │ │ │ ├── chained-callbacks.B.js │ │ │ ├── chained-callbacks.diffA-B.txt │ │ │ ├── chained-callbacks.diffB-A.txt │ │ │ ├── chained-callbacks.parseA.txt │ │ │ ├── chained-callbacks.parseB.txt │ │ │ ├── chained-property-access.A.js │ │ │ ├── chained-property-access.B.js │ │ │ ├── chained-property-access.diffA-B.txt │ │ │ ├── chained-property-access.diffB-A.txt │ │ │ ├── chained-property-access.parseA.txt │ │ │ ├── chained-property-access.parseB.txt │ │ │ ├── class.A.js │ │ │ ├── class.B.js │ │ │ ├── class.diffA-B.txt │ │ │ ├── class.diffB-A.txt │ │ │ ├── class.parseA.txt │ │ │ ├── class.parseB.txt │ │ │ ├── comma-operator.A.js │ │ │ ├── comma-operator.B.js │ │ │ ├── comma-operator.diffA-B.txt │ │ │ ├── comma-operator.diffB-A.txt │ │ │ ├── comma-operator.parseA.txt │ │ │ ├── comma-operator.parseB.txt │ │ │ ├── comment.A.js │ │ │ ├── comment.B.js │ │ │ ├── comment.diffA-B.txt │ │ │ ├── comment.diffB-A.txt │ │ │ ├── comment.parseA.txt │ │ │ ├── comment.parseB.txt │ │ │ ├── constructor-call.A.js │ │ │ ├── constructor-call.B.js │ │ │ ├── constructor-call.diffA-B.txt │ │ │ ├── constructor-call.diffB-A.txt │ │ │ ├── constructor-call.parseA.txt │ │ │ ├── constructor-call.parseB.txt │ │ │ ├── continue.A.js │ │ │ ├── continue.B.js │ │ │ ├── continue.diffA-B.txt │ │ │ ├── continue.diffB-A.txt │ │ │ ├── continue.parseA.txt │ │ │ ├── continue.parseB.txt │ │ │ ├── delete-operator.A.js │ │ │ ├── delete-operator.B.js │ │ │ ├── delete-operator.diffA-B.txt │ │ │ ├── delete-operator.diffB-A.txt │ │ │ ├── delete-operator.parseA.txt │ │ │ ├── delete-operator.parseB.txt │ │ │ ├── do-while-statement.A.js │ │ │ ├── do-while-statement.B.js │ │ │ ├── do-while-statement.diffA-B.txt │ │ │ ├── do-while-statement.diffB-A.txt │ │ │ ├── do-while-statement.parseA.txt │ │ │ ├── do-while-statement.parseB.txt │ │ │ ├── export.A.js │ │ │ ├── export.B.js │ │ │ ├── export.diffA-B.txt │ │ │ ├── export.diffB-A.txt │ │ │ ├── export.parseA.txt │ │ │ ├── export.parseB.txt │ │ │ ├── false.A.js │ │ │ ├── false.B.js │ │ │ ├── false.diffA-B.txt │ │ │ ├── false.diffB-A.txt │ │ │ ├── false.parseA.txt │ │ │ ├── false.parseB.txt │ │ │ ├── for-in-statement.A.js │ │ │ ├── for-in-statement.B.js │ │ │ ├── for-in-statement.diffA-B.txt │ │ │ ├── for-in-statement.diffB-A.txt │ │ │ ├── for-in-statement.parseA.txt │ │ │ ├── for-in-statement.parseB.txt │ │ │ ├── for-loop-with-in-statement.A.js │ │ │ ├── for-loop-with-in-statement.B.js │ │ │ ├── for-loop-with-in-statement.diffA-B.txt │ │ │ ├── for-loop-with-in-statement.diffB-A.txt │ │ │ ├── for-loop-with-in-statement.parseA.txt │ │ │ ├── for-loop-with-in-statement.parseB.txt │ │ │ ├── for-of-statement.A.js │ │ │ ├── for-of-statement.B.js │ │ │ ├── for-of-statement.diffA-B.txt │ │ │ ├── for-of-statement.diffB-A.txt │ │ │ ├── for-of-statement.parseA.txt │ │ │ ├── for-of-statement.parseB.txt │ │ │ ├── for-statement.A.js │ │ │ ├── for-statement.B.js │ │ │ ├── for-statement.diffA-B.txt │ │ │ ├── for-statement.diffB-A.txt │ │ │ ├── for-statement.parseA.txt │ │ │ ├── for-statement.parseB.txt │ │ │ ├── function-call-args.A.js │ │ │ ├── function-call-args.B.js │ │ │ ├── function-call-args.diffA-B.txt │ │ │ ├── function-call-args.diffB-A.txt │ │ │ ├── function-call-args.parseA.txt │ │ │ ├── function-call-args.parseB.txt │ │ │ ├── function-call.A.js │ │ │ ├── function-call.B.js │ │ │ ├── function-call.diffA-B.txt │ │ │ ├── function-call.diffB-A.txt │ │ │ ├── function-call.parseA.txt │ │ │ ├── function-call.parseB.txt │ │ │ ├── function.A.js │ │ │ ├── function.B.js │ │ │ ├── function.diffA-B.txt │ │ │ ├── function.diffB-A.txt │ │ │ ├── function.parseA.txt │ │ │ ├── function.parseB.txt │ │ │ ├── generator-function.A.js │ │ │ ├── generator-function.B.js │ │ │ ├── generator-function.diffA-B.txt │ │ │ ├── generator-function.diffB-A.txt │ │ │ ├── generator-function.parseA.txt │ │ │ ├── generator-function.parseB.txt │ │ │ ├── identifier.A.js │ │ │ ├── identifier.B.js │ │ │ ├── identifier.diffA-B.txt │ │ │ ├── identifier.diffB-A.txt │ │ │ ├── identifier.parseA.txt │ │ │ ├── identifier.parseB.txt │ │ │ ├── if-else.A.js │ │ │ ├── if-else.B.js │ │ │ ├── if-else.diffA-B.txt │ │ │ ├── if-else.diffB-A.txt │ │ │ ├── if-else.parseA.txt │ │ │ ├── if-else.parseB.txt │ │ │ ├── if.A.js │ │ │ ├── if.B.js │ │ │ ├── if.diffA-B.txt │ │ │ ├── if.diffB-A.txt │ │ │ ├── if.parseA.txt │ │ │ ├── if.parseB.txt │ │ │ ├── import.A.js │ │ │ ├── import.B.js │ │ │ ├── import.diffA-B.txt │ │ │ ├── import.diffB-A.txt │ │ │ ├── import.parseA.txt │ │ │ ├── import.parseB.txt │ │ │ ├── jsx.A.js │ │ │ ├── jsx.B.js │ │ │ ├── jsx.diffA-B.txt │ │ │ ├── jsx.diffB-A.txt │ │ │ ├── jsx.parseA.txt │ │ │ ├── jsx.parseB.txt │ │ │ ├── math-assignment-operator.A.js │ │ │ ├── math-assignment-operator.B.js │ │ │ ├── math-assignment-operator.diffA-B.txt │ │ │ ├── math-assignment-operator.diffB-A.txt │ │ │ ├── math-assignment-operator.parseA.txt │ │ │ ├── math-assignment-operator.parseB.txt │ │ │ ├── math-operator.A.js │ │ │ ├── math-operator.B.js │ │ │ ├── math-operator.diffA-B.txt │ │ │ ├── math-operator.diffB-A.txt │ │ │ ├── math-operator.parseA.txt │ │ │ ├── math-operator.parseB.txt │ │ │ ├── member-access-assignment.A.js │ │ │ ├── member-access-assignment.B.js │ │ │ ├── member-access-assignment.diffA-B.txt │ │ │ ├── member-access-assignment.diffB-A.txt │ │ │ ├── member-access-assignment.parseA.txt │ │ │ ├── member-access-assignment.parseB.txt │ │ │ ├── member-access.A.js │ │ │ ├── member-access.B.js │ │ │ ├── member-access.diffA-B.txt │ │ │ ├── member-access.diffB-A.txt │ │ │ ├── member-access.parseA.txt │ │ │ ├── member-access.parseB.txt │ │ │ ├── method-call.A.js │ │ │ ├── method-call.B.js │ │ │ ├── method-call.diffA-B.txt │ │ │ ├── method-call.diffB-A.txt │ │ │ ├── method-call.parseA.txt │ │ │ ├── method-call.parseB.txt │ │ │ ├── named-function.A.js │ │ │ ├── named-function.B.js │ │ │ ├── named-function.diffA-B.txt │ │ │ ├── named-function.diffB-A.txt │ │ │ ├── named-function.parseA.txt │ │ │ ├── named-function.parseB.txt │ │ │ ├── nested-do-while-in-function.A.js │ │ │ ├── nested-do-while-in-function.B.js │ │ │ ├── nested-do-while-in-function.diffA-B.txt │ │ │ ├── nested-do-while-in-function.diffB-A.txt │ │ │ ├── nested-do-while-in-function.parseA.txt │ │ │ ├── nested-do-while-in-function.parseB.txt │ │ │ ├── nested-functions.A.js │ │ │ ├── nested-functions.B.js │ │ │ ├── nested-functions.diffA-B.txt │ │ │ ├── nested-functions.diffB-A.txt │ │ │ ├── nested-functions.parseA.txt │ │ │ ├── nested-functions.parseB.txt │ │ │ ├── null.A.js │ │ │ ├── null.B.js │ │ │ ├── null.diffA-B.txt │ │ │ ├── null.diffB-A.txt │ │ │ ├── null.parseA.txt │ │ │ ├── null.parseB.txt │ │ │ ├── number.A.js │ │ │ ├── number.B.js │ │ │ ├── number.diffA-B.txt │ │ │ ├── number.diffB-A.txt │ │ │ ├── number.parseA.txt │ │ │ ├── number.parseB.txt │ │ │ ├── object.A.js │ │ │ ├── object.B.js │ │ │ ├── object.diffA-B.txt │ │ │ ├── object.diffB-A.txt │ │ │ ├── object.parseA.txt │ │ │ ├── object.parseB.txt │ │ │ ├── objects-with-methods.A.js │ │ │ ├── objects-with-methods.B.js │ │ │ ├── objects-with-methods.diffA-B.txt │ │ │ ├── objects-with-methods.diffB-A.txt │ │ │ ├── objects-with-methods.parseA.txt │ │ │ ├── objects-with-methods.parseB.txt │ │ │ ├── regex.A.js │ │ │ ├── regex.B.js │ │ │ ├── regex.diffA-B.txt │ │ │ ├── regex.diffB-A.txt │ │ │ ├── regex.parseA.txt │ │ │ ├── regex.parseB.txt │ │ │ ├── relational-operator.A.js │ │ │ ├── relational-operator.B.js │ │ │ ├── relational-operator.diffA-B.txt │ │ │ ├── relational-operator.diffB-A.txt │ │ │ ├── relational-operator.parseA.txt │ │ │ ├── relational-operator.parseB.txt │ │ │ ├── return-statement.A.js │ │ │ ├── return-statement.B.js │ │ │ ├── return-statement.diffA-B.txt │ │ │ ├── return-statement.diffB-A.txt │ │ │ ├── return-statement.parseA.txt │ │ │ ├── return-statement.parseB.txt │ │ │ ├── string.A.js │ │ │ ├── string.B.js │ │ │ ├── string.diffA-B.txt │ │ │ ├── string.diffB-A.txt │ │ │ ├── string.parseA.txt │ │ │ ├── string.parseB.txt │ │ │ ├── subscript-access-assignment.A.js │ │ │ ├── subscript-access-assignment.B.js │ │ │ ├── subscript-access-assignment.diffA-B.txt │ │ │ ├── subscript-access-assignment.diffB-A.txt │ │ │ ├── subscript-access-assignment.parseA.txt │ │ │ ├── subscript-access-assignment.parseB.txt │ │ │ ├── subscript-access-string.A.js │ │ │ ├── subscript-access-string.B.js │ │ │ ├── subscript-access-string.diffA-B.txt │ │ │ ├── subscript-access-string.diffB-A.txt │ │ │ ├── subscript-access-string.parseA.txt │ │ │ ├── subscript-access-string.parseB.txt │ │ │ ├── subscript-access-variable.A.js │ │ │ ├── subscript-access-variable.B.js │ │ │ ├── subscript-access-variable.diffA-B.txt │ │ │ ├── subscript-access-variable.diffB-A.txt │ │ │ ├── subscript-access-variable.parseA.txt │ │ │ ├── subscript-access-variable.parseB.txt │ │ │ ├── switch-statement.A.js │ │ │ ├── switch-statement.B.js │ │ │ ├── switch-statement.diffA-B.txt │ │ │ ├── switch-statement.diffB-A.txt │ │ │ ├── switch-statement.parseA.txt │ │ │ ├── switch-statement.parseB.txt │ │ │ ├── template-string.A.js │ │ │ ├── template-string.B.js │ │ │ ├── template-string.diffA-B.txt │ │ │ ├── template-string.diffB-A.txt │ │ │ ├── template-string.parseA.txt │ │ │ ├── template-string.parseB.txt │ │ │ ├── ternary.A.js │ │ │ ├── ternary.B.js │ │ │ ├── ternary.diffA-B.txt │ │ │ ├── ternary.diffB-A.txt │ │ │ ├── ternary.parseA.txt │ │ │ ├── ternary.parseB.txt │ │ │ ├── this-expression.A.js │ │ │ ├── this-expression.B.js │ │ │ ├── this-expression.diffA-B.txt │ │ │ ├── this-expression.diffB-A.txt │ │ │ ├── this-expression.parseA.txt │ │ │ ├── this-expression.parseB.txt │ │ │ ├── throw-statement.A.js │ │ │ ├── throw-statement.B.js │ │ │ ├── throw-statement.diffA-B.txt │ │ │ ├── throw-statement.diffB-A.txt │ │ │ ├── throw-statement.parseA.txt │ │ │ ├── throw-statement.parseB.txt │ │ │ ├── true.A.js │ │ │ ├── true.B.js │ │ │ ├── true.diffA-B.txt │ │ │ ├── true.diffB-A.txt │ │ │ ├── true.parseA.txt │ │ │ ├── true.parseB.txt │ │ │ ├── try-statement.A.js │ │ │ ├── try-statement.B.js │ │ │ ├── try-statement.diffA-B.txt │ │ │ ├── try-statement.diffB-A.txt │ │ │ ├── try-statement.parseA.txt │ │ │ ├── try-statement.parseB.txt │ │ │ ├── type-operator.A.js │ │ │ ├── type-operator.B.js │ │ │ ├── type-operator.diffA-B.txt │ │ │ ├── type-operator.diffB-A.txt │ │ │ ├── type-operator.parseA.txt │ │ │ ├── type-operator.parseB.txt │ │ │ ├── undefined.A.js │ │ │ ├── undefined.B.js │ │ │ ├── undefined.diffA-B.txt │ │ │ ├── undefined.diffB-A.txt │ │ │ ├── undefined.parseA.txt │ │ │ ├── undefined.parseB.txt │ │ │ ├── var-declaration.A.js │ │ │ ├── var-declaration.B.js │ │ │ ├── var-declaration.diffA-B.txt │ │ │ ├── var-declaration.diffB-A.txt │ │ │ ├── var-declaration.parseA.txt │ │ │ ├── var-declaration.parseB.txt │ │ │ ├── variable.A.js │ │ │ ├── variable.B.js │ │ │ ├── variable.diffA-B.txt │ │ │ ├── variable.diffB-A.txt │ │ │ ├── variable.parseA.txt │ │ │ ├── variable.parseB.txt │ │ │ ├── variadic-function-declarations.parseA.txt │ │ │ ├── void-operator.A.js │ │ │ ├── void-operator.B.js │ │ │ ├── void-operator.diffA-B.txt │ │ │ ├── void-operator.diffB-A.txt │ │ │ ├── void-operator.parseA.txt │ │ │ ├── void-operator.parseB.txt │ │ │ ├── while-statement.A.js │ │ │ ├── while-statement.B.js │ │ │ ├── while-statement.diffA-B.txt │ │ │ ├── while-statement.diffB-A.txt │ │ │ ├── while-statement.parseA.txt │ │ │ ├── while-statement.parseB.txt │ │ │ ├── yield.A.js │ │ │ ├── yield.B.js │ │ │ ├── yield.diffA-B.txt │ │ │ ├── yield.diffB-A.txt │ │ │ ├── yield.parseA.txt │ │ │ └── yield.parseB.txt │ │ ├── reprinting/ │ │ │ └── map.json │ │ ├── tags/ │ │ │ └── simple_function_with_docs.js │ │ └── toc/ │ │ ├── duplicate-parent.A.js │ │ ├── duplicate-parent.B.js │ │ ├── erroneous-duplicate-method.A.js │ │ ├── erroneous-duplicate-method.B.js │ │ └── starts-with-newline.js │ ├── json/ │ │ ├── corpus/ │ │ │ ├── array.A.json │ │ │ ├── array.B.json │ │ │ ├── array.parseA.txt │ │ │ ├── array.parseB.txt │ │ │ ├── boolean.A.json │ │ │ ├── boolean.B.json │ │ │ ├── boolean.parseA.txt │ │ │ ├── boolean.parseB.txt │ │ │ ├── hash.A.json │ │ │ ├── hash.B.json │ │ │ ├── hash.parseA.txt │ │ │ ├── hash.parseB.txt │ │ │ ├── null.A.json │ │ │ ├── null.B.json │ │ │ ├── null.parseA.txt │ │ │ ├── null.parseB.txt │ │ │ ├── number.A.json │ │ │ ├── number.B.json │ │ │ ├── number.parseA.txt │ │ │ ├── number.parseB.txt │ │ │ ├── string.A.json │ │ │ ├── string.B.json │ │ │ ├── string.parseA.txt │ │ │ └── string.parseB.txt │ │ └── rewriting/ │ │ ├── add_keys.json │ │ └── add_keys_expected.json │ ├── markdown/ │ │ ├── corpus/ │ │ │ └── example.A.md │ │ └── toc/ │ │ ├── headings.A.md │ │ └── headings.B.md │ ├── php/ │ │ └── analysis/ │ │ ├── bar.php │ │ ├── foo.php │ │ ├── main.php │ │ ├── main_once.php │ │ └── namespaces.php │ ├── python/ │ │ ├── analysis/ │ │ │ ├── a.py │ │ │ ├── b/ │ │ │ │ ├── __init__.py │ │ │ │ └── c.py │ │ │ ├── c/ │ │ │ │ ├── __init__.py │ │ │ │ └── utils.py │ │ │ ├── main.py │ │ │ ├── main1.py │ │ │ ├── main2.py │ │ │ ├── main3.py │ │ │ ├── multiple_inheritance.py │ │ │ └── subclass.py │ │ ├── corpus/ │ │ │ ├── assert-statement.A.py │ │ │ ├── assert-statement.B.py │ │ │ ├── assert-statement.diffA-B.txt │ │ │ ├── assert-statement.diffB-A.txt │ │ │ ├── assert-statement.parseA.txt │ │ │ ├── assert-statement.parseB.txt │ │ │ ├── assignment.A.py │ │ │ ├── assignment.B.py │ │ │ ├── assignment.diffA-B.txt │ │ │ ├── assignment.diffB-A.txt │ │ │ ├── assignment.parseA.txt │ │ │ ├── assignment.parseB.txt │ │ │ ├── async-function-definition.A.py │ │ │ ├── async-function-definition.B.py │ │ │ ├── async-function-definition.diffA-B.txt │ │ │ ├── async-function-definition.diffB-A.txt │ │ │ ├── async-function-definition.parseA.txt │ │ │ ├── async-function-definition.parseB.txt │ │ │ ├── attribute.A.py │ │ │ ├── attribute.B.py │ │ │ ├── attribute.diffA-B.txt │ │ │ ├── attribute.diffB-A.txt │ │ │ ├── attribute.parseA.txt │ │ │ ├── attribute.parseB.txt │ │ │ ├── augmented-assignment.A.py │ │ │ ├── augmented-assignment.B.py │ │ │ ├── augmented-assignment.diffA-B.txt │ │ │ ├── augmented-assignment.diffB-A.txt │ │ │ ├── augmented-assignment.parseA.txt │ │ │ ├── augmented-assignment.parseB.txt │ │ │ ├── await.A.py │ │ │ ├── await.B.py │ │ │ ├── await.diffA-B.txt │ │ │ ├── await.diffB-A.txt │ │ │ ├── await.parseA.txt │ │ │ ├── await.parseB.txt │ │ │ ├── binary-operator.A.py │ │ │ ├── binary-operator.B.py │ │ │ ├── binary-operator.diffA-B.txt │ │ │ ├── binary-operator.diffB-A.txt │ │ │ ├── binary-operator.parseA.txt │ │ │ ├── binary-operator.parseB.txt │ │ │ ├── boolean-operator.A.py │ │ │ ├── boolean-operator.B.py │ │ │ ├── boolean-operator.diffA-B.txt │ │ │ ├── boolean-operator.diffB-A.txt │ │ │ ├── boolean-operator.parseA.txt │ │ │ ├── boolean-operator.parseB.txt │ │ │ ├── boolean.A.py │ │ │ ├── boolean.B.py │ │ │ ├── boolean.diffA-B.txt │ │ │ ├── boolean.diffB-A.txt │ │ │ ├── boolean.parseA.txt │ │ │ ├── boolean.parseB.txt │ │ │ ├── break-statement.A.py │ │ │ ├── break-statement.B.py │ │ │ ├── break-statement.diffA-B.txt │ │ │ ├── break-statement.diffB-A.txt │ │ │ ├── break-statement.parseA.txt │ │ │ ├── break-statement.parseB.txt │ │ │ ├── call.A.py │ │ │ ├── call.B.py │ │ │ ├── call.diffA-B.txt │ │ │ ├── call.diffB-A.txt │ │ │ ├── call.parseA.txt │ │ │ ├── call.parseB.txt │ │ │ ├── class-definition.A.py │ │ │ ├── class-definition.B.py │ │ │ ├── class-definition.diffA-B.txt │ │ │ ├── class-definition.diffB-A.txt │ │ │ ├── class-definition.parseA.txt │ │ │ ├── class-definition.parseB.txt │ │ │ ├── comment.A.py │ │ │ ├── comment.B.py │ │ │ ├── comment.diffA-B.txt │ │ │ ├── comment.diffB-A.txt │ │ │ ├── comment.parseA.txt │ │ │ ├── comment.parseB.txt │ │ │ ├── comparison-operator.A.py │ │ │ ├── comparison-operator.B.py │ │ │ ├── comparison-operator.diffA-B.txt │ │ │ ├── comparison-operator.diffB-A.txt │ │ │ ├── comparison-operator.parseA.txt │ │ │ ├── comparison-operator.parseB.txt │ │ │ ├── concatenated-string.A.py │ │ │ ├── concatenated-string.B.py │ │ │ ├── concatenated-string.diffA-B.txt │ │ │ ├── concatenated-string.diffB-A.txt │ │ │ ├── concatenated-string.parseA.txt │ │ │ ├── concatenated-string.parseB.txt │ │ │ ├── conditional-expression.A.py │ │ │ ├── conditional-expression.B.py │ │ │ ├── conditional-expression.diffA-B.txt │ │ │ ├── conditional-expression.diffB-A.txt │ │ │ ├── conditional-expression.parseA.txt │ │ │ ├── conditional-expression.parseB.txt │ │ │ ├── continue-statement.A.py │ │ │ ├── continue-statement.B.py │ │ │ ├── continue-statement.diffA-B.txt │ │ │ ├── continue-statement.diffB-A.txt │ │ │ ├── continue-statement.parseA.txt │ │ │ ├── continue-statement.parseB.txt │ │ │ ├── decorated-definition.A.py │ │ │ ├── decorated-definition.B.py │ │ │ ├── decorated-definition.diffA-B.txt │ │ │ ├── decorated-definition.diffB-A.txt │ │ │ ├── decorated-definition.parseA.txt │ │ │ ├── decorated-definition.parseB.txt │ │ │ ├── delete-statement.A.py │ │ │ ├── delete-statement.B.py │ │ │ ├── delete-statement.diffA-B.txt │ │ │ ├── delete-statement.diffB-A.txt │ │ │ ├── delete-statement.parseA.txt │ │ │ ├── delete-statement.parseB.txt │ │ │ ├── dictionary-comprehension.A.py │ │ │ ├── dictionary-comprehension.B.py │ │ │ ├── dictionary-comprehension.diffA-B.txt │ │ │ ├── dictionary-comprehension.diffB-A.txt │ │ │ ├── dictionary-comprehension.parseA.txt │ │ │ ├── dictionary-comprehension.parseB.txt │ │ │ ├── dictionary.A.py │ │ │ ├── dictionary.B.py │ │ │ ├── dictionary.diffA-B.txt │ │ │ ├── dictionary.diffB-A.txt │ │ │ ├── dictionary.parseA.txt │ │ │ ├── dictionary.parseB.txt │ │ │ ├── dotted-name.A.py │ │ │ ├── dotted-name.B.py │ │ │ ├── dotted-name.diffA-B.txt │ │ │ ├── dotted-name.diffB-A.txt │ │ │ ├── dotted-name.parseA.txt │ │ │ ├── dotted-name.parseB.txt │ │ │ ├── ellipsis.A.py │ │ │ ├── ellipsis.B.py │ │ │ ├── ellipsis.diffA-B.txt │ │ │ ├── ellipsis.diffB-A.txt │ │ │ ├── ellipsis.parseA.txt │ │ │ ├── ellipsis.parseB.txt │ │ │ ├── exec-statement.A.py │ │ │ ├── exec-statement.B.py │ │ │ ├── exec-statement.diffA-B.txt │ │ │ ├── exec-statement.diffB-A.txt │ │ │ ├── exec-statement.parseA.txt │ │ │ ├── exec-statement.parseB.txt │ │ │ ├── expression-statement.A.py │ │ │ ├── expression-statement.B.py │ │ │ ├── expression-statement.diffA-B.txt │ │ │ ├── expression-statement.diffB-A.txt │ │ │ ├── expression-statement.parseA.txt │ │ │ ├── expression-statement.parseB.txt │ │ │ ├── float.A.py │ │ │ ├── float.B.py │ │ │ ├── float.diffA-B.txt │ │ │ ├── float.diffB-A.txt │ │ │ ├── float.parseA.txt │ │ │ ├── float.parseB.txt │ │ │ ├── for-statement.A.py │ │ │ ├── for-statement.B.py │ │ │ ├── for-statement.diffA-B.txt │ │ │ ├── for-statement.diffB-A.txt │ │ │ ├── for-statement.parseA.txt │ │ │ ├── for-statement.parseB.txt │ │ │ ├── function-definition.A.py │ │ │ ├── function-definition.B.py │ │ │ ├── function-definition.diffA-B.txt │ │ │ ├── function-definition.diffB-A.txt │ │ │ ├── function-definition.parseA.txt │ │ │ ├── function-definition.parseB.txt │ │ │ ├── future_import_statement.A.py │ │ │ ├── future_import_statement.B.py │ │ │ ├── future_import_statement.diffA-B.txt │ │ │ ├── future_import_statement.diffB-A.txt │ │ │ ├── future_import_statement.parseA.txt │ │ │ ├── future_import_statement.parseB.txt │ │ │ ├── generator-expression.A.py │ │ │ ├── generator-expression.B.py │ │ │ ├── generator-expression.diffA-B.txt │ │ │ ├── generator-expression.diffB-A.txt │ │ │ ├── generator-expression.parseA.txt │ │ │ ├── generator-expression.parseB.txt │ │ │ ├── global-statement.A.py │ │ │ ├── global-statement.B.py │ │ │ ├── global-statement.diffA-B.txt │ │ │ ├── global-statement.diffB-A.txt │ │ │ ├── global-statement.parseA.txt │ │ │ ├── global-statement.parseB.txt │ │ │ ├── identifier.A.py │ │ │ ├── identifier.B.py │ │ │ ├── identifier.diffA-B.txt │ │ │ ├── identifier.diffB-A.txt │ │ │ ├── identifier.parseA.txt │ │ │ ├── identifier.parseB.txt │ │ │ ├── if-statement.A.py │ │ │ ├── if-statement.B.py │ │ │ ├── if-statement.diffA-B.txt │ │ │ ├── if-statement.diffB-A.txt │ │ │ ├── if-statement.parseA.txt │ │ │ ├── if-statement.parseB.txt │ │ │ ├── import-from-statement.A.py │ │ │ ├── import-from-statement.B.py │ │ │ ├── import-from-statement.diffA-B.txt │ │ │ ├── import-from-statement.diffB-A.txt │ │ │ ├── import-from-statement.parseA.txt │ │ │ ├── import-from-statement.parseB.txt │ │ │ ├── import-statement.A.py │ │ │ ├── import-statement.B.py │ │ │ ├── import-statement.diffA-B.txt │ │ │ ├── import-statement.diffB-A.txt │ │ │ ├── import-statement.parseA.txt │ │ │ ├── import-statement.parseB.txt │ │ │ ├── integer.A.py │ │ │ ├── integer.B.py │ │ │ ├── integer.diffA-B.txt │ │ │ ├── integer.diffB-A.txt │ │ │ ├── integer.parseA.txt │ │ │ ├── integer.parseB.txt │ │ │ ├── keyword-identifier.A.py │ │ │ ├── keyword-identifier.B.py │ │ │ ├── keyword-identifier.diffA-B.txt │ │ │ ├── keyword-identifier.diffB-A.txt │ │ │ ├── keyword-identifier.parseA.txt │ │ │ ├── keyword-identifier.parseB.txt │ │ │ ├── lambda.A.py │ │ │ ├── lambda.B.py │ │ │ ├── lambda.diffA-B.txt │ │ │ ├── lambda.diffB-A.txt │ │ │ ├── lambda.parseA.txt │ │ │ ├── lambda.parseB.txt │ │ │ ├── list-comprehension.A.py │ │ │ ├── list-comprehension.B.py │ │ │ ├── list-comprehension.diffA-B.txt │ │ │ ├── list-comprehension.diffB-A.txt │ │ │ ├── list-comprehension.parseA.txt │ │ │ ├── list-comprehension.parseB.txt │ │ │ ├── list.A.py │ │ │ ├── list.B.py │ │ │ ├── list.diffA-B.txt │ │ │ ├── list.diffB-A.txt │ │ │ ├── list.parseA.txt │ │ │ ├── list.parseB.txt │ │ │ ├── non-local-statement.A.py │ │ │ ├── non-local-statement.B.py │ │ │ ├── non-local-statement.diffA-B.txt │ │ │ ├── non-local-statement.diffB-A.txt │ │ │ ├── non-local-statement.parseA.txt │ │ │ ├── non-local-statement.parseB.txt │ │ │ ├── none.A.py │ │ │ ├── none.B.py │ │ │ ├── none.diffA-B.txt │ │ │ ├── none.diffB-A.txt │ │ │ ├── none.parseA.txt │ │ │ ├── none.parseB.txt │ │ │ ├── not.A.py │ │ │ ├── not.B.py │ │ │ ├── not.diffA-B.txt │ │ │ ├── not.diffB-A.txt │ │ │ ├── not.parseA.txt │ │ │ ├── not.parseB.txt │ │ │ ├── pass-statement.A.py │ │ │ ├── pass-statement.B.py │ │ │ ├── pass-statement.diffA-B.txt │ │ │ ├── pass-statement.diffB-A.txt │ │ │ ├── pass-statement.parseA.txt │ │ │ ├── pass-statement.parseB.txt │ │ │ ├── print-statement.A.py │ │ │ ├── print-statement.B.py │ │ │ ├── print-statement.diffA-B.txt │ │ │ ├── print-statement.diffB-A.txt │ │ │ ├── print-statement.parseA.txt │ │ │ ├── print-statement.parseB.txt │ │ │ ├── raise-statement.A.py │ │ │ ├── raise-statement.B.py │ │ │ ├── raise-statement.diffA-B.txt │ │ │ ├── raise-statement.diffB-A.txt │ │ │ ├── raise-statement.parseA.txt │ │ │ ├── raise-statement.parseB.txt │ │ │ ├── return-statement.A.py │ │ │ ├── return-statement.B.py │ │ │ ├── return-statement.diffA-B.txt │ │ │ ├── return-statement.diffB-A.txt │ │ │ ├── return-statement.parseA.txt │ │ │ ├── return-statement.parseB.txt │ │ │ ├── set-comprehension.A.py │ │ │ ├── set-comprehension.B.py │ │ │ ├── set-comprehension.diffA-B.txt │ │ │ ├── set-comprehension.diffB-A.txt │ │ │ ├── set-comprehension.parseA.txt │ │ │ ├── set-comprehension.parseB.txt │ │ │ ├── set.A.py │ │ │ ├── set.B.py │ │ │ ├── set.diffA-B.txt │ │ │ ├── set.diffB-A.txt │ │ │ ├── set.parseA.txt │ │ │ ├── set.parseB.txt │ │ │ ├── slice.A.py │ │ │ ├── slice.B.py │ │ │ ├── slice.diffA-B.txt │ │ │ ├── slice.diffB-A.txt │ │ │ ├── slice.parseA.txt │ │ │ ├── slice.parseB.txt │ │ │ ├── string.A.py │ │ │ ├── string.B.py │ │ │ ├── string.diffA-B.txt │ │ │ ├── string.diffB-A.txt │ │ │ ├── string.parseA.txt │ │ │ ├── string.parseB.txt │ │ │ ├── subscript.A.py │ │ │ ├── subscript.B.py │ │ │ ├── subscript.diffA-B.txt │ │ │ ├── subscript.diffB-A.txt │ │ │ ├── subscript.parseA.txt │ │ │ ├── subscript.parseB.txt │ │ │ ├── try-statement.A.py │ │ │ ├── try-statement.B.py │ │ │ ├── try-statement.diffA-B.txt │ │ │ ├── try-statement.diffB-A.txt │ │ │ ├── try-statement.parseA.txt │ │ │ ├── try-statement.parseB.txt │ │ │ ├── tuple.A.py │ │ │ ├── tuple.B.py │ │ │ ├── tuple.diffA-B.txt │ │ │ ├── tuple.diffB-A.txt │ │ │ ├── tuple.parseA.txt │ │ │ ├── tuple.parseB.txt │ │ │ ├── unary-operator.A.py │ │ │ ├── unary-operator.B.py │ │ │ ├── unary-operator.diffA-B.txt │ │ │ ├── unary-operator.diffB-A.txt │ │ │ ├── unary-operator.parseA.txt │ │ │ ├── unary-operator.parseB.txt │ │ │ ├── while-statement.A.py │ │ │ ├── while-statement.B.py │ │ │ ├── while-statement.diffA-B.txt │ │ │ ├── while-statement.diffB-A.txt │ │ │ ├── while-statement.parseA.txt │ │ │ ├── while-statement.parseB.txt │ │ │ ├── with-statement.A.py │ │ │ ├── with-statement.B.py │ │ │ ├── with-statement.diffA-B.txt │ │ │ ├── with-statement.diffB-A.txt │ │ │ ├── with-statement.parseA.txt │ │ │ ├── with-statement.parseB.txt │ │ │ ├── with.A.py │ │ │ ├── with.B.py │ │ │ ├── with.diffA-B.txt │ │ │ ├── with.diffB-A.txt │ │ │ ├── with.parseA.txt │ │ │ ├── with.parseB.txt │ │ │ ├── yield.A.py │ │ │ ├── yield.B.py │ │ │ ├── yield.diffA-B.txt │ │ │ ├── yield.diffB-A.txt │ │ │ ├── yield.parseA.txt │ │ │ └── yield.parseB.txt │ │ ├── graphing/ │ │ │ ├── conditional/ │ │ │ │ └── conditional.py │ │ │ ├── simple/ │ │ │ │ └── simple.py │ │ │ ├── typeerror/ │ │ │ │ └── typeerror.py │ │ │ └── unbound/ │ │ │ └── unbound.py │ │ ├── import-graph/ │ │ │ ├── main.json │ │ │ └── main.py │ │ ├── matching/ │ │ │ ├── docstrings.py │ │ │ └── docstrings_nested.py │ │ ├── reprinting/ │ │ │ ├── function.out.py │ │ │ └── function.py │ │ └── tags/ │ │ ├── class.py │ │ ├── multiline.py │ │ ├── simple_function_with_docs.py │ │ └── simple_functions.py │ ├── ruby/ │ │ ├── analysis/ │ │ │ ├── break.rb │ │ │ ├── call.rb │ │ │ ├── classes.rb │ │ │ ├── early-return.rb │ │ │ ├── foo.rb │ │ │ ├── line.rb │ │ │ ├── load-wrap.rb │ │ │ ├── load.rb │ │ │ ├── main.rb │ │ │ ├── modules.rb │ │ │ ├── next.rb │ │ │ ├── preluded.rb │ │ │ ├── puts.rb │ │ │ ├── src/ │ │ │ │ ├── foo.rb │ │ │ │ └── main.rb │ │ │ └── subclass.rb │ │ ├── corpus/ │ │ │ ├── alias.A.rb │ │ │ ├── alias.parseA.txt │ │ │ ├── and-or.A.rb │ │ │ ├── and-or.B.rb │ │ │ ├── and-or.diffA-B.txt │ │ │ ├── and-or.diffB-A.txt │ │ │ ├── and-or.parseA.txt │ │ │ ├── and-or.parseB.txt │ │ │ ├── array.A.rb │ │ │ ├── array.B.rb │ │ │ ├── array.diffA-B.txt │ │ │ ├── array.diffB-A.txt │ │ │ ├── array.parseA.txt │ │ │ ├── array.parseB.txt │ │ │ ├── assignment.A.rb │ │ │ ├── assignment.B.rb │ │ │ ├── assignment.diffA-B.txt │ │ │ ├── assignment.diffB-A.txt │ │ │ ├── assignment.parseA.txt │ │ │ ├── assignment.parseB.txt │ │ │ ├── begin-block.A.rb │ │ │ ├── begin-block.B.rb │ │ │ ├── begin-block.diffA-B.txt │ │ │ ├── begin-block.diffB-A.txt │ │ │ ├── begin-block.parseA.txt │ │ │ ├── begin-block.parseB.txt │ │ │ ├── begin.A.rb │ │ │ ├── begin.B.rb │ │ │ ├── begin.diffA-B.txt │ │ │ ├── begin.diffB-A.txt │ │ │ ├── begin.parseA.txt │ │ │ ├── begin.parseB.txt │ │ │ ├── binary.A.rb │ │ │ ├── binary.parseA.txt │ │ │ ├── bitwise-operator.A.rb │ │ │ ├── bitwise-operator.B.rb │ │ │ ├── bitwise-operator.diffA-B.txt │ │ │ ├── bitwise-operator.diffB-A.txt │ │ │ ├── bitwise-operator.parseA.txt │ │ │ ├── bitwise-operator.parseB.txt │ │ │ ├── boolean-operator.A.rb │ │ │ ├── boolean-operator.B.rb │ │ │ ├── boolean-operator.diffA-B.txt │ │ │ ├── boolean-operator.diffB-A.txt │ │ │ ├── boolean-operator.parseA.txt │ │ │ ├── boolean-operator.parseB.txt │ │ │ ├── break.A.rb │ │ │ ├── break.B.rb │ │ │ ├── break.diffA-B.txt │ │ │ ├── break.diffB-A.txt │ │ │ ├── break.parseA.txt │ │ │ ├── break.parseB.txt │ │ │ ├── calls.A.rb │ │ │ ├── calls.parseA.txt │ │ │ ├── chained-string.A.rb │ │ │ ├── chained-string.parseA.txt │ │ │ ├── class.A.rb │ │ │ ├── class.B.rb │ │ │ ├── class.diffA-B.txt │ │ │ ├── class.diffB-A.txt │ │ │ ├── class.parseA.txt │ │ │ ├── class.parseB.txt │ │ │ ├── comment.A.rb │ │ │ ├── comment.B.rb │ │ │ ├── comment.diffA-B.txt │ │ │ ├── comment.diffB-A.txt │ │ │ ├── comment.parseA.txt │ │ │ ├── comment.parseB.txt │ │ │ ├── comparision-operator.A.rb │ │ │ ├── comparision-operator.B.rb │ │ │ ├── comparision-operator.diffA-B.txt │ │ │ ├── comparision-operator.diffB-A.txt │ │ │ ├── comparision-operator.parseA.txt │ │ │ ├── comparision-operator.parseB.txt │ │ │ ├── conditional-assignment.A.rb │ │ │ ├── conditional-assignment.B.rb │ │ │ ├── conditional-assignment.diffA-B.txt │ │ │ ├── conditional-assignment.diffB-A.txt │ │ │ ├── conditional-assignment.parseA.txt │ │ │ ├── conditional-assignment.parseB.txt │ │ │ ├── delimiter.A.rb │ │ │ ├── delimiter.B.rb │ │ │ ├── delimiter.diffA-B.txt │ │ │ ├── delimiter.diffB-A.txt │ │ │ ├── delimiter.parseA.txt │ │ │ ├── delimiter.parseB.txt │ │ │ ├── element-reference.A.rb │ │ │ ├── element-reference.B.rb │ │ │ ├── element-reference.diffA-B.txt │ │ │ ├── element-reference.diffB-A.txt │ │ │ ├── element-reference.parseA.txt │ │ │ ├── element-reference.parseB.txt │ │ │ ├── else.A.rb │ │ │ ├── else.B.rb │ │ │ ├── else.diffA-B.txt │ │ │ ├── else.diffB-A.txt │ │ │ ├── else.parseA.txt │ │ │ ├── else.parseB.txt │ │ │ ├── elsif.A.rb │ │ │ ├── elsif.B.rb │ │ │ ├── elsif.diffA-B.txt │ │ │ ├── elsif.diffB-A.txt │ │ │ ├── elsif.parseA.txt │ │ │ ├── elsif.parseB.txt │ │ │ ├── empty-statement.A.rb │ │ │ ├── empty-statement.parseA.txt │ │ │ ├── end-block.A.rb │ │ │ ├── end-block.B.rb │ │ │ ├── end-block.diffA-B.txt │ │ │ ├── end-block.diffB-A.txt │ │ │ ├── end-block.parseA.txt │ │ │ ├── end-block.parseB.txt │ │ │ ├── ensure.A.rb │ │ │ ├── ensure.B.rb │ │ │ ├── ensure.diffA-B.txt │ │ │ ├── ensure.diffB-A.txt │ │ │ ├── ensure.parseA.txt │ │ │ ├── ensure.parseB.txt │ │ │ ├── for.A.rb │ │ │ ├── for.B.rb │ │ │ ├── for.diffA-B.txt │ │ │ ├── for.diffB-A.txt │ │ │ ├── for.parseA.txt │ │ │ ├── for.parseB.txt │ │ │ ├── hash.A.rb │ │ │ ├── hash.B.rb │ │ │ ├── hash.diffA-B.txt │ │ │ ├── hash.diffB-A.txt │ │ │ ├── hash.parseA.txt │ │ │ ├── hash.parseB.txt │ │ │ ├── heredoc.A.rb │ │ │ ├── heredoc.B.rb │ │ │ ├── heredoc.diffA-B.txt │ │ │ ├── heredoc.diffB-A.txt │ │ │ ├── heredoc.parseA.txt │ │ │ ├── heredoc.parseB.txt │ │ │ ├── if-unless-modifiers.A.rb │ │ │ ├── if-unless-modifiers.B.rb │ │ │ ├── if-unless-modifiers.diffA-B.txt │ │ │ ├── if-unless-modifiers.diffB-A.txt │ │ │ ├── if-unless-modifiers.parseA.txt │ │ │ ├── if-unless-modifiers.parseB.txt │ │ │ ├── if.A.rb │ │ │ ├── if.B.rb │ │ │ ├── if.diffA-B.txt │ │ │ ├── if.diffB-A.txt │ │ │ ├── if.parseA.txt │ │ │ ├── if.parseB.txt │ │ │ ├── interpolation.A.rb │ │ │ ├── interpolation.B.rb │ │ │ ├── interpolation.diffA-B.txt │ │ │ ├── interpolation.diffB-A.txt │ │ │ ├── interpolation.parseA.txt │ │ │ ├── interpolation.parseB.txt │ │ │ ├── keywords.A.rb │ │ │ ├── keywords.parseA.txt │ │ │ ├── lambda-dash-rocket.A.rb │ │ │ ├── lambda-dash-rocket.B.rb │ │ │ ├── lambda-dash-rocket.diffA-B.txt │ │ │ ├── lambda-dash-rocket.diffB-A.txt │ │ │ ├── lambda-dash-rocket.parseA.txt │ │ │ ├── lambda-dash-rocket.parseB.txt │ │ │ ├── lambda.A.rb │ │ │ ├── lambda.B.rb │ │ │ ├── lambda.diffA-B.txt │ │ │ ├── lambda.diffB-A.txt │ │ │ ├── lambda.parseA.txt │ │ │ ├── lambda.parseB.txt │ │ │ ├── literals.A.rb │ │ │ ├── literals.parseA.txt │ │ │ ├── math-assignment.A.rb │ │ │ ├── math-assignment.B.rb │ │ │ ├── math-assignment.diffA-B.txt │ │ │ ├── math-assignment.diffB-A.txt │ │ │ ├── math-assignment.parseA.txt │ │ │ ├── math-assignment.parseB.txt │ │ │ ├── method-calls-hash-args.A.rb │ │ │ ├── method-calls-hash-args.B.rb │ │ │ ├── method-calls-hash-args.diffA-B.txt │ │ │ ├── method-calls-hash-args.diffB-A.txt │ │ │ ├── method-calls-hash-args.parseA.txt │ │ │ ├── method-calls-hash-args.parseB.txt │ │ │ ├── method-calls-keyword-args.A.rb │ │ │ ├── method-calls-keyword-args.B.rb │ │ │ ├── method-calls-keyword-args.diffA-B.txt │ │ │ ├── method-calls-keyword-args.diffB-A.txt │ │ │ ├── method-calls-keyword-args.parseA.txt │ │ │ ├── method-calls-keyword-args.parseB.txt │ │ │ ├── method-calls.A.rb │ │ │ ├── method-calls.B.rb │ │ │ ├── method-calls.diffA-B.txt │ │ │ ├── method-calls.diffB-A.txt │ │ │ ├── method-calls.parseA.txt │ │ │ ├── method-calls.parseB.txt │ │ │ ├── method-declaration-keyword-param.A.rb │ │ │ ├── method-declaration-keyword-param.B.rb │ │ │ ├── method-declaration-keyword-param.diffA-B.txt │ │ │ ├── method-declaration-keyword-param.diffB-A.txt │ │ │ ├── method-declaration-keyword-param.parseA.txt │ │ │ ├── method-declaration-keyword-param.parseB.txt │ │ │ ├── method-declaration-param-default.A.rb │ │ │ ├── method-declaration-param-default.B.rb │ │ │ ├── method-declaration-param-default.diffA-B.txt │ │ │ ├── method-declaration-param-default.diffB-A.txt │ │ │ ├── method-declaration-param-default.parseA.txt │ │ │ ├── method-declaration-param-default.parseB.txt │ │ │ ├── method-declaration-params.A.rb │ │ │ ├── method-declaration-params.B.rb │ │ │ ├── method-declaration-params.diffA-B.txt │ │ │ ├── method-declaration-params.diffB-A.txt │ │ │ ├── method-declaration-params.parseA.txt │ │ │ ├── method-declaration-params.parseB.txt │ │ │ ├── method-declaration-required-keyword-param.A.rb │ │ │ ├── method-declaration-required-keyword-param.B.rb │ │ │ ├── method-declaration-required-keyword-param.diffA-B.txt │ │ │ ├── method-declaration-required-keyword-param.diffB-A.txt │ │ │ ├── method-declaration-required-keyword-param.parseA.txt │ │ │ ├── method-declaration-required-keyword-param.parseB.txt │ │ │ ├── method-declaration-unnamed-param.A.rb │ │ │ ├── method-declaration-unnamed-param.B.rb │ │ │ ├── method-declaration-unnamed-param.diffA-B.txt │ │ │ ├── method-declaration-unnamed-param.diffB-A.txt │ │ │ ├── method-declaration-unnamed-param.parseA.txt │ │ │ ├── method-declaration-unnamed-param.parseB.txt │ │ │ ├── method-declaration.A.rb │ │ │ ├── method-declaration.B.rb │ │ │ ├── method-declaration.diffA-B.txt │ │ │ ├── method-declaration.diffB-A.txt │ │ │ ├── method-declaration.parseA.txt │ │ │ ├── method-declaration.parseB.txt │ │ │ ├── method-invocation.A.rb │ │ │ ├── method-invocation.B.rb │ │ │ ├── method-invocation.diffA-B.txt │ │ │ ├── method-invocation.diffB-A.txt │ │ │ ├── method-invocation.parseA.txt │ │ │ ├── method-invocation.parseB.txt │ │ │ ├── methods.A.rb │ │ │ ├── methods.parseA.txt │ │ │ ├── misc.A.rb │ │ │ ├── misc.parseA.txt │ │ │ ├── module.A.rb │ │ │ ├── module.B.rb │ │ │ ├── module.diffA-B.txt │ │ │ ├── module.diffB-A.txt │ │ │ ├── module.parseA.txt │ │ │ ├── module.parseB.txt │ │ │ ├── multiple-assignments.A.rb │ │ │ ├── multiple-assignments.B.rb │ │ │ ├── multiple-assignments.diffA-B.txt │ │ │ ├── multiple-assignments.diffB-A.txt │ │ │ ├── multiple-assignments.parseA.txt │ │ │ ├── multiple-assignments.parseB.txt │ │ │ ├── next.A.rb │ │ │ ├── next.parseA.txt │ │ │ ├── number.A.rb │ │ │ ├── number.B.rb │ │ │ ├── number.diffA-B.txt │ │ │ ├── number.diffB-A.txt │ │ │ ├── number.parseA.txt │ │ │ ├── number.parseB.txt │ │ │ ├── percent-array.A.rb │ │ │ ├── percent-array.B.rb │ │ │ ├── percent-array.diffA-B.txt │ │ │ ├── percent-array.diffB-A.txt │ │ │ ├── percent-array.parseA.txt │ │ │ ├── percent-array.parseB.txt │ │ │ ├── pseudo-variables.A.rb │ │ │ ├── pseudo-variables.B.rb │ │ │ ├── pseudo-variables.diffA-B.txt │ │ │ ├── pseudo-variables.diffB-A.txt │ │ │ ├── pseudo-variables.parseA.txt │ │ │ ├── pseudo-variables.parseB.txt │ │ │ ├── regex.A.rb │ │ │ ├── regex.B.rb │ │ │ ├── regex.diffA-B.txt │ │ │ ├── regex.diffB-A.txt │ │ │ ├── regex.parseA.txt │ │ │ ├── regex.parseB.txt │ │ │ ├── relational-operator.A.rb │ │ │ ├── relational-operator.B.rb │ │ │ ├── relational-operator.diffA-B.txt │ │ │ ├── relational-operator.diffB-A.txt │ │ │ ├── relational-operator.parseA.txt │ │ │ ├── relational-operator.parseB.txt │ │ │ ├── require.A.rb │ │ │ ├── require.B.rb │ │ │ ├── require.diffA-B.txt │ │ │ ├── require.diffB-A.txt │ │ │ ├── require.parseA.txt │ │ │ ├── require.parseB.txt │ │ │ ├── rescue-empty.A.rb │ │ │ ├── rescue-empty.B.rb │ │ │ ├── rescue-empty.diffA-B.txt │ │ │ ├── rescue-empty.diffB-A.txt │ │ │ ├── rescue-empty.parseA.txt │ │ │ ├── rescue-empty.parseB.txt │ │ │ ├── rescue-last-ex.A.rb │ │ │ ├── rescue-last-ex.B.rb │ │ │ ├── rescue-last-ex.diffA-B.txt │ │ │ ├── rescue-last-ex.diffB-A.txt │ │ │ ├── rescue-last-ex.parseA.txt │ │ │ ├── rescue-last-ex.parseB.txt │ │ │ ├── rescue-modifier.A.rb │ │ │ ├── rescue-modifier.B.rb │ │ │ ├── rescue-modifier.diffA-B.txt │ │ │ ├── rescue-modifier.diffB-A.txt │ │ │ ├── rescue-modifier.parseA.txt │ │ │ ├── rescue-modifier.parseB.txt │ │ │ ├── rescue-modifier2.A.rb │ │ │ ├── rescue-modifier2.B.rb │ │ │ ├── rescue-modifier2.diffA-B.txt │ │ │ ├── rescue-modifier2.diffB-A.txt │ │ │ ├── rescue-modifier2.parseA.txt │ │ │ ├── rescue-modifier2.parseB.txt │ │ │ ├── rescue.A.rb │ │ │ ├── rescue.B.rb │ │ │ ├── rescue.diffA-B.txt │ │ │ ├── rescue.diffB-A.txt │ │ │ ├── rescue.parseA.txt │ │ │ ├── rescue.parseB.txt │ │ │ ├── return.A.rb │ │ │ ├── return.B.rb │ │ │ ├── return.diffA-B.txt │ │ │ ├── return.diffB-A.txt │ │ │ ├── return.parseA.txt │ │ │ ├── return.parseB.txt │ │ │ ├── singleton-class.A.rb │ │ │ ├── singleton-class.parseA.txt │ │ │ ├── string.A.rb │ │ │ ├── string.B.rb │ │ │ ├── string.diffA-B.txt │ │ │ ├── string.diffB-A.txt │ │ │ ├── string.parseA.txt │ │ │ ├── string.parseB.txt │ │ │ ├── subshell.A.rb │ │ │ ├── subshell.B.rb │ │ │ ├── subshell.diffA-B.txt │ │ │ ├── subshell.diffB-A.txt │ │ │ ├── subshell.parseA.txt │ │ │ ├── subshell.parseB.txt │ │ │ ├── symbol.A.rb │ │ │ ├── symbol.B.rb │ │ │ ├── symbol.diffA-B.txt │ │ │ ├── symbol.diffB-A.txt │ │ │ ├── symbol.parseA.txt │ │ │ ├── symbol.parseB.txt │ │ │ ├── ternary.A.rb │ │ │ ├── ternary.B.rb │ │ │ ├── ternary.diffA-B.txt │ │ │ ├── ternary.diffB-A.txt │ │ │ ├── ternary.parseA.txt │ │ │ ├── ternary.parseB.txt │ │ │ ├── unary.A.rb │ │ │ ├── unary.parseA.txt │ │ │ ├── undef.A.rb │ │ │ ├── undef.parseA.txt │ │ │ ├── unless.A.rb │ │ │ ├── unless.B.rb │ │ │ ├── unless.diffA-B.txt │ │ │ ├── unless.diffB-A.txt │ │ │ ├── unless.parseA.txt │ │ │ ├── unless.parseB.txt │ │ │ ├── until.A.rb │ │ │ ├── until.B.rb │ │ │ ├── until.diffA-B.txt │ │ │ ├── until.diffB-A.txt │ │ │ ├── until.parseA.txt │ │ │ ├── until.parseB.txt │ │ │ ├── when-else.A.rb │ │ │ ├── when-else.B.rb │ │ │ ├── when-else.diffA-B.txt │ │ │ ├── when-else.diffB-A.txt │ │ │ ├── when-else.parseA.txt │ │ │ ├── when-else.parseB.txt │ │ │ ├── when.A.rb │ │ │ ├── when.B.rb │ │ │ ├── when.diffA-B.txt │ │ │ ├── when.diffB-A.txt │ │ │ ├── when.parseA.txt │ │ │ ├── when.parseB.txt │ │ │ ├── while.A.rb │ │ │ ├── while.B.rb │ │ │ ├── while.diffA-B.txt │ │ │ ├── while.diffB-A.txt │ │ │ ├── while.parseA.txt │ │ │ ├── while.parseB.txt │ │ │ ├── yield.A.rb │ │ │ ├── yield.B.rb │ │ │ ├── yield.diffA-B.txt │ │ │ ├── yield.diffB-A.txt │ │ │ ├── yield.parseA.txt │ │ │ └── yield.parseB.txt │ │ ├── import-graph/ │ │ │ ├── app.json │ │ │ └── app.rb │ │ ├── reprinting/ │ │ │ ├── function.out.rb │ │ │ ├── function.rb │ │ │ └── infix.rb │ │ ├── tags/ │ │ │ ├── class_module.rb │ │ │ ├── simple_method.rb │ │ │ ├── simple_method_with_docs.rb │ │ │ └── unicode_identifiers.rb │ │ └── toc/ │ │ ├── classes.A.rb │ │ ├── classes.B.rb │ │ ├── lambda.A.rb │ │ ├── lambda.B.rb │ │ ├── method-starts-with-two-identifiers.A.rb │ │ ├── method-starts-with-two-identifiers.B.rb │ │ ├── methods.A.rb │ │ ├── methods.B.rb │ │ ├── methods.X.rb │ │ ├── unicode.A.rb │ │ └── unicode.B.rb │ ├── tsx/ │ │ └── corpus/ │ │ ├── jsx-elements.A.tsx │ │ ├── jsx-elements.B.tsx │ │ ├── jsx-elements.diffA-B.txt │ │ ├── jsx-elements.diffB-A.txt │ │ ├── jsx-elements.parseA.txt │ │ └── jsx-elements.parseB.txt │ └── typescript/ │ ├── analysis/ │ │ ├── .gitignore │ │ ├── a.ts │ │ ├── access_control/ │ │ │ ├── adder.ts │ │ │ ├── private_field_definition.ts │ │ │ ├── private_method.ts │ │ │ └── private_static_field_definition.ts │ │ ├── await.ts │ │ ├── bad-export.ts │ │ ├── band.ts │ │ ├── baz.ts │ │ ├── bor.ts │ │ ├── bxor.ts │ │ ├── class1.ts │ │ ├── class2.ts │ │ ├── complement.ts │ │ ├── delete.ts │ │ ├── early-return.ts │ │ ├── foo/ │ │ │ └── b.ts │ │ ├── foo.ts │ │ ├── foo2.ts │ │ ├── lshift.ts │ │ ├── main.ts │ │ ├── main1.ts │ │ ├── main2.ts │ │ ├── main3.ts │ │ ├── main4.ts │ │ ├── main5.ts │ │ ├── main6.ts │ │ ├── main7.ts │ │ ├── pip.ts │ │ ├── rshift.ts │ │ ├── sequence-expression.ts │ │ ├── unsignedrshift.ts │ │ └── void.ts │ ├── corpus/ │ │ ├── ambient-declarations.A.ts │ │ ├── ambient-declarations.B.ts │ │ ├── ambient-declarations.diffA-B.txt │ │ ├── ambient-declarations.diffB-A.txt │ │ ├── ambient-declarations.parseA.txt │ │ ├── ambient-declarations.parseB.txt │ │ ├── ambient-exports.A.ts │ │ ├── ambient-exports.B.ts │ │ ├── ambient-exports.diffA-B.txt │ │ ├── ambient-exports.diffB-A.txt │ │ ├── ambient-exports.parseA.txt │ │ ├── ambient-exports.parseB.txt │ │ ├── ambient-type-declarations.A.ts │ │ ├── ambient-type-declarations.B.ts │ │ ├── ambient-type-declarations.diffA-B.txt │ │ ├── ambient-type-declarations.diffB-A.txt │ │ ├── ambient-type-declarations.parseA.txt │ │ ├── ambient-type-declarations.parseB.txt │ │ ├── anonymous-function.A.ts │ │ ├── anonymous-function.B.ts │ │ ├── anonymous-function.diffA-B.txt │ │ ├── anonymous-function.diffB-A.txt │ │ ├── anonymous-function.parseA.txt │ │ ├── anonymous-function.parseB.txt │ │ ├── anonymous-parameterless-function.A.ts │ │ ├── anonymous-parameterless-function.B.ts │ │ ├── anonymous-parameterless-function.diffA-B.txt │ │ ├── anonymous-parameterless-function.diffB-A.txt │ │ ├── anonymous-parameterless-function.parseA.txt │ │ ├── anonymous-parameterless-function.parseB.txt │ │ ├── array-type.A.ts │ │ ├── array-type.B.ts │ │ ├── array-type.diffA-B.txt │ │ ├── array-type.diffB-A.txt │ │ ├── array-type.parseA.txt │ │ ├── array-type.parseB.txt │ │ ├── array.A.ts │ │ ├── array.B.ts │ │ ├── array.diffA-B.txt │ │ ├── array.diffB-A.txt │ │ ├── array.parseA.txt │ │ ├── array.parseB.txt │ │ ├── arrow-function.A.ts │ │ ├── arrow-function.B.ts │ │ ├── arrow-function.diffA-B.txt │ │ ├── arrow-function.diffB-A.txt │ │ ├── arrow-function.parseA.txt │ │ ├── arrow-function.parseB.txt │ │ ├── assignment-pattern.A.ts │ │ ├── assignment-pattern.B.ts │ │ ├── assignment-pattern.diffA-B.txt │ │ ├── assignment-pattern.diffB-A.txt │ │ ├── assignment-pattern.parseA.txt │ │ ├── assignment-pattern.parseB.txt │ │ ├── assignment.A.ts │ │ ├── assignment.B.ts │ │ ├── assignment.diffA-B.txt │ │ ├── assignment.diffB-A.txt │ │ ├── assignment.parseA.txt │ │ ├── assignment.parseB.txt │ │ ├── bitwise-operator.A.ts │ │ ├── bitwise-operator.B.ts │ │ ├── bitwise-operator.diffA-B.txt │ │ ├── bitwise-operator.diffB-A.txt │ │ ├── bitwise-operator.parseA.txt │ │ ├── bitwise-operator.parseB.txt │ │ ├── boolean-operator.A.ts │ │ ├── boolean-operator.B.ts │ │ ├── boolean-operator.diffA-B.txt │ │ ├── boolean-operator.diffB-A.txt │ │ ├── boolean-operator.parseA.txt │ │ ├── boolean-operator.parseB.txt │ │ ├── break.A.ts │ │ ├── break.B.ts │ │ ├── break.diffA-B.txt │ │ ├── break.diffB-A.txt │ │ ├── break.parseA.txt │ │ ├── break.parseB.txt │ │ ├── chained-callbacks.A.ts │ │ ├── chained-callbacks.B.ts │ │ ├── chained-callbacks.diffA-B.txt │ │ ├── chained-callbacks.diffB-A.txt │ │ ├── chained-callbacks.parseA.txt │ │ ├── chained-callbacks.parseB.txt │ │ ├── chained-property-access.A.ts │ │ ├── chained-property-access.B.ts │ │ ├── chained-property-access.diffA-B.txt │ │ ├── chained-property-access.diffB-A.txt │ │ ├── chained-property-access.parseA.txt │ │ ├── chained-property-access.parseB.txt │ │ ├── class.A.ts │ │ ├── class.B.ts │ │ ├── class.diffA-B.txt │ │ ├── class.diffB-A.txt │ │ ├── class.parseA.txt │ │ ├── class.parseB.txt │ │ ├── comma-operator.A.ts │ │ ├── comma-operator.B.ts │ │ ├── comma-operator.diffA-B.txt │ │ ├── comma-operator.diffB-A.txt │ │ ├── comma-operator.parseA.txt │ │ ├── comma-operator.parseB.txt │ │ ├── comment.A.ts │ │ ├── comment.B.ts │ │ ├── comment.diffA-B.txt │ │ ├── comment.diffB-A.txt │ │ ├── comment.parseA.txt │ │ ├── comment.parseB.txt │ │ ├── constructor-call.A.ts │ │ ├── constructor-call.B.ts │ │ ├── constructor-call.diffA-B.txt │ │ ├── constructor-call.diffB-A.txt │ │ ├── constructor-call.parseA.txt │ │ ├── constructor-call.parseB.txt │ │ ├── continue.A.ts │ │ ├── continue.B.ts │ │ ├── continue.diffA-B.txt │ │ ├── continue.diffB-A.txt │ │ ├── continue.parseA.txt │ │ ├── continue.parseB.txt │ │ ├── delete-operator.A.ts │ │ ├── delete-operator.B.ts │ │ ├── delete-operator.diffA-B.txt │ │ ├── delete-operator.diffB-A.txt │ │ ├── delete-operator.parseA.txt │ │ ├── delete-operator.parseB.txt │ │ ├── do-while-statement.A.ts │ │ ├── do-while-statement.B.ts │ │ ├── do-while-statement.diffA-B.txt │ │ ├── do-while-statement.diffB-A.txt │ │ ├── do-while-statement.parseA.txt │ │ ├── do-while-statement.parseB.txt │ │ ├── export-assignments.A.ts │ │ ├── export-assignments.B.ts │ │ ├── export-assignments.diffA-B.txt │ │ ├── export-assignments.diffB-A.txt │ │ ├── export-assignments.parseA.txt │ │ ├── export-assignments.parseB.txt │ │ ├── export.A.ts │ │ ├── export.B.ts │ │ ├── export.diffA-B.txt │ │ ├── export.diffB-A.txt │ │ ├── export.parseA.txt │ │ ├── export.parseB.txt │ │ ├── false.A.ts │ │ ├── false.B.ts │ │ ├── false.diffA-B.txt │ │ ├── false.diffB-A.txt │ │ ├── false.parseA.txt │ │ ├── false.parseB.txt │ │ ├── for-in-statement.A.ts │ │ ├── for-in-statement.B.ts │ │ ├── for-in-statement.diffA-B.txt │ │ ├── for-in-statement.diffB-A.txt │ │ ├── for-in-statement.parseA.txt │ │ ├── for-in-statement.parseB.txt │ │ ├── for-loop-with-in-statement.A.ts │ │ ├── for-loop-with-in-statement.B.ts │ │ ├── for-loop-with-in-statement.diffA-B.txt │ │ ├── for-loop-with-in-statement.diffB-A.txt │ │ ├── for-loop-with-in-statement.parseA.txt │ │ ├── for-loop-with-in-statement.parseB.txt │ │ ├── for-of-statement.A.ts │ │ ├── for-of-statement.B.ts │ │ ├── for-of-statement.diffA-B.txt │ │ ├── for-of-statement.diffB-A.txt │ │ ├── for-of-statement.parseA.txt │ │ ├── for-of-statement.parseB.txt │ │ ├── for-statement.A.ts │ │ ├── for-statement.B.ts │ │ ├── for-statement.diffA-B.txt │ │ ├── for-statement.diffB-A.txt │ │ ├── for-statement.parseA.txt │ │ ├── for-statement.parseB.txt │ │ ├── function-call-args.A.ts │ │ ├── function-call-args.B.ts │ │ ├── function-call-args.diffA-B.txt │ │ ├── function-call-args.diffB-A.txt │ │ ├── function-call-args.parseA.txt │ │ ├── function-call-args.parseB.txt │ │ ├── function-call.A.ts │ │ ├── function-call.B.ts │ │ ├── function-call.diffA-B.txt │ │ ├── function-call.diffB-A.txt │ │ ├── function-call.parseA.txt │ │ ├── function-call.parseB.txt │ │ ├── function-type.A.ts │ │ ├── function-type.B.ts │ │ ├── function-type.diffA-B.txt │ │ ├── function-type.diffB-A.txt │ │ ├── function-type.parseA.txt │ │ ├── function-type.parseB.txt │ │ ├── function.A.ts │ │ ├── function.B.ts │ │ ├── function.diffA-B.txt │ │ ├── function.diffB-A.txt │ │ ├── function.parseA.txt │ │ ├── function.parseB.txt │ │ ├── generator-function.A.ts │ │ ├── generator-function.B.ts │ │ ├── generator-function.diffA-B.txt │ │ ├── generator-function.diffB-A.txt │ │ ├── generator-function.parseA.txt │ │ ├── generator-function.parseB.txt │ │ ├── identifier.A.ts │ │ ├── identifier.B.ts │ │ ├── identifier.diffA-B.txt │ │ ├── identifier.diffB-A.txt │ │ ├── identifier.parseA.txt │ │ ├── identifier.parseB.txt │ │ ├── if-else.A.ts │ │ ├── if-else.B.ts │ │ ├── if-else.diffA-B.txt │ │ ├── if-else.diffB-A.txt │ │ ├── if-else.parseA.txt │ │ ├── if-else.parseB.txt │ │ ├── if.A.ts │ │ ├── if.B.ts │ │ ├── if.diffA-B.txt │ │ ├── if.diffB-A.txt │ │ ├── if.parseA.txt │ │ ├── if.parseB.txt │ │ ├── import.A.ts │ │ ├── import.B.ts │ │ ├── import.diffA-B.txt │ │ ├── import.diffB-A.txt │ │ ├── import.parseA.txt │ │ ├── import.parseB.txt │ │ ├── interface.A.ts │ │ ├── interface.B.ts │ │ ├── interface.diffA-B.txt │ │ ├── interface.diffB-A.txt │ │ ├── interface.parseA.txt │ │ ├── interface.parseB.txt │ │ ├── intersection-type.A.ts │ │ ├── intersection-type.B.ts │ │ ├── intersection-type.diffA-B.txt │ │ ├── intersection-type.diffB-A.txt │ │ ├── intersection-type.parseA.txt │ │ ├── intersection-type.parseB.txt │ │ ├── math-assignment-operator.A.ts │ │ ├── math-assignment-operator.B.ts │ │ ├── math-assignment-operator.diffA-B.txt │ │ ├── math-assignment-operator.diffB-A.txt │ │ ├── math-assignment-operator.parseA.txt │ │ ├── math-assignment-operator.parseB.txt │ │ ├── math-operator.A.ts │ │ ├── math-operator.B.ts │ │ ├── math-operator.diffA-B.txt │ │ ├── math-operator.diffB-A.txt │ │ ├── math-operator.parseA.txt │ │ ├── math-operator.parseB.txt │ │ ├── member-access-assignment.A.ts │ │ ├── member-access-assignment.B.ts │ │ ├── member-access-assignment.diffA-B.txt │ │ ├── member-access-assignment.diffB-A.txt │ │ ├── member-access-assignment.parseA.txt │ │ ├── member-access-assignment.parseB.txt │ │ ├── member-access.A.ts │ │ ├── member-access.B.ts │ │ ├── member-access.diffA-B.txt │ │ ├── member-access.diffB-A.txt │ │ ├── member-access.parseA.txt │ │ ├── member-access.parseB.txt │ │ ├── method-call.A.ts │ │ ├── method-call.B.ts │ │ ├── method-call.diffA-B.txt │ │ ├── method-call.diffB-A.txt │ │ ├── method-call.parseA.txt │ │ ├── method-call.parseB.txt │ │ ├── method-definition.A.ts │ │ ├── method-definition.B.ts │ │ ├── method-definition.diffA-B.txt │ │ ├── method-definition.diffB-A.txt │ │ ├── method-definition.parseA.txt │ │ ├── method-definition.parseB.txt │ │ ├── module-declarations.A.ts │ │ ├── module-declarations.B.ts │ │ ├── module-declarations.diffA-B.txt │ │ ├── module-declarations.diffB-A.txt │ │ ├── module-declarations.parseA.txt │ │ ├── module-declarations.parseB.txt │ │ ├── named-function.A.ts │ │ ├── named-function.B.ts │ │ ├── named-function.diffA-B.txt │ │ ├── named-function.diffB-A.txt │ │ ├── named-function.parseA.txt │ │ ├── named-function.parseB.txt │ │ ├── nested-do-while-in-function.A.ts │ │ ├── nested-do-while-in-function.B.ts │ │ ├── nested-do-while-in-function.diffA-B.txt │ │ ├── nested-do-while-in-function.diffB-A.txt │ │ ├── nested-do-while-in-function.parseA.txt │ │ ├── nested-do-while-in-function.parseB.txt │ │ ├── nested-functions.A.ts │ │ ├── nested-functions.B.ts │ │ ├── nested-functions.diffA-B.txt │ │ ├── nested-functions.diffB-A.txt │ │ ├── nested-functions.parseA.txt │ │ ├── nested-functions.parseB.txt │ │ ├── null.A.ts │ │ ├── null.B.ts │ │ ├── null.diffA-B.txt │ │ ├── null.diffB-A.txt │ │ ├── null.parseA.txt │ │ ├── null.parseB.txt │ │ ├── number.A.ts │ │ ├── number.B.ts │ │ ├── number.diffA-B.txt │ │ ├── number.diffB-A.txt │ │ ├── number.parseA.txt │ │ ├── number.parseB.txt │ │ ├── object.A.ts │ │ ├── object.B.ts │ │ ├── object.diffA-B.txt │ │ ├── object.diffB-A.txt │ │ ├── object.parseA.txt │ │ ├── object.parseB.txt │ │ ├── objects-with-methods.A.ts │ │ ├── objects-with-methods.B.ts │ │ ├── objects-with-methods.diffA-B.txt │ │ ├── objects-with-methods.diffB-A.txt │ │ ├── objects-with-methods.parseA.txt │ │ ├── objects-with-methods.parseB.txt │ │ ├── public-field-definition.A.ts │ │ ├── public-field-definition.B.ts │ │ ├── public-field-definition.diffA-B.txt │ │ ├── public-field-definition.diffB-A.txt │ │ ├── public-field-definition.parseA.txt │ │ ├── public-field-definition.parseB.txt │ │ ├── regex.A.ts │ │ ├── regex.B.ts │ │ ├── regex.diffA-B.txt │ │ ├── regex.diffB-A.txt │ │ ├── regex.parseA.txt │ │ ├── regex.parseB.txt │ │ ├── relational-operator.A.ts │ │ ├── relational-operator.B.ts │ │ ├── relational-operator.diffA-B.txt │ │ ├── relational-operator.diffB-A.txt │ │ ├── relational-operator.parseA.txt │ │ ├── relational-operator.parseB.txt │ │ ├── return-statement.A.ts │ │ ├── return-statement.B.ts │ │ ├── return-statement.diffA-B.txt │ │ ├── return-statement.diffB-A.txt │ │ ├── return-statement.parseA.txt │ │ ├── return-statement.parseB.txt │ │ ├── string.A.ts │ │ ├── string.B.ts │ │ ├── string.diffA-B.txt │ │ ├── string.diffB-A.txt │ │ ├── string.parseA.txt │ │ ├── string.parseB.txt │ │ ├── subscript-access-assignment.A.ts │ │ ├── subscript-access-assignment.B.ts │ │ ├── subscript-access-assignment.diffA-B.txt │ │ ├── subscript-access-assignment.diffB-A.txt │ │ ├── subscript-access-assignment.parseA.txt │ │ ├── subscript-access-assignment.parseB.txt │ │ ├── subscript-access-string.A.ts │ │ ├── subscript-access-string.B.ts │ │ ├── subscript-access-string.diffA-B.txt │ │ ├── subscript-access-string.diffB-A.txt │ │ ├── subscript-access-string.parseA.txt │ │ ├── subscript-access-string.parseB.txt │ │ ├── subscript-access-variable.A.ts │ │ ├── subscript-access-variable.B.ts │ │ ├── subscript-access-variable.diffA-B.txt │ │ ├── subscript-access-variable.diffB-A.txt │ │ ├── subscript-access-variable.parseA.txt │ │ ├── subscript-access-variable.parseB.txt │ │ ├── switch-statement.A.ts │ │ ├── switch-statement.B.ts │ │ ├── switch-statement.diffA-B.txt │ │ ├── switch-statement.diffB-A.txt │ │ ├── switch-statement.parseA.txt │ │ ├── switch-statement.parseB.txt │ │ ├── template-string.A.ts │ │ ├── template-string.B.ts │ │ ├── template-string.diffA-B.txt │ │ ├── template-string.diffB-A.txt │ │ ├── template-string.parseA.txt │ │ ├── template-string.parseB.txt │ │ ├── ternary.A.ts │ │ ├── ternary.B.ts │ │ ├── ternary.diffA-B.txt │ │ ├── ternary.diffB-A.txt │ │ ├── ternary.parseA.txt │ │ ├── ternary.parseB.txt │ │ ├── this-expression.A.ts │ │ ├── this-expression.B.ts │ │ ├── this-expression.diffA-B.txt │ │ ├── this-expression.diffB-A.txt │ │ ├── this-expression.parseA.txt │ │ ├── this-expression.parseB.txt │ │ ├── throw-statement.A.ts │ │ ├── throw-statement.B.ts │ │ ├── throw-statement.diffA-B.txt │ │ ├── throw-statement.diffB-A.txt │ │ ├── throw-statement.parseA.txt │ │ ├── throw-statement.parseB.txt │ │ ├── true.A.ts │ │ ├── true.B.ts │ │ ├── true.diffA-B.txt │ │ ├── true.diffB-A.txt │ │ ├── true.parseA.txt │ │ ├── true.parseB.txt │ │ ├── try-statement.A.ts │ │ ├── try-statement.B.ts │ │ ├── try-statement.diffA-B.txt │ │ ├── try-statement.diffB-A.txt │ │ ├── try-statement.parseA.txt │ │ ├── try-statement.parseB.txt │ │ ├── tuple-type.A.ts │ │ ├── tuple-type.B.ts │ │ ├── tuple-type.diffA-B.txt │ │ ├── tuple-type.diffB-A.txt │ │ ├── tuple-type.parseA.txt │ │ ├── tuple-type.parseB.txt │ │ ├── type-assertions.A.ts │ │ ├── type-assertions.B.ts │ │ ├── type-assertions.diffA-B.txt │ │ ├── type-assertions.diffB-A.txt │ │ ├── type-assertions.parseA.txt │ │ ├── type-assertions.parseB.txt │ │ ├── type-operator.A.ts │ │ ├── type-operator.B.ts │ │ ├── type-operator.diffA-B.txt │ │ ├── type-operator.diffB-A.txt │ │ ├── type-operator.parseA.txt │ │ ├── type-operator.parseB.txt │ │ ├── typeof-types.A.ts │ │ ├── typeof-types.B.ts │ │ ├── typeof-types.diffA-B.txt │ │ ├── typeof-types.diffB-A.txt │ │ ├── typeof-types.parseA.txt │ │ ├── typeof-types.parseB.txt │ │ ├── undefined.A.ts │ │ ├── undefined.B.ts │ │ ├── undefined.diffA-B.txt │ │ ├── undefined.diffB-A.txt │ │ ├── undefined.parseA.txt │ │ ├── undefined.parseB.txt │ │ ├── union-type.A.ts │ │ ├── union-type.B.ts │ │ ├── union-type.diffA-B.txt │ │ ├── union-type.diffB-A.txt │ │ ├── union-type.parseA.txt │ │ ├── union-type.parseB.txt │ │ ├── var-declaration.A.ts │ │ ├── var-declaration.B.ts │ │ ├── var-declaration.diffA-B.txt │ │ ├── var-declaration.diffB-A.txt │ │ ├── var-declaration.parseA.txt │ │ ├── var-declaration.parseB.txt │ │ ├── variable.A.ts │ │ ├── variable.B.ts │ │ ├── variable.diffA-B.txt │ │ ├── variable.diffB-A.txt │ │ ├── variable.parseA.txt │ │ ├── variable.parseB.txt │ │ ├── void-operator.A.ts │ │ ├── void-operator.B.ts │ │ ├── void-operator.diffA-B.txt │ │ ├── void-operator.diffB-A.txt │ │ ├── void-operator.parseA.txt │ │ ├── void-operator.parseB.txt │ │ ├── while-statement.A.ts │ │ ├── while-statement.B.ts │ │ ├── while-statement.diffA-B.txt │ │ ├── while-statement.diffB-A.txt │ │ ├── while-statement.parseA.txt │ │ ├── while-statement.parseB.txt │ │ ├── yield.A.ts │ │ ├── yield.B.ts │ │ ├── yield.diffA-B.txt │ │ ├── yield.diffB-A.txt │ │ ├── yield.parseA.txt │ │ └── yield.parseB.txt │ ├── import-graph/ │ │ ├── app.json │ │ └── app.ts │ └── tags/ │ ├── class.ts │ └── module.ts ├── semantic-analysis/ │ ├── .ghci.repl │ ├── .gitignore │ ├── BUILD.bazel │ ├── LICENSE │ ├── README.md │ ├── Setup.hs │ ├── cabal.project │ ├── hie.yaml │ ├── python.tsg │ ├── script/ │ │ ├── ghci-flags │ │ └── repl │ ├── semantic-analysis.cabal │ └── src/ │ └── Analysis/ │ ├── Analysis/ │ │ ├── Concrete.hs │ │ ├── DeadCode.hs │ │ ├── Exception.hs │ │ └── Typecheck.hs │ ├── Blob.hs │ ├── Carrier/ │ │ ├── Env/ │ │ │ ├── Monovariant.hs │ │ │ └── Precise.hs │ │ ├── Fail/ │ │ │ └── WithLoc.hs │ │ ├── Statement/ │ │ │ └── State.hs │ │ └── Store/ │ │ ├── Monovariant.hs │ │ └── Precise.hs │ ├── Data/ │ │ └── Snoc.hs │ ├── Effect/ │ │ ├── Domain.hs │ │ ├── Env.hs │ │ ├── Statement.hs │ │ └── Store.hs │ ├── File.hs │ ├── FlowInsensitive.hs │ ├── Functor/ │ │ └── Named.hs │ ├── Module.hs │ ├── Name.hs │ ├── Project.hs │ ├── Reference.hs │ ├── Syntax/ │ │ └── Python.hs │ ├── Syntax.hs │ └── VM.hs ├── semantic-ast/ │ ├── BUILD.bazel │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── Setup.hs │ ├── app/ │ │ └── Main.hs │ ├── semantic-ast.cabal │ └── src/ │ ├── AST/ │ │ ├── Deserialize.hs │ │ ├── Element.hs │ │ ├── GenerateSyntax.hs │ │ ├── Grammar/ │ │ │ ├── Examples.hs │ │ │ └── TH.hs │ │ ├── Marshal/ │ │ │ └── JSON.hs │ │ ├── Parse.hs │ │ ├── TestHelpers.hs │ │ ├── Token.hs │ │ ├── Traversable1/ │ │ │ └── Class.hs │ │ ├── Traversable1.hs │ │ └── Unmarshal.hs │ └── System/ │ └── Path/ │ └── Fixture.hs ├── semantic-codeql/ │ ├── BUILD.bazel │ ├── LICENSE │ ├── README.md │ ├── Setup.hs │ ├── semantic-codeql.cabal │ ├── src/ │ │ └── Language/ │ │ ├── CodeQL/ │ │ │ ├── AST.hs │ │ │ ├── Grammar.hs │ │ │ └── Tags.hs │ │ └── CodeQL.hs │ └── test/ │ └── PreciseTest.hs ├── semantic-go/ │ ├── BUILD.bazel │ ├── LICENSE │ ├── README.md │ ├── Setup.hs │ ├── semantic-go.cabal │ ├── src/ │ │ └── Language/ │ │ ├── Go/ │ │ │ ├── AST.hs │ │ │ ├── Grammar.hs │ │ │ └── Tags.hs │ │ └── Go.hs │ └── test/ │ └── PreciseTest.hs ├── semantic-java/ │ ├── BUILD.bazel │ ├── LICENSE │ ├── README.md │ ├── Setup.hs │ ├── semantic-java.cabal │ ├── src/ │ │ └── Language/ │ │ ├── Java/ │ │ │ ├── AST.hs │ │ │ ├── Grammar.hs │ │ │ └── Tags.hs │ │ └── Java.hs │ └── test/ │ └── PreciseTest.hs ├── semantic-json/ │ ├── BUILD.bazel │ ├── LICENSE │ ├── README.md │ ├── Setup.hs │ ├── semantic-json.cabal │ ├── src/ │ │ └── Language/ │ │ ├── JSON/ │ │ │ ├── AST.hs │ │ │ └── Grammar.hs │ │ └── JSON.hs │ └── test/ │ └── PreciseTest.hs ├── semantic-parse/ │ ├── BUILD.bazel │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── Setup.hs │ ├── app/ │ │ └── Main.hs │ └── semantic-parse.cabal ├── semantic-php/ │ ├── BUILD.bazel │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── Setup.hs │ ├── semantic-php.cabal │ └── src/ │ └── Language/ │ ├── PHP/ │ │ ├── AST.hs │ │ ├── Grammar.hs │ │ └── Tags.hs │ └── PHP.hs ├── semantic-proto/ │ ├── BUILD.bazel │ ├── LICENSE │ ├── README.md │ ├── Setup.hs │ ├── semantic-proto.cabal │ └── src/ │ └── Proto/ │ ├── Semantic.hs │ ├── Semantic_Fields.hs │ └── Semantic_JSON.hs ├── semantic-python/ │ ├── BUILD.bazel │ ├── LICENSE │ ├── README.md │ ├── Setup.hs │ ├── bench/ │ │ └── Bench.hs │ ├── semantic-python.cabal │ ├── src/ │ │ ├── Language/ │ │ │ ├── Python/ │ │ │ │ ├── AST.hs │ │ │ │ ├── Core.hs │ │ │ │ ├── Failure.hs │ │ │ │ ├── Grammar.hs │ │ │ │ ├── Patterns.hs │ │ │ │ ├── ScopeGraph.hs │ │ │ │ └── Tags.hs │ │ │ └── Python.hs │ │ └── Prelude.score │ ├── test/ │ │ ├── CoreTest.hs │ │ ├── Directive.hs │ │ ├── Instances.hs │ │ ├── PreciseTest.hs │ │ └── fixtures/ │ │ ├── 1-01-empty-module.py │ │ ├── 1-02-pass-statement.py │ │ ├── 1-03-empty-tuple.py │ │ ├── 1-04-toplevel-assignment.py │ │ ├── 1-05-exec-statement-fails.py │ │ ├── 2-01-return-statement.py │ │ ├── 2-02-return-doesnt-translate.py │ │ ├── 2-03-return-in-if-statement.py │ │ ├── 2-04-multiple-assign.py │ │ ├── 2-05-function-call.py │ │ ├── 2-06-nested-function-definition.py │ │ ├── 2-07-closure-over-scope.py │ │ ├── 2-08-function-decorator.py │ │ ├── 3-01-empty-class-definition.py │ │ ├── 3-02-defining-instance-method.py │ │ ├── 3-03-functions-know-their-own-names.py │ │ ├── 4-01-lambda-literals.py │ │ ├── 4-02-nonetype.py │ │ ├── 4-03-not-expression.py │ │ ├── 5-01-simple-reference.py │ │ ├── 5-02-simple-function.py │ │ ├── 5-03-function-argument.py │ │ └── cheese/ │ │ ├── 6-01-imports.py │ │ ├── 6-01-qualified-imports.py │ │ └── ints.py │ └── test-graphing/ │ └── GraphTest.hs ├── semantic-ruby/ │ ├── BUILD.bazel │ ├── LICENSE │ ├── README.md │ ├── Setup.hs │ ├── app/ │ │ └── Main.hs │ ├── bench/ │ │ ├── Main.hs │ │ └── Parsing.hs │ ├── semantic-ruby.cabal │ ├── src/ │ │ └── Language/ │ │ ├── Ruby/ │ │ │ ├── AST.hs │ │ │ ├── Grammar.hs │ │ │ └── Tags.hs │ │ └── Ruby.hs │ └── test/ │ └── PreciseTest.hs ├── semantic-rust/ │ ├── BUILD.bazel │ ├── LICENSE │ ├── README.md │ ├── Setup.hs │ ├── semantic-rust.cabal │ ├── src/ │ │ └── Language/ │ │ ├── Rust/ │ │ │ ├── AST.hs │ │ │ ├── Grammar.hs │ │ │ └── Tags.hs │ │ └── Rust.hs │ └── test/ │ └── Test.hs ├── semantic-scope-graph/ │ ├── BUILD.bazel │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── Setup.hs │ ├── semantic-scope-graph.cabal │ └── src/ │ ├── Control/ │ │ ├── Carrier/ │ │ │ └── Sketch/ │ │ │ └── ScopeGraph.hs │ │ └── Effect/ │ │ ├── ScopeGraph/ │ │ │ └── Properties/ │ │ │ ├── Declaration.hs │ │ │ ├── Function.hs │ │ │ └── Reference.hs │ │ └── ScopeGraph.hs │ ├── Data/ │ │ ├── Hole.hs │ │ ├── Module.hs │ │ └── ScopeGraph.hs │ └── Scope/ │ ├── Graph/ │ │ ├── AdjacencyList.hs │ │ └── Convert.hs │ ├── Info.hs │ ├── Path.hs │ ├── Reference.hs │ ├── Scope.hs │ └── Types.hs ├── semantic-source/ │ ├── BUILD.bazel │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── Setup.hs │ ├── cabal.project │ ├── cabal.project.ci │ ├── semantic-source.cabal │ ├── src/ │ │ └── Source/ │ │ ├── Language.hs │ │ ├── Loc.hs │ │ ├── Range.hs │ │ ├── Source.hs │ │ └── Span.hs │ └── test/ │ ├── Range/ │ │ └── Test.hs │ ├── Source/ │ │ └── Test.hs │ └── Test.hs ├── semantic-tags/ │ ├── BUILD.bazel │ ├── LICENSE │ ├── README.md │ ├── Setup.hs │ ├── semantic-tags.cabal │ ├── src/ │ │ └── Tags/ │ │ ├── Tag.hs │ │ └── Tagging/ │ │ └── Precise.hs │ └── test/ │ └── Test.hs ├── semantic-tsx/ │ ├── BUILD.bazel │ ├── LICENSE │ ├── README.md │ ├── Setup.hs │ ├── semantic-tsx.cabal │ ├── src/ │ │ └── Language/ │ │ ├── TSX/ │ │ │ ├── AST.hs │ │ │ ├── Grammar.hs │ │ │ └── Tags.hs │ │ └── TSX.hs │ └── test/ │ └── PreciseTest.hs ├── semantic-typescript/ │ ├── BUILD.bazel │ ├── LICENSE │ ├── README.md │ ├── Setup.hs │ ├── semantic-typescript.cabal │ ├── src/ │ │ └── Language/ │ │ ├── TypeScript/ │ │ │ ├── AST.hs │ │ │ ├── Grammar.hs │ │ │ └── Tags.hs │ │ └── TypeScript.hs │ └── test/ │ └── PreciseTest.hs ├── stack-snapshot.yaml └── stackage_snapshot.json ================================================ FILE CONTENTS ================================================ ================================================ FILE: .bazelignore ================================================ semantic/dist-newstyle semantic-analysis/dist-newstyle semantic-ast/dist-newstyle semantic-codeql/dist-newstyle semantic-go/dist-newstyle semantic-java/dist-newstyle semantic-json/dist-newstyle semantic-parse/dist-newstyle semantic-proto/dist-newstyle semantic-python/dist-newstyle semantic-ruby/dist-newstyle semantic-scope-graph/dist-newstyle semantic-source/dist-newstyle semantic-tags/dist-newstyle semantic-tsx/dist-newstyle semantic-typescript/dist-newstyle dist-newstyle tmp ================================================ FILE: .bazelrc ================================================ build:ci --loading_phase_threads=1 build:ci --jobs=2 build:ci --verbose_failures common:ci --color=no test:ci --test_output=errors build --disk_cache=.bazel-cache/bazel-disk build --repository_cache=.bazel-cache/bazel-repo build --color=yes build --jobs=8 build --compilation_mode=fastbuild # test environment does not propagate locales by default # some tests reads files written in UTF8, we need to propagate the correct # environment variables, such as LOCALE_ARCHIVE # We also need to setup an utf8 locale test --test_env=LANG=en_US.utf8 --test_env=LOCALE_ARCHIVE test --test_output=errors test --compilation_mode=fastbuild try-import .bazelrc.local ================================================ FILE: .dockerignore ================================================ Dockerfile /.licenses /.git .ghci .ghci_history .ghc.environment.x86_64-darwin-8.6.5 *.yaml *.md /bin /dist /dist-newstyle /notices /docs /tmp /semantic-source /bench /script /test ================================================ FILE: .ghci.repl ================================================ -- GHCI settings for script/repl. -- These live here instead of script/repl for ease of commenting. -- These live here instead of .ghci so cabal repl remains unaffected. -- These live here instead of script/ghci-flags so ghcide remains unaffected. -- Basic verbosity :set -v1 -- Compile to object code :set -fwrite-interface -fobject-code -- Bonus: silence “add these modules to your .cabal file” warnings for files we :load :set -Wno-missing-home-modules -- Warnings for code written in the repl :seti -Weverything :seti -Wno-all-missed-specialisations :seti -Wno-implicit-prelude :seti -Wno-missed-specialisations :seti -Wno-missing-import-lists :seti -Wno-missing-local-signatures :seti -Wno-monomorphism-restriction :seti -Wno-name-shadowing :seti -Wno-safe :seti -Wno-unsafe :seti -Wno-star-is-type -- 8.8+ :seti -Wno-missing-deriving-strategies -- 8.10+ :seti -Wno-missing-safe-haskell-mode :seti -Wno-prepositive-qualified-module -- Turn on some language extensions you use a lot :seti -XFlexibleContexts -XOverloadedStrings -XTypeApplications -- Break on errors :seti -fbreak-on-error -- Automatically show the code around breakpoints :set stop :list -- Use a cyan lambda as the prompt :set prompt "\ESC[1;36m\STXλ \ESC[m\STX" -- Better errors :set -ferror-spans -freverse-errors -fprint-expanded-synonyms -- Better typed holes :set -funclutter-valid-hole-fits -fabstract-refinement-hole-fits -frefinement-level-hole-fits=2 -- We have this one on in the project but not in the REPL to reduce noise :seti -Wno-type-defaults :set -Wno-unused-packages ================================================ FILE: .ghci.sample ================================================ -- Consider copying this to your ~/.ghc/ghci.conf file: -- Pretty-printing :set -package-id prtty-smpl-3.1.1.0-c89f0500 :set -interactive-print Text.Pretty.Simple.pPrint -- Turn on some language extensions you use a lot :seti -XFlexibleContexts -XOverloadedStrings -XTypeApplications -- Break on errors :seti -fbreak-on-error -- Automatically show the code around breakpoints :set stop :list -- Use a cyan lambda as the prompt :set prompt "\ESC[1;36m\STXλ \ESC[m\STX" -- Better errors :set -ferror-spans -freverse-errors -fprint-expanded-synonyms -- Path-local ghci history :set -flocal-ghci-history -- Better typed holes :set -funclutter-valid-hole-fits -fabstract-refinement-hole-fits -frefinement-level-hole-fits=2 ================================================ FILE: .gitattributes ================================================ .licenses linguist-vendored test/fixtures linguist-vendored test/repos linguist-vendored vendor linguist-vendored *.protobuf.bin binary ================================================ FILE: .github/workflows/bazel.yml.disabled ================================================ name: Bazel CI on: # Trigger the workflow on push or pull request, # but only for the master branch push: branches: - master pull_request: {} jobs: build: name: Bazel runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 if: github.event.action == 'opened' || github.event.action == 'synchronize' || github.event.ref == 'refs/heads/master' - uses: actions/cache@v2 id: caching-stage name: Cache Bazel artifacts with: path: | .bazel-cache bin key: ${{ runner.os }}-bazel-${{ github.run_id }} restore-keys: | ${{ runner.os }}-bazel- - name: Download/cache bazel version if: steps.caching-stage.outputs.cache-hit != 'true' run: | if [ ! -f bin/bazel ]; then curl -LO "https://github.com/bazelbuild/bazel/releases/download/3.1.0/bazel-3.1.0-linux-x86_64" mv bazel-3.1.0-linux-x86_64 "bin/bazel" chmod +x "bin/bazel" fi - name: Build & test run: | bin/bazel clean bin/bazel test --config=ci --test_tag_filters=language-test //... bin/bazel test --config=ci //semantic-source //semantic:spec ================================================ FILE: .github/workflows/haskell.yml ================================================ name: Haskell CI on: # Trigger the workflow on push or pull request, # but only for the master branch push: branches: - master pull_request: jobs: build: name: ghc ${{ matrix.ghc }} runs-on: ubuntu-latest strategy: matrix: ghc: ["8.10", "9.2"] steps: - uses: actions/checkout@v2 if: github.event.action == 'opened' || github.event.action == 'synchronize' || github.event.ref == 'refs/heads/master' - uses: haskell/actions/setup@v1 name: Setup Haskell with: ghc-version: ${{ matrix.ghc }} - uses: actions/cache@v1 id: cache-cabal name: Cache Cabal artifacts with: path: dist-cache key: ${{ runner.os }}-${{ matrix.ghc }}-${{ matrix.cabal }}-cabal-cache-${{ hashFiles('**/*.cabal') }} restore-keys: | ${{ runner.os }}-${{ matrix.ghc }}-${{ matrix.cabal }}-cabal-cache- ${{ runner.os }}-${{ matrix.ghc }}-${{ matrix.cabal }}- ${{ runner.os }}-${{ matrix.ghc }}- ${{ runner.os }}- - name: Get cabal-cache run: | 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 tar -xvf ./cc.tar.gz - name: Configure project run: | cabal v2-update cabal v2-configure --project-file=cabal.project.ci --disable-optimization --enable-tests --write-ghc-environment-files=always -j2 cd semantic-source && cabal v2-configure --project-file=cabal.project.ci --disable-optimization --enable-tests --write-ghc-environment-files=always -j2 - name: Restore from cache run: ./cabal-cache sync-from-archive --threads=2 --archive-uri=dist-cache || true - name: Build & test run: | cabal v2-build --project-file=cabal.project.ci semantic:exe:semantic cabal v2-run --project-file=cabal.project.ci semantic:test cabal v2-build --project-file=cabal.project.ci semantic-analysis cabal v2-run --project-file=cabal.project.ci semantic-codeql:test cabal v2-run --project-file=cabal.project.ci semantic-go:test cabal v2-run --project-file=cabal.project.ci semantic-java:test cabal v2-run --project-file=cabal.project.ci semantic-json:test cabal v2-run --project-file=cabal.project.ci semantic-python:test # cabal v2-run --project-file=cabal.project.ci semantic-python:test:compiling # cabal v2-run --project-file=cabal.project.ci semantic-python:test:graphing cabal v2-run --project-file=cabal.project.ci semantic-ruby:test cabal v2-run --project-file=cabal.project.ci semantic-tags:test cabal v2-run --project-file=cabal.project.ci semantic-tsx:test cabal v2-run --project-file=cabal.project.ci semantic-typescript:test cd semantic-source && cabal v2-run --project-file=cabal.project.ci semantic-source:test - name: Write out cache run: ./cabal-cache sync-to-archive --threads=2 --archive-uri=dist-cache ================================================ FILE: .gitignore ================================================ .DS_Store .docsets .stack-work .stack-work-profiling stack.yaml stack.yaml.lock profiles /tags cabal.project.local* dist dist-newstyle dist-repl .ghci .ghc.environment.* .ghci_history tmp/ /bin/ /bazel-* /.bazel-cache /src/Semantic/Version.hs.bak /semanticd/test/current /semanticd/test/rover-example-config/semantic.log /test/fixtures/*/examples *.hp *.prof *.pyc /test.* /*.html .bundle/ .licenses/bin .licenses/vendor/gems .licenses/log/ codex.tags ================================================ FILE: .gitmodules ================================================ ================================================ FILE: .hlint.yaml ================================================ # HLint configuration file # https://github.com/ndmitchell/hlint - arguments: [--color=auto, -XStrictData] # Blacklist some functions by default. - functions: - {name: unsafePerformIO, within: [Data.Scientific.Exts.attemptUnsafeArithmetic]} - {name: unsafeCoerce, within: []} - {name: head, within: []} - {name: tail, within: []} - {name: init, within: []} - {name: last, within: []} - {name: fromJust, within: []} - {name: decodeUtf8, within: [], message: "Use decodeUtf8' or decodeUtf8With lenientDecode"} # Replace a $ b $ c with a . b $ c - group: {name: dollar, enabled: true} # Generalise map to fmap, ++ to <> - group: {name: generalise, enabled: true} # Change the severity of the default group to warning - warn: {group: {name: default}} # Ignore the highly noisy module export list hint - ignore: {name: Use explicit module export list} # Ignore some builtin hints - ignore: {name: Use mappend} - ignore: {name: Redundant do} - ignore: {name: Use lambda-case} # TODO: investigate whether cost-center analysis is better with lambda-case than it was - ignore: {name: Use fmap} # Ignored because map has better type inference. # Change the severity of hints we don’t want to fail CI for - suggest: {name: Eta reduce} # While I think DerivingStrategies is good, it's too noisy to suggest by default - ignore: name: Use DerivingStrategies # Ignore eta reduce in the assignment modules - ignore: name: Eta reduce within: - Language.Go.Assignment - Language.Python.Assignment - Language.Ruby.Assignment - ignore: {name: Use ., within: [Analysis.Abstract.Graph.graphingModules, Semantic.Distribute]} - ignore: within: - Proto.Semantic - Proto.Semantic_Fields - Proto.Semantic_JSON - ignore: name: Reduce duplication within: - Semantic.Util - Language.Ruby.Tags # hlint has issues with QuantifiedConstraints (see https://github.com/ndmitchell/hlint/issues/759) # Once the above is fixed, we can drop this error. - ignore: { name: Parse error } # hlint is too paranoid about NonEmpty functions (https://github.com/ndmitchell/hlint/issues/787) - ignore: name: Avoid restricted function within: - Language.Python.Syntax - Data.Syntax.Expression # Our customized warnings # AMP fallout - warning: {lhs: mapM, rhs: traverse, name: Generalize mapM} - warning: {lhs: mapM_, rhs: traverse_, name: Generalize mapM_} - warning: {lhs: forM, rhs: for, name: Generalize forM} - warning: {lhs: forM_, rhs: for_, name: Generalize forM_} - warning: {lhs: sequence, rhs: sequenceA, name: Generalize sequence} - warning: {lhs: sequence_, rhs: sequenceA_, name: Generalize sequence_} - warning: {lhs: return, rhs: pure, name: Avoid return} # Terms - warning: {lhs: termFAnnotation . unTerm, rhs: termAnnotation, name: Use termAnnotation} - warning: {lhs: termFOut . unTerm, rhs: termOut, name: Use termOut} - warning: {lhs: project . termOut, rhs: projectTerm, name: Use projectTerm} # Conveniences - warning: {lhs: maybe a pure, rhs: maybeM a, name: Use maybeM} - warning: {lhs: either (const a) id, rhs: fromRight a, name: use fromRight} - warning: {lhs: either id (const a), rhs: fromLeft a, name: use fromLeft} # Applicative style - warning: {lhs: f <$> pure a <*> b, rhs: f a <$> b, name: Avoid redundant pure} - warning: {lhs: f <$> pure a <* b, rhs: f a <$ b, name: Avoid redundant pure} ================================================ FILE: .hspec ================================================ --depth=1000 ================================================ FILE: .licenses/semantic/cabal/MonadRandom.txt ================================================ --- type: cabal name: MonadRandom version: 0.5.1.1 summary: Random-number generation monad. homepage: license: bsd-3-clause --- Copyright (c) 2016, Brent Yorgey All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Brent Yorgey nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Previous versions of this package were distributed under the simple permissive license used on the Haskell Wiki; see OLD-LICENSE for details. ================================================ FILE: .licenses/semantic/cabal/QuickCheck.txt ================================================ --- type: cabal name: QuickCheck version: 2.12.6.1 summary: Automatic testing of Haskell programs homepage: https://github.com/nick8325/quickcheck license: bsd-3-clause --- (The following is the 3-clause BSD license.) Copyright (c) 2000-2018, Koen Claessen Copyright (c) 2006-2008, Björn Bringert Copyright (c) 2009-2018, Nick Smallbone Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither the names of the copyright owners nor the names of the contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/StateVar.txt ================================================ --- type: cabal name: StateVar version: 1.1.1.1 summary: State variables homepage: https://github.com/haskell-opengl/StateVar license: bsd-3-clause --- Copyright (c) 2014-2015, Edward Kmett Copyright (c) 2009-2018, Sven Panne All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/adjunctions.txt ================================================ --- type: cabal name: adjunctions version: '4.4' summary: Adjunctions and representable functors homepage: https://github.com/ekmett/adjunctions/ license: bsd-2-clause --- Copyright 2011-2014 Edward Kmett All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/aeson-pretty.txt ================================================ --- type: cabal name: aeson-pretty version: 0.8.7 summary: JSON pretty-printing library and command-line tool. homepage: https://github.com/informatikr/aeson-pretty license: bsd-3-clause --- Copyright (c)2011, Falko Peters All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Falko Peters nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/aeson.txt ================================================ --- type: cabal name: aeson version: 1.4.2.0 summary: Fast JSON parsing and encoding homepage: https://github.com/bos/aeson license: bsd-3-clause --- Copyright (c) 2011, MailRank, Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/algebraic-graphs.txt ================================================ --- type: cabal name: algebraic-graphs version: '0.3' summary: A library for algebraic graph construction and transformation homepage: https://github.com/snowleopard/alga license: mit --- MIT License Copyright (c) 2016-2018 Andrey Mokhov Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: .licenses/semantic/cabal/ansi-terminal.txt ================================================ --- type: cabal name: ansi-terminal version: 0.8.2 summary: Simple ANSI terminal support, with Windows compatibility homepage: https://github.com/feuerbach/ansi-terminal license: bsd-3-clause --- Copyright (c) 2008, Maximilian Bolingbroke All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Maximilian Bolingbroke nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/ansi-wl-pprint.txt ================================================ --- type: cabal name: ansi-wl-pprint version: 0.6.8.2 summary: The Wadler/Leijen Pretty Printer for colored ANSI terminal output homepage: https://github.com/ekmett/ansi-wl-pprint license: bsd-2-clause --- Copyright 2008, Daan Leijen and Max Bolingbroke. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. This software is provided by the copyright holders "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright holders be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. ================================================ FILE: .licenses/semantic/cabal/array.txt ================================================ --- type: cabal name: array version: 0.5.3.0 summary: Mutable and immutable arrays homepage: license: bsd-3-clause --- This library (libraries/base) is derived from code from several sources: * Code from the GHC project which is largely (c) The University of Glasgow, and distributable under a BSD-style license (see below), * Code from the Haskell 98 Report which is (c) Simon Peyton Jones and freely redistributable (but see the full license for restrictions). * Code from the Haskell Foreign Function Interface specification, which is (c) Manuel M. T. Chakravarty and freely redistributable (but see the full license for restrictions). The full text of these licenses is reproduced below. All of the licenses are BSD-style or compatible. ----------------------------------------------------------------------------- The Glasgow Haskell Compiler License Copyright 2004, The University Court of the University of Glasgow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- Code derived from the document "Report on the Programming Language Haskell 98", is distributed under the following license: Copyright (c) 2002 Simon Peyton Jones The authors intend this Report to belong to the entire Haskell community, and so we grant permission to copy and distribute it for any purpose, provided that it is reproduced in its entirety, including this Notice. Modified versions of this Report may also be copied and distributed for any purpose, provided that the modified version is clearly presented as such, and that it does not claim to be a definition of the Haskell 98 Language. ----------------------------------------------------------------------------- Code derived from the document "The Haskell 98 Foreign Function Interface, An Addendum to the Haskell 98 Report" is distributed under the following license: Copyright (c) 2002 Manuel M. T. Chakravarty The authors intend this Report to belong to the entire Haskell community, and so we grant permission to copy and distribute it for any purpose, provided that it is reproduced in its entirety, including this Notice. Modified versions of this Report may also be copied and distributed for any purpose, provided that the modified version is clearly presented as such, and that it does not claim to be a definition of the Haskell 98 Foreign Function Interface. ----------------------------------------------------------------------------- ================================================ FILE: .licenses/semantic/cabal/asn1-encoding.txt ================================================ --- type: cabal name: asn1-encoding version: 0.9.5 summary: ASN1 data reader and writer in RAW, BER and DER forms homepage: https://github.com/vincenthz/hs-asn1 license: bsd-3-clause --- Copyright (c) 2010-2013 Vincent Hanquez All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/asn1-parse.txt ================================================ --- type: cabal name: asn1-parse version: 0.9.4 summary: Simple monadic parser for ASN1 stream types. homepage: https://github.com/vincenthz/hs-asn1 license: bsd-3-clause --- Copyright (c) 2010-2013 Vincent Hanquez All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/asn1-types.txt ================================================ --- type: cabal name: asn1-types version: 0.3.2 summary: ASN.1 types homepage: https://github.com/vincenthz/hs-asn1-types license: bsd-3-clause --- Copyright (c) 2010-2013 Vincent Hanquez All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/async.txt ================================================ --- type: cabal name: async version: 2.2.1 summary: Run IO operations asynchronously and wait for their results homepage: https://github.com/simonmar/async license: bsd-3-clause --- Copyright (c) 2012, Simon Marlow All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Simon Marlow nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/attoparsec-iso8601.txt ================================================ --- type: cabal name: attoparsec-iso8601 version: 1.0.1.0 summary: Parsing of ISO 8601 dates, originally from aeson. homepage: https://github.com/bos/aeson license: bsd-3-clause --- Copyright (c) 2011, MailRank, Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/attoparsec.txt ================================================ --- type: cabal name: attoparsec version: 0.13.2.2 summary: Fast combinator parsing for bytestrings and text homepage: https://github.com/bos/attoparsec license: bsd-3-clause --- Copyright (c) Lennart Kolmodin All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/base-compat-batteries.txt ================================================ --- type: cabal name: base-compat-batteries version: 0.10.5 summary: base-compat with extra batteries homepage: license: mit --- Copyright (c) 2012-2018 Simon Hengel and Ryan Scott Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: .licenses/semantic/cabal/base-compat.txt ================================================ --- type: cabal name: base-compat version: 0.10.5 summary: A compatibility layer for base homepage: license: mit --- Copyright (c) 2012-2018 Simon Hengel and Ryan Scott Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: .licenses/semantic/cabal/base-orphans.txt ================================================ --- type: cabal name: base-orphans version: '0.8' summary: Backwards-compatible orphan instances for base homepage: https://github.com/haskell-compat/base-orphans license: mit --- Copyright (c) 2015-2017 Simon Hengel , João Cristóvão , Ryan Scott Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: .licenses/semantic/cabal/base-prelude.txt ================================================ --- type: cabal name: base-prelude version: '1.3' summary: The most complete prelude formed solely from the "base" package homepage: https://github.com/nikita-volkov/base-prelude license: mit --- Copyright (c) 2014, Nikita Volkov Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: .licenses/semantic/cabal/base.txt ================================================ --- type: cabal name: base version: 4.12.0.0 summary: Basic libraries homepage: license: bsd-3-clause --- This library (libraries/base) is derived from code from several sources: * Code from the GHC project which is largely (c) The University of Glasgow, and distributable under a BSD-style license (see below), * Code from the Haskell 98 Report which is (c) Simon Peyton Jones and freely redistributable (but see the full license for restrictions). * Code from the Haskell Foreign Function Interface specification, which is (c) Manuel M. T. Chakravarty and freely redistributable (but see the full license for restrictions). The full text of these licenses is reproduced below. All of the licenses are BSD-style or compatible. ----------------------------------------------------------------------------- The Glasgow Haskell Compiler License Copyright 2004, The University Court of the University of Glasgow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- Code derived from the document "Report on the Programming Language Haskell 98", is distributed under the following license: Copyright (c) 2002 Simon Peyton Jones The authors intend this Report to belong to the entire Haskell community, and so we grant permission to copy and distribute it for any purpose, provided that it is reproduced in its entirety, including this Notice. Modified versions of this Report may also be copied and distributed for any purpose, provided that the modified version is clearly presented as such, and that it does not claim to be a definition of the Haskell 98 Language. ----------------------------------------------------------------------------- Code derived from the document "The Haskell 98 Foreign Function Interface, An Addendum to the Haskell 98 Report" is distributed under the following license: Copyright (c) 2002 Manuel M. T. Chakravarty The authors intend this Report to belong to the entire Haskell community, and so we grant permission to copy and distribute it for any purpose, provided that it is reproduced in its entirety, including this Notice. Modified versions of this Report may also be copied and distributed for any purpose, provided that the modified version is clearly presented as such, and that it does not claim to be a definition of the Haskell 98 Foreign Function Interface. ----------------------------------------------------------------------------- ================================================ FILE: .licenses/semantic/cabal/base64-bytestring.txt ================================================ --- type: cabal name: base64-bytestring version: 1.0.0.2 summary: Fast base64 encoding and decoding for ByteStrings homepage: https://github.com/haskell/base64-bytestring license: bsd-3-clause --- Copyright (c) 2010 Bryan O'Sullivan All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/basement.txt ================================================ --- type: cabal name: basement version: 0.0.10 summary: Foundation scrap box of array & string homepage: https://github.com/haskell-foundation/foundation license: bsd-3-clause --- Copyright (c) 2015-2017 Vincent Hanquez Copyright (c) 2017 Foundation Maintainers All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/bifunctors.txt ================================================ --- type: cabal name: bifunctors version: 5.5.3 summary: Bifunctors homepage: https://github.com/ekmett/bifunctors/ license: bsd-2-clause --- Copyright 2008-2016 Edward Kmett All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/binary.txt ================================================ --- type: cabal name: binary version: 0.8.6.0 summary: Binary serialisation for Haskell values using lazy ByteStrings homepage: https://github.com/kolmodin/binary license: bsd-3-clause --- Copyright (c) Lennart Kolmodin All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/blaze-builder.txt ================================================ --- type: cabal name: blaze-builder version: 0.4.1.0 summary: Efficient buffered output. homepage: https://github.com/lpsmith/blaze-builder license: bsd-3-clause --- Copyright Jasper Van der Jeugt 2010, Simon Meier 2010 & 2011 All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Jasper Van der Jeugt nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/byteable.txt ================================================ --- type: cabal name: byteable version: 0.1.1 summary: Type class for sequence of bytes homepage: https://github.com/vincenthz/hs-byteable license: bsd-3-clause --- Copyright (c) 2013 Vincent Hanquez All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/bytestring.txt ================================================ --- type: cabal name: bytestring version: 0.10.8.2 summary: Fast, compact, strict and lazy byte strings with a list interface homepage: https://github.com/haskell/bytestring license: bsd-3-clause --- Copyright (c) Don Stewart 2005-2009 (c) Duncan Coutts 2006-2015 (c) David Roundy 2003-2005 (c) Simon Meier 2010-2011 All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/call-stack.txt ================================================ --- type: cabal name: call-stack version: 0.1.0 summary: Use GHC call-stacks in a backward compatible way homepage: https://github.com/sol/call-stack license: mit --- Copyright (c) 2016 Simon Hengel Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: .licenses/semantic/cabal/case-insensitive.txt ================================================ --- type: cabal name: case-insensitive version: 1.2.0.11 summary: Case insensitive string comparison homepage: https://github.com/basvandijk/case-insensitive license: bsd-3-clause --- Copyright (c) 2011-2013 Bas van Dijk All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * The name of Bas van Dijk and the names of contributors may NOT be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/cereal.txt ================================================ --- type: cabal name: cereal version: 0.5.8.0 summary: A binary serialization library homepage: https://github.com/GaloisInc/cereal license: bsd-3-clause --- Copyright (c) Lennart Kolmodin, Galois, Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/charset.txt ================================================ --- type: cabal name: charset version: 0.3.7.1 summary: Fast unicode character sets based on complemented PATRICIA tries homepage: https://github.com/ekmett/charset license: bsd-3-clause --- Copyright (c) 2010, Edward Kmett All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Edward Kmett nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/clock.txt ================================================ --- type: cabal name: clock version: 0.7.2 summary: 'High-resolution clock functions: monotonic, realtime, cputime.' homepage: https://github.com/corsis/clock license: bsd-3-clause --- Copyright (c) 2009-2012, Cetin Sert Copyright (c) 2010, Eugene Kirpichov All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * The names of contributors may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/cmark-gfm.txt ================================================ --- type: cabal name: cmark-gfm version: 0.1.8 summary: Fast, accurate GitHub Flavored Markdown parser and renderer homepage: https://github.com/kivikakk/cmark-gfm-hs license: bsd-3-clause --- Copyright (c) 2014, John MacFarlane All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of John MacFarlane nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---- libcmark Copyright (c) 2014, John MacFarlane All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---- houdini.h, houdini_href_e.c, houdini_html_e.c, houdini_html_u.c, html_unescape.gperf, html_unescape.h derive from https://github.com/vmg/houdini (with some modifications) Copyright (C) 2012 Vicent Martí Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----- buffer.h, buffer.c, chunk.h are derived from code (C) 2012 Github, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----- utf8.c and utf8.c are derived from utf8proc (), (C) 2009 Public Software Group e. V., Berlin, Germany. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: .licenses/semantic/cabal/colour.txt ================================================ --- type: cabal name: colour version: 2.3.4 summary: A model for human colour/color perception homepage: https://www.haskell.org/haskellwiki/Colour license: mit --- Copyright (c) 2008, 2009 Russell O'Connor Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: .licenses/semantic/cabal/comonad.txt ================================================ --- type: cabal name: comonad version: 5.0.4 summary: Comonads homepage: https://github.com/ekmett/comonad/ license: bsd-2-clause --- Copyright 2008-2014 Edward Kmett Copyright 2004-2008 Dave Menendez All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/connection.txt ================================================ --- type: cabal name: connection version: 0.2.8 summary: Simple and easy network connections API homepage: https://github.com/vincenthz/hs-connection license: bsd-3-clause --- Copyright (c) 2012 Vincent Hanquez All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/constraints.txt ================================================ --- homepage: http://github.com/ekmett/constraints/ summary: Constraint manipulation name: constraints version: 0.10.1 license: bsd-2-clause --- Copyright 2011-2015 Edward Kmett All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/containers.txt ================================================ --- type: cabal name: containers version: 0.6.0.1 summary: Assorted concrete container types homepage: license: bsd-3-clause --- The Glasgow Haskell Compiler License Copyright 2004, The University Court of the University of Glasgow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/contravariant.txt ================================================ --- type: cabal name: contravariant version: '1.5' summary: Contravariant functors homepage: https://github.com/ekmett/contravariant/ license: bsd-3-clause --- Copyright 2007-2015 Edward Kmett All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/cookie.txt ================================================ --- type: cabal name: cookie version: 0.4.4 summary: HTTP cookie parsing and rendering homepage: https://github.com/snoyberg/cookie license: mit --- Copyright (c) 2010 Michael Snoyman, http://www.yesodweb.com/ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: .licenses/semantic/cabal/cryptonite.txt ================================================ --- type: cabal name: cryptonite version: '0.25' summary: Cryptography Primitives sink homepage: https://github.com/haskell-crypto/cryptonite license: bsd-3-clause --- Copyright (c) 2006-2015 Vincent Hanquez All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/data-default-class.txt ================================================ --- type: cabal name: data-default-class version: 0.1.2.0 summary: A class for types with a default value homepage: https://github.com/mauke/data-default license: bsd-3-clause --- Copyright (c) 2013 Lukas Mai All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/deepseq-generics.txt ================================================ --- type: cabal name: deepseq-generics version: 0.2.0.0 summary: GHC.Generics-based Control.DeepSeq.rnf implementation homepage: https://github.com/hvr/deepseq-generics license: bsd-3-clause --- Copyright (c) 2012, Herbert Valerio Riedel All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Herbert Valerio Riedel nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/deepseq.txt ================================================ --- type: cabal name: deepseq version: 1.4.4.0 summary: Deep evaluation of data structures homepage: https://github.com/haskell/deepseq license: bsd-3-clause --- This library (deepseq) is derived from code from the GHC project which is largely (c) The University of Glasgow, and distributable under a BSD-style license (see below). ----------------------------------------------------------------------------- The Glasgow Haskell Compiler License Copyright 2001-2009, The University Court of the University of Glasgow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- ================================================ FILE: .licenses/semantic/cabal/directory-tree.txt ================================================ --- type: cabal name: directory-tree version: 0.12.1 summary: A simple directory-like tree datatype, with useful IO functions homepage: https://brandon.si/code/directory-tree-module-released/ license: bsd-2-clause --- Copyright (c) 2009 Brandon Simmons All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/directory.txt ================================================ --- type: cabal name: directory version: 1.3.3.0 summary: Platform-agnostic library for filesystem operations homepage: license: bsd-3-clause --- This library (libraries/base) is derived from code from two sources: * Code from the GHC project which is largely (c) The University of Glasgow, and distributable under a BSD-style license (see below), * Code from the Haskell 98 Report which is (c) Simon Peyton Jones and freely redistributable (but see the full license for restrictions). The full text of these licenses is reproduced below. Both of the licenses are BSD-style or compatible. ----------------------------------------------------------------------------- The Glasgow Haskell Compiler License Copyright 2004, The University Court of the University of Glasgow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- Code derived from the document "Report on the Programming Language Haskell 98", is distributed under the following license: Copyright (c) 2002 Simon Peyton Jones The authors intend this Report to belong to the entire Haskell community, and so we grant permission to copy and distribute it for any purpose, provided that it is reproduced in its entirety, including this Notice. Modified versions of this Report may also be copied and distributed for any purpose, provided that the modified version is clearly presented as such, and that it does not claim to be a definition of the Haskell 98 Language. ----------------------------------------------------------------------------- ================================================ FILE: .licenses/semantic/cabal/distributive.txt ================================================ --- type: cabal name: distributive version: '0.6' summary: Distributive functors -- Dual to Traversable homepage: https://github.com/ekmett/distributive/ license: bsd-2-clause --- Copyright 2011-2016 Edward Kmett All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/dlist.txt ================================================ --- type: cabal name: dlist version: 0.8.0.5 summary: Difference lists homepage: https://github.com/spl/dlist license: bsd-3-clause --- Copyright (c) 2006-2009 Don Stewart, 2013-2016 Sean Leather All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Don Stewart nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/enclosed-exceptions.txt ================================================ --- homepage: https://github.com/jcristovao/enclosed-exceptions summary: Catching all exceptions from within an enclosed computation name: enclosed-exceptions version: 1.0.3 license: mit --- Copyright (c) 2012 Michael Snoyman, http://www.yesodweb.com/ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: .licenses/semantic/cabal/erf.txt ================================================ --- type: cabal name: erf version: 2.0.0.0 summary: The error function, erf, and related functions. homepage: license: bsd-3-clause --- Copyright (c) Lennart Augustsson All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/exceptions.txt ================================================ --- type: cabal name: exceptions version: 0.10.0 summary: Extensible optionally-pure exceptions homepage: https://github.com/ekmett/exceptions/ license: bsd-3-clause --- Copyright 2013-2015 Edward Kmett Copyright 2012 Google Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/fastsum.txt ================================================ --- type: cabal name: fastsum version: 0.1.1.0 summary: A fast open-union type suitable for 100+ contained alternatives homepage: https://github.com/patrickt/fastsum license: bsd-3-clause --- Original work Copyright (c) 2016, Allele Dev Modified work Copyright (c) 2016, Patrick Thomson and Josh Vera All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Allele Dev nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/filepath.txt ================================================ --- type: cabal name: filepath version: 1.4.2.1 summary: Library for manipulating FilePaths in a cross platform way. homepage: https://github.com/haskell/filepath license: bsd-3-clause --- Copyright Neil Mitchell 2005-2018. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Neil Mitchell nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/fingertree.txt ================================================ --- type: cabal name: fingertree version: 0.1.4.2 summary: Generic finger-tree structure, with example instances homepage: license: bsd-3-clause --- The Glasgow Haskell Compiler License Copyright 2006, The University Court of the University of Glasgow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/foldl.txt ================================================ --- type: cabal name: foldl version: 1.4.5 summary: Composable, streaming, and efficient left folds homepage: license: bsd-3-clause --- Copyright (c) 2013 Gabriel Gonzalez All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Gabriel Gonzalez nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/freer-cofreer.txt ================================================ --- type: cabal name: freer-cofreer version: 0.0.0.1 summary: Freer monads and Cofreer comonads. homepage: https://github.com/robrix/freer-cofreer license: bsd-3-clause --- Copyright Rob Rix (c) 2017 All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Rob Rix nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/fused-effects.txt ================================================ --- type: cabal name: fused-effects version: 0.4.0.0 summary: A fast, flexible, fused effect system. homepage: https://github.com/robrix/fused-effects license: bsd-3-clause --- BSD 3-Clause License Copyright (c) 2018, Nicolas Wu, Tom Schrijvers, Rob Rix, and Patrick Thomson All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/generic-monoid.txt ================================================ --- type: cabal name: generic-monoid version: '0.1.0.0' summary: Derive monoid instances for product types. homepage: https://github.com/luke-clifton/generic-monoid license: bsd-3-clause --- Copyright (c) 2018, Luke Clifton All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Luke Clifton nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/generics-sop.txt ================================================ --- type: cabal name: generics-sop version: 0.4.0.1 summary: Generic Programming using True Sums of Products homepage: license: bsd-3-clause --- Copyright (c) 2014-2015, Well-Typed LLP, Edsko de Vries, Andres Löh All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/ghc-boot-th.txt ================================================ --- type: cabal name: ghc-boot-th version: 8.6.4 summary: Shared functionality between GHC and the @template-haskell@ license: bsd-3-clause --- The Glasgow Haskell Compiler License Copyright 2002, The University Court of the University of Glasgow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/ghc-boot.txt ================================================ --- type: cabal name: ghc-boot version: 8.6.4 summary: Shared functionality between GHC and its boot libraries license: bsd-3-clause --- The Glasgow Haskell Compiler License Copyright 2002, The University Court of the University of Glasgow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/ghc-heap.txt ================================================ --- type: cabal name: ghc-heap version: 8.6.4 summary: Functions for walking GHC's heap license: bsd-3-clause --- Copyright (c) 2012-2013, Joachim Breitner All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Joachim Breitner nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/ghc-prim.txt ================================================ --- type: cabal name: ghc-prim version: 0.5.3 summary: GHC primitives homepage: license: bsd-3-clause --- This library (libraries/ghc-prim) is derived from code from several sources: * Code from the GHC project which is largely (c) The University of Glasgow, and distributable under a BSD-style license (see below), * Code from the Haskell 98 Report which is (c) Simon Peyton Jones and freely redistributable (but see the full license for restrictions). The full text of these licenses is reproduced below. All of the licenses are BSD-style or compatible. ----------------------------------------------------------------------------- The Glasgow Haskell Compiler License Copyright 2004, The University Court of the University of Glasgow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- Code derived from the document "Report on the Programming Language Haskell 98", is distributed under the following license: Copyright (c) 2002 Simon Peyton Jones The authors intend this Report to belong to the entire Haskell community, and so we grant permission to copy and distribute it for any purpose, provided that it is reproduced in its entirety, including this Notice. Modified versions of this Report may also be copied and distributed for any purpose, provided that the modified version is clearly presented as such, and that it does not claim to be a definition of the Haskell 98 Language. ================================================ FILE: .licenses/semantic/cabal/ghc-tcplugins-extra.txt ================================================ --- type: cabal name: ghc-tcplugins-extra version: '0.3' summary: Utilities for writing GHC type-checker plugins homepage: https://github.com/clash-lang/ghc-tcplugins-extra license: bsd-2-clause --- Copyright (c) 2015-2016, University of Twente, 2017-2018, QBayLogic All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/ghc-typelits-extra.txt ================================================ --- type: cabal name: ghc-typelits-extra version: '0.3' summary: Additional type-level operations on GHC.TypeLits.Nat homepage: https://www.clash-lang.org/ license: bsd-2-clause --- Copyright (c) 2015-2016, University of Twente, 2017-2018, QBayLogic B.V. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/ghc-typelits-knownnat.txt ================================================ --- type: cabal name: ghc-typelits-knownnat version: '0.6' summary: Derive KnownNat constraints from other KnownNat constraints homepage: https://clash-lang.org/ license: bsd-2-clause --- Copyright (c) 2016 , University of Twente, 2017-2018, QBayLogic B.V., 2017 , Google Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/ghc-typelits-natnormalise.txt ================================================ --- type: cabal name: ghc-typelits-natnormalise version: 0.6.2 summary: GHC typechecker plugin for types of kind GHC.TypeLits.Nat homepage: https://www.clash-lang.org/ license: bsd-2-clause --- Copyright (c) 2015-2016, University of Twente, 2017-2018, QBayLogic B.V. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/ghc.txt ================================================ --- type: cabal name: ghc version: 8.6.4 summary: The GHC API homepage: https://www.haskell.org/ghc/ license: bsd-3-clause --- The Glasgow Haskell Compiler License Copyright 2002, The University Court of the University of Glasgow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/ghci.txt ================================================ --- type: cabal name: ghci version: 8.6.4 summary: The library supporting GHC's interactive interpreter license: bsd-3-clause --- The Glasgow Haskell Compiler License Copyright 2002, The University Court of the University of Glasgow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/gitrev.txt ================================================ --- type: cabal name: gitrev version: 1.3.1 summary: Compile git revision info into Haskell projects homepage: https://github.com/acfoltzer/gitrev license: bsd-3-clause --- Copyright (c) 2015, Adam C. Foltzer All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of gitrev nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/hashable.txt ================================================ --- type: cabal name: hashable version: 1.2.7.0 summary: A class for types that can be converted to a hash value homepage: https://github.com/tibbe/hashable license: bsd-3-clause --- Copyright Milan Straka 2010 All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Milan Straka nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/haskeline.txt ================================================ --- type: cabal name: haskeline version: 0.7.5.0 summary: A command-line interface for user input, written in Haskell. homepage: https://github.com/judah/haskeline license: bsd-2-clause --- Copyright 2007-2009, Judah Jacobson. All Rights Reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistribution of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistribution in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/haskell-lexer.txt ================================================ --- type: cabal name: haskell-lexer version: 1.0.2 summary: A fully compliant Haskell 98 lexer. homepage: https://github.com/yav/haskell-lexer license: mit --- Copyright (c) 2008 Thomas Hallgren Copyright (c) 2008 Iavor S. Diatchki Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: .licenses/semantic/cabal/haskell-src.txt ================================================ --- type: cabal name: haskell-src version: 1.0.3.0 summary: Support for manipulating Haskell source code homepage: license: bsd-3-clause --- The Glasgow Haskell Compiler License Copyright 2004, The University Court of the University of Glasgow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/haskell-tree-sitter.txt ================================================ --- type: cabal name: haskell-tree-sitter version: 0.1.0 summary: haskell tree-sitter bindings homepage: https://github.com/tree-sitter/haskell-tree-sitter license: bsd-3-clause --- Copyright GitHub (c) 2015 All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Author name here nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/heap.txt ================================================ --- type: cabal name: heap version: 1.0.4 summary: Heaps in Haskell homepage: license: bsd-2-clause --- Copyright (c) 2008-2009, Stephan Friedrichs All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/hostname.txt ================================================ --- type: cabal name: hostname version: '1.0' summary: A very simple package providing a cross-platform means of determining the hostname homepage: license: bsd-3-clause --- Copyright (c) 2008, Maximilian Bolingbroke All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Maximilian Bolingbroke nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/hourglass.txt ================================================ --- type: cabal name: hourglass version: 0.2.12 summary: simple performant time related library homepage: https://github.com/vincenthz/hs-hourglass license: bsd-3-clause --- Copyright (c) 2014 Vincent Hanquez All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/hpc.txt ================================================ --- type: cabal name: hpc version: 0.6.0.3 summary: Code Coverage Library for Haskell homepage: license: bsd-3-clause --- Copyright (c) 2006 Andy Gill, Colin Runciman Copyright (c) 2007 Andy Gill All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. The names of the authors may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/http-api-data.txt ================================================ --- type: cabal name: http-api-data version: '0.4' summary: Converting to/from HTTP API data like URL pieces, headers and query parameters. homepage: https://github.com/fizruk/http-api-data license: bsd-2-clause --- The following license covers this documentation, and the source code, except where otherwise indicated. Copyright 2015, Nickolay Kudasov. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/insert-ordered-containers.txt ================================================ --- type: cabal name: insert-ordered-containers version: 0.2.1.0 summary: Associative containers retaining insertion order for traversals. homepage: https://github.com/phadej/insert-ordered-containers license: bsd-3-clause --- Copyright (c) 2015, Oleg Grenrus All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Oleg Grenrus nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/integer-gmp.txt ================================================ --- type: cabal name: integer-gmp version: 1.0.2.0 summary: Integer library based on GMP homepage: license: bsd-3-clause --- Copyright (c) 2014, Herbert Valerio Riedel All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Herbert Valerio Riedel nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/integer-logarithms.txt ================================================ --- type: cabal name: integer-logarithms version: 1.0.2.2 summary: Integer logarithms. homepage: https://github.com/Bodigrim/integer-logarithms license: mit --- Copyright (c) 2011 Daniel Fischer, 2017 Oleg Grenrus Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: .licenses/semantic/cabal/invariant.txt ================================================ --- type: cabal name: invariant version: 0.5.1 summary: Haskell98 invariant functors homepage: https://github.com/nfrisby/invariant-functors license: bsd-2-clause --- Copyright (c) 2012-2017, University of Kansas All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/kan-extensions.txt ================================================ --- type: cabal name: kan-extensions version: '5.2' summary: Kan extensions, Kan lifts, the Yoneda lemma, and (co)density (co)monads homepage: https://github.com/ekmett/kan-extensions/ license: bsd-3-clause --- Copyright 2008-2016 Edward Kmett All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/kdt.txt ================================================ --- type: cabal name: kdt version: 0.2.4 summary: Fast and flexible k-d trees for various types of point queries. homepage: https://github.com/giogadi/kdt license: mit --- Copyright (c) 2014 Luis G. Torres Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: .licenses/semantic/cabal/keys.txt ================================================ --- type: cabal name: keys version: 3.12.1 summary: Keyed functors and containers homepage: https://github.com/ekmett/keys/ license: bsd-3-clause --- Copyright 2011-2016 Edward Kmett All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/lens.txt ================================================ --- type: cabal name: lens version: '4.17' summary: Lenses, Folds and Traversals homepage: https://github.com/ekmett/lens/ license: bsd-2-clause --- Copyright 2012-2016 Edward Kmett All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/lifted-async.txt ================================================ --- homepage: https://github.com/maoe/lifted-async summary: Run lifted IO operations asynchronously and wait for their results name: lifted-async version: 0.10.0.3 license: bsd-3-clause --- Copyright (c) 2012-2017, Mitsutoshi Aoe All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Mitsutoshi Aoe nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/lifted-base.txt ================================================ --- homepage: https://github.com/basvandijk/lifted-base summary: lifted IO operations from the base library name: lifted-base version: 0.2.3.12 license: bsd-3-clause --- Copyright © 2010-2012, Bas van Dijk, Anders Kaseorg All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. • Neither the name of the author nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/machines.txt ================================================ --- type: cabal name: machines version: 0.6.4 summary: Networked stream transducers homepage: https://github.com/ekmett/machines/ license: bsd-3-clause --- Copyright 2012-2015 Edward Kmett, Runar Bjarnason, Paul Chiusano All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/managed.txt ================================================ --- type: cabal name: managed version: 1.0.6 summary: A monad for managed values homepage: license: bsd-3-clause --- Copyright (c) 2014 Gabriel Gonzalez All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Gabriel Gonzalez nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/math-functions.txt ================================================ --- type: cabal name: math-functions version: '0.3.1.0' summary: Collection of tools for numeric computations homepage: https://github.com/bos/math-functions/ license: bsd-2-clause --- Copyright (c) 2009, 2010 Bryan O'Sullivan All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/megaparsec.txt ================================================ --- type: cabal name: megaparsec version: 7.0.4 summary: Monadic parser combinators homepage: https://github.com/mrkkrp/megaparsec license: bsd-2-clause --- Copyright © 2015–2018 Megaparsec contributors
Copyright © 2007 Paolo Martini
Copyright © 1999–2000 Daan Leijen All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/memory.txt ================================================ --- type: cabal name: memory version: 0.14.18 summary: memory and related abstraction stuff homepage: https://github.com/vincenthz/hs-memory license: bsd-3-clause --- Copyright (c) 2015-2018 Vincent Hanquez Copyright (c) 2017-2018 Nicolas Di Prima All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/mersenne-random-pure64.txt ================================================ --- type: cabal name: mersenne-random-pure64 version: 0.2.2.0 summary: Generate high quality pseudorandom numbers purely using a Mersenne Twister homepage: https://code.haskell.org/~dons/code/mersenne-random-pure64/ license: bsd-3-clause --- Copyright (c) Don Stewart 2008 All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/mime-types.txt ================================================ --- type: cabal name: mime-types version: 0.1.0.9 summary: Basic mime-type handling types and functions homepage: https://github.com/yesodweb/wai license: mit --- Copyright (c) 2012 Michael Snoyman, http://www.yesodweb.com/ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: .licenses/semantic/cabal/mmorph.txt ================================================ --- type: cabal name: mmorph version: 1.1.2 summary: Monad morphisms homepage: license: bsd-3-clause --- Copyright (c) 2013, Gabriel Gonzalez All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Gabriel Gonzalez nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/monad-control.txt ================================================ --- homepage: https://github.com/basvandijk/monad-control summary: Lift control operations, like exception catching, through monad transformers name: monad-control version: 1.0.2.3 license: bsd-3-clause --- Copyright © 2010, Bas van Dijk, Anders Kaseorg All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. • Neither the name of the author nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/mtl.txt ================================================ --- type: cabal name: mtl version: 2.2.2 summary: Monad classes, using functional dependencies homepage: https://github.com/haskell/mtl license: bsd-3-clause --- The Glasgow Haskell Compiler License Copyright 2004, The University Court of the University of Glasgow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/mwc-random.txt ================================================ --- type: cabal name: mwc-random version: 0.14.0.0 summary: Fast, high quality pseudo random number generation homepage: https://github.com/bos/mwc-random license: bsd-2-clause --- Copyright (c) 2009, Bryan O'Sullivan All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/neat-interpolation.txt ================================================ --- type: cabal name: neat-interpolation version: 0.3.2.4 summary: A quasiquoter for neat and simple multiline text interpolation homepage: https://github.com/nikita-volkov/neat-interpolation license: mit --- Copyright (c) 2013, Nikita Volkov Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: .licenses/semantic/cabal/network-uri.txt ================================================ --- type: cabal name: network-uri version: 2.6.1.0 summary: URI manipulation homepage: https://github.com/haskell/network-uri license: bsd-3-clause --- Copyright (c) 2002-2010, The University Court of the University of Glasgow. Copyright (c) 2007-2010, Johan Tibell Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/network.txt ================================================ --- type: cabal name: network version: 2.8.0.0 summary: Low-level networking interface homepage: https://github.com/haskell/network license: bsd-3-clause --- Copyright (c) 2002-2010, The University Court of the University of Glasgow. Copyright (c) 2007-2010, Johan Tibell Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/old-locale.txt ================================================ --- type: cabal name: old-locale version: 1.0.0.7 summary: locale library homepage: license: bsd-3-clause --- This library (libraries/base) is derived from code from two sources: * Code from the GHC project which is largely (c) The University of Glasgow, and distributable under a BSD-style license (see below), * Code from the Haskell 98 Report which is (c) Simon Peyton Jones and freely redistributable (but see the full license for restrictions). The full text of these licenses is reproduced below. Both of the licenses are BSD-style or compatible. ----------------------------------------------------------------------------- The Glasgow Haskell Compiler License Copyright 2004, The University Court of the University of Glasgow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- Code derived from the document "Report on the Programming Language Haskell 98", is distributed under the following license: Copyright (c) 2002 Simon Peyton Jones The authors intend this Report to belong to the entire Haskell community, and so we grant permission to copy and distribute it for any purpose, provided that it is reproduced in its entirety, including this Notice. Modified versions of this Report may also be copied and distributed for any purpose, provided that the modified version is clearly presented as such, and that it does not claim to be a definition of the Haskell 98 Language. ----------------------------------------------------------------------------- ================================================ FILE: .licenses/semantic/cabal/old-time.txt ================================================ --- type: cabal name: old-time version: 1.1.0.3 summary: Time library homepage: license: bsd-3-clause --- This library (libraries/base) is derived from code from two sources: * Code from the GHC project which is largely (c) The University of Glasgow, and distributable under a BSD-style license (see below), * Code from the Haskell 98 Report which is (c) Simon Peyton Jones and freely redistributable (but see the full license for restrictions). The full text of these licenses is reproduced below. Both of the licenses are BSD-style or compatible. ----------------------------------------------------------------------------- The Glasgow Haskell Compiler License Copyright 2004, The University Court of the University of Glasgow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- Code derived from the document "Report on the Programming Language Haskell 98", is distributed under the following license: Copyright (c) 2002 Simon Peyton Jones The authors intend this Report to belong to the entire Haskell community, and so we grant permission to copy and distribute it for any purpose, provided that it is reproduced in its entirety, including this Notice. Modified versions of this Report may also be copied and distributed for any purpose, provided that the modified version is clearly presented as such, and that it does not claim to be a definition of the Haskell 98 Language. ----------------------------------------------------------------------------- ================================================ FILE: .licenses/semantic/cabal/optional-args.txt ================================================ --- type: cabal name: optional-args version: 1.0.2 summary: Optional function arguments homepage: license: bsd-3-clause --- Copyright (c) 2015 Gabriel Gonzalez All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Gabriel Gonzalez nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/optparse-applicative.txt ================================================ --- type: cabal name: optparse-applicative version: 0.14.3.0 summary: Utilities and combinators for parsing command line options homepage: https://github.com/pcapriotti/optparse-applicative license: bsd-3-clause --- Copyright (c) 2012, Paolo Capriotti All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Paolo Capriotti nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/parallel.txt ================================================ --- type: cabal name: parallel version: 3.2.2.0 summary: Parallel programming library homepage: license: bsd-3-clause --- This library (libraries/parallel) is derived from code from the GHC project which is largely (c) The University of Glasgow, and distributable under a BSD-style license (see below). ----------------------------------------------------------------------------- The Glasgow Haskell Compiler License Copyright 2004, The University Court of the University of Glasgow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- ================================================ FILE: .licenses/semantic/cabal/parsec.txt ================================================ --- type: cabal name: parsec version: 3.1.13.0 summary: Monadic parser combinators homepage: https://github.com/haskell/parsec license: bsd-2-clause --- Copyright 1999-2000, Daan Leijen; 2007, Paolo Martini. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. This software is provided by the copyright holders "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright holders be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. ================================================ FILE: .licenses/semantic/cabal/parser-combinators.txt ================================================ --- type: cabal name: parser-combinators version: 1.0.1 summary: Lightweight package providing commonly useful parser combinators homepage: https://github.com/mrkkrp/parser-combinators license: bsd-3-clause --- Copyright © 2017–2018 Mark Karpov All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name Mark Karpov nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/parsers.txt ================================================ --- type: cabal name: parsers version: 0.12.9 summary: Parsing combinators homepage: https://github.com/ekmett/parsers/ license: bsd-3-clause --- Copyright 2011-2013 Edward Kmett All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/pem.txt ================================================ --- type: cabal name: pem version: 0.2.4 summary: Privacy Enhanced Mail (PEM) format reader and writer. homepage: https://github.com/vincenthz/hs-pem license: bsd-3-clause --- Copyright (c) 2010-2018 Vincent Hanquez All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/pointed.txt ================================================ --- type: cabal name: pointed version: 5.0.1 summary: Pointed and copointed data homepage: https://github.com/ekmett/pointed/ license: bsd-2-clause --- Copyright 2008-2011 Edward Kmett All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/pretty.txt ================================================ --- type: cabal name: pretty version: 1.1.3.6 summary: Pretty-printing library homepage: https://github.com/haskell/pretty license: bsd-3-clause --- This library (libraries/pretty) is derived from code from the GHC project which is largely (c) The University of Glasgow, and distributable under a BSD-style license (see below). ----------------------------------------------------------------------------- The Glasgow Haskell Compiler License Copyright 2004, The University Court of the University of Glasgow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- ================================================ FILE: .licenses/semantic/cabal/prettyprinter.txt ================================================ --- type: cabal name: prettyprinter version: 1.2.1 summary: A modern, easy to use, well-documented, extensible pretty-printer. homepage: https://github.com/quchen/prettyprinter license: bsd-2-clause --- Copyright 2008, Daan Leijen and Max Bolingbroke, 2016 David Luposchainsky. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. This software is provided by the copyright holders "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright holders be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. ================================================ FILE: .licenses/semantic/cabal/primitive.txt ================================================ --- type: cabal name: primitive version: 0.6.4.0 summary: Primitive memory-related operations homepage: https://github.com/haskell/primitive license: bsd-3-clause --- Copyright (c) 2008-2009, Roman Leshchinskiy All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/process.txt ================================================ --- type: cabal name: process version: 1.6.5.0 summary: Process libraries license: bsd-3-clause --- This library (libraries/process) is derived from code from two sources: * Code from the GHC project which is largely (c) The University of Glasgow, and distributable under a BSD-style license (see below), * Code from the Haskell 98 Report which is (c) Simon Peyton Jones and freely redistributable (but see the full license for restrictions). The full text of these licenses is reproduced below. Both of the licenses are BSD-style or compatible. ----------------------------------------------------------------------------- The Glasgow Haskell Compiler License Copyright 2004, The University Court of the University of Glasgow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- Code derived from the document "Report on the Programming Language Haskell 98", is distributed under the following license: Copyright (c) 2002 Simon Peyton Jones The authors intend this Report to belong to the entire Haskell community, and so we grant permission to copy and distribute it for any purpose, provided that it is reproduced in its entirety, including this Notice. Modified versions of this Report may also be copied and distributed for any purpose, provided that the modified version is clearly presented as such, and that it does not claim to be a definition of the Haskell 98 Language. ----------------------------------------------------------------------------- ================================================ FILE: .licenses/semantic/cabal/profunctors.txt ================================================ --- type: cabal name: profunctors version: '5.3' summary: Profunctors homepage: https://github.com/ekmett/profunctors/ license: bsd-3-clause --- Copyright 2011-2015 Edward Kmett All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/proto3-suite.txt ================================================ --- type: cabal name: proto3-suite version: 0.2.0 summary: A low level library for writing out data in the Protocol Buffers wire format homepage: license: apache-2.0 --- Copyright 2017 Awake Networks Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ================================================ FILE: .licenses/semantic/cabal/proto3-wire.txt ================================================ --- type: cabal name: proto3-wire version: 1.0.0 summary: A low-level implementation of the Protocol Buffers (version 3) wire format homepage: license: bsd-3-clause --- Copyright 2016 Awake Networks Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ================================================ FILE: .licenses/semantic/cabal/quickcheck-instances.txt ================================================ --- type: cabal name: quickcheck-instances version: 0.3.19 summary: Common quickcheck instances homepage: https://github.com/phadej/qc-instances license: bsd-3-clause --- Copyright (c)2012, Antoine Latter All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Antoine Latter nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/random.txt ================================================ --- type: cabal name: random version: '1.1' summary: random number library homepage: https://github.com/haskell/random license: bsd-3-clause --- This library (libraries/base) is derived from code from two sources: * Code from the GHC project which is largely (c) The University of Glasgow, and distributable under a BSD-style license (see below), * Code from the Haskell 98 Report which is (c) Simon Peyton Jones and freely redistributable (but see the full license for restrictions). The full text of these licenses is reproduced below. Both of the licenses are BSD-style or compatible. ----------------------------------------------------------------------------- The Glasgow Haskell Compiler License Copyright 2004, The University Court of the University of Glasgow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- Code derived from the document "Report on the Programming Language Haskell 98", is distributed under the following license: Copyright (c) 2002 Simon Peyton Jones The authors intend this Report to belong to the entire Haskell community, and so we grant permission to copy and distribute it for any purpose, provided that it is reproduced in its entirety, including this Notice. Modified versions of this Report may also be copied and distributed for any purpose, provided that the modified version is clearly presented as such, and that it does not claim to be a definition of the Haskell 98 Language. ----------------------------------------------------------------------------- ================================================ FILE: .licenses/semantic/cabal/recursion-schemes.txt ================================================ --- type: cabal name: recursion-schemes version: 5.1.2 summary: Generalized bananas, lenses and barbed wire homepage: https://github.com/ekmett/recursion-schemes/ license: bsd-2-clause --- Copyright 2011-2015 Edward Kmett All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/reducers.txt ================================================ --- type: cabal name: reducers version: 3.12.3 summary: Semigroups, specialized containers and a general map/reduce framework homepage: https://github.com/ekmett/reducers/ license: bsd-3-clause --- Copyright 2008-2016 Edward Kmett All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/reflection.txt ================================================ --- type: cabal name: reflection version: 2.1.4 summary: Reifies arbitrary terms into types that can be reflected back into terms homepage: https://github.com/ekmett/reflection license: bsd-3-clause --- Copyright (c) 2009-2013 Edward Kmett Copyright (c) 2004 Oleg Kiselyov and Chung-chieh Shan All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Edward Kmett nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/rts.txt ================================================ --- type: cabal name: rts version: '1.0' summary: homepage: license: bsd-3-clause --- The Glasgow Haskell Compiler License Copyright 2002, The University Court of the University of Glasgow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/safe.txt ================================================ --- type: cabal name: safe version: 0.3.17 summary: Library of safe (exception free) functions homepage: https://github.com/ndmitchell/safe license: bsd-3-clause --- Copyright Neil Mitchell 2007-2018. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Neil Mitchell nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/scientific.txt ================================================ --- type: cabal name: scientific version: 0.3.6.2 summary: Numbers represented using scientific notation homepage: https://github.com/basvandijk/scientific license: bsd-3-clause --- Copyright (c) 2013, Bas van Dijk All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Bas van Dijk nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/semigroupoids.txt ================================================ --- type: cabal name: semigroupoids version: 5.3.2 summary: 'Semigroupoids: Category sans id' homepage: https://github.com/ekmett/semigroupoids license: bsd-2-clause --- Copyright 2011-2015 Edward Kmett All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/semigroups.txt ================================================ --- type: cabal name: semigroups version: 0.18.5 summary: Anything that associates homepage: https://github.com/ekmett/semigroups/ license: bsd-2-clause --- Copyright 2011-2015 Edward Kmett All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/semilattices.txt ================================================ --- type: cabal name: semilattices version: 0.0.0.3 summary: Semilattices homepage: https://github.com/robrix/semilattices license: bsd-3-clause --- Copyright (c) 2017, Rob Rix All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Rob Rix nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/servant.txt ================================================ --- type: cabal name: servant version: '0.15' summary: A family of combinators for defining webservices APIs homepage: https://haskell-servant.readthedocs.org/ license: bsd-3-clause --- Copyright (c) 2014-2016, Zalora South East Asia Pte Ltd, 2016-2018 Servant Contributors All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Zalora South East Asia Pte Ltd nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/shelly.txt ================================================ --- homepage: https://github.com/yesodweb/Shelly.hs summary: shell-like (systems) programming in Haskell name: shelly version: 1.8.0 license: bsd-3-clause --- Copyright (c) 2017, Petr Rockai All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Petr Rockai nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/singleton-bool.txt ================================================ --- type: cabal name: singleton-bool version: 0.1.4 summary: Type level booleans homepage: https://github.com/phadej/singleton-bool license: bsd-3-clause --- Copyright (c) 2016, Oleg Grenrus All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Oleg Grenrus nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/socks.txt ================================================ --- type: cabal name: socks version: 0.5.6 summary: Socks proxy (ver 5) homepage: https://github.com/vincenthz/hs-socks license: bsd-3-clause --- Copyright (c) 2010-2011 Vincent Hanquez All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/sop-core.txt ================================================ --- type: cabal name: sop-core version: 0.4.0.0 summary: True Sums of Products homepage: license: bsd-3-clause --- Copyright (c) 2014-2015, Well-Typed LLP, Edsko de Vries, Andres Löh All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/split.txt ================================================ --- type: cabal name: split version: 0.2.3.3 summary: Combinator library for splitting lists. homepage: https://github.com/byorgey/split license: bsd-3-clause --- Copyright (c) 2008 Brent Yorgey, Louis Wasserman All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/stm-chans.txt ================================================ --- type: cabal name: stm-chans version: 3.0.0.4 summary: Additional types of channels for STM. homepage: https://code.haskell.org/~wren/ license: bsd-3-clause --- === stm-chans license === Copyright (c) 2011--2013, wren gayle romano. ALL RIGHTS RESERVED. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holders nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/stm.txt ================================================ --- type: cabal name: stm version: 2.5.0.0 summary: Software Transactional Memory homepage: https://wiki.haskell.org/Software_transactional_memory license: bsd-3-clause --- The Glasgow Haskell Compiler License Copyright 2004, The University Court of the University of Glasgow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/streaming-commons.txt ================================================ --- type: cabal name: streaming-commons version: 0.2.1.0 summary: Common lower-level functions needed by various streaming data libraries homepage: https://github.com/fpco/streaming-commons license: mit --- The MIT License (MIT) Copyright (c) 2014 FP Complete Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: .licenses/semantic/cabal/string-conversions.txt ================================================ --- type: cabal name: string-conversions version: 0.4.0.1 summary: Simplifies dealing with different types for strings homepage: https://github.com/soenkehahn/string-conversions license: bsd-3-clause --- Copyright (c) 2012, Sönke Hahn All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Sönke Hahn nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/swagger2.txt ================================================ --- type: cabal name: swagger2 version: 2.3.1.1 summary: Swagger 2.0 data model homepage: https://github.com/GetShopTV/swagger2 license: bsd-3-clause --- Copyright (c) 2015-2017, GetShopTV All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of swagger2 nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/syb.txt ================================================ --- type: cabal name: syb version: '0.7' summary: Scrap Your Boilerplate homepage: https://www.cs.uu.nl/wiki/GenericProgramming/SYB license: bsd-3-clause --- This library (libraries/syb) is derived from code from several sources: * Code from the GHC project which is largely (c) The University of Glasgow, and distributable under a BSD-style license (see below), * Code from the Haskell 98 Report which is (c) Simon Peyton Jones and freely redistributable (but see the full license for restrictions). * Code from the Haskell Foreign Function Interface specification, which is (c) Manuel M. T. Chakravarty and freely redistributable (but see the full license for restrictions). The full text of these licenses is reproduced below. All of the licenses are BSD-style or compatible. ----------------------------------------------------------------------------- The Glasgow Haskell Compiler License Copyright 2004, The University Court of the University of Glasgow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- Code derived from the document "Report on the Programming Language Haskell 98", is distributed under the following license: Copyright (c) 2002 Simon Peyton Jones The authors intend this Report to belong to the entire Haskell community, and so we grant permission to copy and distribute it for any purpose, provided that it is reproduced in its entirety, including this Notice. Modified versions of this Report may also be copied and distributed for any purpose, provided that the modified version is clearly presented as such, and that it does not claim to be a definition of the Haskell 98 Language. ----------------------------------------------------------------------------- Code derived from the document "The Haskell 98 Foreign Function Interface, An Addendum to the Haskell 98 Report" is distributed under the following license: Copyright (c) 2002 Manuel M. T. Chakravarty The authors intend this Report to belong to the entire Haskell community, and so we grant permission to copy and distribute it for any purpose, provided that it is reproduced in its entirety, including this Notice. Modified versions of this Report may also be copied and distributed for any purpose, provided that the modified version is clearly presented as such, and that it does not claim to be a definition of the Haskell 98 Foreign Function Interface. ----------------------------------------------------------------------------- ================================================ FILE: .licenses/semantic/cabal/system-fileio.txt ================================================ --- type: cabal name: system-fileio version: 0.3.16.4 summary: Consistent filesystem interaction across GHC versions (deprecated) homepage: https://github.com/fpco/haskell-filesystem license: mit --- Copyright (c) 2011 John Millikin Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: .licenses/semantic/cabal/system-filepath.txt ================================================ --- type: cabal name: system-filepath version: 0.4.14 summary: High-level, byte-based file and directory path manipulations (deprecated) homepage: https://github.com/fpco/haskell-filesystem license: mit --- Copyright (c) 2010 John Millikin Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: .licenses/semantic/cabal/tagged.txt ================================================ --- type: cabal name: tagged version: 0.8.6 summary: Haskell 98 phantom types to avoid unsafely passing dummy arguments homepage: https://github.com/ekmett/tagged license: bsd-3-clause --- Copyright (c) 2009-2015 Edward Kmett All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Edward Kmett nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/template-haskell.txt ================================================ --- type: cabal name: template-haskell version: 2.14.0.0 summary: Support library for Template Haskell homepage: license: bsd-3-clause --- The Glasgow Haskell Compiler License Copyright 2002-2007, The University Court of the University of Glasgow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/temporary.txt ================================================ --- type: cabal name: temporary version: '1.3' summary: Portable temporary file and directory support homepage: https://github.com/feuerbach/temporary license: bsd-3-clause --- Copyright (c) 2003-2006, Isaac Jones (c) 2005-2009, Duncan Coutts (c) 2008, Maximilian Bolingbroke ... and other contributors All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Maximilian Bolingbroke nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/terminfo.txt ================================================ --- type: cabal name: terminfo version: 0.4.1.2 summary: Haskell bindings to the terminfo library. homepage: https://github.com/judah/terminfo license: bsd-2-clause --- Copyright 2007, Judah Jacobson. All Rights Reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistribution of source code must retain the above copyright notice, this list of conditions and the following disclamer. - Redistribution in binary form must reproduce the above copyright notice, this list of conditions and the following disclamer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/text.txt ================================================ --- type: cabal name: text version: 1.2.3.1 summary: An efficient packed Unicode text type. homepage: https://github.com/haskell/text license: bsd-2-clause --- Copyright (c) 2008-2009, Tom Harper All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/tf-random.txt ================================================ --- type: cabal name: tf-random version: '0.5' summary: High-quality splittable pseudorandom number generator homepage: https://hub.darcs.net/michal.palka/tf-random license: bsd-3-clause --- Copyright (c) 2012-2013, Michał Pałka All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * The names of the authors may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/th-abstraction.txt ================================================ --- type: cabal name: th-abstraction version: 0.2.11.0 summary: Nicer interface for reified information about data types homepage: https://github.com/glguy/th-abstraction license: isc --- Copyright (c) 2017 Eric Mertens Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ================================================ FILE: .licenses/semantic/cabal/these.txt ================================================ --- type: cabal name: these version: 0.7.6 summary: An either-or-both data type & a generalized 'zip with padding' typeclass homepage: https://github.com/isomorphism/these license: bsd-3-clause --- Copyright (c)2012, C. McCann All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of C. McCann nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/time-locale-compat.txt ================================================ --- type: cabal name: time-locale-compat version: 0.1.1.5 summary: Compatibile module for time-format locale homepage: https://github.com/khibino/haskell-time-locale-compat license: bsd-3-clause --- Copyright (c) 2014, Kei Hibino All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Kei Hibino nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/time.txt ================================================ --- type: cabal name: time version: 1.8.0.2 summary: A time library homepage: https://github.com/haskell/time license: bsd-2-clause --- TimeLib is Copyright (c) Ashley Yakeley, 2004-2014. All rights reserved. Certain sections are Copyright 2004, The University Court of the University of Glasgow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Neither name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/tls.txt ================================================ --- type: cabal name: tls version: 1.4.1 summary: TLS/SSL protocol native implementation (Server and Client) homepage: https://github.com/vincenthz/hs-tls license: bsd-3-clause --- Copyright (c) 2010-2015 Vincent Hanquez All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/transformers-base.txt ================================================ --- type: cabal name: transformers-base version: 0.4.5.2 summary: Lift computations from the bottom of a transformer stack homepage: https://github.com/mvv/transformers-base license: bsd-3-clause --- Copyright (c) 2011, Mikhail Vorozhtsov, Bas van Dijk All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither the names of the copyright owners nor the names of the contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/transformers-compat.txt ================================================ --- type: cabal name: transformers-compat version: 0.6.2 summary: A small compatibility shim for the transformers library homepage: https://github.com/ekmett/transformers-compat/ license: bsd-3-clause --- Copyright 2012-2015 Edward Kmett All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/transformers.txt ================================================ --- type: cabal name: transformers version: 0.5.6.2 summary: Concrete functor and monad transformers license: bsd-3-clause --- The Glasgow Haskell Compiler License Copyright 2004, The University Court of the University of Glasgow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/turtle.txt ================================================ --- type: cabal name: turtle version: 1.5.13 summary: Shell programming, Haskell-style homepage: license: bsd-3-clause --- Copyright (c) 2017 Gabriel Gonzalez All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Gabriel Gonzalez nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/unix-compat.txt ================================================ --- type: cabal name: unix-compat version: 0.5.1 summary: Portable POSIX-compatibility layer. homepage: https://github.com/jystic/unix-compat license: bsd-3-clause --- Copyright (c) 2007-2008, Björn Bringert Copyright (c) 2007-2009, Duncan Coutts Copyright (c) 2010-2011, Jacob Stanley Copyright (c) 2011, Bryan O'Sullivan All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither the names of the copyright owners nor the names of the contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/unix.txt ================================================ --- type: cabal name: unix version: 2.7.2.2 summary: POSIX functionality homepage: https://github.com/haskell/unix license: bsd-3-clause --- The Glasgow Haskell Compiler License Copyright 2004, The University Court of the University of Glasgow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/unliftio-core.txt ================================================ --- type: cabal name: unliftio-core version: 0.1.2.0 summary: The MonadUnliftIO typeclass for unlifting monads to IO homepage: https://github.com/fpco/unliftio/tree/master/unliftio-core license: mit --- Copyright (c) 2017 FP Complete Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: .licenses/semantic/cabal/unordered-containers.txt ================================================ --- type: cabal name: unordered-containers version: 0.2.9.0 summary: Efficient hashing-based container types homepage: https://github.com/tibbe/unordered-containers license: bsd-3-clause --- Copyright (c) 2010, Johan Tibell All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Johan Tibell nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/utf8-string.txt ================================================ --- type: cabal name: utf8-string version: 1.0.1.1 summary: Support for reading and writing UTF8 Strings homepage: https://github.com/glguy/utf8-string/ license: bsd-3-clause --- * Copyright (c) 2007, Galois Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Galois Inc. nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY Galois Inc. ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL Galois Inc. BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/uuid-types.txt ================================================ --- type: cabal name: uuid-types version: 1.0.3 summary: Type definitions for Universally Unique Identifiers homepage: https://github.com/aslatter/uuid license: bsd-3-clause --- Copyright (c) 2008, Antoine Latter All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * The names of the authors may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/vault.txt ================================================ --- type: cabal name: vault version: 0.3.1.2 summary: a persistent store for values of arbitrary types homepage: https://github.com/HeinrichApfelmus/vault license: bsd-3-clause --- Copyright (c)2011, Heinrich Apfelmus All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Heinrich Apfelmus nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/vector-builder.txt ================================================ --- type: cabal name: vector-builder version: 0.3.7.2 summary: Vector builder homepage: https://github.com/nikita-volkov/vector-builder license: mit --- Copyright (c) 2016, Nikita Volkov Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: .licenses/semantic/cabal/vector-instances.txt ================================================ --- type: cabal name: vector-instances version: '3.4' summary: Orphan Instances for 'Data.Vector' homepage: https://github.com/ekmett/vector-instances license: bsd-3-clause --- Copyright (c)2010, Edward Kmett All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Edward Kmett nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/vector-th-unbox.txt ================================================ --- type: cabal name: vector-th-unbox version: '0.2.1.6' summary: Deriver for Data.Vector.Unboxed using Template Haskell homepage: https://github.com/liyang/vector-th-unbox/ license: bsd-3-clause --- Copyright (c) 2012−2015, Liyang HU All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Liyang HU nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/vector.txt ================================================ --- type: cabal name: vector version: 0.12.0.2 summary: Efficient Arrays homepage: https://github.com/haskell/vector license: bsd-3-clause --- Copyright (c) 2008-2012, Roman Leshchinskiy All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/void.txt ================================================ --- type: cabal name: void version: 0.7.2 summary: A Haskell 98 logically uninhabited data type homepage: https://github.com/ekmett/void license: bsd-3-clause --- Copyright 2015 Edward Kmett All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/x509-store.txt ================================================ --- type: cabal name: x509-store version: 1.6.7 summary: X.509 collection accessing and storing methods homepage: https://github.com/vincenthz/hs-certificate license: bsd-3-clause --- Copyright (c) 2010-2013 Vincent Hanquez All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/x509-system.txt ================================================ --- type: cabal name: x509-system version: 1.6.6 summary: Handle per-operating-system X.509 accessors and storage homepage: https://github.com/vincenthz/hs-certificate license: bsd-3-clause --- Copyright (c) 2010-2013 Vincent Hanquez All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/x509-validation.txt ================================================ --- type: cabal name: x509-validation version: 1.6.11 summary: X.509 Certificate and CRL validation homepage: https://github.com/vincenthz/hs-certificate license: bsd-3-clause --- Copyright (c) 2010-2013 Vincent Hanquez All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/x509.txt ================================================ --- type: cabal name: x509 version: 1.7.5 summary: X509 reader and writer homepage: https://github.com/vincenthz/hs-certificate license: bsd-3-clause --- Copyright (c) 2010-2013 Vincent Hanquez All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .licenses/semantic/cabal/zlib.txt ================================================ --- type: cabal name: zlib version: 0.6.2 summary: Compression and decompression in the gzip and zlib formats homepage: license: bsd-3-clause --- Copyright (c) 2006-2016, Duncan Coutts All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. This clause is intentionally left blank. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: .stylish-haskell.yaml ================================================ # stylish-haskell configuration file # ================================== # The stylish-haskell tool is mainly configured by specifying steps. These steps # are a list, so they have an order, and one specific step may appear more than # once (if needed). Each file is processed by these steps in the given order. steps: # Convert some ASCII sequences to their Unicode equivalents. This is disabled # by default. # - unicode_syntax: # # In order to make this work, we also need to insert the UnicodeSyntax # # language pragma. If this flag is set to true, we insert it when it's # # not already present. You may want to disable it if you configure # # language extensions using some other method than pragmas. Default: # # true. # add_language_pragma: true # Align the right hand side of some elements. This is quite conservative # and only applies to statements where each element occupies a single # line. - simple_align: cases: true top_level_patterns: true records: true # Import cleanup - imports: # There are different ways we can align names and lists. # # - global: Align the import names and import list throughout the entire # file. # # - file: Like global, but don't add padding when there are no qualified # imports in the file. # # - group: Only align the imports per group (a group is formed by adjacent # import lines). # # - none: Do not perform any alignment. # # Default: global. align: group # The following options affect only import list alignment. # # List align has following options: # # - after_alias: Import list is aligned with end of import including # 'as' and 'hiding' keywords. # # > import qualified Data.List as List (concat, foldl, foldr, head, # > init, last, length) # # - with_alias: Import list is aligned with start of alias or hiding. # # > import qualified Data.List as List (concat, foldl, foldr, head, # > init, last, length) # # - new_line: Import list starts always on new line. # # > import qualified Data.List as List # > (concat, foldl, foldr, head, init, last, length) # # Default: after_alias list_align: after_alias # Right-pad the module names to align imports in a group: # # - true: a little more readable # # > import qualified Data.List as List (concat, foldl, foldr, # > init, last, length) # > import qualified Data.List.Extra as List (concat, foldl, foldr, # > init, last, length) # # - false: diff-safe # # > import qualified Data.List as List (concat, foldl, foldr, init, # > last, length) # > import qualified Data.List.Extra as List (concat, foldl, foldr, # > init, last, length) # # Default: true pad_module_names: false # Long list align style takes effect when import is too long. This is # determined by 'columns' setting. # # - inline: This option will put as much specs on same line as possible. # # - new_line: Import list will start on new line. # # - new_line_multiline: Import list will start on new line when it's # short enough to fit to single line. Otherwise it'll be multiline. # # - multiline: One line per import list entry. # Type with constructor list acts like single import. # # > import qualified Data.Map as M # > ( empty # > , singleton # > , ... # > , delete # > ) # # Default: inline long_list_align: new_line_multiline # Align empty list (importing instances) # # Empty list align has following options # # - inherit: inherit list_align setting # # - right_after: () is right after the module name: # # > import Vector.Instances () # # Default: inherit empty_list_align: inherit # List padding determines indentation of import list on lines after import. # This option affects 'long_list_align'. # # - : constant value # # - module_name: align under start of module name. # Useful for 'file' and 'group' align settings. list_padding: 4 # Separate lists option affects formatting of import list for type # or class. The only difference is single space between type and list # of constructors, selectors and class functions. # # - true: There is single space between Foldable type and list of it's # functions. # # > import Data.Foldable (Foldable (fold, foldl, foldMap)) # # - false: There is no space between Foldable type and list of it's # functions. # # > import Data.Foldable (Foldable(fold, foldl, foldMap)) # # Default: true separate_lists: true # Space surround option affects formatting of import lists on a single # line. The only difference is single space after the initial # parenthesis and a single space before the terminal parenthesis. # # - true: There is single space associated with the enclosing # parenthesis. # # > import Data.Foo ( foo ) # # - false: There is no space associated with the enclosing parenthesis # # > import Data.Foo (foo) # # Default: false space_surround: false # Language pragmas - language_pragmas: # We can generate different styles of language pragma lists. # # - vertical: Vertical-spaced language pragmas, one per line. # # - compact: A more compact style. # # - compact_line: Similar to compact, but wrap each line with # `{-#LANGUAGE #-}'. # # Default: vertical. style: vertical # Align affects alignment of closing pragma brackets. # # - true: Brackets are aligned in same column. # # - false: Brackets are not aligned together. There is only one space # between actual import and closing bracket. # # Default: true align: false # stylish-haskell can detect redundancy of some language pragmas. If this # is set to true, it will remove those redundant pragmas. Default: true. remove_redundant: true # Replace tabs by spaces. This is disabled by default. # - tabs: # # Number of spaces to use for each tab. Default: 8, as specified by the # # Haskell report. # spaces: 8 # Remove trailing whitespace - trailing_whitespace: {} # A common setting is the number of columns (parts of) code will be wrapped # to. Different steps take this into account. Default: 80. columns: 120 # By default, line endings are converted according to the OS. You can override # preferred format here. # # - native: Native newline format. CRLF on Windows, LF on other OSes. # # - lf: Convert to LF ("\n"). # # - crlf: Convert to CRLF ("\r\n"). # # Default: native. newline: native # Sometimes, language extensions are specified in a cabal file or from the # command line instead of using language pragmas in the file. stylish-haskell # needs to be aware of these, so it can parse the file correctly. language_extensions: - DataKinds - DeriveFoldable - DeriveFunctor - DeriveGeneric - DeriveTraversable - DerivingVia - ExplicitNamespaces - FlexibleContexts - FlexibleInstances - MultiParamTypeClasses - OverloadedStrings - RecordWildCards - StandaloneDeriving - StrictData - TypeApplications ================================================ FILE: BUILD.bazel ================================================ # This build file specifies the packages from GHC bindists that # we want to use, as well as the top-level hie-bios REPL target # that the tooling uses. You probably don't need to edit it. package(default_visibility = ["//visibility:public"]) load( "@rules_haskell//haskell:defs.bzl", "haskell_repl", "haskell_toolchain_library", ) # You can specify what kind of compilation mode you want by providing # --compilation_mode=MODE to `bazel build`, where MODE is one of # 'fastbuild', 'dbg', or 'opt'. We declare targets corresponding to this # setting, which are used in common.bzl to vary compiler flags based # on the compilation mode. Note that you can also just write `-c opt` # if you're not into writing out compilation_mode. config_setting( name = "release", values = {"compilation_mode": "opt"}, ) config_setting( name = "development", values = {"compilation_mode": "fastbuild"}, ) config_setting( name = "debug", values = {"compilation_mode": "dbg"}, ) # The GHC bindists provide us with a set of builtin libraries. # We use them rather than looking up those in stackage. haskell_toolchain_library(name = "base") haskell_toolchain_library(name = "bytestring") haskell_toolchain_library(name = "containers") haskell_toolchain_library(name = "deepseq") haskell_toolchain_library(name = "filepath") haskell_toolchain_library(name = "ghc-prim") haskell_toolchain_library(name = "text") haskell_toolchain_library(name = "haskeline") haskell_toolchain_library(name = "process") haskell_toolchain_library(name = "template-haskell") haskell_toolchain_library(name = "transformers") # This repl target is used by hie-bios + ghcide. haskell_repl( name = "hie-bios", collect_data = False, deps = ["//semantic"], ) ================================================ FILE: CODEOWNERS ================================================ * @github/semantic-code ================================================ FILE: CODE_OF_CONDUCT.md ================================================ # Contributor Covenant Code of Conduct ## Our Pledge In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. ## Our Standards Examples of behavior that contributes to creating a positive environment include: * Using welcoming and inclusive language * Being respectful of differing viewpoints and experiences * Gracefully accepting constructive criticism * Focusing on what is best for the community * Showing empathy towards other community members Examples of unacceptable behavior by participants include: * The use of sexualized language or imagery and unwelcome sexual attention or advances * Trolling, insulting/derogatory comments, and personal or political attacks * Public or private harassment * Publishing others' private information, such as a physical or electronic address, without explicit permission * Other conduct which could reasonably be considered inappropriate in a professional setting ## Our Responsibilities Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. ## Scope This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at opensource@github.com. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. ## Attribution This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html [homepage]: https://www.contributor-covenant.org For answers to common questions about this code of conduct, see https://www.contributor-covenant.org/faq ================================================ FILE: CONTRIBUTING.md ================================================ ## Contributing [fork]: https://github.com/github/semantic-open-source/fork [pr]: https://github.com/github/semantic-open-source/compare [style]: docs/coding-style.md [code-of-conduct]: CODE_OF_CONDUCT.md Hi there! We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great. We'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. Contributions 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). Please 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. ## Submitting a pull request 0. [Fork][fork] and clone the repository 0. Configure and install the dependencies: `script/bootstrap` 0. Make sure the tests pass on your machine: `cabal v2-test` 0. Create a new branch: `git checkout -b my-branch-name` 0. Make your change, add tests, and make sure the tests still pass 0. Push to your fork and [submit a pull request][pr] 0. Pat yourself on the back and wait for your pull request to be reviewed and merged. Here are a few things you can do that will increase the likelihood of your pull request being accepted: - Follow the [style guide][style]. - Write tests. - 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. - Write a [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html). Unless 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. Please 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. ## Resources - [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/) - [Using Pull Requests](https://help.github.com/articles/about-pull-requests/) - [GitHub Help](https://help.github.com) ================================================ FILE: Dockerfile ================================================ # Put protoc and twirp tooling in its own image FROM haskell:8.8.1 as haskell RUN cabal v2-update && \ cabal v2-install proto-lens-protoc RUN which proto-lens-protoc FROM golang:1.13-stretch AS protoc RUN apt-get update && apt-get install -y unzip ENV PROTOBUF_VERSION=3.7.1 RUN wget "https://github.com/protocolbuffers/protobuf/releases/download/v3.7.1/protoc-$PROTOBUF_VERSION-linux-x86_64.zip" && \ unzip "protoc-$PROTOBUF_VERSION-linux-x86_64.zip" -d "/protobuf" RUN go get github.com/golang/protobuf/proto && \ go get github.com/twitchtv/protogen/typemap && \ GO111MODULE=on go get github.com/tclem/proto-lens-jsonpb/protoc-gen-jsonpb_haskell@e4d10b77f57ee25beb759a33e63e2061420d3dc2 COPY --from=haskell /root/.cabal/bin/proto-lens-protoc /usr/local/bin/proto-lens-protoc # Bit of a hack so that proto-lens-protoc actually runs COPY --from=haskell /opt/ghc/8.8.1/lib/ghc-8.8.1/* /opt/ghc/8.8.1/lib/ghc-8.8.1/ ENTRYPOINT ["/protobuf/bin/protoc", "-I/protobuf", "--plugin=protoc-gen-haskell=/usr/local/bin/proto-lens-protoc"] # Build semantic FROM haskell:8.8.1 as build WORKDIR /build # Build all of semantic COPY . . RUN cabal v2-update && \ cabal v2-configure --flags="release" && \ cabal v2-build semantic:exe:semantic # A fake `install` target until we can get `cabal v2-install` to work RUN cp $(find dist-newstyle/build/x86_64-linux -name semantic -type f -perm -u=x) /usr/local/bin/semantic # Create a fresh image containing only the compiled CLI program, so that the # image isn't bulked up by all of the extra build state. FROM debian:stretch-slim RUN apt-get update && \ apt-get install -y \ libgmp10 \ && \ apt-get autoremove -y && \ apt-get clean -y && \ rm -rf /var/lib/apt/lists/* COPY --from=build /usr/local/bin/semantic /usr/local/bin/semantic ENTRYPOINT ["/usr/local/bin/semantic"] ================================================ FILE: HACKING.md ================================================ # Effective `semantic` Hacking for Fun and Profit The 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. ## The Landscape We 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. ## Things to Do 1. *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. 2. *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`. 3. *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`. 4. *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`. 5. *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. ## Things to Avoid 1. *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. 2. *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. 3. *Write small modules with minimal dependencies.* Keep the code that deals with language ASTs well-isolated. 4. *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. ================================================ FILE: README.md ================================================ **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._ # Semantic `semantic` is a Haskell library and command line tool for parsing, analyzing, and comparing source code. In a hurry? Check out our documentation of [example uses for the `semantic` command line tool](docs/examples.md). | Table of Contents | | :------------- | | [Usage](#usage) | | [Language support](#language-support) | | [Development](#development) | | [Technology and architecture](#technology-and-architecture) | | [Licensing](#licensing) | ## Usage Run `semantic --help` for complete list of up-to-date options. #### Parse ``` Usage: semantic parse [--sexpression | (--json-symbols|--symbols) | --proto-symbols | --show | --quiet] [FILES...] Generate parse trees for path(s) Available options: --sexpression Output s-expression parse trees (default) --json-symbols,--symbols Output JSON symbol list --proto-symbols Output protobufs symbol list --show Output using the Show instance (debug only, format subject to change without notice) --quiet Don't produce output, but show timing stats -h,--help Show this help text ``` ## Language support | Language | Parse | AST Symbols† | Stack graphs | | :------------- | :---: | :---: | :---: | | Ruby | ✅ | ✅ | | | JavaScript | ✅ | ✅ | | | TypeScript | ✅ | ✅ | 🚧 | | Python | ✅ | ✅ | 🚧 | | Go | ✅ | ✅ | | | PHP | ✅ | ✅ | | | Java | 🚧 | ✅ | | | JSON | ✅ | ⬜️ | ⬜️ | | JSX | ✅ | ✅ | | | TSX | ✅ | ✅ | | | CodeQL | ✅ | ✅ | | | Haskell | 🚧 | 🚧 | | † Used for [code navigation](https://help.github.com/en/github/managing-files-in-a-repository/navigating-code-on-github) on github.com. * ✅ — Supported * 🔶 — Partial support * 🚧 — Under development * ⬜ - N/A ️ ## Development `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). We use `cabal's` [Nix-style local builds][nix] for development. To get started quickly: ```bash git clone git@github.com:github/semantic.git cd semantic script/bootstrap cabal v2-build all cabal v2-run semantic:test cabal v2-run semantic:semantic -- --help ``` You 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). ``` bash git clone git@github.com:github/semantic.git cd semantic script/bootstrap-bazel bazel build //... ``` `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. [nix]: https://cabal.readthedocs.io/en/3.4/nix-local-build-overview.html [ghcup]: https://www.haskell.org/ghcup/ ## Technology and architecture Architecturally, `semantic`: 1. Generates per-language Haskell syntax types based on [tree-sitter](https://github.com/tree-sitter/tree-sitter) grammar definitions. 2. Reads blobs from a filesystem or provided via a protocol buffer request. 3. Returns blobs or performs analysis. 4. Renders output in one of many supported formats. Throughout its lifecycle, `semantic` has leveraged a number of interesting algorithms and techniques, including: - Myers' algorithm (SES) as described in the paper [*An O(ND) Difference Algorithm and Its Variations*][SES] - RWS as described in the paper [*RWS-Diff: Flexible and Efficient Change Detection in Hierarchical Data*][RWS]. - Open unions and [data types à la carte](https://www.cambridge.org/core/journals/journal-of-functional-programming/article/data-types-a-la-carte/14416CB20C4637164EA9F77097909409). - An implementation of [Abstracting Definitional Interpreters][adi] extended to work with an à la carte representation of syntax terms. [SES]: http://www.xmailserver.org/diff2.pdf [RWS]: https://db.in.tum.de/~finis/papers/RWS-Diff.pdf [adi]: https://plum-umd.github.io/abstracting-definitional-interpreters/ [tree-sitter]: https://github.com/tree-sitter/tree-sitter ## Contributions Contributions are welcome! Please see our [contribution guidelines](CONTRIBUTING.md) and our [code of conduct](CODE_OF_CONDUCT.md) for details on how to participate in our community. ## Licensing Semantic is licensed under the [MIT license](semantic/LICENSE). ================================================ FILE: WORKSPACE ================================================ # This file defines the workspace for the Semantic monorepo. # It loads the Haskell compilation rules, describes the packages # that we use from Stackage, and pins the tree-sitter packages # so that we can access their node-types.json files. workspace(name = "semantic") # Load the repository rule to download an http archive. load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") # Download rules_haskell and make it accessible as "@rules_haskell". # # Note: the git_repository clause is a workaround until rules_haskell#1349 [1] # is released. One it's released, revert back to the http_archive clause with # an updated version. # # [1] https://github.com/tweag/rules_haskell/issues/1349 http_archive( name = "rules_haskell", sha256 = "cd07e421281c3ad286574ae235f39165e294c850fa4cdf03b5683547d8822c34", strip_prefix = "rules_haskell-1254b1d9bee9e82cd70c4f7941cb64b8ec048bac", urls = ["https://github.com/tweag/rules_haskell/archive/1254b1d9bee9e82cd70c4f7941cb64b8ec048bac.tar.gz"], ) load( "@rules_haskell//haskell:repositories.bzl", "rules_haskell_dependencies", ) # Setup all Bazel dependencies required by rules_haskell. rules_haskell_dependencies() load( "@rules_haskell//haskell:toolchain.bzl", "rules_haskell_toolchains", ) # Download a GHC binary distribution from haskell.org and register it as a toolchain. rules_haskell_toolchains( locale = "en_US.UTF-8", version = "8.10.2", ) # Enable GHC persistent worker mode, if that's your bag. load("@rules_haskell//tools:repositories.bzl", "rules_haskell_worker_dependencies") rules_haskell_worker_dependencies() load( "@rules_haskell//haskell:cabal.bzl", "stack_snapshot", ) # This call establishes a @stackage repository, and describes what packages # we use from Stackage. The resolver, as well as the non-Stackage packages # on which we depend, are specified in stack-snapshot.yaml. stack_snapshot( name = "stackage", local_snapshot = "//:stack-snapshot.yaml", packages = [ "Glob", "HUnit", "QuickCheck", "aeson", "aeson-pretty", "algebraic-graphs", "ansi-terminal", "async", "attoparsec", "base", "base64-bytestring", "bazel-runfiles", "bifunctors", "bytestring", "containers", "deepseq", "directory", "directory-tree", "doctest", "filepath", "foldl", "fused-effects", "fused-effects-exceptions", "fused-effects-readline", "gauge", "generic-lens", "generic-monoid", "hashable", "haskeline", "hedgehog", "hostname", "hscolour", "hspec", "hspec-core", "hspec-expectations", "lens", "lingo", "neat-interpolation", "network", "network-uri", "optparse-applicative", "optparse-generic", "parsers", "pathtype", "pretty-show", "pretty-simple", "prettyprinter", "prettyprinter-ansi-terminal", "process", "proto-lens", "proto-lens-jsonpb", "proto-lens-runtime", "raw-strings-qq", "recursion-schemes", "reducers", "resourcet", "safe-exceptions", "scientific", "semigroupoids", "semilattices", "split", "stm-chans", "streaming", "tasty", "tasty-golden", "tasty-hedgehog", "tasty-hspec", "tasty-hunit", "template-haskell", "temporary", "terminal-size", "text", "time", "transformers", "tree-sitter", "trifecta", "unix", "unordered-containers", "vector", "yaml", ], stack_snapshot_json = "//:stackage_snapshot.json", tools = ["@happy"], vendored_packages = { "tree-sitter-{}".format(name): "@tree-sitter-{name}//:tree-sitter-{name}".format(name = name) for name in [ "go", "java", "json", "php", "python", "ql", "ruby", "rust", "tsx", "typescript", ] }, ) # Download Happy and make it accessible to the build process. http_archive( name = "happy", build_file_content = """ load("@rules_haskell//haskell:cabal.bzl", "haskell_cabal_binary") haskell_cabal_binary(name = "happy", srcs = glob(["**"]), visibility = ["//visibility:public"]) """, sha256 = "fb9a23e41401711a3b288f93cf0a66db9f97da1ce32ec4fffea4b78a0daeb40f", strip_prefix = "happy-1.19.12", urls = ["http://hackage.haskell.org/package/happy-1.19.12/happy-1.19.12.tar.gz"], ) # Pin the various tree-sitter packages so that we can access their # node-types.json files. load( "//:build/common.bzl", "tree_sitter_node_types_hackage", ) tree_sitter_node_types_hackage( name = "tree-sitter-go", sha256 = "72a1d3bdb2883ace3f2de3a0f754c680908489e984503f1a66243ad74dc2887e", version = "0.5.0.2", ) tree_sitter_node_types_hackage( name = "tree-sitter-python", sha256 = "f028c88eabbda9b9bb67895922d753a12ddda83fb917748e0e407e50616b51ae", version = "0.9.0.3", ) tree_sitter_node_types_hackage( name = "tree-sitter-php", sha256 = "70fd9f5cc429fa2b59adaa86853fb111f733889f0b2996328efd885903d7ce16", version = "0.5.0.1", ) tree_sitter_node_types_hackage( name = "tree-sitter-java", sha256 = "569fa1240cdb7db8436201962933c97dd2c502ed65bd4788880238201c67a1c6", version = "0.7.0.2", ) tree_sitter_node_types_hackage( name = "tree-sitter-json", sha256 = "8fbc478268849c16bc7ff85dd6634bb849400bda98575fe26681224a640b9e0a", version = "0.7.0.2", ) tree_sitter_node_types_hackage( name = "tree-sitter-typescript", node_types_path = ":vendor/tree-sitter-typescript/typescript/src/node-types.json", sha256 = "d1cd258e5c83d557ab3481e08c2e8c29ee689e2a9de89b6f72c12080f48c9c62", version = "0.5.0.2", ) tree_sitter_node_types_hackage( name = "tree-sitter-tsx", node_types_path = ":vendor/tree-sitter-typescript/tsx/src/node-types.json", sha256 = "20115194b7e87d53e8ad42a9d5ef212186040e543ccf295135b1342ec6b12447", version = "0.5.0.2", ) tree_sitter_node_types_hackage( name = "tree-sitter-ruby", sha256 = "b6bb1fcb23e283f28af2d1ac9444ed63bb7b9f396034d13db62553d998cefc24", version = "0.5.0.3", ) tree_sitter_node_types_hackage( name = "tree-sitter-ql", sha256 = "d15eff87a292ec4559295676afbf0e5a763f5f7e7636411933109880c3fd5c5d", version = "0.1.0.4", ) tree_sitter_node_types_hackage( name = "tree-sitter-rust", sha256 = "00bc04a31b5c9b0f9b419074238996ee4aadba342e68071ec516077b495e0d41", version = "0.1.0.1", ) load("//:build/example_repos.bzl", "declare_example_repos") declare_example_repos() ================================================ FILE: build/common.bzl ================================================ # This file lets us share warnings and such across the project load( "@rules_haskell//haskell:defs.bzl", "haskell_library", "haskell_test", ) load( "@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive", ) DEVELOPMENT_GHC_FLAGS = ["-O0"] RELEASE_GHC_FLAGS = ["-O1"] GHC_FLAGS = [ "-v1", "-j8", "-fdiagnostics-color=always", "-ferror-spans", "-Weverything", "-Wno-missing-local-signatures", "-Wno-missing-import-lists", "-Wno-implicit-prelude", "-Wno-safe", "-Wno-unsafe", "-Wno-name-shadowing", "-Wno-monomorphism-restriction", "-Wno-missed-specialisations", "-Wno-all-missed-specialisations", "-Wno-star-is-type", "-Wno-missing-deriving-strategies", "-DBAZEL_BUILD=1", "-Wno-unused-packages", "-Wno-prepositive-qualified-module", "-Wno-missing-safe-haskell-mode", ] + select( { "//:release": RELEASE_GHC_FLAGS, "//:development": DEVELOPMENT_GHC_FLAGS, "//:debug": DEVELOPMENT_GHC_FLAGS, }, ) EXECUTABLE_FLAGS = [ "-threaded", ] # Now we start declaring macros to help us with common patterns # such as pulling tree-sitter grammars from releases/git hashes. _tree_sitter_language_build = """ package(default_visibility = ["//visibility:public"]) load("@rules_haskell//haskell:cabal.bzl", "haskell_cabal_library") load("@stackage//:packages.bzl", "packages") exports_files(glob(["**/node-types.json"])) alias( name = "src/node-types.json", actual = "{node_types_path}", ) haskell_cabal_library( name = "{name}", version = "{version}", srcs = glob(["**"]), deps = packages["{name}"].deps, visibility = ["//visibility:public"], ) filegroup(name = "corpus", srcs = glob(["**/corpus/*.txt"])) """ def tree_sitter_node_types_hackage(name, version, sha256, node_types_path = ""): """Download a tree-sitter language package from Hackage and build/expose its library and corpus.""" if node_types_path == "": node_types_path = ":vendor/{}/src/node-types.json".format(name) info = { "name": name, "version": version, "node_types_path": node_types_path, } http_archive( name = name, build_file_content = _tree_sitter_language_build.format(**info), urls = ["https://hackage.haskell.org/package/{name}-{version}/{name}-{version}.tar.gz".format(**info)], strip_prefix = "{name}-{version}".format(**info), sha256 = sha256, ) # These macros declare library targets inside the language packages. def semantic_language_library(language, name, srcs, ts_package = "", nodetypes = ""): """Create a new library target with dependencies needed for a language-AST project.""" if nodetypes == "": nodetypes = "@tree-sitter-{}//:src/node-types.json".format(language) if ts_package == "": ts_package = language haskell_library( name = name, # We can't use Template Haskell to find out the location of the # node-types.json files, but we can pass it in as a preprocessor # directive. compiler_flags = GHC_FLAGS + [ '-DNODE_TYPES_PATH="../../../../$(rootpath {})"'.format(nodetypes), ], repl_ghci_args = GHC_FLAGS + [ '-DNODE_TYPES_PATH="../../../../$(rootpath {})"'.format(nodetypes), ], srcs = srcs, extra_srcs = [nodetypes, "@tree-sitter-{}//:corpus".format(ts_package)], deps = [ "//:base", "//:containers", "//:template-haskell", "//:text", "//semantic-analysis", "//semantic-ast", "//semantic-proto", "//semantic-scope-graph", "//semantic-source", "//semantic-tags", "@stackage//:aeson", "@stackage//:algebraic-graphs", "@stackage//:fused-effects", "@stackage//:generic-lens", "@stackage//:hashable", "@stackage//:lens", "@stackage//:pathtype", "@stackage//:semilattices", "@stackage//:tree-sitter", "@stackage//:tree-sitter-" + language, ], ) def semantic_language_parsing_test(language, semantic_package = "", ts_package = ""): if semantic_package == "": semantic_package = language if ts_package == "": ts_package = language haskell_test( name = "test", srcs = ["test/PreciseTest.hs"], data = ["@tree-sitter-{}//:corpus".format(ts_package)], tags = ["language-test"], deps = [ ":semantic-{}".format(language), "//:base", "//:bytestring", "//:text", "//semantic-ast", "@stackage//:bazel-runfiles", "@stackage//:hedgehog", "@stackage//:pathtype", "@stackage//:tasty", "@stackage//:tasty-hedgehog", "@stackage//:tasty-hunit", "@stackage//:tree-sitter-" + semantic_package, ], ) ================================================ FILE: build/example_repos.bzl ================================================ load( "@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive", ) _all_example_repos = { "numpy": { "data": [ "**/*.py", ], "commit": "058851c5cfc98f50f11237b1c13d77cfd1f40475", "repo": "numpy/numpy", "sha256": "8e60c567cbab3309afa9508ee61dfd207089ebb0056214fe60e863d81e098824", }, "python": { "data": [ "**/*.py", ], "commit": "c6be53e1c43f870f5364eef1499ee1b411c966fb", "repo": "thealgorithms/python", "prefix": "Python", "sha256": "bef087151bea1e479701d0ceed831809c1b916f513752dee914e9c7876b46ea9", "excludes": [ "**/data structures/*", "**/binary tree/*", "**/graphs/*", "**/Random Forest*/*", "**/* */*", ], }, "flask": { "data": [ "**/*.py", ], "commit": "0b5b4a66ef99c8b91569dd9b9b34911834689d3f", "repo": "pallets/flask", "sha256": "224d406f11b13cc8e4c7defd8dc94e0df957c1c90977172cfaa2ee88d8f85e77", }, "httpie": { "data": [ "**/*.py", ], "commit": "358342d1c915d6462a080a77aefbb20166d0bd5d", "repo": "jakubroztocil/httpie", "sha256": "2b3172369954d883a2a609dc6bc34a944ce9817afb14733d87f208a40529899c", }, "keras": { "data": [ "**/*.py", ], "commit": "e59570ae26670f788d6c649191031e4a8824f955", "repo": "keras-team/keras", "sha256": "2bda5bfd2a2b43d9f4d191e4ed980740429bb86d75e16355b1d33faf9d974ffd", }, "requests": { "data": [ "**/*.py", ], "commit": "64bde6582d9b49e9345d9b8df16aaa26dc372d13", "sha256": "8f9466ad314b2741c826b164b46bcedb260d424f717fd9553fea5164f493bd20", "repo": "requests/requests", }, "scikit-learn": { "data": [ "**/*.py", ], "commit": "d0f63a760d9993a7f68cfc5e1a075700d67c53d3", "repo": "scikit-learn/scikit-learn", "sha256": "4f337b87d45cabd7db9cd3883fd5168accad7f78bc48df3ae633832b4d0f30d0", }, "scrapy": { "data": [ "**/*.py", ], "commit": "65d631329a1434ec013f24341e4b8520241aec70", "sha256": "27b2dc9b1a55c356eeec651c76fe82be082c0e8980b2e4d9b99a4f63c733685b", "repo": "scrapy/scrapy", }, "pytorch": { "data": [ "**/*.py", ], "commit": "c865d46736db4afff51690a712e35ed8e3899490", "repo": "pytorch/pytorch", "sha256": "7b54b7a3c40aaf68bb9bd7dcc509389d29c5c37241f29c003bd04cd0dafb60ce", }, "certbot": { "data": [ "**/*.py", ], "commit": "bb8222200a8cbd39a3ce9584ce6dfed6c5d05228", "sha256": "3477f4c04897f7874249e6362567384246f409c62e1ff18c4d6fa54813f484c2", "repo": "certbot/certbot", }, "spec": { "data": [ "**/*.rb", ], "commit": "c3e6b9017926f44a76e2b966c4dd35fa84c4cd3b", "repo": "ruby/spec", "sha256": "33206954ff6fdbf5b872298efc2697c18ad5371eb55007d54f95c08ec7f46bb4", }, "desktop": { "data": [ "**/*.[tj]s", ], "commit": "d1324f56d02dd9afca5d2e9da545905a7d41d671", "repo": "desktop/desktop", "sha256": "cfd1c6d313ff4e756b59da83f3f7799e021e0d0fe94ee4a93638c9b1aa19b5ca", }, } SEMANTIC_EXTERNAL_TEST_REPOSITORIES = ["@" + k + "//:src" for (k, v) in _all_example_repos.items()] def _example_repo(name, data, repo, commit, since = "", excludes = [], sha256 = "", prefix = ""): if prefix == "": prefix = name http_archive( name = name, build_file_content = """ filegroup( name = "src", data = glob(include = {}, exclude={}), visibility = ["//visibility:public"] ) """.format(data, excludes), strip_prefix = prefix + "-" + commit, sha256 = sha256, urls = ["https://github.com/{repo}/archive/{commit}.tar.gz".format(repo = repo, commit = commit)], ) def declare_example_repos(): for k, kwargs in _all_example_repos.items(): _example_repo(name = k, **kwargs) ================================================ FILE: cabal.project ================================================ -- 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). -- Local packages packages: semantic semantic-analysis semantic-ast semantic-codeql semantic-go semantic-java semantic-json semantic-parse semantic-php semantic-proto semantic-python semantic-ruby semantic-rust semantic-scope-graph semantic-tags semantic-tsx semantic-typescript ================================================ FILE: cabal.project.ci ================================================ -- 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). -- Local packages packages: semantic semantic-analysis semantic-ast semantic-codeql semantic-go semantic-java semantic-json semantic-parse semantic-php semantic-proto semantic-python semantic-ruby semantic-rust semantic-scope-graph semantic-tags semantic-tsx semantic-typescript -- Treat warnings as errors for CI builds package semantic ghc-options: -Werror package semantic-analysis ghc-options: -Werror package semantic-ast ghc-options: -Werror package semantic-codeql ghc-options: -Werror package semantic-go ghc-options: -Werror package semantic-java ghc-options: -Werror package semantic-json ghc-options: -Werror package semantic-parse ghc-options: -Werror package semantic-python ghc-options: -Werror package semantic-ruby ghc-options: -Werror package semantic-scope-graph ghc-options: -Werror package semantic-tags ghc-options: -Werror package semantic-tsx ghc-options: -Werror package semantic-typescript ghc-options: -Werror ================================================ FILE: docs/adding-new-languages.md ================================================ # Adding new languages to Semantic This 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. Note 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). ## The procedure 1. **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. 2. **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: - 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)). - 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. 3. **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: - `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)). - `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)). - `Language.[LANGUAGE]` - Semantic functionality for programs in a language ([example](https://github.com/github/semantic/blob/master/semantic-python/src/Language/Python.hs)). - `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)). 5. **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). To summarize, each interaction made possible by the Semantic CLI corresponds to one (or more) of the above steps: | Step | Interaction | |------|-----------------| | 1, 2 | `ts-parse` | | 3, 4 | `parse`, `diff` | | 5 | `graph` | # FAQs **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. **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. ================================================ FILE: docs/build.md ================================================ # Bazel build instructions The 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: * 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. * Bazel's tooling is (on Emacs with lsp-mode and lsp-haskell) more reliable. * Bazel gets Haskell dependencies from Stackage LTS versions, so we avoid the rebuilds associated with living on the latest Hackage snapshot. ## How do I get started? Assuming you're on macOS, run the script located at ~script/bootstrap-bazel~. This uses Homebrew to install Bazel and creates the `.bazel-cache` directory. The 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. ## `cabal` → `bazel` cheatsheet | Operation | `cabal` | `bazel` | |------------------------------|-------------------------------------|-----------------------------------------------------| | Build all | `cabal build all` | `bazel build //...` | | Build `TARGET` library | `cabal build TARGET:lib` | `bazel build //TARGET` | | Build semantic executable | `cabal build semantic:exe:semantic` | `bazel build //semantic:exe` | | Build/run executable | `cabal run semantic -- ARGS` | `bazel run //semantic:exe -- ARGS` | | Load REPL component | `script/ghci` and `:load` | `bazel build //TARGET@repl` | | Run tests | `cabal test all` | `bazel test //...` | | Build with optimizations | `cabal build --flags="+release"` | `bazel build -c opt //...` | | Run all languages' AST tests | ETOOLONGTOWRITE | `bazel test --test_tag_filters=language-test //...` | ## Adding a new dependency Here's a breakdown of how to add a new package. 1. 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. 2. Make sure it's linked into the `WORKSPACE` file, in the `stack_snapshot` call. 3. Make sure it's present in your target's `deps` field. If 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. ## Things to know 1. **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. 2. **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)). 3. **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. 4. **Getting weird errors from the C compiler?** Try setting `export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1` in your `.profile` or whatnot. ## Quick reference links * **Bazel manual**: https://docs.bazel.build/versions/3.3.0/bazel-overview.html * **`rules_haskell` manual**: https://rules-haskell.readthedocs.io * **`rules_haskell` API docs**: https://api.haskell.build ## Conventions We give library targets the same name as their subproject. Test targets are called `test`, and executable targets are `exe`. The default `.bazelrc` file imports a `.bazelrc.local` file if it's present; use that for any Bazel customizations you want. The variables that the scripts under `build/` export are SCREAMING_SNAKE_CASE. The functions are snake_case. ## Shared variables * `GHC_FLAGS`: the standard set of Cabal flags that all targets should use. * `EXECUTABLE_FLAGS`: ditto, but with executable-specific flags. ## Custom rules We 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). For 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. ## Protips * `bazel build --output_filter=REGEXP` does what it says on the tin. ================================================ FILE: docs/codegen.md ================================================ # CodeGen Documentation CodeGen 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. ## Table of Contents - [CodeGen Pipeline](#codegen-pipeline) - [Generating ASTs](#generating-asts) - [Inspecting auto-generated datatypes](#inspecting-auto-generated-datatypes) - [Tests](#tests) - [Additional notes](#additional-notes) ## CodeGen Pipeline The following diagram outlines the entire language support pipeline. ![image](https://user-images.githubusercontent.com/875834/80392707-801e9980-887d-11ea-9c95-e004bbe04be0.png) 1. **Ingest source code.** The input to our system is blob data on GitHub. 2. **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. 3. **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). 4. **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: - [**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. - [**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. - [**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. 5. **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: 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. 2. This triggers the generation of the exhaustive syntax types contained by that language. 3. `Language.[LANGUAGE]` provides the semantic functionality for Python programs, and calls the unmarshal API. 4. Finally, the unmarshaling process takes the source code input, and auto-generates a tree using the syntax nodes generated in step 2. The remaining document provides more details on generating ASTs, inspecting datatypes, tests, and information on decisions pertaining to relevant APIs. ## Generating ASTs To parse source code and produce ASTs locally: 1. Load the REPL for a given language package: ``` cabal new-repl lib:semantic-python ``` 2. Set language extensions, `OverloadedStrings` and `TypeApplications`, and import relevant modules, `AST.Unmarshal`, `Source.Range` and `Source.Span`: ``` :seti -XOverloadedStrings :seti -XTypeApplications import Source.Span import Source.Range import AST.Unmarshal ``` 3. 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: ``` TS.parseByteString @Language.Python.AST.Module @(Source.Span.Span, Source.Range.Range) Language.Python.Grammar.tree_sitter_python "1" ``` This generates the following AST: ``` Right (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"}))))})))})) :| []}))))})]}) ``` `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. ## Inspecting auto-generated datatypes Datatypes 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. ``` :l semantic-python/src/Language/Python/AST.hs Ok, six modules loaded. *Language.Python.AST Source.Span Source.Range> :i Module ``` This shows us the auto-generated `Module` datatype: ```Haskell data Module a = Module {Language.Python.AST.ann :: a, Language.Python.AST.extraChildren :: [(GHC.Generics.:+:) CompoundStatement SimpleStatement a]} -- Defined at /Users/aymannadeem/github/semantic/semantic-python/src/Language/Python/AST.hs:23:1 instance Show a => Show (Module a) -- Defined at /Users/aymannadeem/github/semantic/semantic-python/src/Language/Python/AST.hs:23:1 instance Ord a => Ord (Module a) -- Defined at /Users/aymannadeem/github/semantic/semantic-python/src/Language/Python/AST.hs:23:1 instance Eq a => Eq (Module a) -- Defined at /Users/aymannadeem/github/semantic/semantic-python/src/Language/Python/AST.hs:23:1 instance Traversable Module -- Defined at /Users/aymannadeem/github/semantic/semantic-python/src/Language/Python/AST.hs:23:1 instance Functor Module -- Defined at /Users/aymannadeem/github/semantic/semantic-python/src/Language/Python/AST.hs:23:1 instance Foldable Module -- Defined at /Users/aymannadeem/github/semantic/semantic-python/src/Language/Python/AST.hs:23:1 ``` Here 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: | Type | JSON | TH-generated code | |----------|--------------|------------| |Named leaf|
{
"type": "identifier",
"named": true
}|data TreeSitter.Python.AST.Identifier a
= TreeSitter.Python.AST.Identifier {TreeSitter.Python.AST.ann :: a,
TreeSitter.Python.AST.bytes :: text-1.2.3.1:Data.Text.Internal.Text} -- Defined at TreeSitter/Python/AST.hs:10:1
instance Show a => Show (TreeSitter.Python.AST.Identifier a) -- Defined at TreeSitter/Python/AST.hs:10:1
instance Ord a => Ord (TreeSitter.Python.AST.Identifier a) -- Defined at TreeSitter/Python/AST.hs:10:1
instance Eq a => Eq (TreeSitter.Python.AST.Identifier a) -- Defined at TreeSitter/Python/AST.hs:10:1
instance Traversable TreeSitter.Python.AST.Identifier -- Defined at TreeSitter/Python/AST.hs:10:1
instance Functor TreeSitter.Python.AST.Identifier -- Defined at TreeSitter/Python/AST.hs:10:1
instance Foldable TreeSitter.Python.AST.Identifier -- Defined at TreeSitter/Python/AST.hs:10:1
instance Unmarshal TreeSitter.Python.AST.Identifier -- Defined at TreeSitter/Python/AST.hs:10:1
instance SymbolMatching TreeSitter.Python.AST.Identifier -- Defined at TreeSitter/Python/AST.hs:10:1| Annotations are captured by a polymorphic parameter `a` instead of range/span values. [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. ## Tests As of right now, Hedgehog tests are minimal and only in place for the Python library. To run tests: `cabal v2-test semantic-python` ## Background and Motivation for CodeGen CodeGen 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). CodeGen addresses the following challenges posed by the old system: **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. **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. **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. **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.  ================================================ FILE: docs/coding-style.md ================================================ 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. This 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). # General guidelines Make your code look like the code around it. Consistency is the name of the game. Use `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. Our CI systems ensure that all patches pass `hlint`'s muster. We have our own set of rules in `.hlint.yaml`. We strongly recommend adding Haddock documentation to any function/data type, unless its purpose is immediately apparent from its name. Comments should describe the "why", type signatures should describe the "what", and the code should describe the "how". # Formatting 2 spaces everywhere. Tabs are forbidden. Haskell indentation can be unpredictable, so generally stick with what your editor suggests. There is no hard line-length limit, though if you go beyond 110 or 120 you should generally split it up, especially for type signatures. ### Use applicative notation when constructing simple data types. ``` haskell thing :: Parser Foo -- Broke: thing = do a <- bar b <- baz pure (Foo a b) -- Woke: thing = Foo <$> bar <*> baz ``` Overreliance 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. Avoid the `Applicative` instance for functions. That means you, Rob. ### Use leading commas for records, exports, and lists. Leading commas make it easy to add and remove fields without introducing syntax errors, and properly aligned records are easy to read: ``` haskell data Pos = Pos { posLine :: Int , posColumn :: Int } ``` ### Align typographical symbols. `->` 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. # Naming Locally 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. You'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. ``` haskell -- Broke foo = heapLookup thing -- Woke foo = Heap.lookup thing ``` Unlike many Haskell projects, we rely in places on variable shadowing (especially in open-recursive functions). Avoid 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 #-}` # Functions ### Don't go buckwild with infix operators. Sensible 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. ### Avoid list comprehensions. In almost all cases, `map`, `filter`, `fold`, and the `[]` monad are more flexible and readable. ### Don't go buckwild with point-free definitions. Point-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. ### Prefer `.` and `$` to parentheses. Parentheses can make a function harder to edit, since parentheses have to be balanced. The composition and application operators (`.` and `$`) can reduce clunkiness. ``` haskell -- Broke f (g (h x)) -- Woke f $ g $ h x -- Bespoke f . g . h $ x ``` ### Do not use partial functions. `hlint` will catch several classes of partial functions (`head`, `fromJust`, etc.). Do not use `error` if at all possible, and never use `undefined`. # Data Types ### Prefer `newtype`s to `type`s. `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. ### Don't use `String`. `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. ### Use `-XDerivingStrategies` when using `-XGeneralizedNewtypeDeriving` or `-XDeriveAnyClass`. Subtle 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. If all the classes you're `deriving` are the stock classes (`Eq`, `Ord`, `Show`, etc.), there's no need to specify a strategy. ### Only use record selectors on single-constructor types. The following code generates two partial functions, which is bad: ``` haskell data Bad = Evil { getInt :: Int } | Bad { getFloat :: Float } ``` If you need fields that properly take failure into account, consider using `lens` and generating `Lens`es and `Traversal`s, which avoid calls to `error`. An 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: ``` haskell module Thing (Foo (Bar, Baz)) where data Foo = Bar { _thing1 :: String , _thing2 :: String } | Baz { _thingRed :: Float , _thingBlue :: Float } ``` # `lens` The `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: * Prefer hand-written lenses to those generated by Template Haskell, except if the hand-written lens is significantly less reasonable than a TH splice. * Only use these infix operators: `^.` (`view`), `^?` (`preview`), `.~` (`set`), `%~` (`over`), and `^..` (`toListOf`). Prefer prefix functions in other cases. * Prefer specific imports: if all you need is `^.`, import just `Control.Lens.Getter` rather than `Control.Lens`. * 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. # Miscellany * Prefer eliminators like `maybe` and `either` to explicit pattern-matching. * Prefer `guards` and the `bool` eliminator to if-then-else statements. * Prefer `where` to `let`, except in the case of nested `where`s. * 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`. ================================================ FILE: docs/configuration.md ================================================ # Configuration Semantic has a number of configurable parameters and options specified through the use of command-line flags or environment variables. See [Config.hs](https://github.com/github/semantic/blob/master/src/Semantic/Config.hs) for details. ## Environment Variables Env. Variable | Description --- | --- `MAX_TELEMETRY_QUEUE_SIZE` | Max size of telemetry queues before messages are dropped (default: `1000`). `TREE_SITTER_PARSE_TIMEOUT` | Timeout in milliseconds before canceling tree-sitter parsing (default: `6000`). `SEMANTIC_ASSIGNMENT_TIMEOUT` | Millisecond timeout for assignment (default: `4000`). `STATS_ADDR` | Host and port of statsd (default: `statsd://127.0.0.1:28125`). `DOGSTATSD_HOST` | Host and port for DataDog, when running in Kubes (default: `statsd://127.0.0.1:28125`). ## Command-line Arguments: Options Flag | Description --- | --- `log-level` | Log messages at or above this level. One of `error`, `warning`, `info`, `debug`, `none` (default: `warning`). `fail-on-warning` | Fail on assignment warnings (default: `False`). `fail-on-parse-error` | Fail on tree-sitter parse error (default: `False`). `log-paths-on-error` | Log source paths on parse and assignment error (default: `False`). ================================================ FILE: docs/core-grammar.md ================================================ # Semantic Core grammar This is an EBNF grammar for the (experimental) core IR language. ``` expr ::= expr '.' expr | expr ' '+ expr | '{' expr (';' expr)* ';'? '}' | 'if' expr 'then' expr 'else' expr | ('lexical' | 'import' | 'load') expr | lit | 'let'? lvalue '=' expr | '(' expr ')' lvalue ::= ident | parens expr lit ::= '#true' | '#false' | 'unit' | 'frame' | lambda | ident lambda ::= ('λ' | '\') ident ('->' | '→') expr ident ::= [A-z_] ([A-z0-9_])* | '#{' [^{}]+ '}' | '"' [^"]+ '"' ``` ================================================ FILE: docs/development.md ================================================ # Development Guide `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. | Tool | Explanation | | :-------------: |-------------| | [`ghc`](https://www.haskell.org/ghc/) | The Glasgow Haskell Compiler is the open source compiler and interactive environment for the Haskell programming language. | | [`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. | | [`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. | | [`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. | | [`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. | ### Nix-style local builds `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.) ### Running a REPL Running `cabal v2-repl semantic:lib` will boot a GHCi with the right environment for Semantic set up. See the [💡ProTips](💡ProTip!.md#ghci) for more info. ### Configuring Atom You may want to customize Atom to support your haskelling: 1. Install Haskell-specific packages: - [`language-haskell`](https://atom.io/packages/language-haskell) provides syntax highlighting for `.hs`, `.cabal`, and other Haskell files. - [`stylish-haskell`](https://github.com/jaspervdj/stylish-haskell) can be used via [`atom-beautify`](https://atom.io/packages/atom-beautify) for source code formatting. - [`align-regexp`](https://atom.io/packages/align-regexp) is convenient for aligning blocks of text by some pattern. - Either `ide-haskell-hie` or `ide-haskell`: - [`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. - `git clone https://github.com/haskell/haskell-ide-engine.git` somewhere convenient and `cd` into it. - 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`. - Make sure that `~/.local/bin/` is on your `PATH`. - 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). - [`ide-haskell`](https://atom.io/packages/ide-haskell) also provides errors, warnings, types, etc. using `ghc-mod` and other tools: - `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. - Install [`haskell-ghc-mod`](https://atom.io/packages/haskell-ghc-mod), and [`ide-haskell-cabal`](https://atom.io/packages/ide-haskell-cabal) - 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": ![image](https://user-images.githubusercontent.com/875834/31060015-5ff171b0-a6c0-11e7-9f44-65ff776cd9a2.png) - [`autocomplete-haskell`](https://atom.io/packages/autocomplete-haskell): Autocompletion - [`ide-haskell-hasktags`](https://atom.io/packages/ide-haskell-hasktags): Symbols - `stack install hasktags` - Run `hasktags --ignore-close-implementation --ctags app src; sort tags` - 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`: ![image](https://user-images.githubusercontent.com/875834/31060038-a2911db8-a6c0-11e7-860d-07b0a45514bc.png) 2. Install a font with ligatures (this will require per-font configuration): - [Hasklig](https://github.com/i-tu/Hasklig) - [Monoid](http://larsenwork.com/monoid/) - [FiraCode](https://github.com/tonsky/FiraCode) 3. Find Documentation - For the most part our dependencies have documentation on [hackage](http://hackage.haskell.org/packages/). You can find individual packages there. - [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. - [Dash](https://kapeli.com/dash) can install documentation from hackage, search by API, and integrations exist for Atom, emacs, and other tools. ### 💡ProTip! See [💡ProTip!.md](💡ProTip!.md) for more. ================================================ FILE: docs/examples.md ================================================ # Quick usage examples ## Parse trees Semantic 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: ``` python def Foo(x): return x print Foo("hi") ``` Now, let's generate an abstract syntax tree (AST). ``` bash $ semantic parse test.A.py (Module (CompoundStatement (FunctionDefinition (Block (SimpleStatement (ReturnStatement (ExpressionList (Expression (PrimaryExpression (Identifier "x"))))))) (Identifier "Foo") (Parameters (Parameter (Identifier "x"))))) (SimpleStatement (PrintStatement (Expression (PrimaryExpression (Call (PrimaryExpression (Identifier "Foo")) (ArgumentList (Expression (PrimaryExpression (String)))))))))) ``` The 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. ``` bash $ semantic parse test.py --show ``` ## Symbols Symbols 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. ``` bash $ semantic parse test.py --json-symbols { "files": [ { "path": "test.py", "language": "Python", "symbols": [ { "symbol": "Foo", "kind": "Function", "line": "def Foo(x):", "span": { "start": { "line": 1, "column": 5 }, "end": { "line": 1, "column": 8 } }, "nodeType": "DEFINITION" }, { "symbol": "print", "kind": "Function", "line": "print Foo(\"hi\")", "span": { "start": { "line": 3, "column": 1 }, "end": { "line": 3, "column": 16 } }, "nodeType": "DEFINITION" }, { "symbol": "Foo", "kind": "Call", "line": "Foo(\"hi\")", "span": { "start": { "line": 3, "column": 7 }, "end": { "line": 3, "column": 10 } }, "nodeType": "REFERENCE", "syntaxType": "CALL" } ] } ] } ``` There's also a protobuf version of this same information (slightly more compact wire representation). ## Diffs NOTE: Diffs are temporarily disabled as part of the effort to migrate to a new AST representation (precise ASTs). ================================================ FILE: docs/grammar-development-guide.md ================================================ # Grammar Development for Semantic Code The 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). ![image](https://user-images.githubusercontent.com/875834/37191315-9eecc98a-2313-11e8-8a66-357b9d3c9f27.png) ## Grammar Development Guide This document is a grammar development guide. The intent is to bring empiricism to a process that can feel arduous and opaque. 1. [Rely on Language Specs, but not too much](#specs) 2. [Study and test with other language parsers](#other-parsers) 3. [Think through use-cases for parse trees](#use-cases) 4. [Know when to parse invalid syntax](#invalid-syntax) 5. [What does a "good" parse tree look like?](#good-tree) 6. [Improving a parse tree](#improve-tree) 7. [Making your tree compact: knowing when to inline vs. hide vs. remove a rule](#make-it-compact) 8. [Test in the wild to prioritize what's next](#test) 9. [Sequence your work](#sequence) 10. [Handling conflicts](#handling-conflicts) 11. [Debugging errors](#debugging-errors) ### Rely on Language Specs, but not too much If 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. Specs (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. Here are some situations where deviating from the spec is appropriate: - **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. - **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. - **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. - **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. ### Study and test with other language parsers Studying 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. ### Think through use-cases for parse trees Developing 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. An example of use-case driven development is knowing when to parse invalid syntax, discussed below. ### Know when to parse invalid syntax While 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. As 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. To know when it is okay to parse valid code vs. not, consider the use-case of what good documentation would look like: - :white_check_mark: `int x = (1 + 2);` = This is invalid since it is not within a method, but still comprehensible. Parse this. - :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. The goal is to support invalid code if it is readable and reflects logic that may be described frequently in documentation. ### What does a "good" parse tree look like? While 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. Attributes of a "pretty" tree: - :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. - :white_check_mark: Not overly verbose. Superfluous wrapper nodes are absent. - :white_check_mark: Every element is outlined clearly. - :white_check_mark: Holds information needed further along in the pipeline. - :white_check_mark: The node is unambiguous. - :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. - :white_check_mark: Preserve auxiliary information about language constructs that don't affect the result of compilation (like comments, docstrings, pragmas). _Example of a good parse tree:_ ```java // source code: @Copyright("a") module com.foo { } // parse tree: (program (module_declaration (single_element_annotation (identifier) (string_literal)) (scoped_identifier (identifier) (identifier)))) ``` ### Improving a parse tree Here are some things that might help: - **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`: ``` generic_type: $ => prec(PREC.REL + 1, seq( choice( alias($.identifier, $.type_identifier), $.scoped_type_identifier ), $._type_arguments )) ``` This allows you to make your tree more meaningful while simultaneously marking what the "actual" rule is in your grammar. - **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. - **Make `seq` visible and `choice` hidden:** Sequences typically have meaning. Choices are just containers that point to other things. - **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. ### Making your tree compact: knowing when to inline vs. hide vs. remove a rule Here are some guidelines to determine what approach to take when removing superfluous nodes from your AST: 1. **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. 2. **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. 3. **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. ```diff (generic_type (type_identifier) - (type_arguments (type_argument (wildcard (type_identifier))))) ``` ### Test in the wild to prioritize what's next Once 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. Use [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. ### Sequence your work Most 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. ### Handling conflicts Conflicts 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. - **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. - **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. - `commaSep` - creates a repeating sequence of 0 or more tokens separated by a comma - `commaSep1` - creates a repeating sequence of 1 or more tokens separated by a comma - `sep1`- creates a repeating sequence of 0 or more tokens separated by the specified delimiter - **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. - **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. _Workflow:_ 1. 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). 2. 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). 3. Look at adding a precedence number, usually `1` or `+1`, based on the rule you want to succeed first. 4. Make sure there aren’t duplicate paths to get to the same rule from sibling rules (like having `_literal` in both `_statement` and `_expression`). And 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. ### Debugging errors Tree-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. - **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. - **Consult the spec.** Eliminate the possibility of typos or oversights in your logic by looking at the definition of your rule in the spec. - **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. - **Use visual debug output.** Analyze the forks and look at individual production rules to hone in on the problem. - **Test all permutations of a particular language construct.** This will help you find the edges of your language and ensure your grammar supports them. ================================================ FILE: docs/why-haskell.md ================================================ # Haskell Semantic 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. # What is Haskell? Haskell 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. # Why Haskell? *Or more specifically, why is Semantic written in Haskell?* The 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. There 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. ## Control Flow In 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. Haskell 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. An 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. ## Runtime Correctness A 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. ## Research Semantic 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. This 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. ## Industry GHC 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. ## Our experiences with the language Haskell 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. - *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. - *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. - *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. - *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. - *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. At 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. [1]: https://en.wikipedia.org/wiki/Haskell_(programming_language) [cabal]: https://cabal.readthedocs.io/en/latest/ [Stack]: https://docs.haskellstack.org/en/stable/README/ [GHC]: https://en.wikipedia.org/wiki/Glasgow_Haskell_Compiler [Facebook]: https://github.com/facebook/Haxl [Advanced Overlap]: https://wiki.haskell.org/GHC/AdvancedOverlap ================================================ FILE: docs/why-tree-sitter.md ================================================ # How we parse source code into ASTs #### Table of Contents 1. [Problem space and possible solutions](#problem-space-and-possible-solutions) 2. [Why we use tree-sitter](#why-we-use-tree-sitter) 3. [Drawbacks of tree-sitter](#drawbacks-of-tree-sitter) ## Problem space and possible solutions Parsing 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. To serve these goals, the following options were considered alongside `tree-sitter`: - Use existing language parsers (maybe run them in docker containers). - Join in with another open source effort like [Babelfish](https://doc.bblf.sh/). - Write our own parsers (perhaps directly in Haskell). - 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/). - Use [tree-sitter](https://github.com/tree-sitter/tree-sitter). ## Why we use tree-sitter 1. **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)._ 2. **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. 3. **We parse comments.** Most parsers will discard comments in the lexer, whereas we need to have them in the AST. 4. **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. 5. **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. 6. **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. 7. **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". 8. **Open source.** By using tree-sitter we can lean on open source contributors to do grammar development work. 9. **Low learning curve.** Writing grammars in JavaScript (as opposed to some custom notation/language) is quite powerful. 10. **Multiple algorithms for handling ambiguity.** Precedence annotations at compile time, GLR at runtime. 11. **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). 12. **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. 13. **Built in performance tooling.** 14. **Parsing is very fast.** 15. **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. 16. **Secure and well-tested.** We've actively invested in fuzzing and other security measures to properly deal with corner cases. 17. **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. ## Drawbacks of tree-sitter 1. Error-recovery is sometimes opaque and not conducive to precise diagnostics and debugging. 2. 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] 4. Though not unique to tree-sitter, grammar development is often a tedious task. 5. 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). 6. Generated C programs can be quite large. 7. Parsing can be extremely slow for pathological inputs such as infinite loops, sometimes taking hours and even days. 8. Writing a grammar for each language from scratch is _a lot_ of work. 9. Support for unicode is currently lagging. ================================================ FILE: docs/💡ProTip!.md ================================================ # 💡ProTip! ## Performance - 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. - Similarly, you can generate [threadscope](https://wiki.haskell.org/ThreadScope) profiles with `script/threadscope`. - To profile you will need to make sure profiteur is installed: `stack install profiteur` along with `ps2pdf`: `brew install ghostscript`. - 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). ## Memory Leaks Space 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! Space 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. ## Building Before building with `cabal`, be sure to run `cabal configure --disable-optimizations --enable-tests`. GHC defaults to `-O1`, which can significantly slow recompiles. ## Testing `stack build --fast semantic:test` builds and runs the unit tests. - Find out what all the possible test arguments are with `cabal run semantic:spec -- --help`. - Focus in on a particular test or set of tests with `-m`/`--match`: cabal run semantic:spec -- -p ruby - It can take a while to run them over the whole project. Focus in on a particular module with `--test-arguments`: cabal run semantic:spec -- -p Data.Language # Ctags Support You can enable ctags support for the project by installing [`codex`](https://github.com/aloiscochard/codex) to generate a ctags file. This is often useful because haskell-ide-engine's jump-to-definition feature can break during editing. `stack install hasktags` `git clone https://github.com/aloiscochard/codex && cd codex && stack install codex` To generate or update the tags file: `codex update` Symbol 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. The `symbols-view` package only recognizes files named `tags` in the root of your project so you'll have to add a symlink: `ln -s codex.tags tags` Alternatively, 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. `git clone https://github.com/joshvera/tags-view ~/.atom/packages/tags-view` Then disable the `symbols-view` package. ## Working with grammar datatypes `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: λ :info Language.JSON.Grammar.Grammar _Voilà!_ You’re now looking at the source code for the datatype generated from the symbol table: data Language.JSON.Grammar.Grammar = Language.JSON.Grammar.END | Language.JSON.Grammar.AnonLBrace | Language.JSON.Grammar.AnonComma | Language.JSON.Grammar.AnonRBrace | Language.JSON.Grammar.AnonColon | Language.JSON.Grammar.AnonLBracket | Language.JSON.Grammar.AnonRBracket | Language.JSON.Grammar.String | Language.JSON.Grammar.Number | Language.JSON.Grammar.True | Language.JSON.Grammar.False | Language.JSON.Grammar.Null | Language.JSON.Grammar.HiddenValue | Language.JSON.Grammar.Object | Language.JSON.Grammar.Pair | Language.JSON.Grammar.Array | Language.JSON.Grammar.AuxObjectRepeat1 | Language.JSON.Grammar.AuxArrayRepeat1 | Language.JSON.Grammar.ParseError -- Defined at src/Language/JSON/Grammar.hs:10:1 instance Bounded Language.JSON.Grammar.Grammar -- Defined at src/Language/JSON/Grammar.hs:10:1 instance Ord Language.JSON.Grammar.Grammar -- Defined at src/Language/JSON/Grammar.hs:10:1 instance Eq Language.JSON.Grammar.Grammar -- Defined at src/Language/JSON/Grammar.hs:10:1 instance Enum Language.JSON.Grammar.Grammar -- Defined at src/Language/JSON/Grammar.hs:10:1 instance Show Language.JSON.Grammar.Grammar -- Defined at src/Language/JSON/Grammar.hs:10:1 ## GHCi The 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. Full docs for ghci can be found in the [user’s guide][ghci user’s guide]. [ghci user’s guide]: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/ghci.html ### Multiple components `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. This script is also set up to store intermediate build products in a separate `dist-repl` dir to avoid colliding with normal builds. [`script/repl`]: https://github.com/github/semantic/blob/master/script/repl ### Configuration `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. [`.ghci.sample`]: https://github.com/github/semantic/blob/master/.ghci.sample ### Managing history `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: ``` historyDuplicates: IgnoreAll maxHistorySize: Nothing ``` [haskeline user preferences]: http://trac.haskell.org/haskeline/wiki/UserPrefs [haskeline custom key bindings]: http://trac.haskell.org/haskeline/wiki/CustomKeyBindings ### Pretty-printing By 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. Since `:reload`ing resets local bindings, the file also provides a convenient `:r` macro which reloads and then immediately re-enables `:pretty`. You can use `:pretty` & `:no-pretty` like so: ``` λ :no-pretty λ Data.Range.Range <$> [1..3] <*> [4..6] [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}] λ :pretty λ Data.Range.Range <$> [1..3] <*> [4..6] [ 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 } ] ``` ## Using Threadscope Threadscope 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. To install threadscope: 1. Download a prebuilt binary from https://github.com/haskell/ThreadScope/releases 2. `chmod a+x` the result of extracting the release 3. `brew install gtk+ gtk-mac-integration` ================================================ FILE: hie.yaml ================================================ cradle: cabal: - path: "semantic" component: "lib:semantic" - path: "semantic-analysis" component: "lib:semantic-analysis" - path: "semantic-ast" component: "lib:semantic-ast" - path: "semantic-codeql" component: "lib:semantic-codeql" - path: "semantic-go" component: "lib:semantic-go" - path: "semantic-java" component: "lib:semantic-java" - path: "semantic-json" component: "lib:semantic-json" - path: "semantic-parse" component: "lib:semantic-parse" - path: "semantic-php" component: "lib:semantic-php" - path: "semantic-python" component: "lib:semantic-python" - path: "semantic-ruby" component: "lib:semantic-ruby" - path: "semantic-rust" component: "lib:semantic-rust" - path: "semantic-scope-graph" component: "lib:semantic-scope-graph" - path: "semantic-source" component: "lib:semantic-source" - path: "semantic-tags" component: "lib:semantic-tags" - path: "semantic-tsx" component: "lib:semantic-tsx" - path: "semantic-typescript" component: "lib:semantic-typescript" ================================================ FILE: notices/THIRD_PARTY_NOTICE.md ================================================ # Third Party Notices and Information Container images built with this project include third party materials; see below for license and other copyright information. Certain open source code is available in container images, or online as noted below, or you may send a request for source code including identification of the container, the open source component name, and version number, to: `opensource@github.com`. Notwithstanding any other terms, you may reverse engineer this software to the extent required to debug changes to any libraries licensed under the GNU Lesser General Public License for your own use. ## Debian packages License and other copyright information for each package is included in the image at `/usr/share/doc/{package}/copyright`. Source for each package is available at `https://packages.debian.org/source/{package}`. ## Haskell packages License and other copyright information for each package is included in the image at `/usr/share/doc/licenses/cabal/{package}.txt`. Source and additional information for each package is available at `https://hackage.haskell.org/package/{package}`. ================================================ FILE: proto/semantic.proto ================================================ syntax = "proto3"; package github.semantic; option ruby_package = "Semantic::Proto"; message PingRequest { string service = 1; } message PingResponse { string status = 1; string hostname = 2; string timestamp = 3; string sha = 4; } message ParseTreeRequest { repeated Blob blobs = 1; } message ParseTreeSymbolResponse { repeated File files = 1; } message StackGraphRequest { repeated Blob blobs = 1; } message StackGraphResponse { repeated StackGraphFile files = 1; } message ParseError { string error = 1; } message Blob { string content = 1; string path = 2; string language = 3; } message File { string path = 1; string language = 2; repeated Symbol symbols = 3; repeated ParseError errors = 4; string blob_oid = 5; } message Symbol { string symbol = 1; string kind = 2; string line = 3; Span span = 4; Docstring docs = 5; NodeType node_type = 6; SyntaxType syntax_type = 7; Span utf16_code_unit_span = 8; ByteRange byte_range = 9; } message Docstring { string docstring = 1; } message Position { int32 line = 1; int32 column = 2; } message Span { Position start = 1; Position end = 2; } message ByteRange { int32 start = 1; int32 end = 2; } message StackGraphFile { string path = 1; string language = 2; repeated StackGraphNode nodes = 3; repeated StackGraphPath paths = 4; repeated ParseError errors = 5; } enum NodeType { ROOT_SCOPE = 0; JUMP_TO_SCOPE = 1; EXPORTED_SCOPE = 2; DEFINITION = 3; REFERENCE = 4; } enum SyntaxType { FUNCTION = 0; METHOD = 1; CLASS = 2; MODULE = 3; CALL = 4; TYPE = 5; INTERFACE = 6; IMPLEMENTATION = 7; } message StackGraphNode { int64 id = 1; string name = 2; string line = 3; Span span = 4; SyntaxType syntax_type = 5; NodeType node_type = 6; } message StackGraphPath { repeated string starting_symbol_stack = 1; int64 starting_scope_stack_size = 2; int64 from = 3; string edges = 4; int64 to = 5; repeated int64 ending_scope_stack = 6; repeated string ending_symbol_stack = 7; } ================================================ FILE: script/astgen ================================================ #!/bin/bash bazel run //semantic-ast:generate-ast -- --language=all --rootdir=$PWD ================================================ FILE: script/bootstrap ================================================ #!/usr/bin/env bash cabal v2-update ================================================ FILE: script/bootstrap-bazel ================================================ #!/bin/bash set -e pipefail echo "Installing Bazel..." brew install bazel mkdir -p .bazel-cache/bazel-disk || true mkdir .bazel-cache/bazel-repo || true ================================================ FILE: script/build-and-upload ================================================ #!/usr/bin/env bash # Usage: script/build-and-upload PROJECT_NAME # where PROJECT_NAME is one of the packages present in this repo: # semantic-source, etc. set -e PROJECT="$1" ROOT_DIR="$(dirname "$0")/.." CABAL_PATH="$ROOT_DIR/$PROJECT/$PROJECT.cabal" if [ -z "$PROJECT" ] then echo "USAGE: build_and_upload PROJECT_NAME"; exit 1 fi if [ ! -f "$CABAL_PATH" ] then echo "Couldn't find .cabal file at $CABAL_PATH; is $PROJECT a valid package?"; exit 1 fi set -x cabal v2-build "$PROJECT" TGZ_LOC="$(cabal v2-sdist "$PROJECT" | tail -n 1)" DOCS_LOC="$(cabal v2-haddock --haddock-for-hackage "$PROJECT" | tail -n 1)" PACKAGE_VERSION="$(basename "$TGZ_LOC" .tar.gz)" if [ ! -f "$TGZ_LOC" ] then echo "Bug in build_and_upload: $PACKAGE_FN doesn't point to a valid path"; exit 1 fi set +x echo "You are planning to upload '$PACKAGE_VERSION'." read -rp "Is this correct? [y/n] " choice if [ "$choice" != "y" ] then echo "Aborting."; exit 1 fi echo "Attempting to build $PACKAGE_VERSION from source" TEMP_PATH=$(mktemp -d) tar -xvf "$TGZ_LOC" -C "$TEMP_PATH" set -x ( cd "$TEMP_PATH/$PACKAGE_VERSION" pwd cabal v2-update cabal v2-build --disable-optimization ) set +x if wget -q --spider "https://hackage.haskell.org/package/$PACKAGE_VERSION" then echo "The package $PACKAGE_VERSION already exists on Hackage." 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." 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." echo "You'll need to make your changes by hand. Be sure to click the 'Review changes' button to check your work." read -rp "Do you want to open a browser so as to do this? [y/N]" choice if [ "$choice" == "y" ] then echo "Opening…" sleep 1 open "https://hackage.haskell.org/package/$PACKAGE_VERSION/$PROJECT.cabal/edit" exit 0 else echo "Aborting" exit 1 fi fi echo "******************" echo "Uploading packages" echo "******************" echo -n "Hackage username: " read HACKAGE_USER echo echo -n "Hackage password: " read -s HACKAGE_PASS cabal upload --username="$HACKAGE_USER" --password="$HACKAGE_PASS" "$TGZ_LOC" cabal upload --username="$HACKAGE_USER" --password="$HACKAGE_PASS" --documentation "$DOCS_LOC" URL="https://hackage.haskell.org/package/$PACKAGE_VERSION/candidate" echo "Opening candidate URL in browser…" sleep 1 open "$URL" echo "About to upload final version. Do you want to proceed?" echo "Full-fledged package uploads cannot be undone!" read -rp "Type 'yes' to continue. " choice if [ "$choice" != "yes" ] then echo "Aborting."; exit 1 fi set -x cabal upload --username="$HACKAGE_USER" --password="$HACKAGE_PASS" --publish "$TGZ_LOC" cabal upload --username="$HACKAGE_USER" --password="$HACKAGE_PASS" --publish --documentation "$DOCS_LOC" echo "Tagging $PACKAGE_VERSION" git tag "$PACKAGE_VERSION" git push --tags ================================================ FILE: script/clone-example-repos ================================================ #!/usr/bin/env bash #/ Usage: script/clone-example-repos #/ #/ Clone some example repositories for smoke testing parsing, assignment, and precise ASTs. #/ #/ NOTES: #/ - This script is intended to be called by `test/Examples.hs` set -e cd $(dirname "$0")/.. mkdir -p tmp # clone_repo LOCAL_PATH URL SHA function clone_repo { path=$1 url="https://github.com/$2" sha=$3 if [ ! -d "$path" ]; then echo "Cloning $url@$sha" git clone "$url" "$path" else echo "$url@$sha already exists" fi pushd "$path" > /dev/null # && git pull -q # NB: Enable this if you need to pin to a different sha for one of the repos. git reset --hard -q $sha popd > /dev/null } go_examples="tmp/go-examples" clone_repo "$go_examples/go" golang/go 870e12d7bfaea70fb0d743842f5864eb059cb939 clone_repo "$go_examples/moby" moby/moby f57f260b49b6142366e6bc1274204ee0a1205945 python_examples="tmp/python-examples" clone_repo "$python_examples/numpy" numpy/numpy 058851c5cfc98f50f11237b1c13d77cfd1f40475 clone_repo "$python_examples/thealgorithms" thealgorithms/python c6be53e1c43f870f5364eef1499ee1b411c966fb clone_repo "$python_examples/flask" pallets/flask 0b5b4a66ef99c8b91569dd9b9b34911834689d3f clone_repo "$python_examples/httpie" jakubroztocil/httpie 358342d1c915d6462a080a77aefbb20166d0bd5d clone_repo "$python_examples/keras" keras-team/keras e59570ae26670f788d6c649191031e4a8824f955 clone_repo "$python_examples/requests" requests/requests 64bde6582d9b49e9345d9b8df16aaa26dc372d13 clone_repo "$python_examples/scikit-learn" scikit-learn/scikit-learn d0f63a760d9993a7f68cfc5e1a075700d67c53d3 clone_repo "$python_examples/scrapy" scrapy/scrapy 65d631329a1434ec013f24341e4b8520241aec70 clone_repo "$python_examples/pytorch" pytorch/pytorch c865d46736db4afff51690a712e35ed8e3899490 clone_repo "$python_examples/certbot" certbot/certbot bb8222200a8cbd39a3ce9584ce6dfed6c5d05228 ruby_examples="tmp/ruby-examples" clone_repo "$ruby_examples/ruby_spec" ruby/spec c3e6b9017926f44a76e2b966c4dd35fa84c4cd3b ts_examples="tmp/typescript-examples" clone_repo "$ts_examples/desktop" desktop/desktop d1324f56d02dd9afca5d2e9da545905a7d41d671 clone_repo "$ts_examples/npm" npm/npm ee147fbbca6f2707d3b16f4fa78f4c4606b2d9b1 # java_examples="$dir/tree-sitter-java/vendor/tree-sitter-java/examples" # clone_repo "$java_examples/elasticsearch" elastic/elasticsearch 4d62640bf116af7e825d89c7319a39c3f2f325b4 # clone_repo "$java_examples/guava" google/guava e24fddc5fff7fd36d33ea38737b6606a7e476845 # clone_repo "$java_examples/RxJava" ReactiveX/RxJava 8a6bf14fc9a61f7c1c0016ca217be02ca86211d2 # haskell_examples="$dir/tree-sitter-haskell/vendor/tree-sitter-haskell/examples" # clone_repo "$haskell_examples/effects" joshvera/effects 08f5f36f2600362685af593f4b327e933b60bf97 # clone_repo "$haskell_examples/postgrest" PostgRest/postgrest f80cfbf165f951a062b3cbedac4556019905ca49 # clone_repo "$haskell_examples/ivory" GaloisInc/ivory 3d00324ad1c113c7e70957ff6a6d636d271d0fc4 ================================================ FILE: script/fix-broken-cabal-store ================================================ #!/usr/bin/env bash store_dir="$HOME/.cabal/store/ghc-$(ghc --numeric-version)" rm -rf "$store_dir"/tr-sttr* rm -rf "$store_dir"/lib/libHStr-sttr* rm -rf "$store_dir"/package.db/tr-sttr* ================================================ FILE: script/generate-example ================================================ #!/usr/bin/env bash #/ Usage: script/generate-example fileA fileB #/ script/generate-example directory #/ #/ Generate expected output for a test fixture example or directory of examples. #/ #/ Example: #/ script/generate-example test/fixtures/ruby/corpus/and-or.{A,B}.rb #/ script/generate-example test/fixtures/ruby/corpus set -e [ $# -eq 0 ] && set -- --help if [[ $1 = -h || $1 = --help ]]; then grep ^#/ <"$0" |cut -c4- exit fi # Work out of the project root directory root=$(cd $(dirname "$0")/.. && pwd) cd "$root" count=0 status () { tput cuu 1 && tput el echo "Generating $1" ((count+=1)) } generate_example () { fileA="$1" fileB="$2" parseFileA="${fileA%%.*}.parseA.txt" parseFileB="${fileB%%.*}.parseB.txt" diffFileAB="${fileA%%.*}.diffA-B.txt" diffFileBA="${fileB%%.*}.diffB-A.txt" if [ -e "$fileA" ]; then status $parseFileA cabal v2-run --verbose=0 semantic -- parse --sexpression $fileA > $parseFileA fi if [ -e "$fileB" ]; then status $parseFileB cabal v2-run --verbose=0 semantic -- parse --sexpression $fileB > $parseFileB fi if [ -e "$fileA" -a -e "$fileB" ]; then status $diffFileAB cabal v2-run --verbose=0 semantic -- diff --sexpression $fileA $fileB > $diffFileAB status $diffFileBA cabal v2-run --verbose=0 semantic -- diff --sexpression $fileB $fileA > $diffFileBA fi } if [[ -d $1 ]]; then echo "Generating all examples for $1" echo "" for f in $(ls $1/*.A.*); do # echo "${f%%.*}.B."${f##*.}"" generate_example $f "${f%%.*}.B."${f##*.}"" done else echo "Generating examples just for $1 $2" echo "" generate_example $1 $2 fi echo "Done. Generated $count examples." ================================================ FILE: script/ghci-flags ================================================ #!/usr/bin/env bash # Computes the flags for ghcide to pass to ghci. You probably won’t be running this yourself, but rather script/repl will. set -e cd "$(dirname "$0")/.." ghc_version="$(ghc --numeric-version)" build_dir="dist-newstyle/build/x86_64-osx/ghc-$ghc_version" build_products_dir="$build_dir/build-repl" function add_autogen_includes { echo "-optP-include" echo "-optP$1/cabal_macros.h" # autogenerated files, .h and .hs echo "-i$1" echo "-I$1" } cores=$(sysctl -n machdep.cpu.core_count || echo 4) # disable optimizations for faster loading echo "-O0" # don’t load .ghci files (for ghcide) echo "-ignore-dot-ghci" # use as many jobs as there are physical cores echo "-j$cores" # where to put build products echo "-outputdir $build_products_dir" echo "-odir $build_products_dir" echo "-hidir $build_products_dir" echo "-stubdir $build_products_dir" if [ -d "$build_dir/semantic-0.11.0.0/build/autogen" ] then add_autogen_includes "$build_dir/semantic-0.11.0.0/build/autogen" elif [ -d "$build_dir/semantic-0.11.0.0/noopt/build/autogen" ] then add_autogen_includes "$build_dir/semantic-0.11.0.0/noopt/build/autogen" fi echo "-optP-Wno-macro-redefined" echo "-DBAZEL_BUILD=0" # .hs source dirs # TODO: would be nice to figure this out from cabal.project & the .cabal files echo "-isemantic/app" echo "-isemantic/src" echo "-isemantic/bench" echo "-isemantic/test" echo "-isemantic-analysis/src" echo "-isemantic-ast/src" echo "-isemantic-codeql/src" echo "-isemantic-codeql/test" echo "-isemantic-go/src" echo "-isemantic-java/src" echo "-isemantic-json/src" echo "-isemantic-json/test" echo "-isemantic-parse/src" echo "-isemantic-php/src" echo "-isemantic-proto/src" echo "-isemantic-python/src" echo "-isemantic-python/test" echo "-isemantic-ruby/src" echo "-isemantic-rust/src" echo "-isemantic-scope-graph/src" echo "-isemantic-tsx/src" echo "-isemantic-typescript/src" echo "-isemantic-tags/src" # disable automatic selection of packages echo "-hide-all-packages" echo "-package proto-lens-jsonpb" # run cabal and emit package flags from the environment file, removing comments & prefixing with - cabal v2-exec -v0 bash -- -c 'cat "$GHC_ENVIRONMENT"' | grep -v '^--' | sed -e 's/^/-/' # default language extensions echo "-XHaskell2010" echo "-XStrictData" # treat warnings as warnings echo "-Wwarn" # default warning flags echo "-Weverything" echo "-Wno-all-missed-specialisations" echo "-Wno-implicit-prelude" echo "-Wno-missed-specialisations" echo "-Wno-missing-import-lists" echo "-Wno-missing-local-signatures" echo "-Wno-monomorphism-restriction" echo "-Wno-name-shadowing" echo "-Wno-safe" echo "-Wno-unsafe" [[ "$ghc_version" = 8.6.* ]] || [[ "$ghc_version" = 8.8.* ]] || [[ "$ghc_version" = 8.10.* ]] && echo "-Wno-star-is-type" || true [[ "$ghc_version" = 8.8.* ]] || [[ "$ghc_version" = 8.10.* ]] && echo "-Wno-missing-deriving-strategies" || true [[ "$ghc_version" = 8.10.* ]] && echo "-Wno-missing-safe-haskell-mode" && echo "-Wno-prepositive-qualified-module" && echo "-Wno-unused-packages" ================================================ FILE: script/profile ================================================ #!/usr/bin/env bash # Usage: script/profile FILE_A FILE_B # Builds and runs semantic on the given files with profiling enabled. set -e HEAD_SHA=$(git rev-parse --short HEAD) CURRENT_BRANCH=$(git symbolic-ref HEAD 2>/dev/null | awk -F/ {'print $NF'}) PROJECT_DIR="$(dirname $0)/.." PROFILES_DIR="$PROJECT_DIR/profiles" TODAY="$(date "+%Y-%m-%d")" NOW=$(date "+%H_%M_%S") PROFILE_DIR="$PROFILES_DIR/$TODAY/$NOW-$CURRENT_BRANCH-$HEAD_SHA/" OUTFILE="$PROFILE_DIR/profile.out.log" ERRFILE="$PROFILE_DIR/profile.err.log" cabal v2-build exe:semantic mkdir -p "$PROFILE_DIR" # NB: Do not try and use -N, it doesn't work and defaults to -N1. cores=$(sysctl -n machdep.cpu.core_count || echo 4) cabal v2-run exe:semantic -- +RTS -sstderr -N$((cores * 2)) -A8m -n2m -p -s -h -i0.1 -L1000 -xt -RTS $@ > "$OUTFILE" 2> "$ERRFILE" profiteur semantic.prof || true hp2pretty semantic.hp for f in "$PROJECT_DIR/"semantic.*; do if [ "$f" != "$PROJECT_DIR/"semantic.cabal ]; then mv "$f" "$PROFILE_DIR" fi done (>&2 echo "branch: $CURRENT_BRANCH ($HEAD_SHA)") open "$PROFILE_DIR" ================================================ FILE: script/protoc ================================================ #!/usr/bin/env bash #/ Usage: script/protoc #/ #/ Generate code from .proto files set -ex cd "$(dirname "$0")/.." docker build -t semantic-protoc --target protoc . PARENT_DIR=$(dirname $(pwd)) export PROJECT="github.com/github/semantic" # Generate Haskell for semantic's protobuf types. See the entrypoint in # Dockerfile for where the protoc pluggins are configured. docker run --rm --user $(id -u):$(id -g) -v $(pwd):/go/src/$PROJECT -w /go/src/$PROJECT \ semantic-protoc --proto_path=proto \ --haskell_out=./semantic-proto/src \ --jsonpb_haskell_out=./semantic-proto/src \ semantic.proto ================================================ FILE: script/publish ================================================ #!/usr/bin/env bash #/ Usage: script/publish #/ #/ Build a docker image of the semantic CLI and publish to the GitHub Package Registry set -e cd $(dirname "$0")/.. VERSION="0.9.0.0" BUILD_SHA=$(git rev-parse HEAD 2>/dev/null) DOCKER_IMAGE=docker.pkg.github.com/github/semantic/semantic # Set the version to the current commit sha SED_ARGS="-i" if [[ "$(uname -s)" = "Darwin" ]]; then SED_ARGS="$SED_ARGS .bak" fi sed $SED_ARGS "s/buildSHA =.*/buildSHA = \"$BUILD_SHA\"/" src/Semantic/Version.hs # Build docker build -t $DOCKER_IMAGE . # Make sure semantic is in the image. docker run --rm $DOCKER_IMAGE --version read -p "Do you want to publish to the GitHub Registry [y/n]? " -n 1 -r echo if [[ $REPLY =~ ^[Yy]$ ]]; then # Requires that you've logged in to the GPR (e.g. `docker login docker.pkg.github.com`) # https://help.github.com/en/articles/configuring-docker-for-use-with-github-package-registry docker tag $DOCKER_IMAGE $DOCKER_IMAGE:latest docker tag $DOCKER_IMAGE $DOCKER_IMAGE:$VERSION docker tag $DOCKER_IMAGE $DOCKER_IMAGE:sha_$BUILD_SHA docker push $DOCKER_IMAGE:sha_$BUILD_SHA docker push $DOCKER_IMAGE:$VERSION docker push $DOCKER_IMAGE:latest fi ================================================ FILE: script/repl ================================================ #!/usr/bin/env bash # Usage: script/repl [ARGS...] # 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. set -e cd "$(dirname "$0")/.." # do a build of dependencies up front to ensure they’re all available cabal v2-build all --enable-benchmarks --enable-tests --only-dependencies # exec ghci with the appropriate flags, and without the $GHC_ENVIRONMENT variable interfering cabal v2-exec env -- -u GHC_ENVIRONMENT ghci -ghci-script=.ghci.repl $(script/ghci-flags) -no-ignore-dot-ghci $@ ================================================ FILE: semantic/BUILD.bazel ================================================ package(default_visibility = ["//visibility:public"]) load( "@rules_haskell//haskell:defs.bzl", "haskell_binary", "haskell_library", "haskell_test", ) load( "@rules_haskell//haskell:cabal.bzl", "haskell_cabal_binary", "haskell_cabal_library", ) load( "//:build/common.bzl", "EXECUTABLE_FLAGS", "GHC_FLAGS", ) load( "//:build/example_repos.bzl", "SEMANTIC_EXTERNAL_TEST_REPOSITORIES", ) semantic_common_dependencies = [ "//:bytestring", "//:containers", "//:process", "//:text", "//semantic-analysis", "//semantic-ast", "//semantic-source", "@stackage//:aeson", "@stackage//:algebraic-graphs", "@stackage//:async", "@stackage//:directory", "@stackage//:fused-effects", "@stackage//:fused-effects-exceptions", "@stackage//:hashable", "@stackage//:network", "@stackage//:pathtype", "@stackage//:recursion-schemes", "@stackage//:safe-exceptions", "@stackage//:scientific", "@stackage//:semilattices", "@stackage//:streaming", "@stackage//:unix", ] haskell_library( name = "semantic", srcs = glob(["src/**/*.hs"]), compiler_flags = GHC_FLAGS + ["-XStrictData"], version = "0.11.0.1", deps = semantic_common_dependencies + [ "//:base", "//:deepseq", "//:filepath", "//:template-haskell", "//semantic-codeql", "//semantic-go", "//semantic-java", "//semantic-json", "//semantic-php", "//semantic-proto", "//semantic-python", "//semantic-ruby", "//semantic-scope-graph", "//semantic-tags", "//semantic-tsx", "//semantic-typescript", "//:ghc-prim", "@stackage//:ansi-terminal", "@stackage//:attoparsec", "@stackage//:bifunctors", "@stackage//:directory-tree", "@stackage//:generic-lens", "@stackage//:haskeline", "@stackage//:hostname", "@stackage//:hscolour", "@stackage//:lens", "@stackage//:network-uri", "@stackage//:optparse-applicative", "@stackage//:parsers", "@stackage//:pretty-show", "@stackage//:prettyprinter", "@stackage//:proto-lens", "@stackage//:proto-lens-runtime", "@stackage//:reducers", "@stackage//:semigroupoids", "@stackage//:split", "@stackage//:stm-chans", "@stackage//:time", "@stackage//:tree-sitter", "@stackage//:tree-sitter-tsx", "@stackage//:unordered-containers", "@stackage//:vector", ], ) haskell_binary( name = "exe", srcs = glob(["app/**/*.hs"]), compiler_flags = GHC_FLAGS + EXECUTABLE_FLAGS + ["-XStrictData"], deps = [ ":semantic", "//:base", "//:filepath", "//semantic-analysis", "//semantic-proto", "@stackage//:optparse-applicative", "@stackage//:unix", ], ) haskell_binary( name = "bench", srcs = glob(["bench/**/*.hs"]), compiler_flags = GHC_FLAGS + EXECUTABLE_FLAGS, deps = [ ":semantic", "//:base", "//semantic-analysis", "//semantic-proto", "@stackage//:Glob", "@stackage//:fused-effects", "@stackage//:gauge", "@stackage//:pathtype", ], ) haskell_test( name = "spec", srcs = glob( include = ["test/**/*.hs"], exclude = [ "test/fixtures/**/*.hs", "test/Examples.hs", "test/System/Path/Fixture.hs", ], ), compiler_flags = GHC_FLAGS + EXECUTABLE_FLAGS + [ "-XStrictData", ], data = glob(include = [ "test/fixtures/**/*.json", "test/fixtures/go/**/*.go", "test/fixtures/python/**/*.py", "test/fixtures/ruby/**/*.rb", "test/fixtures/javascript/**/*.js", "test/fixtures/typescript/**/*.ts", "test/fixtures/cli/*.json", ]), deps = semantic_common_dependencies + [ "//:base", "//semantic", "//semantic-proto", "//semantic-json", "//semantic-tags", "@stackage//:Glob", "@stackage//:HUnit", "@stackage//:bazel-runfiles", "@stackage//:bifunctors", "@stackage//:hedgehog", "@stackage//:hspec", "@stackage//:hspec-core", "@stackage//:hspec-expectations", "@stackage//:tasty", "@stackage//:tasty-golden", "@stackage//:tasty-hedgehog", "@stackage//:tasty-hspec", "@stackage//:tasty-hunit", "@stackage//:temporary", "@stackage//:tree-sitter", ], ) haskell_test( name = "parse-examples", srcs = [ "test/Examples.hs", ], compiler_flags = GHC_FLAGS + EXECUTABLE_FLAGS + [ "-XStrictData", ], data = glob(include = [ "test/fixtures/**/*.json", "test/fixtures/go/**/*.go", "test/fixtures/python/**/*.py", "test/fixtures/ruby/**/*.rb", "test/fixtures/javascript/**/*.js", "test/fixtures/typescript/**/*.ts", "test/fixtures/cli/*.json", ]) + SEMANTIC_EXTERNAL_TEST_REPOSITORIES, deps = semantic_common_dependencies + [ "//:base", "//semantic", "//semantic-proto", "@stackage//:Glob", "@stackage//:bazel-runfiles", "@stackage//:lens", "@stackage//:tasty", "@stackage//:tasty-hunit", ], ) ================================================ FILE: semantic/LICENSE ================================================ MIT License Copyright (c) 2015-2019 GitHub Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: semantic/README.md ================================================ This package provides the `semantic` executable and its needed infrastructure. ================================================ FILE: semantic/Setup.hs ================================================ import Distribution.Simple main = defaultMain ================================================ FILE: semantic/app/Main.hs ================================================ module Main (main) where import Semantic.CLI (main) ================================================ FILE: semantic/bench/Main.hs ================================================ module Main (main) where import Gauge import qualified Tagging main :: IO () main = defaultMain [ Tagging.benchmarks ] ================================================ FILE: semantic/bench/Tagging.hs ================================================ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeApplications #-} module Tagging ( benchmarks , runTagging , pythonBenchmarks , goBenchmarks , rubyBenchmarks ) where import Control.Carrier.Parse.Measured import Control.Exception (throwIO) import Control.Monad import Data.Foldable import Gauge import System.FilePath.Glob import qualified System.Path as Path import qualified Analysis.File as File import Data.Flag import Proto.Semantic as P hiding (Blob) import Semantic.Api.Symbols (parseSymbols) import Semantic.Config as Config import Semantic.Task import Semantic.Task.Files benchmarks :: Benchmark benchmarks = bgroup "tagging" [ bench "jquery" $ runTagging' (Path.relFile "semantic/test/fixtures/jquery-3.5.1.min.js") , bench "sinatra" $ runTagging' (Path.relFile "semantic/test/fixtures/base.rb") ] -- Feel free to turn these on or write other benchmarks -- [ pythonBenchmarks -- , goBenchmarks -- , rubyBenchmarks -- ] runTagging' :: Path.RelFile -> Benchmarkable runTagging' path = nfIO . withOptions testOptions $ \ config logger statter -> do let session = TaskSession config "-" False logger statter runTask session (runParse (parseSymbolsFilePath path)) >>= either throwIO pure pythonBenchmarks :: Benchmark pythonBenchmarks = bgroup "python" [ bench "precise" $ runTagging pyDir "*.py" ] where pyDir = Path.relDir "tmp/python-examples/keras/keras" goBenchmarks :: Benchmark goBenchmarks = bgroup "go" [ bench "precise" $ runTagging dir "*.go" ] where dir = Path.relDir "tmp/go-examples/go/src/database/sql" rubyBenchmarks :: Benchmark rubyBenchmarks = bgroup "ruby" [ bench "precise" $ runTagging dir "*.rb" ] where dir = Path.relDir "tmp/ruby-examples/ruby_spec/command_line" runTagging :: Path.RelDir -> String -> Benchmarkable runTagging dir glob = nfIO . withOptions testOptions $ \ config logger statter -> do let session = TaskSession config "-" False logger statter files <- globDir1 (compile glob) (Path.toString dir) when (null files) (fail ("No files in " <> Path.toString dir)) let paths = Path.relFile <$> files for_ paths (runTask session . runParse . parseSymbolsFilePath >=> either throwIO pure) parseSymbolsFilePath :: ( Has (Error SomeException) sig m , Has Parse sig m , Has Files sig m ) => Path.RelFile -> m ParseTreeSymbolResponse parseSymbolsFilePath path = readBlob (File.fromPath path) >>= parseSymbols . pure @[] testOptions :: Config.Options testOptions = defaultOptions { optionsFailOnWarning = flag FailOnWarning True , optionsLogLevel = Nothing } ================================================ FILE: semantic/bench/bench-fixtures/python/function-definition.py ================================================ def a(): b def c(d): e def g(g, *h): i def h(i=1): i def i(j="default", **c): j ================================================ FILE: semantic/bench/bench-fixtures/python/if-statement-functions.py ================================================ def foo(): return "bipp" def bar(): return foo() def baz(): return bar() def why(): return "elle" if True: baz() else: why() ================================================ FILE: semantic/bench/bench-fixtures/python/simple-assignment.py ================================================ foo = 2 bar = foo dang = 3 song = dang song ================================================ FILE: semantic/bench/bench-fixtures/ruby/function-definition.rb ================================================ def a() "b" end def c(d) "e" end def g(g_) "i" end def h(i=1) i end def i() "j" end ================================================ FILE: semantic/bench/bench-fixtures/ruby/if-statement-functions.rb ================================================ def foo() "bipp" end def bar() foo() end def baz() bar() end def why() return "elle" end if true baz() else why() end ================================================ FILE: semantic/bench/bench-fixtures/ruby/simple-assignment.rb ================================================ foo = 2 bar = foo dang = 3 song = dang song ================================================ FILE: semantic/semantic.cabal ================================================ cabal-version: 2.4 name: semantic version: 0.11.0.1 synopsis: Framework and executable for analyzing and diffing untrusted code. description: Semantic is a library for parsing, analyzing, and comparing source code across many languages. homepage: http://github.com/github/semantic#readme bug-reports: https://github.com/github/semantic/issues license: MIT license-file: LICENSE author: The Semantic authors maintainer: opensource+semantic@github.com copyright: (c) 2015-2020 GitHub, Inc. category: Language build-type: Simple stability: alpha extra-source-files: README.md tested-with: GHC == 8.10.1 flag release description: Build with optimizations on (for CI or deployment builds) default: False -- GHC extensions shared between targets common haskell default-language: Haskell2010 default-extensions: StrictData ghc-options: -Weverything -Wno-missing-local-signatures -Wno-missing-import-lists -Wno-implicit-prelude -Wno-safe -Wno-unsafe -Wno-name-shadowing -Wno-monomorphism-restriction -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-star-is-type cpp-options: -DBAZEL_BUILD=0 if (impl(ghc >= 8.8)) ghc-options: -Wno-missing-deriving-strategies if (impl(ghc >= 8.10)) ghc-options: -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module if (impl(ghc >= 9.2)) ghc-options: -Wno-missing-kind-signatures common executable-flags ghc-options: -threaded -rtsopts "-with-rtsopts=-N -A4m -n2m" library import: haskell hs-source-dirs: src exposed-modules: Control.Carrier.Parse.Measured , Control.Carrier.Parse.Simple -- Effects , Control.Effect.Parse , Control.Effect.Sum.Project , Control.Effect.Timeout -- General datatype definitions & generic algorithms , Data.Blob , Data.Blob.IO , Data.Duration , Data.Edit , Data.Error , Data.Flag , Data.Graph.Algebraic , Data.Handle , Data.Maybe.Exts , Data.Semigroup.App -- Parser glue , Parsing.Parser , Parsing.TreeSitter -- API , Semantic.Api , Semantic.Api.Bridge , Semantic.Api.StackGraph , Semantic.Api.Symbols , Semantic.Api.Terms , Semantic.CLI , Semantic.Config , Semantic.Env , Semantic.IO , Semantic.Task , Semantic.Task.Files , Semantic.Telemetry , Semantic.Telemetry.AsyncQueue , Semantic.Telemetry.Error , Semantic.Telemetry.Log , Semantic.Telemetry.Stat , Semantic.Util , Semantic.Util.Pretty , Semantic.Version -- Serialization , Serializing.Format , Serializing.SExpression.Precise -- Custom Prelude autogen-modules: Paths_semantic other-modules: Paths_semantic -- Except in case of vendored dependencies, these deps should be expressed -- as caret-operator bounds relative to a version in Stackage. -- These are currently pinned to lts-13.13. build-depends: , aeson >= 1.4.2.0 && < 3 , algebraic-graphs >= 0.3 && < 0.7 , ansi-terminal >= 0.8.2 && <1 , async ^>= 2.2.1 , base >= 4.13 && < 5 , bytestring >= 0.10.8.2 && < 0.13 , containers ^>= 0.6.2 , directory-tree ^>= 0.12.1 , filepath ^>= 1.4.2.1 , fused-effects ^>= 1.1 , hostname ^>= 1.0 , hscolour ^>= 1.24.4 , lens >= 4.17 && < 5.3 , network >= 2.8 && < 3.2 , network-uri ^>= 2.6.1.0 , optparse-applicative >= 0.14.3 && < 0.16 , pretty-show ^>= 1.9.5 , proto-lens >= 0.5 && < 0.8 , semantic-analysis ^>= 0 , semantic-ast , semantic-codeql ^>= 0 , semantic-go ^>= 0 , semantic-java ^>= 0 , semantic-json ^>= 0 , semantic-php ^>= 0 , semantic-proto ^>= 0 , semantic-python ^>= 0 , semantic-ruby ^>= 0 , semantic-scope-graph ^>= 0 , semantic-source ^>= 0.2 , semantic-tags ^>= 0 , semantic-tsx ^>= 0 , semantic-typescript ^>= 0 , semilattices ^>= 0.0.0.3 , split ^>= 0.2.3.3 , stm-chans ^>= 3.0.0.4 , text ^>= 1.2.3.2 , time >= 1.8.0.2 && < 1.10 , tree-sitter ^>= 0.9.0.1 , unix ^>= 2.7.2.2 executable semantic import: haskell, executable-flags hs-source-dirs: app main-is: Main.hs build-depends: , base , semantic test-suite test import: haskell, executable-flags type: exitcode-stdio-1.0 hs-source-dirs: test main-is: Spec.hs other-modules: Data.Graph.Spec , Data.Language.Spec , Data.Semigroup.App.Spec , Integration.Spec , Semantic.Spec , Semantic.CLI.Spec , Semantic.IO.Spec , Semantic.Stat.Spec , Tags.Spec , SpecHelpers , Generators , Properties build-depends: , algebraic-graphs >= 0.3 && < 0.7 , base >= 4.13 && < 5 , bytestring >= 0.10.8.2 && < 0.13 , directory , filepath , fused-effects , Glob ^>= 0.10.0 , hedgehog >= 1 && < 1.2 , hspec >= 2.6 && <3 , hspec-expectations ^>= 0.8.2 , network >= 2.8 && < 3.2 , semantic , semantic-analysis , semantic-ast , semantic-proto , semantic-source ^>= 0.2 , semantic-tags , semilattices , tasty ^>= 1.2.3 , tasty-golden ^>= 2.3.2 , tasty-hedgehog >= 1.0.0.1 && < 1.3 , tasty-hspec >= 1.1.5.1 && < 1.3 , tasty-hunit ^>= 0.10.0.2 test-suite parse-examples import: haskell, executable-flags type: exitcode-stdio-1.0 hs-source-dirs: test main-is: Examples.hs build-depends: , async ^>= 2.2.1 , base , filepath , fused-effects ^>= 1.1 , Glob , lens >= 4.17 && < 5.2 , process ^>= 1.6.3.0 , semantic , semantic-analysis ^>= 0 , semantic-ast , semantic-proto ^>= 0 , tasty , tasty-hunit , text ^>= 1.2.3.2 benchmark benchmarks import: haskell, executable-flags hs-source-dirs: bench type: exitcode-stdio-1.0 main-is: Main.hs other-modules: Tagging ghc-options: -static build-depends: , base , fused-effects ^>= 1.1 , gauge ^>= 0.2.5 , Glob , semantic , semantic-analysis ^>= 0 , semantic-proto source-repository head type: git location: https://github.com/github/semantic ================================================ FILE: semantic/src/Control/Carrier/Parse/Measured.hs ================================================ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} -- | A carrier for 'Parse' effects suitable for use in production. module Control.Carrier.Parse.Measured ( -- * Parse carrier ParseC(..) -- * Exceptions , ParsingTimedOut(..) -- * Parse effect , module Control.Effect.Parse ) where import Control.Algebra import Control.Effect.Error import Control.Effect.Lift import Control.Effect.Parse import Control.Effect.Reader import Control.Effect.Trace import Control.Exception import Control.Monad import Control.Monad.IO.Class import Data.Blob import qualified Data.Flag as Flag import Parsing.Parser import Parsing.TreeSitter import Semantic.Config import Semantic.Task (TaskSession (..)) import Semantic.Telemetry newtype ParseC m a = ParseC { runParse :: m a } deriving (Applicative, Functor, Monad, MonadFail, MonadIO) instance ( Has (Error SomeException) sig m , Has (Reader TaskSession) sig m , Has Telemetry sig m , Has Trace sig m , Has (Lift IO) sig m , MonadIO m ) => Algebra (Parse :+: sig) (ParseC m) where alg hdl sig ctx = case sig of L (Parse parser blob) -> (<$ ctx) <$> runParser blob parser R other -> ParseC (alg (runParse . hdl) other ctx) -- | Parse a 'Blob' in 'IO'. runParser :: ( Has (Error SomeException) sig m , Has (Reader TaskSession) sig m , Has Telemetry sig m , Has Trace sig m , MonadIO m ) => Blob -> Parser term -> m term runParser blob parser = case parser of UnmarshalParser language -> time "parse.tree_sitter_precise_ast_parse" languageTag $ do config <- asks config executeParserAction (parseToPreciseAST (configTreeSitterParseTimeout config) (configTreeSitterUnmarshalTimeout config) language blob) `catchError` \(SomeException e) -> do writeStat (increment "parse.precise_ast_parse_failures" languageTag) writeLog Error "precise parsing failed" (("task", "parse") : ("exception", "\"" <> displayException e <> "\"") : languageTag) throwError (SomeException e) where languageTag = [("language" :: String, show (blobLanguage blob))] executeParserAction act = do -- Test harnesses can specify that parsing must fail, for testing purposes. shouldFailFlag <- asks (Flag.toBool FailTestParsing . configFailParsingForTesting . config) when shouldFailFlag (throwError (SomeException ParsingTimedOut)) act >>= either (\e -> trace (displayException e) *> throwError (SomeException e)) pure data ParsingTimedOut = ParsingTimedOut deriving (Eq, Show) instance Exception ParsingTimedOut ================================================ FILE: semantic/src/Control/Carrier/Parse/Simple.hs ================================================ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} -- | A carrier for 'Parse' effects suitable for use in the repl, tests, etc. module Control.Carrier.Parse.Simple ( -- * Parse carrier ParseC(ParseC) , runParse -- * Exceptions , ParseFailure(..) -- * Parse effect , module Control.Effect.Parse ) where import Control.Algebra import Control.Carrier.Reader import Control.Effect.Error import Control.Effect.Parse import Control.Exception import Control.Monad.IO.Class import Data.Blob import Parsing.Parser import Parsing.TreeSitter runParse :: Duration -> ParseC m a -> m a runParse timeout = runReader timeout . runParseC newtype ParseC m a = ParseC { runParseC :: ReaderC Duration m a } deriving (Applicative, Functor, Monad, MonadFail, MonadIO) instance ( Has (Error SomeException) sig m , MonadIO m ) => Algebra (Parse :+: sig) (ParseC m) where alg hdl sig ctx = case sig of L (Parse parser blob) -> ParseC ask >>= \ timeout -> (<$ ctx) <$> runParser timeout blob parser R other -> ParseC (alg (runParseC . hdl) (R other) ctx) -- | Parse a 'Blob' in 'IO'. runParser :: ( Has (Error SomeException) sig m , MonadIO m ) => Duration -> Blob -> Parser term -> m term runParser timeout blob parser = case parser of UnmarshalParser language -> parseToPreciseAST timeout timeout language blob >>= either (throwError . SomeException) pure newtype ParseFailure = ParseFailure String deriving (Show) instance Exception ParseFailure ================================================ FILE: semantic/src/Control/Effect/Parse.hs ================================================ {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE RankNTypes #-} module Control.Effect.Parse ( -- * Parse effect Parse(..) , parse , parserForLanguage , parserForBlob , parseWith , parsePairWith -- * Re-exports , Algebra , Has , run ) where import Control.Algebra import Control.Effect.Error import Control.Exception (SomeException) import Data.Bitraversable import Data.Blob import Data.Edit import Data.Kind (Type) import qualified Data.Map as Map import Parsing.Parser import Source.Language (Language (..)) data Parse (m :: Type -> Type) k where Parse :: Parser term -> Blob -> Parse m term -- | Parse a 'Blob' with the given 'Parser'. parse :: Has Parse sig m => Parser term -> Blob -> m term parse parser blob = send (Parse parser blob) -- | Select a parser for the given 'Language'. parserForLanguage :: Map.Map Language (SomeParser c ann) -> Language -> Maybe (SomeParser c ann) parserForLanguage = flip Map.lookup -- | Select a parser for the given 'Blob'. parserForBlob :: Map.Map Language (SomeParser c ann) -> Blob -> Maybe (SomeParser c ann) parserForBlob parsers = parserForLanguage parsers . blobLanguage -- | Parse a 'Blob' with one of the provided parsers, and run an action on the abstracted term. parseWith :: (Has (Error SomeException) sig m, Has Parse sig m) => Map.Map Language (SomeParser c ann) -- ^ The set of parsers to select from. -> (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@. -> Blob -- ^ The blob to parse. -> m a parseWith parsers with blob = case parserForBlob parsers blob of Just (SomeParser parser) -> parse parser blob >>= with _ -> noLanguageForBlob (blobPath blob) -- | Parse a 'BlobPair' with one of the provided parsers, and run an action on the abstracted term pair. parsePairWith :: (Has (Error SomeException) sig m, Has Parse sig m) => Map.Map Language (SomeParser c ann) -- ^ The set of parsers to select from. -> (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@. -> BlobPair -- ^ The blob pair to parse. -> m a parsePairWith parsers with blobPair = case parserForLanguage parsers (languageForBlobPair blobPair) of Just (SomeParser parser) -> bitraverse (p parser) (p parser) blobPair >>= with _ -> noLanguageForBlob (pathForBlobPair blobPair) where p parser blob = (,) blob <$> parse parser blob ================================================ FILE: semantic/src/Control/Effect/Sum/Project.hs ================================================ {-# LANGUAGE FlexibleInstances, KindSignatures, MultiParamTypeClasses, TypeOperators #-} module Control.Effect.Sum.Project ( Project (..) ) where import Control.Effect.Sum class Member sub sup => Project (sub :: (* -> *) -> (* -> *)) sup where prj :: sup m a -> Maybe (sub m a) instance Project sub sub where prj = Just instance {-# OVERLAPPABLE #-} Project sub (sub :+: sup) where prj (L f) = Just f prj _ = Nothing instance {-# OVERLAPPABLE #-} Project sub sup => Project sub (sub' :+: sup) where prj (R g) = prj g prj _ = Nothing ================================================ FILE: semantic/src/Control/Effect/Timeout.hs ================================================ {-# LANGUAGE ScopedTypeVariables #-} module Control.Effect.Timeout ( timeout ) where import Control.Algebra import Control.Effect.Lift import Data.Duration import qualified System.Timeout as System -- | Run an action with a timeout. Returns 'Nothing' when no result is available -- within the specified duration. Uses 'System.Timeout.timeout' so all caveats -- about not operating over FFI boundaries apply. -- -- Any state changes in the action are discarded if the timeout fails. timeout :: Has (Lift IO) sig m => Duration -> m a -> m (Maybe a) timeout n m = liftWith $ \ hdl ctx -> maybe -- Restore the old state if it timed out. (Nothing <$ ctx) -- Apply it if it succeeded. (fmap Just) <$> System.timeout (toMicroseconds n) (hdl (m <$ ctx)) ================================================ FILE: semantic/src/Data/Blob/IO.hs ================================================ {-# LANGUAGE ViewPatterns #-} -- | These are primitive file IO methods for use in ghci and as internal functions. -- Instead of using these, consider if you can use the Files DSL instead. module Data.Blob.IO ( readBlobFromFile , readBlobFromFile' , readBlobFromPath , readFilePair , readProjectFromPaths ) where import Analysis.Blob import Analysis.File as File import Analysis.Project import Analysis.Reference import Control.Monad.IO.Class import Data.Blob import qualified Data.ByteString as B import Data.Maybe.Exts import Semantic.IO import Source.Language import qualified Source.Source as Source import Source.Span -- | Deprecated: this has very weird semantics. readProjectFromPaths :: MonadIO m => Maybe FilePath -- ^ An optional root directory for the project -> FilePath -- ^ A file or directory to parse. Passing a file path loads all files in that file's parent directory. -> Language -> [FilePath] -- ^ Directories to exclude. -> m Project readProjectFromPaths maybeRoot path lang excludeDirs = do let rootDir = fromMaybe path maybeRoot paths <- liftIO $ findFilesInDir rootDir exts excludeDirs blobs <- liftIO $ traverse (readBlobFromFile' . toFile) paths pure $ Project rootDir blobs lang excludeDirs where toFile path = File (Reference path (point (Pos 1 1))) lang exts = extensionsForLanguage lang -- | Read a utf8-encoded file to a 'Blob'. readBlobFromFile :: MonadIO m => File Language -> m (Maybe Blob) readBlobFromFile (File (Reference "/dev/null" _) _) = pure Nothing readBlobFromFile file@(File (Reference path _) _language) = do raw <- liftIO $ B.readFile path let newblob = Blob (Source.fromUTF8 raw) file pure . Just $ newblob -- | Read a utf8-encoded file to a 'Blob', failing if it can't be found. readBlobFromFile' :: (MonadFail m, MonadIO m) => File Language -> m Blob readBlobFromFile' file = do maybeFile <- readBlobFromFile file maybeM (fail ("cannot read '" <> show file <> "', file not found or language not supported.")) maybeFile -- | Read a blob from the provided absolute or relative path , failing if it can't be found. readBlobFromPath :: (MonadFail m, MonadIO m) => FilePath -> m Blob readBlobFromPath = readBlobFromFile' . File.fromPath readFilePair :: MonadIO m => File Language -> File Language -> m BlobPair readFilePair a b = do before <- readBlobFromFile a after <- readBlobFromFile b liftIO $ maybeBlobPair before after ================================================ FILE: semantic/src/Data/Blob.hs ================================================ {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE ExplicitNamespaces #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# OPTIONS_GHC -fno-warn-orphans #-} -- | Semantic-specific functionality for blob handling. module Data.Blob ( Blobs(..) , NoLanguageForBlob (..) , decodeBlobs , moduleForBlob , noLanguageForBlob , BlobPair , maybeBlobPair , decodeBlobPairs , languageForBlobPair , languageTagForBlobPair , pathForBlobPair , pathKeyForBlobPair , module Analysis.Blob ) where import Analysis.Blob import Control.Effect.Error import Control.Exception import Data.Aeson import Data.Bifunctor import qualified Data.ByteString.Lazy as BL import Data.Edit import Data.List (stripPrefix) import Data.Maybe.Exts import Data.Module import GHC.Generics (Generic) import Source.Language as Language import qualified System.FilePath as Path newtype Blobs a = Blobs { blobs :: [a] } deriving (Generic, FromJSON) decodeBlobs :: BL.ByteString -> Either String [Blob] decodeBlobs = fmap blobs <$> eitherDecode -- | An exception indicating that we’ve tried to diff or parse a blob of unknown language. newtype NoLanguageForBlob = NoLanguageForBlob FilePath deriving (Eq, Exception, Ord, Show) noLanguageForBlob :: Has (Error SomeException) sig m => FilePath -> m a noLanguageForBlob blobPath = throwError (SomeException (NoLanguageForBlob blobPath)) -- | Construct a 'Module' for a 'Blob' and @term@, relative to some root 'FilePath'. moduleForBlob :: Maybe FilePath -- ^ The root directory relative to which the module will be resolved, if any. TODO: typed paths -> Blob -- ^ The 'Blob' containing the module. -> term -- ^ The @term@ representing the body of the module. -> Module term -- ^ A 'Module' named appropriate for the 'Blob', holding the @term@, and constructed relative to the root 'FilePath', if any. moduleForBlob rootDir b = Module info where root = fromMaybe (Path.takeDirectory $ blobPath b) rootDir info = ModuleInfo (dropRelative root (blobPath b)) (languageToText (blobLanguage b)) mempty dropRelative :: FilePath -> FilePath -> FilePath dropRelative a' b' = case as `stripPrefix` bs of Just rs | ra == rb -> foldl (Path.) "." rs Path. bf _ -> b' where (ra, as) = splitPath $ Path.normalise a' (rb, bs) = splitPath $ Path.normalise $ Path.takeDirectory b' bf = Path.takeFileName b' splitPath p = (Path.isAbsolute p, Path.splitDirectories p) -- | Represents a blobs suitable for diffing which can be either a blob to -- delete, a blob to insert, or a pair of blobs to diff. type BlobPair = Edit Blob Blob instance FromJSON BlobPair where parseJSON = withObject "BlobPair" $ \o -> fromMaybes <$> (o .:? "before") <*> (o .:? "after") >>= maybeM (Prelude.fail "Expected object with 'before' and/or 'after' keys only") maybeBlobPair :: MonadFail m => Maybe Blob -> Maybe Blob -> m BlobPair maybeBlobPair a b = maybeM (fail "expected file pair with content on at least one side") (fromMaybes a b) languageForBlobPair :: BlobPair -> Language languageForBlobPair = mergeEdit combine . bimap blobLanguage blobLanguage where combine a b | a == Unknown || b == Unknown = Unknown | otherwise = b pathForBlobPair :: BlobPair -> FilePath pathForBlobPair = blobPath . mergeEdit (const id) languageTagForBlobPair :: BlobPair -> [(String, String)] languageTagForBlobPair pair = showLanguage (languageForBlobPair pair) where showLanguage = pure . (,) "language" . show pathKeyForBlobPair :: BlobPair -> FilePath pathKeyForBlobPair = mergeEdit combine . bimap blobFilePath blobFilePath where combine before after | before == after = after | otherwise = before <> " -> " <> after decodeBlobPairs :: BL.ByteString -> Either String [BlobPair] decodeBlobPairs = fmap blobs <$> eitherDecode ================================================ FILE: semantic/src/Data/Duration.hs ================================================ module Data.Duration ( Duration(..) , fromSeconds , fromMilliseconds , fromMicroseconds , fromNanoseconds , toMicroseconds , toSeconds ) where -- A duration suitable for timeouts stored as an int of milliseconds. newtype Duration = Milliseconds Int deriving (Eq, Ord) instance Show Duration where showsPrec _ (Milliseconds n) = shows n <> showString "ms" fromSeconds :: Int -> Duration fromSeconds n = fromMilliseconds (n * 1000) -- milli = 10E-3 seconds fromMilliseconds :: Int -> Duration fromMilliseconds n | n <= 0 = Milliseconds 0 | otherwise = Milliseconds n -- micro = 10E-6 seconds fromMicroseconds :: Int -> Duration fromMicroseconds n = fromMilliseconds (n `div` 1000) -- nano = 10E-9 seconds fromNanoseconds :: Int -> Duration fromNanoseconds n = fromMicroseconds (n `div` 1000) toMicroseconds :: Duration -> Int toMicroseconds (Milliseconds n) = n * 1000 toSeconds :: Duration -> Int toSeconds (Milliseconds n) = n `div` 1000 ================================================ FILE: semantic/src/Data/Edit.hs ================================================ {-# LANGUAGE DeriveGeneric, DeriveTraversable, LambdaCase #-} module Data.Edit ( Edit(..) , edit , mergeEdit , fromMaybes ) where import Control.Applicative ((<|>), liftA2) import Data.Bifoldable import Data.Bifunctor import Data.Bitraversable import Data.Functor.Classes import GHC.Generics (Generic, Generic1) -- | The deletion, insertion, or comparison of values. data Edit a b = Delete a | Insert b | Compare a b deriving (Eq, Foldable, Functor, Generic, Generic1, Ord, Show, Traversable) -- | Eliminate an 'Edit' by case analysis. edit :: (l -> a) -> (r -> a) -> (l -> r -> a) -> Edit l r -> a edit delete insert compare = \case Delete a -> delete a Insert b -> insert b Compare a b -> compare a b -- | Extract the values from an 'Edit', combining 'Compare's with the passed function. mergeEdit :: (a -> a -> a) -> Edit a a -> a mergeEdit = edit id id fromMaybes :: Maybe a -> Maybe b -> Maybe (Edit a b) fromMaybes a b = liftA2 Compare a b <|> Delete <$> a <|> Insert <$> b instance Bifunctor Edit where bimap = bimapDefault instance Bifoldable Edit where bifoldMap = bifoldMapDefault instance Bitraversable Edit where bitraverse f g = \case Delete a -> Delete <$> f a Insert b -> Insert <$> g b Compare a b -> Compare <$> f a <*> g b instance Eq2 Edit where liftEq2 eql eqr = curry $ \case (Delete a1 , Delete a2 ) -> eql a1 a2 (Insert b1, Insert b2) -> eqr b1 b2 (Compare a1 b1, Compare a2 b2) -> eql a1 a2 && eqr b1 b2 _ -> False instance Ord2 Edit where liftCompare2 cmpl cmpr = curry $ \case (Delete a1 , Delete a2 ) -> cmpl a1 a2 (Delete _ , _ ) -> LT (Insert b1, Insert b2) -> cmpr b1 b2 (Insert _ , _ ) -> LT (Compare a1 b1, Compare a2 b2) -> cmpl a1 a2 <> cmpr b1 b2 _ -> GT instance Show2 Edit where liftShowsPrec2 spl _ spr _ d = \case Delete a -> showsUnaryWith spl "Delete" d a Insert b -> showsUnaryWith spr "Insert" d b Compare a b -> showsBinaryWith spl spr "Compare" d a b ================================================ FILE: semantic/src/Data/Error.hs ================================================ {-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE RecordWildCards #-} module Data.Error ( Error (..) , formatError , makeError , showExpectation , showExcerpt , withSGRCode -- * Flags affecting 'Error' values , LogPrintSource (..) , Colourize (..) ) where import Control.Exception (Exception) import Data.ByteString.Char8 (unpack) import Data.Foldable import Data.Ix (inRange) import Data.List (intersperse, isSuffixOf) import GHC.Stack import System.Console.ANSI import Data.Blob import Data.Flag as Flag import qualified Source.Source as Source import Source.Span data LogPrintSource = LogPrintSource data Colourize = Colourize -- | Rather than using the Error constructor directly, you probably -- want to call 'makeError', which takes care of inserting the call -- stack for you. data Error grammar = Error { errorSpan :: Span , errorExpected :: [grammar] , errorActual :: Maybe grammar , errorCallStack :: CallStack } deriving (Show, Functor) -- | This instance does not take into account the call stack. instance Eq grammar => Eq (Error grammar) where (Error s e a _) == (Error s' e' a' _) = (s == s') && (e == e') && (a == a') instance Exception (Error String) makeError :: HasCallStack => Span -> [grammar] -> Maybe grammar -> Error grammar makeError s e a = withFrozenCallStack (Error s e a callStack) -- | Format an 'Error', optionally with reference to the source where it occurred. formatError :: Flag LogPrintSource -> Flag Colourize -> Blob -> Error String -> String formatError includeSource colourize blob Error{..} = ($ "") $ withSGRCode colourize [SetConsoleIntensity BoldIntensity] (showSpan path errorSpan . showString ": ") . withSGRCode colourize [SetColor Foreground Vivid Red] (showString "error") . showString ": " . showExpectation colourize errorExpected errorActual . showChar '\n' . (if Flag.toBool LogPrintSource includeSource then showExcerpt colourize errorSpan blob else id) . showCallStack colourize callStack . showChar '\n' where path = Just $ if Flag.toBool LogPrintSource includeSource then blobFilePath blob else "" showExcerpt :: Flag Colourize -> Span -> Blob -> ShowS showExcerpt colourize Span{..} Blob{..} = showString context . (if "\n" `isSuffixOf` context then id else showChar '\n') . showString (replicate (caretPaddingWidth + lineNumberDigits) ' ') . withSGRCode colourize [SetColor Foreground Vivid Green] (showString caret) . showChar '\n' where context = fold contextLines contextLines = [ showLineNumber i <> ": " <> unpack (Source.bytes l) | (i, l) <- zip [1..] (Source.lines blobSource) , inRange (line start - 2, line start) i ] showLineNumber n = let s = show n in replicate (lineNumberDigits - length s) ' ' <> s lineNumberDigits = succ (floor (logBase 10 (fromIntegral (line start) :: Double))) caretPaddingWidth = succ (column start) caret | line start == line end = replicate (max 1 (column end - column start)) '^' | otherwise = "^..." withSGRCode :: Flag Colourize -> [SGR] -> ShowS -> ShowS withSGRCode useColour code content | Flag.toBool Colourize useColour = showString (setSGRCode code) . content . showString (setSGRCode []) | otherwise = content showExpectation :: Flag Colourize -> [String] -> Maybe String -> ShowS showExpectation colourize = go where go [] Nothing = showString "no rule to match at " . showActual "end of branch" go expected Nothing = showString "expected " . showSymbols colourize expected . showString " at " . showActual "end of branch" go expected (Just actual) = showString "expected " . showSymbols colourize expected . showString ", but got " . showActual actual showActual = withSGRCode colourize [SetColor Foreground Vivid Green] . showString showSymbols :: Flag Colourize -> [String] -> ShowS showSymbols colourize = go where go [] = showString "end of input nodes" go [symbol] = showSymbol symbol go [a, b] = showSymbol a . showString " or " . showSymbol b go [a, b, c] = showSymbol a . showString ", " . showSymbol b . showString ", or " . showSymbol c go (h:t) = showSymbol h . showString ", " . go t showSymbol = withSGRCode colourize [SetColor Foreground Vivid Red] . showString showSpan :: Maybe FilePath -> Span -> ShowS showSpan path Span{..} = maybe (showParen True (showString "interactive")) showString path . showChar ':' . (if start == end then showPos start else showPos start . showChar '-' . showPos end) where showPos Pos{..} = shows line . showChar ':' . shows column showCallStack :: Flag Colourize -> CallStack -> ShowS showCallStack colourize callStack = foldr (.) id (intersperse (showChar '\n') (uncurry (showCallSite colourize) <$> getCallStack callStack)) showCallSite :: Flag Colourize -> String -> SrcLoc -> ShowS showCallSite colourize symbol loc@SrcLoc{..} = showString symbol . showChar ' ' . withSGRCode colourize [SetConsoleIntensity BoldIntensity] (showParen True (showSpan (Just srcLocFile) (spanFromSrcLoc loc))) ================================================ FILE: semantic/src/Data/Flag.hs ================================================ -- | -- This technique is due to Oleg Grenrus: -- The implementation is clean-room due to unclear licensing of the original post. module Data.Flag ( Flag , flag , toBool , switch , choose ) where import Data.Coerce -- | To declare a new flag, declare a singly-inhabited type: -- @data MyFlag = MyFlag@ -- then use the @flag MyFlag@ to create one from a 'Bool'. -- This is more verbose than using 'Bool' for everything but prevents classes of errors when -- working with multiple flag values in flight, as the 'toBool' deconstructor provides a witness -- that you really want the given semantic flag value from the flag datum. newtype Flag t = Flag Bool deriving (Eq, Show) -- | The constructor for a 'Flag'. You specify @t@ with a visible type application. flag :: t -> Bool -> Flag t flag _ = Flag {-# INLINE flag #-} -- | The destructor for a 'Flag'. You pass in the inhabitant of @t@ to -- avoid boolean blindness. toBool :: t -> Flag t -> Bool toBool _ = coerce {-# INLINE toBool #-} switch :: a -> b -> Flag a -> Flag b switch _ _ = coerce -- | Case analysis, like 'bool'. choose :: t -- ^ Witness -> a -- ^ False case -> a -- ^ True case -> Flag t -> a choose _ f t flag = if coerce flag then t else f {-# INLINE choose #-} ================================================ FILE: semantic/src/Data/Graph/Algebraic.hs ================================================ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE UndecidableInstances #-} module Data.Graph.Algebraic ( Graph(..) , overlay , connect , vertex , Lower(..) , simplify , topologicalSort , VertexTag(..) , Edge(..) , vertexList , edgeList ) where import qualified Algebra.Graph as G import qualified Algebra.Graph.AdjacencyMap as A import Algebra.Graph.Class (connect, overlay, vertex) import qualified Algebra.Graph.Class as Class import qualified Algebra.Graph.ToGraph as Class import Control.Applicative import Control.Carrier.State.Strict import Data.Aeson import Data.Foldable import Data.Function import Data.Semilattice.Lower import Data.Set (Set) import qualified Data.Set as Set -- | An algebraic graph with 'Ord', 'Semigroup', and 'Monoid' instances. newtype Graph vertex = Graph { unGraph :: G.Graph vertex } deriving (Alternative, Applicative, Eq, Functor, Monad, Show, Class.Graph) instance Ord t => Class.ToGraph (Graph t) where type ToVertex (Graph t) = t toGraph = Class.toGraph . unGraph simplify :: Ord vertex => Graph vertex -> Graph vertex simplify (Graph graph) = Graph (G.simplify graph) -- | Sort a graph’s vertices topologically. Specced in @Data.Graph.Spec@. topologicalSort :: forall v . Ord v => Graph v -> [v] topologicalSort = go . Class.toAdjacencyMap . G.transpose . unGraph where go :: A.AdjacencyMap v -> [v] go graph = visitedOrder . fst . run . runState (Visited lowerBound []) . traverse_ visit . A.vertexList $ graph where visit :: Has (State (Visited v)) sig m => v -> m () visit v = do isMarked <- Set.member v . visitedVertices <$> get if isMarked then pure () else do modify (extendVisited (Set.insert v)) traverse_ visit (Set.toList (A.postSet v graph)) modify (extendOrder (v :)) data Visited v = Visited { visitedVertices :: !(Set v), visitedOrder :: [v] } extendVisited :: (Set v -> Set v) -> Visited v -> Visited v extendVisited f (Visited a b) = Visited (f a) b extendOrder :: ([v] -> [v]) -> Visited v -> Visited v extendOrder f (Visited a b) = Visited a (f b) vertexList :: Ord v => Graph v -> [v] vertexList = G.vertexList . unGraph edgeList :: Ord v => Graph v -> [Edge v] edgeList = fmap Edge . G.edgeList . unGraph -- Instances instance Lower (Graph vertex) where lowerBound = Class.empty instance Semigroup (Graph vertex) where (<>) = overlay instance Monoid (Graph vertex) where mempty = Class.empty mappend = (<>) instance Ord vertex => Ord (Graph vertex) where compare (Graph G.Empty) (Graph G.Empty) = EQ compare (Graph G.Empty) _ = LT compare _ (Graph G.Empty) = GT compare (Graph (G.Vertex a)) (Graph (G.Vertex b)) = compare a b compare (Graph (G.Vertex _)) _ = LT compare _ (Graph (G.Vertex _)) = GT compare (Graph (G.Overlay a1 a2)) (Graph (G.Overlay b1 b2)) = (compare `on` Graph) a1 b1 <> (compare `on` Graph) a2 b2 compare (Graph (G.Overlay _ _)) _ = LT compare _ (Graph (G.Overlay _ _)) = GT compare (Graph (G.Connect a1 a2)) (Graph (G.Connect b1 b2)) = (compare `on` Graph) a1 b1 <> (compare `on` Graph) a2 b2 class VertexTag vertex where uniqueTag :: vertex -> Int instance (Ord vertex, ToJSON vertex, VertexTag vertex) => ToJSON (Graph vertex) where toJSON (Graph graph) = object ["vertices" .= G.vertexList graph, "edges" .= (Edge <$> G.edgeList graph)] toEncoding (Graph graph) = pairs ("vertices" .= G.vertexList graph <> "edges" .= (Edge <$> G.edgeList graph)) newtype Edge vertex = Edge (vertex, vertex) instance (ToJSON vertex, VertexTag vertex) => ToJSON (Edge vertex) where toJSON (Edge (a, b)) = object ["source" .= show (uniqueTag a), "target" .= show (uniqueTag b)] toEncoding (Edge (a, b)) = pairs ("source" .= show (uniqueTag a) <> "target" .= show (uniqueTag b)) ================================================ FILE: semantic/src/Data/Handle.hs ================================================ {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE StandaloneDeriving #-} module Data.Handle ( Handle (..) , getHandle , stdin , stdout , stderr , readBlobsFromHandle , readPathsFromHandle , readBlobPairsFromHandle , readFromHandle , openFileForReading , InvalidJSONException (..) ) where import Control.Exception (Exception, throw) import Control.Monad.IO.Class import Data.Aeson import Data.Blob import qualified Data.ByteString.Lazy as BL import qualified Data.ByteString.Lazy.Char8 as BLC import qualified System.IO as IO data Handle mode where ReadHandle :: IO.Handle -> Handle 'IO.ReadMode WriteHandle :: IO.Handle -> Handle 'IO.WriteMode deriving instance Eq (Handle mode) deriving instance Show (Handle mode) getHandle :: Handle mode -> IO.Handle getHandle (ReadHandle handle) = handle getHandle (WriteHandle handle) = handle stdin :: Handle 'IO.ReadMode stdin = ReadHandle IO.stdin stdout :: Handle 'IO.WriteMode stdout = WriteHandle IO.stdout stderr :: Handle 'IO.WriteMode stderr = WriteHandle IO.stderr openFileForReading :: FilePath -> IO (Handle 'IO.ReadMode) openFileForReading path = ReadHandle <$> IO.openFile path IO.ReadMode -- | Read JSON encoded blobs from a handle. readBlobsFromHandle :: MonadIO m => Handle 'IO.ReadMode -> m [Blob] readBlobsFromHandle = fmap blobs <$> readFromHandle -- | Read line delimited paths from a handle readPathsFromHandle :: MonadIO m => Handle 'IO.ReadMode -> m [FilePath] readPathsFromHandle (ReadHandle h) = liftIO $ fmap BLC.unpack . BLC.lines <$> BL.hGetContents h -- | Read JSON encoded blob pairs from a handle. readBlobPairsFromHandle :: MonadIO m => Handle 'IO.ReadMode -> m [BlobPair] readBlobPairsFromHandle = fmap blobs <$> readFromHandle newtype InvalidJSONException = InvalidJSONException String deriving (Eq, Show, Exception) -- | Read JSON-encoded data from a 'Handle'. Throws -- 'InvalidJSONException' on parse failure. readFromHandle :: (FromJSON a, MonadIO m) => Handle 'IO.ReadMode -> m a readFromHandle (ReadHandle h) = do input <- liftIO $ BL.hGetContents h case eitherDecode input of Left e -> throw (InvalidJSONException e) Right d -> pure d ================================================ FILE: semantic/src/Data/Maybe/Exts.hs ================================================ module Data.Maybe.Exts ( module Data.Maybe , maybeLast , fromMaybeLast , maybeM ) where import Data.Maybe import Data.Monoid maybeLast :: Foldable t => b -> (a -> b) -> t a -> b maybeLast b f = maybe b f . getLast . foldMap (Last . Just) fromMaybeLast :: Foldable t => a -> t a -> a fromMaybeLast b = fromMaybe b . getLast . foldMap (Last . Just) -- | Extract the 'Just' of a 'Maybe' in an 'Applicative' context or, given 'Nothing', run the provided action. maybeM :: Applicative f => f a -> Maybe a -> f a maybeM f = maybe f pure {-# INLINE maybeM #-} ================================================ FILE: semantic/src/Data/Semigroup/App.hs ================================================ {-# LANGUAGE DeriveTraversable, GeneralizedNewtypeDeriving #-} module Data.Semigroup.App ( App(..) , AppMerge(..) ) where import Control.Applicative -- | 'Semigroup' under '*>'. newtype App f a = App { runApp :: f a } deriving (Alternative, Applicative, Bounded, Enum, Eq, Foldable, Functor, Monad, Ord, Show, Traversable) instance Applicative f => Semigroup (App f a) where App a <> App b = App (a *> b) -- | 'Semigroup' and 'Monoid' under '<*>' and '<>'. newtype AppMerge f a = AppMerge { runAppMerge :: f a } deriving (Alternative, Applicative, Bounded, Enum, Eq, Foldable, Functor, Monad, Ord, Show, Traversable) instance (Applicative f, Semigroup a) => Semigroup (AppMerge f a) where AppMerge a <> AppMerge b = AppMerge ((<>) <$> a <*> b) instance (Applicative f, Monoid a, Semigroup a) => Monoid (AppMerge f a) where mempty = AppMerge (pure mempty) mappend = (<>) ================================================ FILE: semantic/src/Parsing/Parser.hs ================================================ {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} -- TODO: Now that a la carte syntax has been removed, this whole abstraction is of perhaps questionable utility module Parsing.Parser ( Parser(..) -- * Parsers -- $abstract , SomeParser(..) , goParser , javaParser , javascriptParser , jsonParser , jsxParser , phpParserPrecise , pythonParser , codeQLParserPrecise , rubyParser , tsxParser , typescriptParser -- * Canonical sets of parsers , preciseParsers ) where import AST.Unmarshal import Data.Map (Map) import qualified Data.Map as Map import Foreign.Ptr import qualified Language.CodeQL as CodeQLPrecise import qualified Language.Go as GoPrecise import qualified Language.Java as Java import qualified Language.JSON as JSON import qualified Language.PHP as PHPPrecise import qualified Language.Python as PythonPrecise import qualified Language.Ruby as RubyPrecise import qualified Language.TSX as TSXPrecise import qualified Language.TypeScript as TypeScriptPrecise import Prelude hiding (fail) import Source.Language (Language (..)) import Source.Loc import qualified TreeSitter.Language as TS (Language) -- | A parser from 'Source' onto some term type. data Parser term where -- | A parser 'Unmarshal'ing to a precise AST type using a 'TS.Language'. UnmarshalParser :: Unmarshal t => Ptr TS.Language -> Parser (t Loc) -- $abstract -- 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. -- -- 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@. -- -- 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. -- -- Bad: -- -- @ -- isFancy :: (Carrier sig m, Member Parse sig) => Blob -> m Bool -- isFancy = parseWith (preciseParsers @Fancy) (pure . isTermFancy) -- slow compiles! -- @ -- -- Good: -- -- @ -- fancyParsers :: 'Map' 'Language' ('SomeParser' Fancy 'Loc') -- fancyParsers = preciseParsers -- -- isFancy :: (Carrier sig m, Member Parse sig) => Blob -> m Bool -- isFancy = parseWith fancyParsers (pure . isTermFancy) -- much faster compiles -- @ -- | A parser producing terms of existentially-quantified type under some constraint @c@. -- -- 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. data SomeParser c a where SomeParser :: c t => Parser (t a) -> SomeParser c a goParser :: c GoPrecise.Term => (Language, SomeParser c Loc) goParser = (Go, SomeParser (UnmarshalParser @GoPrecise.Term GoPrecise.tree_sitter_go)) javaParser :: c Java.Term => (Language, SomeParser c Loc) javaParser = (Java, SomeParser (UnmarshalParser @Java.Term Java.tree_sitter_java)) javascriptParser :: c TSXPrecise.Term => (Language, SomeParser c Loc) javascriptParser = (JavaScript, SomeParser (UnmarshalParser @TSXPrecise.Term TSXPrecise.tree_sitter_tsx)) jsonParser :: c JSON.Term => (Language, SomeParser c Loc) jsonParser = (JSON, SomeParser (UnmarshalParser @JSON.Term JSON.tree_sitter_json)) jsxParser :: c TSXPrecise.Term => (Language, SomeParser c Loc) jsxParser = (JSX, SomeParser (UnmarshalParser @TSXPrecise.Term TSXPrecise.tree_sitter_tsx)) phpParserPrecise :: c PHPPrecise.Term => (Language, SomeParser c Loc) phpParserPrecise = (PHP, SomeParser (UnmarshalParser @PHPPrecise.Term PHPPrecise.tree_sitter_php)) pythonParser :: c PythonPrecise.Term => (Language, SomeParser c Loc) pythonParser = (Python, SomeParser (UnmarshalParser @PythonPrecise.Term PythonPrecise.tree_sitter_python)) codeQLParserPrecise :: c CodeQLPrecise.Term => (Language, SomeParser c Loc) codeQLParserPrecise = (CodeQL, SomeParser (UnmarshalParser @CodeQLPrecise.Term CodeQLPrecise.tree_sitter_ql)) rubyParser :: c RubyPrecise.Term => (Language, SomeParser c Loc) rubyParser = (Ruby, SomeParser (UnmarshalParser @RubyPrecise.Term RubyPrecise.tree_sitter_ruby)) tsxParser :: c TSXPrecise.Term => (Language, SomeParser c Loc) tsxParser = (TSX, SomeParser (UnmarshalParser @TSXPrecise.Term TSXPrecise.tree_sitter_tsx)) typescriptParser :: c TypeScriptPrecise.Term => (Language, SomeParser c Loc) typescriptParser = (TypeScript, SomeParser (UnmarshalParser @TypeScriptPrecise.Term TypeScriptPrecise.tree_sitter_typescript)) -- | The canonical set of parsers producing precise terms. preciseParsers :: ( c Java.Term , c JSON.Term , c PythonPrecise.Term , c CodeQLPrecise.Term , c RubyPrecise.Term , c GoPrecise.Term , c PHPPrecise.Term , c TypeScriptPrecise.Term , c TSXPrecise.Term ) => Map Language (SomeParser c Loc) preciseParsers = Map.fromList [ goParser , javascriptParser , jsonParser , jsxParser , pythonParser , phpParserPrecise , codeQLParserPrecise , rubyParser , tsxParser , typescriptParser , javaParser ] ================================================ FILE: semantic/src/Parsing/TreeSitter.hs ================================================ {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeOperators #-} module Parsing.TreeSitter ( TSParseException (..) , Duration(..) , parseToPreciseAST ) where import Control.Carrier.Reader import Control.Exception as Exc import Control.Monad.IO.Class import Foreign import GHC.Generics import Data.Blob import Data.Duration import Data.Maybe.Exts import Source.Loc import qualified Source.Source as Source import qualified System.Timeout as System import qualified TreeSitter.Cursor as TS import qualified TreeSitter.Language as TS import qualified TreeSitter.Node as TS import qualified TreeSitter.Parser as TS import qualified TreeSitter.Tree as TS import qualified AST.Unmarshal as TS data TSParseException = ParserTimedOut | IncompatibleVersions | UnmarshalTimedOut | UnmarshalFailure String deriving (Eq, Show, Generic) parseToPreciseAST :: ( MonadIO m , TS.Unmarshal t ) => Duration -> Duration -> Ptr TS.Language -> Blob -> m (Either TSParseException (t Loc)) parseToPreciseAST parseTimeout unmarshalTimeout language blob = runParse parseTimeout language blob $ \ rootPtr -> withTimeout $ TS.withCursor (castPtr rootPtr) $ \ cursor -> runReader (TS.UnmarshalState (Source.bytes (blobSource blob)) cursor) (liftIO (peek rootPtr) >>= TS.unmarshalNode) `Exc.catch` (Exc.throw . UnmarshalFailure . TS.getUnmarshalError) where withTimeout :: IO a -> IO a withTimeout action = System.timeout (toMicroseconds unmarshalTimeout) action >>= maybeM (Exc.throw UnmarshalTimedOut) instance Exc.Exception TSParseException where displayException = \case ParserTimedOut -> "tree-sitter: parser timed out" IncompatibleVersions -> "tree-sitter: incompatible versions" UnmarshalTimedOut -> "tree-sitter: unmarshal timed out" UnmarshalFailure s -> "tree-sitter: unmarshal failure: " <> s runParse :: MonadIO m => Duration -> Ptr TS.Language -> Blob -> (Ptr TS.Node -> IO a) -> m (Either TSParseException a) runParse parseTimeout language Blob{..} action = liftIO . Exc.tryJust fromException . TS.withParser language $ \ parser -> do let timeoutMicros = fromIntegral $ toMicroseconds parseTimeout TS.ts_parser_set_timeout_micros parser timeoutMicros compatible <- TS.ts_parser_set_language parser language if compatible then TS.withParseTree parser (Source.bytes blobSource) $ \ treePtr -> do if treePtr == nullPtr then Exc.throw ParserTimedOut else TS.withRootNode treePtr action else Exc.throw IncompatibleVersions ================================================ FILE: semantic/src/Semantic/Api/Bridge.hs ================================================ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE FunctionalDependencies #-} {-# LANGUAGE RecordWildCards #-} module Semantic.Api.Bridge ( APIBridge (..) , APIConvert (..) , (#?) ) where import Analysis.File import Analysis.Reference import Control.Lens import qualified Data.Blob as Data import Data.ProtoLens (defMessage) import qualified Data.Text as T import Data.Text.Lens import qualified Proto.Semantic as API import Proto.Semantic_Fields as P hiding (to) import qualified Source.Language as Data import qualified Source.Range as Source import qualified Source.Source as Source (fromText, toText, totalSpan) import qualified Source.Span as Source -- | An @APIBridge x y@ instance describes an isomorphism between @x@ and @y@. -- This is suitable for types such as 'Pos' which are representationally equivalent -- in their API, legacy, and native forms. All 'Lens' laws apply. -- -- Foreign to native: @x ^. bridging@ -- Native to foreign: @bridging # x@ -- Native to 'Just' foreign: @bridging #? x@. -- 'Maybe' foreign to 'Maybe' native: @x >>= preview bridging@ class APIBridge api native | api -> native where bridging :: Iso' api native -- | An @APIConvert x y@ instance describes a partial isomorphism between @x@ and @y@. -- This is suitable for types containing nested records therein, such as 'Span'. -- (The isomorphism must be partial, given that a protobuf record can have Nothing -- for all its fields, which means we cannot convert to a native format.) -- -- Foreign to native: this is a type error, unless the native is a Monoid -- Foreign to 'Maybe' native: @x^?converting@ -- Native to foreign: @converting # x@ -- Native to 'Just' foreign: @converting #? x@ class APIConvert api native | api -> native where converting :: Prism' api native -- | A helper function for turning 'bridging' around and -- extracting 'Just' values from it. (#?) :: AReview t s -> s -> Maybe t rev #? item = item ^? re rev infixr 8 #? instance APIBridge API.Position Source.Pos where bridging = iso fromAPI toAPI where toAPI Source.Pos{..} = defMessage & P.line .~ fromIntegral line & P.column .~ fromIntegral column fromAPI position = Source.Pos (fromIntegral (position ^. line)) (fromIntegral (position ^. column)) instance APIConvert API.Span Source.Span where converting = prism' toAPI fromAPI where toAPI Source.Span{..} = defMessage & P.maybe'start .~ (bridging #? start) & P.maybe'end .~ (bridging #? end) fromAPI span = Source.Span <$> (span ^. maybe'start >>= preview bridging) <*> (span ^. maybe'end >>= preview bridging) instance APIBridge API.ByteRange Source.Range where bridging = iso fromAPI toAPI where toAPI Source.Range{..} = defMessage & P.start .~ fromIntegral start & P.end .~ fromIntegral end fromAPI range = Source.Range (fromIntegral (range ^. start)) (fromIntegral (range ^. end)) instance APIBridge T.Text Data.Language where bridging = iso Data.textToLanguage Data.languageToText instance APIBridge API.Blob Data.Blob where bridging = iso apiBlobToBlob blobToApiBlob where blobToApiBlob b = defMessage & P.content .~ Source.toText (Data.blobSource b) & P.path .~ T.pack (Data.blobFilePath b) & P.language .~ (bridging # Data.blobLanguage b) apiBlobToBlob blob = let src = blob ^. content.to Source.fromText pth = blob ^. path._Text in Data.Blob { blobSource = src , blobFile = File (Reference pth (Source.totalSpan src)) (blob ^. language.bridging) } ================================================ FILE: semantic/src/Semantic/Api/StackGraph.hs ================================================ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE LambdaCase #-} module Semantic.Api.StackGraph ( parseStackGraph , TempStackGraph(..) , SGNode(..) , SGPath(..) ) where import Control.Effect.Error import Control.Effect.Parse import Control.Exception import Control.Lens import Data.Blob import Data.Foldable import Data.Int import Data.Map.Strict (Map) import Data.ProtoLens (defMessage) import Data.Text (Text, pack) import qualified Parsing.Parser as Parser import Proto.Semantic as P hiding (Blob) import Proto.Semantic_Fields as P import Proto.Semantic_JSON () import Semantic.Api.Bridge import Source.Language import Source.Loc as Loc parseStackGraph :: ( Has (Error SomeException) sig m , Has Parse sig m , Traversable t ) => t Blob -> m StackGraphResponse parseStackGraph blobs = do terms <- traverse go blobs pure $ defMessage & P.files .~ toList terms where go :: ( Has (Error SomeException) sig m , Has Parse sig m ) => Blob -> m StackGraphFile go blob = catching $ graphToFile <$> graphForBlob blob where catching m = m `catchError` (\(SomeException e) -> pure $ errorFile (show e)) blobLanguage' = blobLanguage blob blobPath' = pack $ blobFilePath blob errorFile e = defMessage & P.path .~ blobPath' & P.language .~ (bridging # blobLanguage') & P.nodes .~ mempty & P.paths .~ mempty & P.errors .~ [defMessage & P.error .~ pack e] graphToFile :: TempStackGraph -> StackGraphFile graphToFile graph = defMessage & P.path .~ blobPath' & P.language .~ (bridging # blobLanguage') & P.nodes .~ fmap nodeToNode (scopeGraphNodes graph) & P.paths .~ fmap pathToPath (scopeGraphPaths graph) nodeToNode :: SGNode -> StackGraphNode nodeToNode node = defMessage & P.id .~ nodeId node & P.name .~ nodeName node & P.line .~ nodeLine node & P.maybe'span ?~ converting # nodeSpan node & P.syntaxType .~ nodeSyntaxType node & P.nodeType .~ nodeNodeType node pathToPath :: SGPath -> StackGraphPath pathToPath path = defMessage & P.startingSymbolStack .~ pathStartingSymbolStack path & P.startingScopeStackSize .~ pathStartingScopeStackSize path & P.from .~ pathFrom path & P.edges .~ pathEdges path & P.to .~ pathTo path & P.endingScopeStack .~ pathEndingScopeStack path & P.endingSymbolStack .~ pathEndingSymbolStack path -- TODO: These are temporary, will replace with proper datatypes from the scope graph work. data TempStackGraph = TempStackGraph { scopeGraphNodes :: [SGNode] , scopeGraphPaths :: [SGPath] } data SGPath = SGPath { pathStartingSymbolStack :: [Text] , pathStartingScopeStackSize :: Int64 , pathFrom :: Int64 , pathEdges :: Text , pathTo :: Int64 , pathEndingScopeStack :: [Int64] , pathEndingSymbolStack :: [Text] } deriving (Eq, Show) data SGNode = SGNode { nodeId :: Int64, nodeName :: Text, nodeLine :: Text, nodeSpan :: Loc.Span, nodeSyntaxType :: P.SyntaxType, nodeNodeType :: P.NodeType } deriving (Eq, Show) graphForBlob :: (Has (Error SomeException) sig m, Has Parse sig m) => Blob -> m TempStackGraph graphForBlob blob = parseWith toStackGraphParsers (pure . toStackGraph blob) blob where toStackGraphParsers :: Map Language (Parser.SomeParser ToStackGraph Loc) toStackGraphParsers = Parser.preciseParsers class ToStackGraph term where toStackGraph :: Blob -> term Loc -> TempStackGraph instance ToStackGraph term where -- TODO: Need to produce the graph here toStackGraph _ _ = TempStackGraph mempty mempty ================================================ FILE: semantic/src/Semantic/Api/Symbols.hs ================================================ {-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE UndecidableInstances #-} module Semantic.Api.Symbols ( parseSymbols, parseSymbolsBuilder, tagsForBlob, ) where import Control.Effect.Error import Control.Effect.Parse import Control.Effect.Reader import Control.Exception import Control.Lens import Data.Blob import Data.ByteString.Builder import Data.Foldable import Data.Map.Strict (Map) import Data.ProtoLens (defMessage) import Data.Text (pack, toTitle) import qualified Parsing.Parser as Parser import Proto.Semantic as P hiding (Blob) import Proto.Semantic_Fields as P import Proto.Semantic_JSON () import Semantic.Api.Bridge import Semantic.Config import Semantic.Task import Serializing.Format (Format) import Source.Language import Source.Loc as Loc import Tags.Tagging.Precise parseSymbolsBuilder :: (Has (Error SomeException) sig m, Has Parse sig m, Has (Reader Config) sig m, Traversable t) => Format ParseTreeSymbolResponse -> t Blob -> m Builder parseSymbolsBuilder format blobs = parseSymbols blobs >>= serialize format parseSymbols :: (Has (Error SomeException) sig m, Has Parse sig m, Traversable t) => t Blob -> m ParseTreeSymbolResponse parseSymbols blobs = do terms <- traverse go blobs pure $ defMessage & P.files .~ toList terms where go :: (Has (Error SomeException) sig m, Has Parse sig m) => Blob -> m File go blob = catching $ tagsToFile <$> tagsForBlob blob where catching m = m `catchError` (\(SomeException e) -> pure $ errorFile (show e)) blobLanguage' = blobLanguage blob blobPath' = pack $ blobFilePath blob errorFile e = defMessage & P.path .~ blobPath' & P.language .~ (bridging # blobLanguage') & P.symbols .~ mempty & P.errors .~ [defMessage & P.error .~ pack e] tagsToFile :: [Tag] -> File tagsToFile tags = defMessage & P.path .~ blobPath' & P.language .~ (bridging # blobLanguage') & P.symbols .~ fmap tagToSymbol tags & P.errors .~ mempty tagToSymbol :: Tag -> Symbol tagToSymbol tag = defMessage & P.symbol .~ tagName tag & P.kind .~ toKind tag & P.nodeType .~ tagNodeType tag & P.syntaxType .~ tagSyntaxType tag & P.line .~ tagLine tag & P.maybe'span ?~ converting # unOneIndexedSpan (tagOneIndexedSpan tag) & P.maybe'utf16CodeUnitSpan ?~ converting # unUTF16CodeUnitSpan (tagUTF16CodeUnitSpan tag) & P.byteRange .~ bridging # tagByteRange tag where toKind = toTitle . pack . show . tagSyntaxType tagsForBlob :: (Has (Error SomeException) sig m, Has Parse sig m) => Blob -> m [Tag] tagsForBlob blob = parseWith toTagsParsers (pure . tags (blobSource blob)) blob where toTagsParsers :: Map Language (Parser.SomeParser ToTags Loc) toTagsParsers = Parser.preciseParsers ================================================ FILE: semantic/src/Semantic/Api/Terms.hs ================================================ {-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -freduction-depth=0 #-} module Semantic.Api.Terms ( parseTermBuilder , TermOutputFormat(..) ) where import Control.Effect.Error import Control.Effect.Parse import Control.Effect.Reader import Control.Monad import Control.Monad.IO.Class import Data.Blob import Data.ByteString.Builder import Data.Either import Data.Foldable (fold) import Data.Map.Strict (Map) import qualified Language.CodeQL as CodeQL import qualified Language.Go as Go import qualified Language.Java as Java import qualified Language.JSON as JSON import qualified Language.PHP as PHP import qualified Language.Python as Python import qualified Language.Ruby as Ruby import qualified Language.TSX as TSX import qualified Language.TypeScript as TypeScript import Parsing.Parser import Semantic.Config import Semantic.Task import Serializing.Format hiding (JSON) import qualified Serializing.SExpression.Precise as SExpr.Precise (serializeSExpression) import Source.Language import Source.Loc data TermOutputFormat = TermSExpression | TermShow | TermJSON | TermQuiet deriving (Eq, Show) parseTermBuilder :: (Traversable t, Has (Error SomeException) sig m, Has Parse sig m, Has (Reader Config) sig m, MonadIO m) => TermOutputFormat -> t Blob -> m Builder parseTermBuilder TermSExpression = foldMapM (parseWith sexprTermParsers (pure . sexprTerm)) parseTermBuilder TermShow = foldMapM (parseWith showTermParsers showTerm) parseTermBuilder TermJSON = foldMapM (parseWith jsonTermParsers jsonTerm) parseTermBuilder TermQuiet = foldMapM quietTerm foldMapM :: (Traversable t, Monoid out, Applicative m) => (a -> m out) -> t a -> m out foldMapM f = fmap fold . traverse f quietTerm :: (Has (Error SomeException) sig m, Has Parse sig m, Has (Reader Config) sig m, MonadIO m) => Blob -> m Builder quietTerm blob = showTiming <$> time' (parseWith showTermParsers (fmap (const (Right ())) . showTerm) blob `catchError` timingError) where timingError (SomeException e) = pure (Left (show e)) showTiming (res, duration) = let status = if isLeft res then "ERR" else "OK" in stringUtf8 (status <> "\t" <> show (blobLanguage blob) <> "\t" <> blobFilePath blob <> "\t" <> show duration <> " ms\n") showTermParsers :: Map Language (SomeParser ShowTerm Loc) showTermParsers = preciseParsers class ShowTerm term where showTerm :: (Has (Reader Config) sig m) => term Loc -> m Builder instance ShowTerm Go.Term where showTerm = serialize Show . void . Go.getTerm instance ShowTerm Java.Term where showTerm = serialize Show . void . Java.getTerm instance ShowTerm JSON.Term where showTerm = serialize Show . void . JSON.getTerm instance ShowTerm PHP.Term where showTerm = serialize Show . void . PHP.getTerm instance ShowTerm Python.Term where showTerm = serialize Show . void . Python.getTerm instance ShowTerm CodeQL.Term where showTerm = serialize Show . void . CodeQL.getTerm instance ShowTerm Ruby.Term where showTerm = serialize Show . void . Ruby.getTerm instance ShowTerm TSX.Term where showTerm = serialize Show . void . TSX.getTerm instance ShowTerm TypeScript.Term where showTerm = serialize Show . void . TypeScript.getTerm jsonTermParsers :: Map Language (SomeParser JSONTerm Loc) jsonTermParsers = preciseParsers class JSONTerm term where jsonTerm :: (Has (Reader Config) sig m) => term Loc -> m Builder instance JSONTerm Go.Term where jsonTerm = serialize Marshal . Go.getTerm instance JSONTerm Java.Term where jsonTerm = serialize Marshal . Java.getTerm instance JSONTerm JSON.Term where jsonTerm = serialize Marshal . JSON.getTerm instance JSONTerm PHP.Term where jsonTerm = serialize Marshal . PHP.getTerm instance JSONTerm Python.Term where jsonTerm = serialize Marshal . Python.getTerm instance JSONTerm CodeQL.Term where jsonTerm = serialize Marshal . CodeQL.getTerm instance JSONTerm Ruby.Term where jsonTerm = serialize Marshal . Ruby.getTerm instance JSONTerm TSX.Term where jsonTerm = serialize Marshal . TSX.getTerm instance JSONTerm TypeScript.Term where jsonTerm = serialize Marshal . TypeScript.getTerm sexprTermParsers :: Map Language (SomeParser SExprTerm Loc) sexprTermParsers = preciseParsers class SExprTerm term where sexprTerm :: term Loc -> Builder instance SExprTerm Go.Term where sexprTerm = SExpr.Precise.serializeSExpression . Go.getTerm instance SExprTerm Java.Term where sexprTerm = SExpr.Precise.serializeSExpression . Java.getTerm instance SExprTerm JSON.Term where sexprTerm = SExpr.Precise.serializeSExpression . JSON.getTerm instance SExprTerm PHP.Term where sexprTerm = SExpr.Precise.serializeSExpression . PHP.getTerm instance SExprTerm Python.Term where sexprTerm = SExpr.Precise.serializeSExpression . Python.getTerm instance SExprTerm CodeQL.Term where sexprTerm = SExpr.Precise.serializeSExpression . CodeQL.getTerm instance SExprTerm Ruby.Term where sexprTerm = SExpr.Precise.serializeSExpression . Ruby.getTerm instance SExprTerm TSX.Term where sexprTerm = SExpr.Precise.serializeSExpression . TSX.getTerm instance SExprTerm TypeScript.Term where sexprTerm = SExpr.Precise.serializeSExpression . TypeScript.getTerm ================================================ FILE: semantic/src/Semantic/Api.hs ================================================ module Semantic.Api ( module SymbolsAPI , module StackGraphAPI , module TermsAPI , module Types ) where import Semantic.Api.Symbols as SymbolsAPI import Semantic.Api.StackGraph as StackGraphAPI import Semantic.Api.Terms as TermsAPI import Proto.Semantic as Types ================================================ FILE: semantic/src/Semantic/CLI.hs ================================================ {-# LANGUAGE ApplicativeDo #-} {-# LANGUAGE FlexibleContexts #-} module Semantic.CLI (main) where import qualified Analysis.File as File import qualified Control.Carrier.Parse.Measured as Parse import Control.Exception import qualified Data.Flag as Flag import Data.Foldable import Data.Handle import Data.List (intercalate) import Options.Applicative hiding (style) import Semantic.Api hiding (File) import Semantic.Config import qualified Semantic.Task as Task import Semantic.Task.Files import Semantic.Telemetry import qualified Semantic.Telemetry.Log as Log import Semantic.Version import Serializing.Format import qualified Source.Language as Language import System.Exit (die) import Control.Concurrent (mkWeakThreadId, myThreadId) import Proto.Semantic_JSON () import System.Mem.Weak (deRefWeak) import System.Posix.Signals newtype SignalException = SignalException Signal deriving (Show) instance Exception SignalException installSignalHandlers :: IO () installSignalHandlers = do mainThreadId <- myThreadId weakTid <- mkWeakThreadId mainThreadId for_ [ sigABRT, sigBUS, sigHUP, sigILL, sigQUIT, sigSEGV, sigSYS, sigTERM, sigUSR1, sigUSR2, sigXCPU, sigXFSZ ] $ \sig -> installHandler sig (Catch $ sendException weakTid sig) Nothing where sendException weakTid sig = do m <- deRefWeak weakTid case m of Nothing -> pure () Just tid -> throwTo tid (toException $ SignalException sig) main :: IO () main = do installSignalHandlers (options, task) <- customExecParser (prefs showHelpOnEmpty) arguments config <- defaultConfig options res <- withTelemetry config $ \ (TelemetryQueues logger statter _) -> Task.runTask (Task.TaskSession config "-" (optionsLogPathsOnError options) logger statter) (Parse.runParse task) either (die . displayException) pure res -- | A parser for the application's command-line arguments. -- -- Returns a 'Task' to read the input, run the requested operation, and write the output to the specified output path or stdout. arguments :: ParserInfo (Options, Parse.ParseC Task.TaskC ()) arguments = info (version <*> helper <*> ((,) <$> optionsParser <*> argumentsParser)) description where version = infoOption versionString (long "version" <> short 'v' <> help "Output the version of the program") versionString = "semantic version " <> buildVersion <> " (" <> buildSHA <> ")" description = fullDesc <> header "semantic -- Semantic (syntax-aware) diffs, program analysis toolkit" optionsParser :: Parser Options optionsParser = do logLevel <- options [ ("error", Just Log.Error) , ("warning", Just Log.Warning) , ("info", Just Log.Info) , ("debug", Just Log.Debug) , ("none", Nothing)] (long "log-level" <> value (Just Log.Warning) <> help "Log messages at or above this level, or disable logging entirely.") failOnWarning <- switch (long "fail-on-warning" <> help "Fail on assignment warnings.") failOnParseError <- switch (long "fail-on-parse-error" <> help "Fail on tree-sitter parse errors.") logPathsOnError <- switch (long "log-paths" <> help "Log source paths on parse and assignment error.") pure $ Options logLevel logPathsOnError (Flag.flag FailOnWarning failOnWarning) (Flag.flag FailOnParseError failOnParseError) argumentsParser :: Parser (Parse.ParseC Task.TaskC ()) argumentsParser = do subparser <- hsubparser parseCommand output <- ToPath <$> pathOption (long "output" <> short 'o' <> help "Output path, defaults to stdout") <|> pure (ToHandle stdout) pure $ subparser >>= Task.write output parseCommand :: Mod CommandFields (Parse.ParseC Task.TaskC Builder) parseCommand = command "parse" (info parseArgumentsParser (progDesc "Generate parse trees for path(s)")) where parseArgumentsParser = do renderer <- flag (parseTermBuilder TermSExpression) (parseTermBuilder TermSExpression) ( long "sexpression" <> help "Output s-expression parse trees (default)") <|> flag' (parseSymbolsBuilder JSON) ( long "symbols" <> long "json-symbols" <> help "Output JSON symbol list") <|> flag' (parseSymbolsBuilder Proto) ( long "proto-symbols" <> help "Output protobufs symbol list") <|> flag' (parseTermBuilder TermJSON) ( long "json" <> help "Output JSON AST dump") <|> flag' (parseTermBuilder TermShow) ( long "show" <> help "Output using the Show instance (debug only, format subject to change without notice)") <|> flag' (parseTermBuilder TermQuiet) ( long "quiet" <> help "Don't produce output, but show timing stats") filesOrStdin <- FilesFromPaths <$> some (argument filePathReader (metavar "FILES...")) <|> pure (FilesFromHandle stdin) pure $ Task.readBlobs filesOrStdin >>= renderer filePathReader :: ReadM (File.File Language.Language) filePathReader = File.fromPath <$> path path :: ReadM FilePath path = eitherReader Right pathOption :: Mod OptionFields FilePath -> Parser FilePath pathOption = option path options :: Eq a => [(String, a)] -> Mod OptionFields a -> Parser a options options fields = option (optionsReader options) (fields <> showDefaultWith (findOption options) <> metavar (intercalate "|" (fmap fst options))) where optionsReader options = eitherReader $ \ str -> maybe (Left ("expected one of: " <> intercalate ", " (fmap fst options))) (Right . snd) (find ((== str) . fst) options) findOption options value = maybe "" fst (find ((== value) . snd) options) ================================================ FILE: semantic/src/Semantic/Config.hs ================================================ {-# LANGUAGE RecordWildCards #-} module Semantic.Config ( Config (..) , defaultConfig , Options (..) , defaultOptions , debugOptions , infoOptions , lookupStatsAddr , withErrorReporterFromConfig , logOptionsFromConfig , withLoggerFromConfig , withStatterFromConfig , withTelemetry -- * Flags , IsTerminal (..) , LogPrintSource (..) , FailTestParsing (..) , FailOnWarning (..) , FailOnParseError (..) ) where import Data.Duration import Data.Error (LogPrintSource (..)) import Data.Flag import Data.Maybe import Network.HostName import Network.URI import Semantic.Env import Semantic.Telemetry import qualified Semantic.Telemetry.Error as Error import qualified Semantic.Telemetry.Stat as Stat import Semantic.Version (buildSHA) import System.Environment import System.IO (hIsTerminalDevice, stdout) import System.Posix.Process import System.Posix.Types data IsTerminal = IsTerminal data FailTestParsing = FailTestParsing data FailOnWarning = FailOnWarning data FailOnParseError = FailOnParseError data Config = Config { configAppName :: String -- ^ Application name ("semantic") , configHostName :: String -- ^ HostName from getHostName , configProcessID :: ProcessID -- ^ ProcessID from getProcessID , configStatsHost :: Stat.Host -- ^ Host of statsd/datadog (default: "127.0.0.1") , configStatsPort :: Stat.Port -- ^ Port of statsd/datadog (default: "28125") , configTreeSitterParseTimeout :: Duration -- ^ Timeout in milliseconds before canceling tree-sitter parsing (default: 6000). , configTreeSitterUnmarshalTimeout :: Duration -- ^ Timeout in milliseconds before canceling tree-sitter unmarshalling (default: 4000). , configAssignmentTimeout :: Duration -- ^ Millisecond timeout for assignment (default: 4000) , configMaxTelemetyQueueSize :: Int -- ^ Max size of telemetry queues before messages are dropped (default: 1000). , configIsTerminal :: Flag IsTerminal -- ^ Whether a terminal is attached (set automaticaly at runtime). , configLogPrintSource :: Flag LogPrintSource -- ^ Whether to print the source reference when logging errors (set automatically at runtime). , configLogFormatter :: LogFormatter -- ^ Log formatter to use (set automatically at runtime). , configSHA :: String -- ^ SHA to include in log messages (set automatically). , configFailParsingForTesting :: Flag FailTestParsing -- ^ Simulate internal parse failure for testing (default: False). , configOptions :: Options -- ^ Options configurable via command line arguments. } -- Options configurable via command line arguments. data Options = Options { optionsLogLevel :: Maybe Level -- ^ What level of messages to log. 'Nothing' disables logging. , optionsLogPathsOnError :: Bool -- ^ Should semantic log source path on parse or assignment errors (default: False). , optionsFailOnWarning :: Flag FailOnWarning -- ^ Should semantic fail fast on assignment warnings (for testing) , optionsFailOnParseError :: Flag FailOnParseError -- ^ Should semantic fail fast on tree-sitter parser errors (for testing) } defaultOptions :: Options defaultOptions = Options (Just Warning) False (flag FailOnWarning False) (flag FailOnParseError False) debugOptions :: Options debugOptions = defaultOptions { optionsLogLevel = Just Debug } infoOptions :: Options infoOptions = defaultOptions { optionsLogLevel = Just Info } defaultConfig :: Options -> IO Config defaultConfig options = do pid <- getProcessID hostName <- getHostName isTerminal <- hIsTerminalDevice stdout (statsHost, statsPort) <- lookupStatsAddr size <- envLookupNum 1000 "MAX_TELEMETRY_QUEUE_SIZE" parseTimeout <- envLookupNum 6000 "TREE_SITTER_PARSE_TIMEOUT" unmarshalTimeout <- envLookupNum 4000 "TREE_SITTER_UNMARSHAL_TIMEOUT" assignTimeout <- envLookupNum 4000 "SEMANTIC_ASSIGNMENT_TIMEOUT" pure Config { configAppName = "semantic" , configHostName = hostName , configProcessID = pid , configStatsHost = statsHost , configStatsPort = statsPort , configTreeSitterParseTimeout = fromMilliseconds parseTimeout , configTreeSitterUnmarshalTimeout = fromMilliseconds unmarshalTimeout , configAssignmentTimeout = fromMilliseconds assignTimeout , configMaxTelemetyQueueSize = size , configIsTerminal = flag IsTerminal isTerminal , configLogPrintSource = flag LogPrintSource isTerminal , configLogFormatter = if isTerminal then terminalFormatter else logfmtFormatter , configSHA = buildSHA , configFailParsingForTesting = flag FailTestParsing False , configOptions = options } withTelemetry :: Config -> (TelemetryQueues -> IO c) -> IO c withTelemetry config action = withLoggerFromConfig config $ \logger -> withErrorReporterFromConfig config (queueLogMessage logger Error) $ \errorReporter -> withStatterFromConfig config $ \statter -> action (TelemetryQueues logger statter errorReporter) logOptionsFromConfig :: Config -> LogOptions logOptionsFromConfig Config{..} = LogOptions { logOptionsLevel = optionsLogLevel configOptions , logOptionsFormatter = configLogFormatter , logOptionsContext = logOptionsContext' } where logOptionsContext' | toBool IsTerminal configIsTerminal = [] | otherwise = [ ("app", configAppName) , ("pid", show configProcessID) , ("hostname", configHostName) , ("sha", configSHA) ] withLoggerFromConfig :: Config -> (LogQueue -> IO c) -> IO c withLoggerFromConfig config = withLogger (logOptionsFromConfig config) (configMaxTelemetyQueueSize config) withErrorReporterFromConfig :: Config -> Error.ErrorLogger -> (ErrorQueue -> IO c) -> IO c withErrorReporterFromConfig Config{..} errorLogger = withErrorReporter (nullErrorReporter errorLogger) configMaxTelemetyQueueSize withStatterFromConfig :: Config -> (StatQueue -> IO c) -> IO c withStatterFromConfig Config{..} = withStatter configStatsHost configStatsPort configAppName configMaxTelemetyQueueSize lookupStatsAddr :: IO (Stat.Host, Stat.Port) lookupStatsAddr = do addr <- lookupEnv "STATS_ADDR" let (host', port) = parseAddr (fmap ("statsd://" <>) addr) -- When running in Kubes, DOGSTATSD_HOST is set with the dogstatsd host. kubesHost <- lookupEnv "DOGSTATSD_HOST" let host = fromMaybe host' kubesHost pure (host, port) where defaultHost = "127.0.0.1" defaultPort = "28125" parseAddr a | Just s <- a , Just (Just (URIAuth _ host port)) <- uriAuthority <$> parseURI s = (parseHost host, parsePort port) | otherwise = (defaultHost, defaultPort) parseHost s = if null s then defaultHost else s parsePort s = if null s then defaultPort else dropWhile (':' ==) s ================================================ FILE: semantic/src/Semantic/Env.hs ================================================ {-# OPTIONS_GHC -Wno-redundant-constraints #-} module Semantic.Env ( envLookupNum , envLookupString ) where import Control.Monad.IO.Class import Data.Maybe import System.Environment import Text.Read (readMaybe) envLookupString :: MonadIO io => String -> String -> io String envLookupString defaultVal k = liftIO $ fromMaybe defaultVal <$> lookupEnv k -- | 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. envLookupNum :: (MonadIO io, Num a, Read a) => a -> String -> io a envLookupNum defaultVal k = liftIO $ parse <$> lookupEnv k where parse x | Just s <- x, Just p <- readMaybe s = p | otherwise = defaultVal ================================================ FILE: semantic/src/Semantic/IO.hs ================================================ {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} module Semantic.IO ( findFilesInDir ) where import Prelude hiding (readFile) import Control.Monad.IO.Class import System.Directory.Tree (AnchoredDirTree (..)) import qualified System.Directory.Tree as Tree import System.FilePath pathIsMinified :: FilePath -> Bool pathIsMinified = isExtensionOf ".min.js" -- Recursively find files in a directory. findFilesInDir :: MonadIO m => FilePath -> [String] -> [FilePath] -> m [FilePath] findFilesInDir path exts excludeDirs = do _:/dir <- liftIO $ Tree.build path pure $ (onlyFiles . Tree.filterDir (withExtensions exts) . Tree.filterDir (notIn excludeDirs)) dir where -- Build a list of only FilePath's (remove directories and failures) onlyFiles (Tree.Dir _ fs) = concatMap onlyFiles fs onlyFiles (Tree.Failed _ _) = [] onlyFiles (Tree.File _ f) = [f] -- Predicate for Files with one of the extensions in 'exts'. withExtensions exts (Tree.File n _) | pathIsMinified n = False | takeExtension n `elem` exts = True | otherwise = False withExtensions _ _ = True -- Predicate for contents NOT in a directory notIn dirs (Tree.Dir n _) | (x:_) <- n, x == '.' = False -- Don't include directories that start with '.'. | n `elem` dirs = False | otherwise = True notIn _ _ = True ================================================ FILE: semantic/src/Semantic/Task/Files.hs ================================================ {-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} module Semantic.Task.Files ( Files , Destination (..) , Source (..) , readBlob , readBlobs , readBlobPairs , readProject , findFiles , write , Handle (..) , FilesC(..) , FilesArg(..) ) where import Analysis.File import Analysis.Project import Control.Algebra import Control.Effect.Error import Control.Exception import Control.Monad.IO.Class import Data.Blob import Data.Blob.IO import qualified Data.ByteString.Builder as B import Data.Handle import Prelude hiding (readFile) import Semantic.IO import Source.Language (Language) import qualified System.IO as IO data Source blob where FromPath :: File Language -> Source Blob FromHandle :: Handle 'IO.ReadMode -> Source [Blob] FromPathPair :: File Language -> File Language -> Source BlobPair FromPairHandle :: Handle 'IO.ReadMode -> Source [BlobPair] data Destination = ToPath FilePath | ToHandle (Handle 'IO.WriteMode) -- | An effect to read/write 'Blob's from 'Handle's or 'FilePath's. data Files (m :: * -> *) k where Read :: Source a -> Files m a ReadProject :: Maybe FilePath -> FilePath -> Language -> [FilePath] -> Files m Project FindFiles :: FilePath -> [String] -> [FilePath] -> Files m [FilePath] Write :: Destination -> B.Builder -> Files m () newtype FilesC m a = FilesC { -- | Run a 'Files' effect in 'IO' runFiles :: m a } deriving (Functor, Applicative, Monad, MonadFail, MonadIO) instance (Has (Error SomeException) sig m, MonadFail m, MonadIO m) => Algebra (Files :+: sig) (FilesC m) where alg hdl sig ctx = case sig of L op -> (<$ ctx) <$> case op of Read (FromPath path) -> readBlobFromFile' path Read (FromHandle handle) -> readBlobsFromHandle handle Read (FromPathPair p1 p2) -> readFilePair p1 p2 Read (FromPairHandle handle) -> readBlobPairsFromHandle handle ReadProject rootDir dir language excludeDirs -> readProjectFromPaths rootDir dir language excludeDirs FindFiles dir exts excludeDirs -> findFilesInDir dir exts excludeDirs Write (ToPath path) builder -> liftIO (IO.withBinaryFile path IO.WriteMode (`B.hPutBuilder` builder)) Write (ToHandle (WriteHandle handle)) builder -> liftIO (B.hPutBuilder handle builder) R other -> FilesC (alg (runFiles . hdl) other ctx) readBlob :: Has Files sig m => File Language -> m Blob readBlob file = send (Read (FromPath file)) -- Various ways to read in files data FilesArg = FilesFromHandle (Handle 'IO.ReadMode) | FilesFromPaths [File Language] -- | A task which reads a list of 'Blob's from a 'Handle' or a list of 'FilePath's optionally paired with 'Language's. readBlobs :: Has Files sig m => FilesArg -> m [Blob] readBlobs (FilesFromHandle handle) = send (Read (FromHandle handle)) readBlobs (FilesFromPaths paths) = traverse (send . Read . FromPath) paths -- | 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. readBlobPairs :: Has Files sig m => Either (Handle 'IO.ReadMode) [(File Language, File Language)] -> m [BlobPair] readBlobPairs (Left handle) = send (Read (FromPairHandle handle)) readBlobPairs (Right paths) = traverse (send . Read . uncurry FromPathPair) paths readProject :: Has Files sig m => Maybe FilePath -> FilePath -> Language -> [FilePath] -> m Project readProject rootDir dir lang excludeDirs = send (ReadProject rootDir dir lang excludeDirs) findFiles :: Has Files sig m => FilePath -> [String] -> [FilePath] -> m [FilePath] findFiles dir exts paths = send (FindFiles dir exts paths) -- | A task which writes a 'B.Builder' to a 'Handle' or a 'FilePath'. write :: Has Files sig m => Destination -> B.Builder -> m () write dest builder = send (Write dest builder) ================================================ FILE: semantic/src/Semantic/Task.hs ================================================ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} module Semantic.Task ( TaskC , Level(..) -- * I/O , Files.readBlob , Files.readBlobs , Files.readBlobPairs , Files.readProject , Files.findFiles , Files.write , Files.FilesArg(..) -- * Telemetry , writeLog , writeStat , time , time' -- * High-level flow , serialize -- * Configuration , debugOptions , defaultOptions , defaultConfig , terminalFormatter , logfmtFormatter -- * Interpreting , runTask , runTaskWithOptions , withOptions , TaskSession(..) , runTraceInTelemetry , Error , Lift , throwError , SomeException(..) , Telemetry ) where import Control.Algebra import Control.Carrier.Error.Either import Control.Carrier.Lift import Control.Carrier.Reader import Control.Effect.Trace import Control.Exception import Control.Monad.IO.Class import Data.ByteString.Builder import qualified Data.Flag as Flag import Semantic.Config import qualified Semantic.Task.Files as Files import Semantic.Telemetry import Serializing.Format -- | A high-level task producing some result, e.g. parsing, diffing, rendering. type TaskC = Files.FilesC ( ReaderC Config ( ReaderC TaskSession ( TraceInTelemetryC ( TelemetryC ( ErrorC SomeException ( LiftC IO)))))) serialize :: Has (Reader Config) sig m => Format input -> input -> m Builder serialize format input = do formatStyle <- asks (Flag.choose IsTerminal Plain Colourful . configIsTerminal) pure (runSerialize formatStyle format input) data TaskSession = TaskSession { config :: Config , requestID :: String , isPublic :: Bool , logger :: LogQueue , statter :: StatQueue } -- | Execute a 'TaskC' yielding its result value in 'IO'. runTask :: TaskSession -> TaskC a -> IO (Either SomeException a) runTask taskSession@TaskSession{..} task = do (result, stat) <- withTiming "run" [] $ do let run :: TaskC a -> IO (Either SomeException a) run = runM . runError . runTelemetry logger statter . runTraceInTelemetry . runReader taskSession . runReader config . Files.runFiles run task queueStat statter stat pure result -- | Execute a 'TaskC' yielding its result value in 'IO' using all default options and configuration. runTaskWithOptions :: Options -> TaskC a -> IO (Either SomeException a) runTaskWithOptions options task = withOptions options $ \ config logger statter -> runTask (TaskSession config "-" False logger statter) task -- | Yield config and telemetry queues for options. withOptions :: Options -> (Config -> LogQueue -> StatQueue -> IO a) -> IO a withOptions options with = do config <- defaultConfig options withTelemetry config (\ (TelemetryQueues logger statter _) -> with config logger statter) newtype TraceInTelemetryC m a = TraceInTelemetryC { runTraceInTelemetry :: m a } deriving (Applicative, Functor, Monad, MonadFail, MonadIO) instance Has Telemetry sig m => Algebra (Trace :+: sig) (TraceInTelemetryC m) where alg hdl sig ctx = case sig of L (Trace str) -> ctx <$ writeLog Debug str [] R other -> TraceInTelemetryC (alg (runTraceInTelemetry . hdl) other ctx) ================================================ FILE: semantic/src/Semantic/Telemetry/AsyncQueue.hs ================================================ {-# LANGUAGE RecordWildCards #-} module Semantic.Telemetry.AsyncQueue ( AsyncQueue(..) , newAsyncQueue , newAsyncQueue' , writeAsyncQueue , closeAsyncQueue ) where import Control.Concurrent.Async as Async import Control.Concurrent.STM.TBMQueue import Control.Monad import GHC.Conc -- | 'AsyncQueue' represents a 'TBMQueue' that's drained from a separate thread. -- It is intended to be used to queue data from a pure function and then process -- that data in IO on a separate thread. 'AsyncQueue' is parameterized by: -- * 'a' - the type of message stored on the queue. -- * 'extra' - any other type needed to process messages on the queue. data AsyncQueue a extra = AsyncQueue { asyncQueue :: TBMQueue a -- ^ The underlying 'TBMQueue'. , asyncQueueSink :: Async () -- ^ A sink that will drain the queue. , asyncQueueExtra :: extra -- ^ Any exta data the queue needs to use. } -- | Create a new AsyncQueue with the given capacity using the defaultSink. newAsyncQueue :: Int -> (extra -> a -> IO ()) -> extra -> IO (AsyncQueue a extra) newAsyncQueue i = newAsyncQueue' i . defaultSink -- | Create a new AsyncQueue with the given capacity, specifying a custom sink. newAsyncQueue' :: Int -> (extra -> TBMQueue a -> IO ()) -> extra -> IO (AsyncQueue a extra) newAsyncQueue' i f extra = do q <- newTBMQueueIO i s <- Async.async (f extra q) pure (AsyncQueue q s extra) -- | Write a message to the queue. writeAsyncQueue :: AsyncQueue a extra -> a -> IO () writeAsyncQueue AsyncQueue{..} = void . atomically . tryWriteTBMQueue asyncQueue -- | Drain messages from the queue, calling the specified function for each message. defaultSink :: (extra -> a -> IO ()) -> extra -> TBMQueue a -> IO () defaultSink f extra q = do msg <- atomically (readTBMQueue q) maybe (pure ()) go msg where go msg = f extra msg >> defaultSink f extra q -- | Close the queue. closeAsyncQueue :: AsyncQueue a extra -> IO () closeAsyncQueue AsyncQueue{..} = do atomically (closeTBMQueue asyncQueue) Async.wait asyncQueueSink ================================================ FILE: semantic/src/Semantic/Telemetry/Error.hs ================================================ {-# LANGUAGE RecordWildCards #-} module Semantic.Telemetry.Error ( ErrorLogger , ErrorReport (..) , ErrorReporter , nullErrorReporter ) where import Control.Exception data ErrorReport = ErrorReport { errorReportException :: SomeException , errorReportContext :: [(String, String)] } deriving (Show) -- | Function to log if there are errors reporting an error. type ErrorLogger = String -> [(String, String)] -> IO () type ErrorReporter = ErrorReport -> IO () -- | Doesn't send error reports anywhere. Useful in tests or for basic command-line usage. nullErrorReporter :: ErrorLogger -> IO ErrorReporter nullErrorReporter logger = pure reportError where reportError ErrorReport{..} = let msg = takeWhile (/= '\n') (displayException errorReportException) in logger msg errorReportContext ================================================ FILE: semantic/src/Semantic/Telemetry/Log.hs ================================================ {-# LANGUAGE RecordWildCards #-} module Semantic.Telemetry.Log ( Level (..) , LogOptions (..) , Message (..) , LogFormatter , logfmtFormatter , terminalFormatter , writeLogMessage ) where import Control.Monad.IO.Class import Data.Bifunctor import Data.Error (Colourize (..), withSGRCode) import Data.Flag as Flag import Data.List (intersperse) import qualified Data.Time.Format as Time import qualified Data.Time.LocalTime as LocalTime import System.Console.ANSI import System.IO import Text.Printf -- | A log message at a specific level. data Message = Message Level String [(String, String)] LocalTime.ZonedTime deriving (Show) -- | A formatter function for crafting log messages. type LogFormatter = LogOptions -> Message -> String -- | Logging level data Level = Error | Warning | Info | Debug deriving (Eq, Ord, Show) -- | Options for controlling logging data LogOptions = LogOptions { logOptionsLevel :: Maybe Level -- ^ What level of messages to log. 'Nothing' disabled logging. , logOptionsFormatter :: LogFormatter -- ^ Log formatter to use. , logOptionsContext :: [(String, String)] } -- | Write a log a message to stderr. writeLogMessage :: MonadIO io => LogOptions -> Message -> io () writeLogMessage options@LogOptions{..} = liftIO . hPutStr stderr . logOptionsFormatter options -- | Format log messaging using "logfmt". -- -- Logfmt is a loosely defined logging format (see https://brandur.org/logfmt) -- for structured data, which plays very well with indexing tools like Splunk. -- -- Example: -- time=2006-01-02T15:04:05Z07:00 msg="this is a message" key=val int=42 key2="val with word" float=33.33 logfmtFormatter :: LogFormatter logfmtFormatter LogOptions{..} (Message level message pairs time) = showPairs ( kv "time" (showTime time) : kv "msg" (shows message) : kv "level" (shows level) : (uncurry kv . second shows <$> (pairs <> logOptionsContext))) . showChar '\n' $ "" where kv k v = showString k . showChar '=' . v showPairs = foldr (.) id . intersperse (showChar ' ') showTime = showString . Time.formatTime Time.defaultTimeLocale "%FT%XZ%z" -- | Format log messages to a terminal. Suitable for local development. -- -- Example: -- [16:52:41] INFO this is a message key=val language=Ruby time=0.000098s terminalFormatter :: LogFormatter terminalFormatter LogOptions{..} (Message level message pairs time) = showChar '[' . showTime time . showString "] " . showLevel level . showChar ' ' . showString (printf "%-20s " message) . showPairs (pairs <> logOptionsContext) . showChar '\n' $ "" where colourize = flag Colourize True showLevel Error = withSGRCode colourize [SetColor Foreground Vivid Red, SetConsoleIntensity BoldIntensity] (showString "ERROR") showLevel Warning = withSGRCode colourize [SetColor Foreground Vivid Yellow, SetConsoleIntensity BoldIntensity] (showString " WARN") showLevel Info = withSGRCode colourize [SetColor Foreground Vivid Cyan, SetConsoleIntensity BoldIntensity] (showString " INFO") showLevel Debug = withSGRCode colourize [SetColor Foreground Vivid White, SetConsoleIntensity BoldIntensity] (showString "DEBUG") showPairs pairs = foldr (.) id $ intersperse (showChar ' ') (showPair <$> pairs) showPair (k, v) = showString k . showChar '=' . withSGRCode colourize [SetConsoleIntensity BoldIntensity] (showString v) showTime = showString . Time.formatTime Time.defaultTimeLocale "%X" ================================================ FILE: semantic/src/Semantic/Telemetry/Stat.hs ================================================ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE RecordWildCards #-} module Semantic.Telemetry.Stat ( -- Primary API for creating stats. increment , decrement , count , gauge , timing , withTiming , withTiming' , histogram , set , Stat , Tags , Host , Port , Namespace -- Client , statsClient , StatsClient(..) , closeStatClient -- Internal, exposed for testing , renderDatagram , sendStat ) where import Control.Monad import Control.Monad.IO.Class import qualified Data.ByteString.Char8 as B import Data.List (intercalate) import Data.List.Split (splitOneOf) import qualified Data.Time.Clock as Time import Network.Socket (Socket, SocketType (..), addrAddress, addrFamily, close, connect, defaultProtocol, getAddrInfo, socket) import Network.Socket.ByteString import Numeric import System.IO.Error -- | A named piece of data you wish to record a specific 'Metric' for. -- See https://docs.datadoghq.com/guides/dogstatsd/ for more details. data Stat = Stat { statName :: String -- ^ Stat name, usually separated by '.' (e.g. "system.metric.name") , statValue :: Metric -- ^ 'Metric' value. , statTags :: Tags -- ^ Key/value 'Tags' (optional). } -- | The various supported metric types in Datadog. data Metric = Counter Int -- ^ Counters track how many times something happens per second. | Gauge Double -- ^ Gauges track the ebb and flow of a particular metric value over time. | Histogram Double -- ^ Histograms calculate the statistical distribution of any kind of value. | Set Double -- ^ Sets count the number of unique elements in a group | Timer Double -- ^ Timers measure the amount of time a section of code takes to execute. -- | Tags are key/value annotations. Values can blank. type Tags = [(String, String)] -- | Increment a counter. increment :: String -> Tags -> Stat increment n = count n 1 -- | Decrement a counter. decrement :: String -> Tags -> Stat decrement n = count n (-1) -- | Arbitrary count. count :: String -> Int -> Tags -> Stat count n v = Stat n (Counter v) -- | Arbitrary gauge value. gauge :: String -> Double -> Tags -> Stat gauge n v = Stat n (Gauge v) -- | Timing in milliseconds. timing :: String -> Double -> Tags -> Stat timing n v = Stat n (Timer v) -- | Run an IO Action and record timing in a Stat. withTiming :: MonadIO io => String -> Tags -> io a -> io (a, Stat) withTiming name tags action = do (res, duration) <- withTiming' action pure (res, timing name duration tags) -- | Run an IO Action and record timing. withTiming' :: MonadIO io => io a -> io (a, Double) withTiming' action = do start <- liftIO Time.getCurrentTime result <- action end <- liftIO Time.getCurrentTime let duration = realToFrac (Time.diffUTCTime end start * 1000) pure (result, duration) -- | Histogram measurement. histogram :: String -> Double -> Tags -> Stat histogram n v = Stat n (Histogram v) -- | Set counter. set :: String -> Double -> Tags -> Stat set n v = Stat n (Set v) -- | Client for sending stats on a UDP socket. data StatsClient = StatsClient { statsClientUDPSocket :: Socket , statsClientNamespace :: String , statsClientUDPHost :: Host , statsClientUDPPort :: Port } type Host = String type Port = String type Namespace = String -- | Create a StatsClient at the specified host and port with a namespace prefix. statsClient :: MonadIO io => Host -> Port -> Namespace -> io StatsClient statsClient host port ns = liftIO $ do (addr:_) <- getAddrInfo Nothing (Just host) (Just port) sock <- socket (addrFamily addr) Datagram defaultProtocol connect sock (addrAddress addr) pure (StatsClient sock ns host port) -- | Close the client's underlying socket. closeStatClient :: MonadIO io => StatsClient -> io () closeStatClient StatsClient{..} = liftIO (close statsClientUDPSocket) -- | Send a stat over the StatsClient's socket. sendStat :: MonadIO io => StatsClient -> Stat -> io () sendStat StatsClient{..} = liftIO . void . tryIOError . sendAll statsClientUDPSocket . B.pack . renderDatagram statsClientNamespace -- Datagram Rendering -- | Rendering of stats to their datagrams representations, which are packed and -- sent over a socket. class Render a where renders :: a -> RenderS -- | A Function that prepends the output 'String' to an existing 'String'. -- Analogous to 'ShowS'. type RenderS = String -> String -- | Utility function to prepend the string unchanged. renderString :: String -> RenderS renderString = (<>) -- | Internal: Clean a stat name of reserved chars `|, @, :` clean :: String -> String clean = intercalate "_" . splitOneOf "|@:" -- | Render a Stat (with namespace prefix) to a datagram String. renderDatagram :: String -> Stat -> String renderDatagram namespace stat = renderString prefix (renders stat "") where prefix | null namespace = "" | otherwise = clean namespace <> "." -- Instances instance Render Stat where renders Stat{..} = renderString (clean statName) . renderString ":" . renders statValue . renders statTags instance Render Metric where renders (Counter x) = renders x . renderString "|c" renders (Gauge x) = renders x . renderString "|g" renders (Histogram x) = renders x . renderString "|h" renders (Set x) = renders x . renderString "|s" renders (Timer x) = renders x . renderString "|ms" instance Render Tags where renders [] = renderString "" renders xs = renderString "|#" . (\x -> x <> intercalate "," (renderTag <$> xs)) where renderTag (k, "") = k renderTag (k, v) = k <> ":" <> v instance Render Int where renders = shows instance Render Double where renders = showFFloat (Just 5) ================================================ FILE: semantic/src/Semantic/Telemetry.hs ================================================ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} module Semantic.Telemetry ( -- Async telemetry interface withLogger , withErrorReporter , withStatter , LogQueue , StatQueue , ErrorQueue , TelemetryQueues(..) , queueLogMessage , queueErrorReport , queueStat -- Create stats , Stat.increment , Stat.decrement , Stat.count , Stat.gauge , Stat.timing , Stat.withTiming , Stat.histogram , Stat.set -- Statsd client , statsClient , StatsClient -- Error reporters , nullErrorReporter -- Logging options and formatters , Level(..) , LogOptions(..) , logfmtFormatter , terminalFormatter , LogFormatter -- Eff interface for telemetry , writeLog , writeStat , time , time' , Telemetry(..) , runTelemetry , TelemetryC(..) , ignoreTelemetry , IgnoreTelemetryC(..) ) where import Control.Algebra import Control.Carrier.Reader import Control.Exception import Control.Monad.IO.Class import qualified Data.Time.Clock.POSIX as Time (getCurrentTime) import qualified Data.Time.LocalTime as LocalTime import Semantic.Telemetry.AsyncQueue import Semantic.Telemetry.Error import Semantic.Telemetry.Log import Semantic.Telemetry.Stat as Stat type LogQueue = AsyncQueue Message LogOptions type StatQueue = AsyncQueue Stat StatsClient type ErrorQueue = AsyncQueue ErrorReport ErrorReporter data TelemetryQueues = TelemetryQueues { telemetryLogger :: LogQueue , telemetryStatter :: StatQueue , telemetryErrorReporter :: ErrorQueue } -- | Execute an action in IO with access to a logger (async log queue). withLogger :: LogOptions -- ^ Log options -> Int -- ^ Max stats queue size before dropping stats -> (LogQueue -> IO c) -- ^ Action in IO -> IO c withLogger options size = bracket setup closeAsyncQueue where setup = newAsyncQueue size writeLogMessage options -- | Execute an action in IO with access to an error reporter (async error reporting queue). withErrorReporter :: IO ErrorReporter -> Int -> (ErrorQueue -> IO c) -> IO c withErrorReporter errorReporter size = bracket setup closeAsyncQueue where setup = errorReporter >>= newAsyncQueue size ($) -- | Execute an action in IO with access to a statter (async stat queue). -- Handles the bracketed setup and teardown of the underlying 'AsyncQueue' and -- 'StatsClient'. withStatter :: Host -- ^ Statsd host -> Port -- ^ Statsd port -> Namespace -- ^ Namespace prefix for stats -> Int -- ^ Max stats queue size before dropping stats -> (StatQueue -> IO c) -- ^ Action in IO -> IO c withStatter host port ns size = bracket setup teardown where setup = statsClient host port ns >>= newAsyncQueue size sendStat teardown statter = closeAsyncQueue statter >> Stat.closeStatClient (asyncQueueExtra statter) -- | Queue a message to be logged. queueLogMessage :: MonadIO io => LogQueue -> Level -> String -> [(String, String)] -> io () queueLogMessage q@AsyncQueue{..} level message pairs | Just logLevel <- logOptionsLevel asyncQueueExtra , level <= logLevel = liftIO Time.getCurrentTime >>= liftIO . LocalTime.utcToLocalZonedTime >>= liftIO . writeAsyncQueue q . Message level message pairs | otherwise = pure () -- | Queue an error to be reported. queueErrorReport :: MonadIO io => ErrorQueue -> SomeException -> [(String, String)] -> io () queueErrorReport q message = liftIO . writeAsyncQueue q . ErrorReport message -- | Queue a stat to be sent to statsd. queueStat :: MonadIO io => StatQueue -> Stat -> io () queueStat q = liftIO . writeAsyncQueue q -- Eff interface -- | A task which logs a message at a specific log level to stderr. writeLog :: Has Telemetry sig m => Level -> String -> [(String, String)] -> m () writeLog level message pairs = send (WriteLog level message pairs) -- | A task which writes a stat. writeStat :: Has Telemetry sig m => Stat -> m () writeStat stat = send (WriteStat stat) -- | A task which measures and stats the timing of another task. time :: (Has Telemetry sig m, MonadIO m) => String -> [(String, String)] -> m output -> m output time statName tags task = do (a, stat) <- withTiming statName tags task a <$ writeStat stat -- | A task which measures and returns the timing of another task. time' :: MonadIO m => m output -> m (output, Double) time' = withTiming' -- | Statting and logging effects. data Telemetry (m :: * -> *) k where WriteStat :: Stat -> Telemetry m () WriteLog :: Level -> String -> [(String, String)] -> Telemetry m () -- | Run a 'Telemetry' effect by expecting a 'Reader' of 'Queue's to write stats and logs to. runTelemetry :: LogQueue -> StatQueue -> TelemetryC m a -> m a runTelemetry logger statter = runReader (logger, statter) . runTelemetryC newtype TelemetryC m a = TelemetryC { runTelemetryC :: ReaderC (LogQueue, StatQueue) m a } deriving (Applicative, Functor, Monad, MonadFail, MonadIO) instance (Algebra sig m, MonadIO m) => Algebra (Telemetry :+: sig) (TelemetryC m) where alg hdl sig ctx = case sig of L op -> do queues <- TelemetryC (ask @(LogQueue, StatQueue)) case op of WriteStat stat -> ctx <$ queueStat (snd queues) stat WriteLog level message pairs -> ctx <$ queueLogMessage (fst queues) level message pairs R other -> TelemetryC (alg (runTelemetryC . hdl) (R other) ctx) -- | Run a 'Telemetry' effect by ignoring statting/logging. ignoreTelemetry :: IgnoreTelemetryC m a -> m a ignoreTelemetry = runIgnoreTelemetryC newtype IgnoreTelemetryC m a = IgnoreTelemetryC { runIgnoreTelemetryC :: m a } deriving (Applicative, Functor, Monad) instance Algebra sig m => Algebra (Telemetry :+: sig) (IgnoreTelemetryC m) where alg hdl sig ctx = case sig of L WriteStat{} -> pure ctx L WriteLog{} -> pure ctx R other -> IgnoreTelemetryC (alg (runIgnoreTelemetryC . hdl) other ctx) ================================================ FILE: semantic/src/Semantic/Util/Pretty.hs ================================================ module Semantic.Util.Pretty (prettyShow) where import Language.Haskell.HsColour import Language.Haskell.HsColour.Colourise import Text.Show.Pretty (ppShow) prettyShow :: Show a => a -> IO () prettyShow = putStrLn . hscolour TTY defaultColourPrefs False False "" False . ppShow ================================================ FILE: semantic/src/Semantic/Util.hs ================================================ {-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE PartialTypeSignatures #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# OPTIONS_GHC -Wno-missing-signatures -Wno-missing-exported-signatures -Wno-partial-type-signatures -O0 #-} module Semantic.Util ( parseFile , parseFileQuiet ) where import Prelude hiding (readFile) import Analysis.File import Analysis.Reference import Control.Carrier.Parse.Simple import Control.Effect.Reader import Control.Exception hiding (evaluate) import Control.Monad import Parsing.Parser import Semantic.Config import Semantic.Task import qualified Source.Language as Language import Source.Span (Pos (..), point) import System.Exit (die) parseFile, parseFileQuiet :: Parser term -> FilePath -> IO term parseFile parser = runTask' . (parse parser <=< readBlob . fileForPath) parseFileQuiet parser = runTaskQuiet . (parse parser <=< readBlob . fileForPath) fileForPath :: FilePath -> File Language.Language fileForPath p = File (Reference p (point (Pos 1 1))) (Language.forPath p) runTask', runTaskQuiet :: ParseC TaskC a -> IO a runTask' task = runTaskWithOptions debugOptions (asks configTreeSitterParseTimeout >>= \ timeout -> runParse timeout task) >>= either (die . displayException) pure runTaskQuiet task = runTaskWithOptions defaultOptions (asks configTreeSitterParseTimeout >>= \ timeout -> runParse timeout task) >>= either (die . displayException) pure ================================================ FILE: semantic/src/Semantic/Version.hs ================================================ {-# LANGUAGE CPP #-} module Semantic.Version ( buildSHA , buildVersion ) where #if !BAZEL_BUILD import Data.Version (showVersion) import Paths_semantic (version) #endif -- The version string of this build of semantic. buildVersion :: String #if BAZEL_BUILD buildVersion = "0.11.0.0" #else buildVersion = showVersion version #endif -- The SHA1 hash of this build of semantic. -- If compiled as a development build, this will be @@. buildSHA :: String buildSHA = "" ================================================ FILE: semantic/src/Serializing/Format.hs ================================================ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE OverloadedStrings #-} module Serializing.Format ( Format (..), FormatStyle (..), Builder, runSerialize, ) where import AST.Marshal.JSON import Algebra.Graph.Export.Dot import Algebra.Graph.ToGraph import Data.Aeson (ToJSON (..), fromEncoding) import Data.ByteString.Builder import Data.ProtoLens.Encoding as Proto import Data.ProtoLens.Message (Message) import Language.Haskell.HsColour import Language.Haskell.HsColour.Colourise import Source.Loc import Text.Show.Pretty data Format input where DOT :: (Ord vertex, ToGraph graph, ToVertex graph ~ vertex) => Style vertex Builder -> Format graph JSON :: ToJSON input => Format input Marshal :: MarshalJSON input => Format (input Loc) Show :: Show input => Format input Proto :: Message input => Format input data FormatStyle = Colourful | Plain runSerialize :: FormatStyle -> Format input -> input -> Builder runSerialize _ (DOT style) = export style runSerialize _ JSON = (<> "\n") . fromEncoding . toEncoding runSerialize _ Marshal = fromEncoding . toEncoding . marshal runSerialize Colourful Show = (<> "\n") . stringUtf8 . hscolour TTY defaultColourPrefs False False "" False . ppShow runSerialize Plain Show = (<> "\n") . stringUtf8 . show runSerialize _ Proto = Proto.buildMessage ================================================ FILE: semantic/src/Serializing/SExpression/Precise.hs ================================================ {-# LANGUAGE AllowAmbiguousTypes, DataKinds, FlexibleContexts, FlexibleInstances, MultiParamTypeClasses, OverloadedStrings, ScopedTypeVariables, TypeApplications, TypeFamilies, TypeOperators, UndecidableInstances #-} module Serializing.SExpression.Precise ( serializeSExpression , ToSExpression(..) ) where import Data.ByteString.Builder import Data.Foldable (fold) import Data.List (intersperse) import GHC.Generics serializeSExpression :: ToSExpression t => t ann -> Builder serializeSExpression t = toSExpression t 0 <> "\n" nl :: Int -> Builder nl n | n <= 0 = "" | otherwise = "\n" pad :: Int -> Builder pad n = stringUtf8 (replicate (2 * n) ' ') class ToSExpression (t :: * -> *) where toSExpression :: t ann -> Int -> Builder instance (ToSExpressionBy strategy t, strategy ~ ToSExpressionStrategy t) => ToSExpression t where toSExpression = toSExpression' @strategy data Strategy = Generic | Custom type family ToSExpressionStrategy (t :: * -> *) :: Strategy where ToSExpressionStrategy (_ :+: _) = 'Custom ToSExpressionStrategy _ = 'Generic class ToSExpressionBy (strategy :: Strategy) t where toSExpression' :: t ann -> Int -> Builder instance (ToSExpression l, ToSExpression r) => ToSExpressionBy 'Custom (l :+: r) where toSExpression' (L1 l) = toSExpression l toSExpression' (R1 r) = toSExpression r instance (Generic1 t, GToSExpression (Rep1 t)) => ToSExpressionBy 'Generic t where toSExpression' t n = nl n <> pad n <> "(" <> fold (intersperse " " (gtoSExpression (from1 t) n)) <> ")" class GToSExpression f where gtoSExpression :: f ann -> Int -> [Builder] instance GToSExpression f => GToSExpression (M1 D d f) where gtoSExpression = gtoSExpression . unM1 instance (GToSExpression f, GToSExpression g) => GToSExpression (f :+: g) where gtoSExpression (L1 l) = gtoSExpression l gtoSExpression (R1 r) = gtoSExpression r instance (Constructor c, GToSExpression f) => GToSExpression (M1 C c f) where gtoSExpression m n = stringUtf8 (conName m) : gtoSExpression (unM1 m) (n + 1) instance (GToSExpression f, GToSExpression g) => GToSExpression (f :*: g) where gtoSExpression (l :*: r) = gtoSExpression l <> gtoSExpression r instance GToSExpression U1 where gtoSExpression _ _ = [] instance GToSExpression f => GToSExpression (M1 S s f) where gtoSExpression = gtoSExpression . unM1 -- FIXME: show the selector name, if any instance Show k => GToSExpression (K1 R k) where gtoSExpression k _ = [stringUtf8 (show (unK1 k))] instance GToSExpression Par1 where gtoSExpression _ _ = [] instance ToSExpression t => GToSExpression (Rec1 t) where gtoSExpression (Rec1 t) = pure . toSExpression t instance (Foldable f, GToSExpression g) => GToSExpression (f :.: g) where gtoSExpression (Comp1 fs) n | null fs = mempty | otherwise = foldMap gtoSExpression fs n ================================================ FILE: semantic/test/Data/Graph/Spec.hs ================================================ module Data.Graph.Spec (spec) where import SpecHelpers import Data.Graph.Algebraic import qualified Algebra.Graph.Class as Class spec :: Spec spec = describe "Data.Graph" $ it "has a valid topological sort" $ do let topo = topologicalSort topo (Class.path "ab") `shouldBe` "ba" topo (Class.path "abc") `shouldBe` "cba" topo ((vertex 'a' `connect` vertex 'b') `connect` vertex 'c') `shouldBe` "cba" topo (vertex 'a' `connect` (vertex 'b' `connect` vertex 'c')) `shouldBe` "cba" topo ((vertex 'a' `connect` vertex 'b') <> (vertex 'a' `connect` vertex 'c')) `shouldBe` "cba" topo (Class.path "abd" <> Class.path "acd") `shouldBe` "dcba" topo (Class.path "aba") `shouldBe` "ab" ================================================ FILE: semantic/test/Data/Language/Spec.hs ================================================ module Data.Language.Spec (testTree) where import Source.Language as Language import Test.Tasty import Test.Tasty.HUnit testTree :: TestTree testTree = testGroup "Data.Language" [ testCase "languageForFilePath works for languages with ambiguous lingo extensions" $ do Language.forPath "foo.php" @=? PHP Language.forPath "foo.md" @=? Markdown Language.forPath "foo.tsx" @=? TSX ] ================================================ FILE: semantic/test/Data/Semigroup/App/Spec.hs ================================================ {-# LANGUAGE OverloadedStrings #-} module Data.Semigroup.App.Spec (testTree) where import Data.Semigroup.App import Hedgehog import qualified Hedgehog.Gen as Gen import qualified Hedgehog.Range as Range import Properties import qualified Test.Tasty as Tasty import qualified Test.Tasty.Hedgehog as Tasty app :: MonadGen m => m (App Maybe Integer) app = App <$> Gen.maybe (Gen.integral (Range.linear 0 10000)) merge :: MonadGen m => m (AppMerge Maybe String) merge = AppMerge <$> Gen.maybe (Gen.string (Range.linear 0 10) Gen.ascii) testTree :: Tasty.TestTree testTree = Tasty.testGroup "Data.Semigroup.App" [ Tasty.testGroup "App" [ Tasty.testPropertyNamed "is associative" "App_is_associative" (associative (<>) app) ] , Tasty.testGroup "AppMerge" [ Tasty.testPropertyNamed "is associative" "AppMerge_is_associative" (associative (<>) merge) , Tasty.testPropertyNamed "is monoidal" "AppMerge_is_monoidal" (monoidal merge) ] ] ================================================ FILE: semantic/test/Examples.hs ================================================ {-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE CPP #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE ImplicitParams #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeApplications #-} {-# OPTIONS_GHC -O1 #-} {-# OPTIONS_GHC -Wno-unused-top-binds -Wno-unused-imports #-} module Main (main) where import qualified Analysis.File as File import Control.Carrier.Parse.Measured import Control.Carrier.Reader import Control.Concurrent.Async (forConcurrently) import Control.Exception (displayException) import Control.Lens import Control.Monad import Data.Blob import Data.Flag import Data.Foldable import Data.Int import qualified Data.Text as Text import Data.Traversable import Proto.Semantic as P hiding (Blob) import Proto.Semantic_Fields as P import Semantic.Api.Symbols (parseSymbols) import Semantic.Config as Config import Semantic.Task import Semantic.Task.Files import System.FilePath import System.FilePath.Glob import qualified System.Path.Fixture as Fixture import qualified System.Process as Process import qualified Test.Tasty as Tasty import qualified Test.Tasty.HUnit as HUnit data LanguageExample = LanguageExample { languageName :: String , languageExtension :: String , languageSkips :: [FilePath] , languageDirSkips :: [FilePath] } deriving (Eq, Show) le :: String -> String -> [FilePath] -> [FilePath] -> LanguageExample le = LanguageExample examples :: [LanguageExample] examples = [ le "go" "**/*.go" goFileSkips goDirSkips , le "python" "**/*.py" pythonFileSkips mempty , le "ruby" "**/*.rb" rubySkips mempty , le "typescript" "**/*.[jt]s" typescriptSkips mempty -- , le "typescript" "**/*.[jt]sx" tsxSkips mempty ] goFileSkips :: [FilePath] goFileSkips = [ -- Super slow "go/src/vendor/golang_org/x/text/unicode/norm/tables.go" , "go/src/vendor/golang_org/x/text/unicode/bidi/tables.go" , "go/src/vendor/golang_org/x/net/idna/tables.go" , "go/src/cmd/vendor/golang.org/x/arch/x86/x86asm/tables.go" , "moby/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go" , "moby/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go" -- Parser timeouts , "moby/vendor/github.com/ugorji/go/codec/fast-path.generated.go" -- Parse errors , "go/src/math/big/arith.go" -- Unhandled identifier character: 'ŝ' , "go/src/cmd/go/testdata/src/badpkg/x.go" , "go/src/cmd/go/testdata/src/notest/hello.go" , "go/src/cmd/vet/testdata/deadcode.go" , "go/src/cmd/vet/testdata/testingpkg/tests_test.go" , "moby/vendor/github.com/beorn7/perks/quantile/stream.go" -- Unhandled identifier character: 'ƒ' ] goDirSkips :: [FilePath] goDirSkips = [ "go/src/cmd/compile/internal/ssa" , "go/test/fixedbugs" , "go/test/syntax" , "go/test/method4.dir" , "go/test" ] pythonFileSkips :: [FilePath] pythonFileSkips = [] rubySkips :: [FilePath] rubySkips = [ -- Doesn't parse b/c of issue with r< TaskSession -> LanguageExample -> FilePath -> IO Tasty.TestTree buildExamples session lang tsDir = do let fileSkips = fmap (tsDir ) (languageSkips lang) dirSkips = fmap (tsDir ) (languageDirSkips lang) files <- globDir1 (compile (languageExtension lang)) tsDir when (null files) (fail ("Nothing in dir " <> tsDir)) let paths = filter (\x -> takeDirectory x `notElem` dirSkips) . filter (`notElem` fileSkips) $ files trees <- for paths $ \file -> do pure . HUnit.testCase file $ do precise <- runTask session (runParse (parseSymbolsFilePath file)) assertOK "precise" precise pure (Tasty.testGroup (languageName lang) trees) where assertOK msg = either (\e -> HUnit.assertFailure (msg <> " failed to parse" <> show e)) (refuteErrors msg) refuteErrors msg a = case toList (a^.files) of [x] | (e:_) <- toList (x^.errors) -> HUnit.assertFailure (msg <> " parse errors " <> show e) _ -> pure () data SortableSymbol = SortableSymbol Text.Text Int32 Int32 Int32 Int32 deriving (Eq, Show, Ord) testOptions :: Config.Options testOptions = defaultOptions { optionsFailOnWarning = flag FailOnWarning True , optionsLogLevel = Nothing } main :: IO () -- main = putStrLn "nothing" main = withOptions testOptions $ \ config logger statter -> do -- void $ Process.system "script/clone-example-repos" #if BAZEL_BUILD rf <- Fixture.create let ?runfiles = rf let ?project = FilePath "semantic" #endif let session = TaskSession config "-" False logger statter allTests <- forConcurrently examples $ \lang -> do let tsDir = Fixture.absRelDir ".." buildExamples session lang tsDir Tasty.defaultMain $ Tasty.testGroup "parse-examples" allTests parseSymbolsFilePath :: ( Has (Error SomeException) sig m , Has Parse sig m , Has Files sig m ) => FilePath -> m ParseTreeSymbolResponse parseSymbolsFilePath path = readBlob (File.fromPath path) >>= parseSymbols . pure @[] ================================================ FILE: semantic/test/Generators.hs ================================================ {-# LANGUAGE OverloadedStrings #-} module Generators ( source ) where import Hedgehog import qualified Hedgehog.Gen as Gen import qualified Source.Source source :: MonadGen m => Hedgehog.Range Int -> m Source.Source.Source source r = Gen.frequency [ (1, empty), (20, nonEmpty) ] where empty = pure mempty nonEmpty = Source.Source.fromUTF8 <$> Gen.utf8 r (Gen.frequency [ (1, pure '\r'), (1, pure '\n'), (20, Gen.unicode) ]) ================================================ FILE: semantic/test/Integration/Spec.hs ================================================ {-# LANGUAGE ImplicitParams #-} {-# LANGUAGE LambdaCase #-} module Integration.Spec (testTree) where import Control.Exception (throw) import qualified Data.ByteString.Lazy as BL import Data.Foldable (find) import Data.List (transpose, union) import SpecHelpers import System.FilePath import System.FilePath.Glob import System.IO.Unsafe import Test.Tasty import Test.Tasty.Golden languages :: [FilePath] languages = ["go", "javascript", "json", "python", "ruby", "typescript", "tsx"] testTree :: (?session :: TaskSession) => TestTree testTree = testGroup "Integration (golden tests)" $ fmap testsForLanguage languages testsForLanguage :: (?session :: TaskSession) => FilePath -> TestTree testsForLanguage language = do let dir = "test/fixtures" language "corpus" let items = unsafePerformIO (examples dir) localOption (mkTimeout 3000000) $ testGroup language $ fmap testForExample items {-# NOINLINE testsForLanguage #-} data Example = ParseExample FilePath FilePath deriving (Eq, Show) testForExample :: (?session :: TaskSession) => Example -> TestTree testForExample (ParseExample file parseOutput) = goldenVsStringDiff ("parses " <> parseOutput) (\ref new -> ["git", "diff", ref, new]) parseOutput (parseFilePath ?session file >>= either throw (pure . BL.fromStrict)) -- | Return all the examples from the given directory. Examples are expected to -- | have the form: -- | -- | example-name.A.rb - The left hand side of the diff. -- | example-name.B.rb - The right hand side of the diff. -- | -- | example-name.diffA-B.txt - The expected sexpression diff output for A -> B. -- | example-name.diffB-A.txt - The expected sexpression diff output for B -> A. -- | -- | example-name.parseA.txt - The expected sexpression parse tree for example-name.A.rb -- | example-name.parseB.txt - The expected sexpression parse tree for example-name.B.rb examples :: FilePath -> IO [Example] examples directory = do as <- globFor "*.A.*" bs <- globFor "*.B.*" sExpAs <- globFor "*.parseA.txt" sExpBs <- globFor "*.parseB.txt" let exampleParse files out name = ParseExample (lookupNormalized name files) out let keys = (normalizeName <$> as) `union` (normalizeName <$> bs) pure $ merge [ getExamples (exampleParse as) sExpAs keys , getExamples (exampleParse bs) sExpBs keys ] where merge = concat . transpose -- Only returns examples if they exist getExamples f list = foldr (go f list) [] where go f list name acc = case lookupNormalized' name list of Just out -> f out name : acc Nothing -> acc lookupNormalized :: FilePath -> [FilePath] -> FilePath lookupNormalized name xs = fromMaybe (error ("cannot find " <> name <> " make sure .A, .B and exist.")) (lookupNormalized' name xs) lookupNormalized' :: FilePath -> [FilePath] -> Maybe FilePath lookupNormalized' name = find ((== name) . normalizeName) globFor :: String -> IO [FilePath] globFor p = globDir1 (compile p) directory -- | Given a test name like "foo.A.js", return "foo". normalizeName :: FilePath -> FilePath normalizeName = dropExtension . dropExtension ================================================ FILE: semantic/test/Properties.hs ================================================ -- | Defines useful Hedgehog checkers based around the properties of -- standard typeclasses (associativity, reflexivity, etc.) This module -- is similar to the hedgehog-checkers package on Hackage, but said -- package doesn't work with hedgehog-1.0, so we reproduce these -- (largely-trivial) functions here. module Properties ( associative , monoidal ) where import GHC.Stack import Hedgehog associative :: (Eq a, Show a) => (a -> a -> a) -> Gen a -> Property associative fn gen = property $ withFrozenCallStack $ do (a, b, c) <- forAll ((,,) <$> gen <*> gen <*> gen) fn a (fn b c) === fn (fn a b) c monoidal :: (Eq a, Show a, Monoid a) => Gen a -> Property monoidal gen = property $ withFrozenCallStack $ do it <- forAll gen mempty <> it === it it <> mempty === it ================================================ FILE: semantic/test/Semantic/CLI/Spec.hs ================================================ {-# OPTIONS_GHC -Wno-unused-imports #-} module Semantic.CLI.Spec (testTree) where import Analysis.File import Analysis.Reference import Control.Carrier.Parse.Simple import Control.Carrier.Reader import Control.Exception import Data.ByteString.Builder import Semantic.Api hiding (Blob, File) import Semantic.Task import Serializing.Format import Source.Language import SpecHelpers import System.Directory import System.FilePath import System.IO.Unsafe import qualified System.Path.Fixture as Fixture import Test.Tasty import Test.Tasty.Golden testTree :: TestTree testTree = testGroup "Semantic.CLI" [ testGroup "parseTermBuilder" $ fmap testForParseFixture parseFixtures ] -- We provide this function to the golden tests so as to have better -- output when diffing JSON outputs. If you're investigating these -- tests and find this output hard to read, install the `jd` CLI tool -- (https://github.com/josephburnett/jd), which will print a detailed -- summary of the differences between these JSON files. renderDiff :: String -> String -> [String] renderDiff ref new = unsafePerformIO $ do let check p = do exists <- doesFileExist p unless exists (throwIO (userError ("Can't find path " <> p))) check ref check new useJD <- (takeExtension ref == ".json" &&) <$> fmap isJust (findExecutable "jd") pure $ if useJD then ["jd", "-set", ref, new] else ["diff", ref, new] {-# NOINLINE renderDiff #-} testForParseFixture :: (String, [Blob] -> ParseC TaskC Builder, [File Language], FilePath) -> TestTree testForParseFixture (format, runParse, files, expected) = goldenVsStringDiff ("parse fixture renders to " <> format) renderDiff expected (fmap toLazyByteString . runTaskOrDie $ readBlobs (FilesFromPaths files) >>= runParse) parseFixtures :: [(String, [Blob] -> ParseC TaskC Builder, [File Language], FilePath)] parseFixtures = [ ("s-expression", parseTermBuilder TermSExpression, path, "semantic/test/fixtures/ruby/corpus/and-or.parseA.txt") , ("symbols", parseSymbolsBuilder Serializing.Format.JSON, path'', "semantic/test/fixtures/cli/parse-tree.symbols.json") , ("protobuf symbols", parseSymbolsBuilder Serializing.Format.Proto, path'', "semantic/test/fixtures/cli/parse-tree.symbols.protobuf.bin") ] where path = [File (Reference "semantic/test/fixtures/ruby/corpus/and-or.A.rb" lowerBound) Ruby] path'' = [File (Reference "semantic/test/fixtures/ruby/corpus/method-declaration.A.rb" lowerBound) Ruby] ================================================ FILE: semantic/test/Semantic/IO/Spec.hs ================================================ {-# LANGUAGE CPP #-} {-# LANGUAGE ImplicitParams #-} {-# LANGUAGE OverloadedStrings #-} {-# OPTIONS_GHC -Wno-unused-imports #-} {-# OPTIONS_GHC -Wno-redundant-constraints #-} module Semantic.IO.Spec (spec) where import Prelude hiding (readFile) import Analysis.File as File import Analysis.Reference as Ref import Data.Blob as Blob import Data.Handle import SpecHelpers import qualified System.Path.Fixture as Fixture spec :: Fixture.HasFixture => Spec spec = do #if BAZEL_BUILD rf <- runIO Fixture.create let ?project = "semantic" ?runfiles = rf #endif let blobsFromFilePath path = do h <- openFileForReading (Fixture.absRelFile path) blobs <- readBlobPairsFromHandle h pure blobs describe "readFile" $ do it "returns a blob for extant files" $ do let path = Fixture.absRelFile "test/fixtures/cli/diff.json" Just blob <- readBlobFromFile (File (Reference path lowerBound) Unknown) blobFilePath blob `shouldBe` path it "throws for absent files" $ do readBlobFromFile (File (Reference "/dev/doesnotexist" lowerBound) Unknown) `shouldThrow` anyIOException describe "readBlobPairsFromHandle" $ do let a = Blob.fromSource "method.rb" Ruby "def foo; end" let b = Blob.fromSource "method.rb" Ruby "def bar(x); end" it "returns blobs for valid JSON encoded diff input" $ do blobs <- blobsFromFilePath "test/fixtures/cli/diff.json" blobs `shouldBe` [Compare a b] it "returns blobs when there's no before" $ do blobs <- blobsFromFilePath "test/fixtures/cli/diff-no-before.json" blobs `shouldBe` [Insert b] it "returns blobs when there's null before" $ do blobs <- blobsFromFilePath "test/fixtures/cli/diff-null-before.json" blobs `shouldBe` [Insert b] it "returns blobs when there's no after" $ do blobs <- blobsFromFilePath "test/fixtures/cli/diff-no-after.json" blobs `shouldBe` [Delete a] it "returns blobs when there's null after" $ do blobs <- blobsFromFilePath "test/fixtures/cli/diff-null-after.json" blobs `shouldBe` [Delete a] it "returns blobs for unsupported language" $ do h <- openFileForReading (Fixture.absRelFile "test/fixtures/cli/diff-unsupported-language.json") blobs <- readBlobPairsFromHandle h let b' = Blob.fromSource "test.kt" Unknown "fun main(args: Array) {\nprintln(\"hi\")\n}\n" blobs `shouldBe` [Insert b'] it "detects language based on filepath for empty language" $ do blobs <- blobsFromFilePath "test/fixtures/cli/diff-empty-language.json" blobs `shouldBe` [Compare a b] it "throws on blank input" $ do h <- openFileForReading (Fixture.absRelFile "test/fixtures/cli/blank.json") readBlobPairsFromHandle h `shouldThrow` jsonException it "throws if language field not given" $ do h <- openFileForReading (Fixture.absRelFile "test/fixtures/cli/diff-no-language.json") readBlobsFromHandle h `shouldThrow` jsonException it "throws if null on before and after" $ do h <- openFileForReading (Fixture.absRelFile "test/fixtures/cli/diff-null-both-sides.json") readBlobPairsFromHandle h `shouldThrow` jsonException describe "readBlobsFromHandle" $ do it "returns blobs for valid JSON encoded parse input" $ do h <- openFileForReading (Fixture.absRelFile "test/fixtures/cli/parse.json") blobs <- readBlobsFromHandle h let a = Blob.fromSource "method.rb" Ruby "def foo; end" blobs `shouldBe` [a] it "throws on blank input" $ do h <- openFileForReading (Fixture.absRelFile "test/fixtures/cli/blank.json") readBlobsFromHandle h `shouldThrow` jsonException jsonException :: Selector InvalidJSONException jsonException = const True ================================================ FILE: semantic/test/Semantic/Spec.hs ================================================ {-# LANGUAGE OverloadedStrings #-} module Semantic.Spec (spec) where import Analysis.File import Control.Exception (fromException) import qualified Data.Blob as Blob import SpecHelpers import Semantic.Api hiding (Blob) -- we need some lenses here, oof setBlobLanguage :: Language -> Blob -> Blob setBlobLanguage lang b = b { blobFile = (blobFile b) { fileBody = lang }} spec :: Spec spec = do describe "parseBlob" $ do let methodsBlob = Blob.fromSource "methods.rb" Ruby "def foo\nend\n" it "throws if given an unknown language for sexpression output" $ do res <- runTaskWithOptions defaultOptions (runParseWithConfig (parseTermBuilder TermSExpression [setBlobLanguage Unknown methodsBlob])) case res of Left exc -> fromException exc `shouldBe` Just (NoLanguageForBlob "methods.rb") Right _bad -> fail "Expected parseTermBuilder to fail for an unknown language" it "renders with the specified renderer" $ do output <- fmap runBuilder . runTaskOrDie $ parseTermBuilder TermSExpression [methodsBlob] output `shouldBe` "(Program \n (Statement \n (Arg \n (Primary \n (Method \n (MethodName \n (Identifier \"foo\")))))))\n" ================================================ FILE: semantic/test/Semantic/Stat/Spec.hs ================================================ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} module Semantic.Stat.Spec (testTree) where import Control.Exception import Network.Socket (Family (..), Socket, SocketType (..), close, defaultProtocol, socketPair) import Network.Socket.ByteString import Semantic.Config import Semantic.Telemetry.Stat import System.Environment import Test.Tasty import Test.Tasty.HUnit withSocketPair :: ((Socket, Socket) -> IO c) -> IO c withSocketPair = bracket create release where create = socketPair AF_UNIX Datagram defaultProtocol release (client, server) = close client >> close server withEnvironment :: String -> String -> IO () -> IO () withEnvironment key value = bracket_ (setEnv key value) (unsetEnv key) -- NOTE: These cannot easily run in parallel because we test things like -- setting/unsetting the environment. testTree :: TestTree testTree = testCaseSteps "Semantic.Stat.Spec" $ \step -> do step "Sets appropriate defaults" case_sets_appropriate_defaults step "Takes stats addr from environment" case_takes_stats_addr_from_environment step "Handles stats addr with just hostname" case_handles_stats_addr_with_just_hostname step "takes dogstats host from environment" case_takes_dogstats_host_from_environment step "rendering" case_render_counters *> case_render_tags step "stats deliver datagram" case_sendstat_delivers_datagram case_sets_appropriate_defaults :: Assertion case_sets_appropriate_defaults = do StatsClient{..} <- defaultStatsClient statsClientNamespace @?= "semantic" statsClientUDPHost @?= "127.0.0.1" statsClientUDPPort @?= "28125" case_takes_stats_addr_from_environment :: Assertion case_takes_stats_addr_from_environment = withEnvironment "STATS_ADDR" "localhost:8125" $ do StatsClient{..} <- defaultStatsClient statsClientUDPHost @?= "localhost" statsClientUDPPort @?= "8125" case_handles_stats_addr_with_just_hostname :: Assertion case_handles_stats_addr_with_just_hostname = withEnvironment "STATS_ADDR" "localhost" $ do StatsClient{..} <- defaultStatsClient statsClientUDPHost @?= "localhost" statsClientUDPPort @?= "28125" case_takes_dogstats_host_from_environment :: Assertion case_takes_dogstats_host_from_environment = withEnvironment "DOGSTATSD_HOST" "0.0.0.0" $ do StatsClient{..} <- defaultStatsClient statsClientUDPHost @?= "0.0.0.0" statsClientUDPPort @?= "28125" key :: String key = "app.metric" case_render_counters :: Assertion case_render_counters = do renderDatagram "" (increment key []) @?= "app.metric:1|c" renderDatagram "" (decrement key []) @?= "app.metric:-1|c" renderDatagram "" (count key 8 []) @?= "app.metric:8|c" renderDatagram "pre" (increment key []) @?= "pre.app.metric:1|c" case_render_tags :: Assertion case_render_tags = do let incTag = increment key [("key", "value")] renderDatagram "" incTag @?= "app.metric:1|c|#key:value" let tagWithoutValue = increment key [("a", "")] renderDatagram "" tagWithoutValue @?= "app.metric:1|c|#a" let tags = increment key [("key", "value"), ("a", "true")] renderDatagram "" tags @?= "app.metric:1|c|#key:value,a:true" let tagsWithoutValue = increment key [("key", "value"), ("a", "")] renderDatagram "" tagsWithoutValue @?= "app.metric:1|c|#key:value,a" case_sendstat_delivers_datagram :: Assertion case_sendstat_delivers_datagram = do client <- defaultStatsClient withSocketPair $ \(clientSoc, serverSoc) -> do sendStat client { statsClientUDPSocket = clientSoc } (increment "app.metric" []) info <- recv serverSoc 1024 info @?= "semantic.app.metric:1|c" -- Defaults are all driven by defaultConfig. defaultStatsClient :: IO StatsClient defaultStatsClient = defaultConfig defaultOptions >>= \Config{..} -> statsClient configStatsHost configStatsPort configAppName ================================================ FILE: semantic/test/Spec.hs ================================================ {-# LANGUAGE ImplicitParams #-} {-# OPTIONS_GHC -Wno-redundant-constraints #-} module Main (allTests, legacySpecs, main, tests) where import qualified Data.Graph.Spec import qualified Data.Language.Spec import qualified Data.Semigroup.App.Spec import qualified Integration.Spec import qualified Semantic.CLI.Spec import Semantic.Config (defaultOptions, optionsLogLevel) import qualified Semantic.IO.Spec import qualified Semantic.Spec import qualified Semantic.Stat.Spec import Semantic.Task (TaskSession (..), withOptions) import qualified System.Path.Fixture as Fixture import qualified Tags.Spec import Test.Hspec import Test.Tasty as Tasty import Test.Tasty.Hspec as Tasty tests :: (?session :: TaskSession, Fixture.HasFixture) => [TestTree] tests = [ Data.Language.Spec.testTree , Data.Semigroup.App.Spec.testTree , Integration.Spec.testTree , Semantic.CLI.Spec.testTree , Semantic.Stat.Spec.testTree ] -- We can't bring this out of the IO monad until we divest -- from hspec, since testSpec operates in IO. allTests :: (?session :: TaskSession, Fixture.HasFixture) => IO TestTree allTests = do asTastySpecs <- Tasty.testSpecs legacySpecs let allSpecs = tests <> asTastySpecs pure (testGroup "semantic" allSpecs) -- If you're writing new test modules, please don't add to this -- stanza: it is only there to prevent massive rewrites, and is -- converted into a Tasty TestTree in 'main'. (Quoth the tasty-hspec -- documentation: "hspec and tasty serve similar purposes; consider -- using one or the other.") Instead, create a new TestTree value -- in your spec module and add it to the above 'tests' list. legacySpecs :: Fixture.HasFixture => Spec legacySpecs = parallel $ do describe "Data.Graph" Data.Graph.Spec.spec describe "Tags.Spec" Tags.Spec.spec describe "Semantic" Semantic.Spec.spec describe "Semantic.IO" Semantic.IO.Spec.spec main :: IO () main = do runfiles <- Fixture.create let ?runfiles = runfiles ?project = "semantic" withOptions defaultOptions { optionsLogLevel = Nothing } $ \ config logger statter -> let ?session = TaskSession config "-" False logger statter in allTests >>= defaultMain ================================================ FILE: semantic/test/SpecHelpers.hs ================================================ {-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# OPTIONS_GHC -fno-warn-orphans #-} module SpecHelpers ( module X , runBuilder , parseFilePath , readFilePathPair , runTaskOrDie , runParseWithConfig , TaskSession(..) , toList , Config , LogQueue , StatQueue ) where import qualified Analysis.File as File import Analysis.Name as X hiding (Level) import Analysis.Project as X import Control.Carrier.Fresh.Strict import Control.Carrier.Lift import Control.Carrier.Parse.Simple import Control.Carrier.Reader as X import Control.Exception (displayException) import Control.Monad as X import Data.Blob as X import Data.Blob.IO as X import Data.ByteString as X (ByteString) import Data.ByteString.Builder (Builder, toLazyByteString) import Data.ByteString.Lazy (toStrict) import Data.Edit as X import Data.Foldable (toList) import Data.List.NonEmpty as X (NonEmpty (..)) import Data.Maybe as X import Data.Monoid as X (First (..), Last (..), Monoid (..)) import Data.Proxy as X import Data.Semigroup as X (Semigroup (..)) import Data.Semilattice.Lower as X import Data.Traversable as X (for) import Debug.Trace as X (traceM, traceShowM) import Parsing.Parser as X import Semantic.Api hiding (Blob, File) import Semantic.Config (Config (..), optionsLogLevel) import Semantic.Task as X import Semantic.Telemetry (LogQueue, StatQueue) import Semantic.Util as X import Source.Language as X import Source.Range as X hiding (end, point, start) import Source.Source as X (Source) import Source.Span as X hiding (HasSpan (..), end, point, start) import qualified Source.Span import System.Exit (die) import Test.Hspec as X (Spec, SpecWith, around, context, describe, it, parallel, pendingWith, runIO, xit) import Test.Hspec.Expectations as X instance Lower X.Span where lowerBound = Source.Span.point (Pos 1 1) runBuilder :: Builder -> ByteString runBuilder = toStrict . toLazyByteString -- | Returns an s-expression parse tree for the specified path. parseFilePath :: TaskSession -> FilePath -> IO (Either SomeException ByteString) parseFilePath session path = do blob <- readBlobFromFile (File.fromPath path) res <- runTask session . runParse (configTreeSitterParseTimeout (config session)) $ parseTermBuilder TermSExpression (toList blob) pure (runBuilder <$> res) runParseWithConfig :: Has (Reader Config) sig m => ParseC m a -> m a runParseWithConfig task = asks configTreeSitterParseTimeout >>= \ timeout -> runParse timeout task -- | Read two files to a BlobPair. readFilePathPair :: FilePath -> FilePath -> IO BlobPair readFilePathPair p1 p2 = readFilePair (File.fromPath p1) (File.fromPath p2) -- Run a Task and call `die` if it returns an Exception. runTaskOrDie :: ParseC TaskC a -> IO a runTaskOrDie task = runTaskWithOptions defaultOptions { optionsLogLevel = Nothing } (runParseWithConfig task) >>= either (die . displayException) pure ================================================ FILE: semantic/test/Tags/Spec.hs ================================================ {-# LANGUAGE OverloadedStrings #-} module Tags.Spec ( spec, ) where import qualified Analysis.File as File import Proto.Semantic as P import Semantic.Api.Symbols import Source.Loc import SpecHelpers import qualified System.Path.Fixture as Fixture import Tags.Tagging.Precise spec :: Fixture.HasFixture => Spec spec = do describe "go" $ do it "produces tags for functions with docs (TODO)" $ parseTestFile [P.FUNCTION] (Fixture.absRelFile "test/fixtures/go/tags/simple_functions.go") `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))), 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))) ] it "produces tags for methods" $ parseTestFile [] (Fixture.absRelFile "test/fixtures/go/tags/method.go") `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))) ] it "produces tags for calls" $ parseTestFile [P.CALL] (Fixture.absRelFile "test/fixtures/go/tags/simple_functions.go") `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))) ] describe "javascript and typescript" $ do it "produces tags for functions with docs (TODO)" $ parseTestFile [] (Fixture.absRelFile "test/fixtures/javascript/tags/simple_function_with_docs.js") `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))) ] it "produces tags for classes" $ parseTestFile [] (Fixture.absRelFile "test/fixtures/typescript/tags/class.ts") `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))) ] it "produces tags for modules" $ parseTestFile [] (Fixture.absRelFile "test/fixtures/typescript/tags/module.ts") `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))) ] describe "python" $ do it "produces tags for functions" $ parseTestFile [] (Fixture.absRelFile "test/fixtures/python/tags/simple_functions.py") `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))), 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))), 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))) ] it "produces tags for functions with docs" $ parseTestFile [] (Fixture.absRelFile "test/fixtures/python/tags/simple_function_with_docs.py") `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))) ] it "produces tags for classes" $ parseTestFile [] (Fixture.absRelFile "test/fixtures/python/tags/class.py") `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))), 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))) ] it "produces tags for multi-line functions" $ parseTestFile [P.FUNCTION] (Fixture.absRelFile "test/fixtures/python/tags/multiline.py") `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))) ] describe "ruby" $ do it "produces tags for methods" $ parseTestFile [P.METHOD] (Fixture.absRelFile "test/fixtures/ruby/tags/simple_method.rb") `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))) ] it "produces tags for sends" $ parseTestFile [P.CALL] (Fixture.absRelFile "test/fixtures/ruby/tags/simple_method.rb") `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))), 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))), 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))) ] it "produces tags for methods with docs (TODO)" $ parseTestFile [] (Fixture.absRelFile "test/fixtures/ruby/tags/simple_method_with_docs.rb") `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))) ] it "correctly tags files containing multibyte UTF-8 characters (TODO)" $ parseTestFile [] (Fixture.absRelFile "test/fixtures/ruby/tags/unicode_identifiers.rb") `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))) ] it "produces tags for methods and classes with docs (TODO)" $ parseTestFile [P.MODULE, P.CLASS, P.METHOD] (Fixture.absRelFile "test/fixtures/ruby/tags/class_module.rb") `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))), 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))), 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))), 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))), 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))), 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))) ] parseTestFile :: Foldable t => t P.SyntaxType -> FilePath -> IO [Tag] parseTestFile include path = runTaskOrDie $ readBlob (File.fromPath path) >>= fmap (filter only) . tagsForBlob where only t = null include || (`elem` include) (tagSyntaxType t) ================================================ FILE: semantic/test/fixtures/base.rb ================================================ # coding: utf-8 # frozen_string_literal: true # external dependencies require 'rack' require 'tilt' require 'rack/protection' require 'mustermann' require 'mustermann/sinatra' require 'mustermann/regular' # stdlib dependencies require 'thread' require 'time' require 'uri' # other files we need require 'sinatra/indifferent_hash' require 'sinatra/show_exceptions' require 'sinatra/version' module Sinatra # The request object. See Rack::Request for more info: # http://rubydoc.info/github/rack/rack/master/Rack/Request class Request < Rack::Request HEADER_PARAM = /\s*[\w.]+=(?:[\w.]+|"(?:[^"\\]|\\.)*")?\s*/ HEADER_VALUE_WITH_PARAMS = /(?:(?:\w+|\*)\/(?:\w+(?:\.|\-|\+)?|\*)*)\s*(?:;#{HEADER_PARAM})*/ # Returns an array of acceptable media types for the response def accept @env['sinatra.accept'] ||= begin if @env.include? 'HTTP_ACCEPT' and @env['HTTP_ACCEPT'].to_s != '' @env['HTTP_ACCEPT'].to_s.scan(HEADER_VALUE_WITH_PARAMS). map! { |e| AcceptEntry.new(e) }.sort else [AcceptEntry.new('*/*')] end end end def accept?(type) preferred_type(type).to_s.include?(type) end def preferred_type(*types) return accept.first if types.empty? types.flatten! return types.first if accept.empty? accept.detect do |accept_header| type = types.detect { |t| MimeTypeEntry.new(t).accepts?(accept_header) } return type if type end end alias secure? ssl? def forwarded? @env.include? "HTTP_X_FORWARDED_HOST" end def safe? get? or head? or options? or trace? end def idempotent? safe? or put? or delete? or link? or unlink? end def link? request_method == "LINK" end def unlink? request_method == "UNLINK" end def params super rescue Rack::Utils::ParameterTypeError, Rack::Utils::InvalidParameterError => e raise BadRequest, "Invalid query parameters: #{Rack::Utils.escape_html(e.message)}" end class AcceptEntry attr_accessor :params attr_reader :entry def initialize(entry) params = entry.scan(HEADER_PARAM).map! do |s| key, value = s.strip.split('=', 2) value = value[1..-2].gsub(/\\(.)/, '\1') if value.start_with?('"') [key, value] end @entry = entry @type = entry[/[^;]+/].delete(' ') @params = Hash[params] @q = @params.delete('q') { 1.0 }.to_f end def <=>(other) other.priority <=> self.priority end def priority # We sort in descending order; better matches should be higher. [ @q, -@type.count('*'), @params.size ] end def to_str @type end def to_s(full = false) full ? entry : to_str end def respond_to?(*args) super or to_str.respond_to?(*args) end def method_missing(*args, &block) to_str.send(*args, &block) end end class MimeTypeEntry attr_reader :params def initialize(entry) params = entry.scan(HEADER_PARAM).map! do |s| key, value = s.strip.split('=', 2) value = value[1..-2].gsub(/\\(.)/, '\1') if value.start_with?('"') [key, value] end @type = entry[/[^;]+/].delete(' ') @params = Hash[params] end def accepts?(entry) File.fnmatch(entry, self) && matches_params?(entry.params) end def to_str @type end def matches_params?(params) return true if @params.empty? params.all? { |k,v| !@params.has_key?(k) || @params[k] == v } end end end # The response object. See Rack::Response and Rack::Response::Helpers for # more info: # http://rubydoc.info/github/rack/rack/master/Rack/Response # http://rubydoc.info/github/rack/rack/master/Rack/Response/Helpers class Response < Rack::Response DROP_BODY_RESPONSES = [204, 304] def body=(value) value = value.body while Rack::Response === value @body = String === value ? [value.to_str] : value end def each block_given? ? super : enum_for(:each) end def finish result = body if drop_content_info? headers.delete "Content-Length" headers.delete "Content-Type" end if drop_body? close result = [] end if calculate_content_length? # if some other code has already set Content-Length, don't muck with it # currently, this would be the static file-handler headers["Content-Length"] = body.map(&:bytesize).reduce(0, :+).to_s end [status.to_i, headers, result] end private def calculate_content_length? headers["Content-Type"] and not headers["Content-Length"] and Array === body end def drop_content_info? status.to_i / 100 == 1 or drop_body? end def drop_body? DROP_BODY_RESPONSES.include?(status.to_i) end end # Some Rack handlers (Thin, Rainbows!) implement an extended body object protocol, however, # some middleware (namely Rack::Lint) will break it by not mirroring the methods in question. # This middleware will detect an extended body object and will make sure it reaches the # handler directly. We do this here, so our middleware and middleware set up by the app will # still be able to run. class ExtendedRack < Struct.new(:app) def call(env) result, callback = app.call(env), env['async.callback'] return result unless callback and async?(*result) after_response { callback.call result } setup_close(env, *result) throw :async end private def setup_close(env, status, headers, body) return unless body.respond_to? :close and env.include? 'async.close' env['async.close'].callback { body.close } env['async.close'].errback { body.close } end def after_response(&block) raise NotImplementedError, "only supports EventMachine at the moment" unless defined? EventMachine EventMachine.next_tick(&block) end def async?(status, headers, body) return true if status == -1 body.respond_to? :callback and body.respond_to? :errback end end # Behaves exactly like Rack::CommonLogger with the notable exception that it does nothing, # if another CommonLogger is already in the middleware chain. class CommonLogger < Rack::CommonLogger def call(env) env['sinatra.commonlogger'] ? @app.call(env) : super end superclass.class_eval do alias call_without_check call unless method_defined? :call_without_check def call(env) env['sinatra.commonlogger'] = true call_without_check(env) end end end class BadRequest < TypeError #:nodoc: def http_status; 400 end end class NotFound < NameError #:nodoc: def http_status; 404 end end # Methods available to routes, before/after filters, and views. module Helpers # Set or retrieve the response status code. def status(value = nil) response.status = Rack::Utils.status_code(value) if value response.status end # Set or retrieve the response body. When a block is given, # evaluation is deferred until the body is read with #each. def body(value = nil, &block) if block_given? def block.each; yield(call) end response.body = block elsif value # Rack 2.0 returns a Rack::File::Iterator here instead of # Rack::File as it was in the previous API. unless request.head? || value.is_a?(Rack::File::Iterator) || value.is_a?(Stream) headers.delete 'Content-Length' end response.body = value else response.body end end # Halt processing and redirect to the URI provided. def redirect(uri, *args) if env['HTTP_VERSION'] == 'HTTP/1.1' and env["REQUEST_METHOD"] != 'GET' status 303 else status 302 end # According to RFC 2616 section 14.30, "the field value consists of a # single absolute URI" response['Location'] = uri(uri.to_s, settings.absolute_redirects?, settings.prefixed_redirects?) halt(*args) end # Generates the absolute URI for a given path in the app. # Takes Rack routers and reverse proxies into account. def uri(addr = nil, absolute = true, add_script_name = true) return addr if addr =~ /\A[a-z][a-z0-9\+\.\-]*:/i uri = [host = String.new] if absolute host << "http#{'s' if request.secure?}://" if request.forwarded? or request.port != (request.secure? ? 443 : 80) host << request.host_with_port else host << request.host end end uri << request.script_name.to_s if add_script_name uri << (addr ? addr : request.path_info).to_s File.join uri end alias url uri alias to uri # Halt processing and return the error status provided. def error(code, body = nil) code, body = 500, code.to_str if code.respond_to? :to_str response.body = body unless body.nil? halt code end # Halt processing and return a 404 Not Found. def not_found(body = nil) error 404, body end # Set multiple response headers with Hash. def headers(hash = nil) response.headers.merge! hash if hash response.headers end # Access the underlying Rack session. def session request.session end # Access shared logger object. def logger request.logger end # Look up a media type by file extension in Rack's mime registry. def mime_type(type) Base.mime_type(type) end # Set the Content-Type of the response body given a media type or file # extension. def content_type(type = nil, params = {}) return response['Content-Type'] unless type default = params.delete :default mime_type = mime_type(type) || default fail "Unknown media type: %p" % type if mime_type.nil? mime_type = mime_type.dup unless params.include? :charset or settings.add_charset.all? { |p| not p === mime_type } params[:charset] = params.delete('charset') || settings.default_encoding end params.delete :charset if mime_type.include? 'charset' unless params.empty? mime_type << (mime_type.include?(';') ? ', ' : ';') mime_type << params.map do |key, val| val = val.inspect if val =~ /[";,]/ "#{key}=#{val}" end.join(', ') end response['Content-Type'] = mime_type end # Set the Content-Disposition to "attachment" with the specified filename, # instructing the user agents to prompt to save. def attachment(filename = nil, disposition = :attachment) response['Content-Disposition'] = disposition.to_s.dup if filename params = '; filename="%s"' % File.basename(filename) response['Content-Disposition'] << params ext = File.extname(filename) content_type(ext) unless response['Content-Type'] or ext.empty? end end # Use the contents of the file at +path+ as the response body. def send_file(path, opts = {}) if opts[:type] or not response['Content-Type'] content_type opts[:type] || File.extname(path), :default => 'application/octet-stream' end disposition = opts[:disposition] filename = opts[:filename] disposition = :attachment if disposition.nil? and filename filename = path if filename.nil? attachment(filename, disposition) if disposition last_modified opts[:last_modified] if opts[:last_modified] file = Rack::File.new(File.dirname(settings.app_file)) result = file.serving(request, path) result[1].each { |k,v| headers[k] ||= v } headers['Content-Length'] = result[1]['Content-Length'] opts[:status] &&= Integer(opts[:status]) halt (opts[:status] || result[0]), result[2] rescue Errno::ENOENT not_found end # Class of the response body in case you use #stream. # # Three things really matter: The front and back block (back being the # block generating content, front the one sending it to the client) and # the scheduler, integrating with whatever concurrency feature the Rack # handler is using. # # Scheduler has to respond to defer and schedule. class Stream def self.schedule(*) yield end def self.defer(*) yield end def initialize(scheduler = self.class, keep_open = false, &back) @back, @scheduler, @keep_open = back.to_proc, scheduler, keep_open @callbacks, @closed = [], false end def close return if closed? @closed = true @scheduler.schedule { @callbacks.each { |c| c.call } } end def each(&front) @front = front @scheduler.defer do begin @back.call(self) rescue Exception => e @scheduler.schedule { raise e } end close unless @keep_open end end def <<(data) @scheduler.schedule { @front.call(data.to_s) } self end def callback(&block) return yield if closed? @callbacks << block end alias errback callback def closed? @closed end end # Allows to start sending data to the client even though later parts of # the response body have not yet been generated. # # The close parameter specifies whether Stream#close should be called # after the block has been executed. This is only relevant for evented # servers like Thin or Rainbows. def stream(keep_open = false) scheduler = env['async.callback'] ? EventMachine : Stream current = @params.dup body Stream.new(scheduler, keep_open) { |out| with_params(current) { yield(out) } } end # Specify response freshness policy for HTTP caches (Cache-Control header). # Any number of non-value directives (:public, :private, :no_cache, # :no_store, :must_revalidate, :proxy_revalidate) may be passed along with # a Hash of value directives (:max_age, :s_maxage). # # cache_control :public, :must_revalidate, :max_age => 60 # => Cache-Control: public, must-revalidate, max-age=60 # # See RFC 2616 / 14.9 for more on standard cache control directives: # http://tools.ietf.org/html/rfc2616#section-14.9.1 def cache_control(*values) if values.last.kind_of?(Hash) hash = values.pop hash.reject! { |k, v| v == false } hash.reject! { |k, v| values << k if v == true } else hash = {} end values.map! { |value| value.to_s.tr('_','-') } hash.each do |key, value| key = key.to_s.tr('_', '-') value = value.to_i if ['max-age', 's-maxage'].include? key values << "#{key}=#{value}" end response['Cache-Control'] = values.join(', ') if values.any? end # Set the Expires header and Cache-Control/max-age directive. Amount # can be an integer number of seconds in the future or a Time object # indicating when the response should be considered "stale". The remaining # "values" arguments are passed to the #cache_control helper: # # expires 500, :public, :must_revalidate # => Cache-Control: public, must-revalidate, max-age=500 # => Expires: Mon, 08 Jun 2009 08:50:17 GMT # def expires(amount, *values) values << {} unless values.last.kind_of?(Hash) if amount.is_a? Integer time = Time.now + amount.to_i max_age = amount else time = time_for amount max_age = time - Time.now end values.last.merge!(:max_age => max_age) cache_control(*values) response['Expires'] = time.httpdate end # Set the last modified time of the resource (HTTP 'Last-Modified' header) # and halt if conditional GET matches. The +time+ argument is a Time, # DateTime, or other object that responds to +to_time+. # # When the current request includes an 'If-Modified-Since' header that is # equal or later than the time specified, execution is immediately halted # with a '304 Not Modified' response. def last_modified(time) return unless time time = time_for time response['Last-Modified'] = time.httpdate return if env['HTTP_IF_NONE_MATCH'] if status == 200 and env['HTTP_IF_MODIFIED_SINCE'] # compare based on seconds since epoch since = Time.httpdate(env['HTTP_IF_MODIFIED_SINCE']).to_i halt 304 if since >= time.to_i end if (success? or status == 412) and env['HTTP_IF_UNMODIFIED_SINCE'] # compare based on seconds since epoch since = Time.httpdate(env['HTTP_IF_UNMODIFIED_SINCE']).to_i halt 412 if since < time.to_i end rescue ArgumentError end ETAG_KINDS = [:strong, :weak] # Set the response entity tag (HTTP 'ETag' header) and halt if conditional # GET matches. The +value+ argument is an identifier that uniquely # identifies the current version of the resource. The +kind+ argument # indicates whether the etag should be used as a :strong (default) or :weak # cache validator. # # When the current request includes an 'If-None-Match' header with a # matching etag, execution is immediately halted. If the request method is # GET or HEAD, a '304 Not Modified' response is sent. def etag(value, options = {}) # Before touching this code, please double check RFC 2616 14.24 and 14.26. options = {:kind => options} unless Hash === options kind = options[:kind] || :strong new_resource = options.fetch(:new_resource) { request.post? } unless ETAG_KINDS.include?(kind) raise ArgumentError, ":strong or :weak expected" end value = '"%s"' % value value = "W/#{value}" if kind == :weak response['ETag'] = value if success? or status == 304 if etag_matches? env['HTTP_IF_NONE_MATCH'], new_resource halt(request.safe? ? 304 : 412) end if env['HTTP_IF_MATCH'] halt 412 unless etag_matches? env['HTTP_IF_MATCH'], new_resource end end end # Sugar for redirect (example: redirect back) def back request.referer end # whether or not the status is set to 1xx def informational? status.between? 100, 199 end # whether or not the status is set to 2xx def success? status.between? 200, 299 end # whether or not the status is set to 3xx def redirect? status.between? 300, 399 end # whether or not the status is set to 4xx def client_error? status.between? 400, 499 end # whether or not the status is set to 5xx def server_error? status.between? 500, 599 end # whether or not the status is set to 404 def not_found? status == 404 end # whether or not the status is set to 400 def bad_request? status == 400 end # Generates a Time object from the given value. # Used by #expires and #last_modified. def time_for(value) if value.is_a? Numeric Time.at value elsif value.respond_to? :to_s Time.parse value.to_s else value.to_time end rescue ArgumentError => boom raise boom rescue Exception raise ArgumentError, "unable to convert #{value.inspect} to a Time object" end private # Helper method checking if a ETag value list includes the current ETag. def etag_matches?(list, new_resource = request.post?) return !new_resource if list == '*' list.to_s.split(/\s*,\s*/).include? response['ETag'] end def with_params(temp_params) original, @params = @params, temp_params yield ensure @params = original if original end end # Template rendering methods. Each method takes the name of a template # to render as a Symbol and returns a String with the rendered output, # as well as an optional hash with additional options. # # `template` is either the name or path of the template as symbol # (Use `:'subdir/myview'` for views in subdirectories), or a string # that will be rendered. # # Possible options are: # :content_type The content type to use, same arguments as content_type. # :layout If set to something falsy, no layout is rendered, otherwise # the specified layout is used (Ignored for `sass` and `less`) # :layout_engine Engine to use for rendering the layout. # :locals A hash with local variables that should be available # in the template # :scope If set, template is evaluate with the binding of the given # object rather than the application instance. # :views Views directory to use. module Templates module ContentTyped attr_accessor :content_type end def initialize super @default_layout = :layout @preferred_extension = nil end def erb(template, options = {}, locals = {}, &block) render(:erb, template, options, locals, &block) end def erubis(template, options = {}, locals = {}) warn "Sinatra::Templates#erubis is deprecated and will be removed, use #erb instead.\n" \ "If you have Erubis installed, it will be used automatically." render :erubis, template, options, locals end def haml(template, options = {}, locals = {}, &block) render(:haml, template, options, locals, &block) end def sass(template, options = {}, locals = {}) options.merge! :layout => false, :default_content_type => :css render :sass, template, options, locals end def scss(template, options = {}, locals = {}) options.merge! :layout => false, :default_content_type => :css render :scss, template, options, locals end def less(template, options = {}, locals = {}) options.merge! :layout => false, :default_content_type => :css render :less, template, options, locals end def stylus(template, options = {}, locals = {}) options.merge! :layout => false, :default_content_type => :css render :styl, template, options, locals end def builder(template = nil, options = {}, locals = {}, &block) options[:default_content_type] = :xml render_ruby(:builder, template, options, locals, &block) end def liquid(template, options = {}, locals = {}, &block) render(:liquid, template, options, locals, &block) end def markdown(template, options = {}, locals = {}) options[:exclude_outvar] = true render :markdown, template, options, locals end def textile(template, options = {}, locals = {}) render :textile, template, options, locals end def rdoc(template, options = {}, locals = {}) render :rdoc, template, options, locals end def asciidoc(template, options = {}, locals = {}) render :asciidoc, template, options, locals end def radius(template, options = {}, locals = {}) render :radius, template, options, locals end def markaby(template = nil, options = {}, locals = {}, &block) render_ruby(:mab, template, options, locals, &block) end def coffee(template, options = {}, locals = {}) options.merge! :layout => false, :default_content_type => :js render :coffee, template, options, locals end def nokogiri(template = nil, options = {}, locals = {}, &block) options[:default_content_type] = :xml render_ruby(:nokogiri, template, options, locals, &block) end def slim(template, options = {}, locals = {}, &block) render(:slim, template, options, locals, &block) end def creole(template, options = {}, locals = {}) render :creole, template, options, locals end def mediawiki(template, options = {}, locals = {}) render :mediawiki, template, options, locals end def wlang(template, options = {}, locals = {}, &block) render(:wlang, template, options, locals, &block) end def yajl(template, options = {}, locals = {}) options[:default_content_type] = :json render :yajl, template, options, locals end def rabl(template, options = {}, locals = {}) Rabl.register! render :rabl, template, options, locals end # Calls the given block for every possible template file in views, # named name.ext, where ext is registered on engine. def find_template(views, name, engine) yield ::File.join(views, "#{name}.#{@preferred_extension}") Tilt.default_mapping.extensions_for(engine).each do |ext| yield ::File.join(views, "#{name}.#{ext}") unless ext == @preferred_extension end end private # logic shared between builder and nokogiri def render_ruby(engine, template, options = {}, locals = {}, &block) options, template = template, nil if template.is_a?(Hash) template = Proc.new { block } if template.nil? render engine, template, options, locals end def render(engine, data, options = {}, locals = {}, &block) # merge app-level options engine_options = settings.respond_to?(engine) ? settings.send(engine) : {} options.merge!(engine_options) { |key, v1, v2| v1 } # extract generic options locals = options.delete(:locals) || locals || {} views = options.delete(:views) || settings.views || "./views" layout = options[:layout] layout = false if layout.nil? && options.include?(:layout) eat_errors = layout.nil? layout = engine_options[:layout] if layout.nil? or (layout == true && engine_options[:layout] != false) layout = @default_layout if layout.nil? or layout == true layout_options = options.delete(:layout_options) || {} content_type = options.delete(:default_content_type) content_type = options.delete(:content_type) || content_type layout_engine = options.delete(:layout_engine) || engine scope = options.delete(:scope) || self exclude_outvar = options.delete(:exclude_outvar) options.delete(:layout) # set some defaults options[:outvar] ||= '@_out_buf' unless exclude_outvar options[:default_encoding] ||= settings.default_encoding # compile and render template begin layout_was = @default_layout @default_layout = false template = compile_template(engine, data, options, views) output = template.render(scope, locals, &block) ensure @default_layout = layout_was end # render layout if layout options = options.merge(:views => views, :layout => false, :eat_errors => eat_errors, :scope => scope). merge!(layout_options) catch(:layout_missing) { return render(layout_engine, layout, options, locals) { output } } end output.extend(ContentTyped).content_type = content_type if content_type output end def compile_template(engine, data, options, views) eat_errors = options.delete :eat_errors template_cache.fetch engine, data, options, views do template = Tilt[engine] raise "Template engine not found: #{engine}" if template.nil? case data when Symbol body, path, line = settings.templates[data] if body body = body.call if body.respond_to?(:call) template.new(path, line.to_i, options) { body } else found = false @preferred_extension = engine.to_s find_template(views, data, template) do |file| path ||= file # keep the initial path rather than the last one if found = File.exist?(file) path = file break end end throw :layout_missing if eat_errors and not found template.new(path, 1, options) end when Proc, String body = data.is_a?(String) ? Proc.new { data } : data caller = settings.caller_locations.first path = options[:path] || caller[0] line = options[:line] || caller[1] template.new(path, line.to_i, options, &body) else raise ArgumentError, "Sorry, don't know how to render #{data.inspect}." end end end end # Base class for all Sinatra applications and middleware. class Base include Rack::Utils include Helpers include Templates URI_INSTANCE = URI::Parser.new attr_accessor :app, :env, :request, :response, :params attr_reader :template_cache def initialize(app = nil) super() @app = app @template_cache = Tilt::Cache.new @pinned_response = nil # whether a before! filter pinned the content-type yield self if block_given? end # Rack call interface. def call(env) dup.call!(env) end def call!(env) # :nodoc: @env = env @params = IndifferentHash.new @request = Request.new(env) @response = Response.new template_cache.clear if settings.reload_templates invoke { dispatch! } invoke { error_block!(response.status) } unless @env['sinatra.error'] unless @response['Content-Type'] if Array === body && body[0].respond_to?(:content_type) content_type body[0].content_type elsif default = settings.default_content_type content_type default end end @response.finish end # Access settings defined with Base.set. def self.settings self end # Access settings defined with Base.set. def settings self.class.settings end def options warn "Sinatra::Base#options is deprecated and will be removed, " \ "use #settings instead." settings end # Exit the current block, halts any further processing # of the request, and returns the specified response. def halt(*response) response = response.first if response.length == 1 throw :halt, response end # Pass control to the next matching route. # If there are no more matching routes, Sinatra will # return a 404 response. def pass(&block) throw :pass, block end # Forward the request to the downstream app -- middleware only. def forward fail "downstream app not set" unless @app.respond_to? :call status, headers, body = @app.call env @response.status = status @response.body = body @response.headers.merge! headers nil end private # Run filters defined on the class and all superclasses. # Accepts an optional block to call after each filter is applied. def filter!(type, base = settings) filter! type, base.superclass if base.superclass.respond_to?(:filters) base.filters[type].each do |args| result = process_route(*args) yield result if block_given? end end # Run routes defined on the class and all superclasses. def route!(base = settings, pass_block = nil) if routes = base.routes[@request.request_method] routes.each do |pattern, conditions, block| @response.delete_header('Content-Type') unless @pinned_response returned_pass_block = process_route(pattern, conditions) do |*args| env['sinatra.route'] = "#{@request.request_method} #{pattern}" route_eval { block[*args] } end # don't wipe out pass_block in superclass pass_block = returned_pass_block if returned_pass_block end end # Run routes defined in superclass. if base.superclass.respond_to?(:routes) return route!(base.superclass, pass_block) end route_eval(&pass_block) if pass_block route_missing end # Run a route block and throw :halt with the result. def route_eval throw :halt, yield end # If the current request matches pattern and conditions, fill params # with keys and call the given block. # Revert params afterwards. # # Returns pass block. def process_route(pattern, conditions, block = nil, values = []) route = @request.path_info route = '/' if route.empty? and not settings.empty_path_info? route = route[0..-2] if !settings.strict_paths? && route != '/' && route.end_with?('/') return unless params = pattern.params(route) params.delete("ignore") # TODO: better params handling, maybe turn it into "smart" object or detect changes force_encoding(params) @params = @params.merge(params) if params.any? regexp_exists = pattern.is_a?(Mustermann::Regular) || (pattern.respond_to?(:patterns) && pattern.patterns.any? {|subpattern| subpattern.is_a?(Mustermann::Regular)} ) if regexp_exists captures = pattern.match(route).captures.map { |c| URI_INSTANCE.unescape(c) if c } values += captures @params[:captures] = force_encoding(captures) unless captures.nil? || captures.empty? else values += params.values.flatten end catch(:pass) do conditions.each { |c| throw :pass if c.bind(self).call == false } block ? block[self, values] : yield(self, values) end rescue @env['sinatra.error.params'] = @params raise ensure params ||= {} params.each { |k, _| @params.delete(k) } unless @env['sinatra.error.params'] end # No matching route was found or all routes passed. The default # implementation is to forward the request downstream when running # as middleware (@app is non-nil); when no downstream app is set, raise # a NotFound exception. Subclasses can override this method to perform # custom route miss logic. def route_missing if @app forward else raise NotFound, "#{request.request_method} #{request.path_info}" end end # Attempt to serve static files from public directory. Throws :halt when # a matching file is found, returns nil otherwise. def static!(options = {}) return if (public_dir = settings.public_folder).nil? path = "#{public_dir}#{URI_INSTANCE.unescape(request.path_info)}" return unless valid_path?(path) path = File.expand_path(path) return unless File.file?(path) env['sinatra.static_file'] = path cache_control(*settings.static_cache_control) if settings.static_cache_control? send_file path, options.merge(:disposition => nil) end # Run the block with 'throw :halt' support and apply result to the response. def invoke res = catch(:halt) { yield } res = [res] if Integer === res or String === res if Array === res and Integer === res.first res = res.dup status(res.shift) body(res.pop) headers(*res) elsif res.respond_to? :each body res end nil # avoid double setting the same response tuple twice end # Dispatch a request with error handling. def dispatch! # Avoid passing frozen string in force_encoding @params.merge!(@request.params).each do |key, val| next unless val.respond_to?(:force_encoding) val = val.dup if val.frozen? @params[key] = force_encoding(val) end invoke do static! if settings.static? && (request.get? || request.head?) filter! :before do @pinned_response = !@response['Content-Type'].nil? end route! end rescue ::Exception => boom invoke { handle_exception!(boom) } ensure begin filter! :after unless env['sinatra.static_file'] rescue ::Exception => boom invoke { handle_exception!(boom) } unless @env['sinatra.error'] end end # Error handling during requests. def handle_exception!(boom) if error_params = @env['sinatra.error.params'] @params = @params.merge(error_params) end @env['sinatra.error'] = boom if boom.respond_to? :http_status status(boom.http_status) elsif settings.use_code? and boom.respond_to? :code and boom.code.between? 400, 599 status(boom.code) else status(500) end status(500) unless status.between? 400, 599 if server_error? dump_errors! boom if settings.dump_errors? raise boom if settings.show_exceptions? and settings.show_exceptions != :after_handler elsif not_found? headers['X-Cascade'] = 'pass' if settings.x_cascade? end if res = error_block!(boom.class, boom) || error_block!(status, boom) return res end if not_found? || bad_request? if boom.message && boom.message != boom.class.name body boom.message else content_type 'text/html' body '

' + (not_found? ? 'Not Found' : 'Bad Request') + '

' end end return unless server_error? raise boom if settings.raise_errors? or settings.show_exceptions? error_block! Exception, boom end # Find an custom error block for the key(s) specified. def error_block!(key, *block_params) base = settings while base.respond_to?(:errors) next base = base.superclass unless args_array = base.errors[key] args_array.reverse_each do |args| first = args == args_array.first args += [block_params] resp = process_route(*args) return resp unless resp.nil? && !first end end return false unless key.respond_to? :superclass and key.superclass < Exception error_block!(key.superclass, *block_params) end def dump_errors!(boom) msg = ["#{Time.now.strftime("%Y-%m-%d %H:%M:%S")} - #{boom.class} - #{boom.message}:", *boom.backtrace].join("\n\t") @env['rack.errors'].puts(msg) end class << self CALLERS_TO_IGNORE = [ # :nodoc: /\/sinatra(\/(base|main|show_exceptions))?\.rb$/, # all sinatra code /lib\/tilt.*\.rb$/, # all tilt code /^\(.*\)$/, # generated code /rubygems\/(custom|core_ext\/kernel)_require\.rb$/, # rubygems require hacks /active_support/, # active_support require hacks /bundler(\/(?:runtime|inline))?\.rb/, # bundler require hacks /= 1.9.2 /src\/kernel\/bootstrap\/[A-Z]/ # maglev kernel files ] # contrary to what the comment said previously, rubinius never supported this if defined?(RUBY_IGNORE_CALLERS) warn "RUBY_IGNORE_CALLERS is deprecated and will no longer be supported by Sinatra 2.0" CALLERS_TO_IGNORE.concat(RUBY_IGNORE_CALLERS) end attr_reader :routes, :filters, :templates, :errors # Removes all routes, filters, middleware and extension hooks from the # current class (not routes/filters/... defined by its superclass). def reset! @conditions = [] @routes = {} @filters = {:before => [], :after => []} @errors = {} @middleware = [] @prototype = nil @extensions = [] if superclass.respond_to?(:templates) @templates = Hash.new { |hash, key| superclass.templates[key] } else @templates = {} end end # Extension modules registered on this class and all superclasses. def extensions if superclass.respond_to?(:extensions) (@extensions + superclass.extensions).uniq else @extensions end end # Middleware used in this class and all superclasses. def middleware if superclass.respond_to?(:middleware) superclass.middleware + @middleware else @middleware end end # Sets an option to the given value. If the value is a proc, # the proc will be called every time the option is accessed. def set(option, value = (not_set = true), ignore_setter = false, &block) raise ArgumentError if block and !not_set value, not_set = block, false if block if not_set raise ArgumentError unless option.respond_to?(:each) option.each { |k,v| set(k, v) } return self end if respond_to?("#{option}=") and not ignore_setter return __send__("#{option}=", value) end setter = proc { |val| set option, val, true } getter = proc { value } case value when Proc getter = value when Symbol, Integer, FalseClass, TrueClass, NilClass getter = value.inspect when Hash setter = proc do |val| val = value.merge val if Hash === val set option, val, true end end define_singleton("#{option}=", setter) define_singleton(option, getter) define_singleton("#{option}?", "!!#{option}") unless method_defined? "#{option}?" self end # Same as calling `set :option, true` for each of the given options. def enable(*opts) opts.each { |key| set(key, true) } end # Same as calling `set :option, false` for each of the given options. def disable(*opts) opts.each { |key| set(key, false) } end # Define a custom error handler. Optionally takes either an Exception # class, or an HTTP status code to specify which errors should be # handled. def error(*codes, &block) args = compile! "ERROR", /.*/, block codes = codes.flat_map(&method(:Array)) codes << Exception if codes.empty? codes << Sinatra::NotFound if codes.include?(404) codes.each { |c| (@errors[c] ||= []) << args } end # Sugar for `error(404) { ... }` def not_found(&block) error(404, &block) end # Define a named template. The block must return the template source. def template(name, &block) filename, line = caller_locations.first templates[name] = [block, filename, line.to_i] end # Define the layout template. The block must return the template source. def layout(name = :layout, &block) template name, &block end # Load embedded templates from the file; uses the caller's __FILE__ # when no file is specified. def inline_templates=(file = nil) file = (file.nil? || file == true) ? (caller_files.first || File.expand_path($0)) : file begin io = ::IO.respond_to?(:binread) ? ::IO.binread(file) : ::IO.read(file) app, data = io.gsub("\r\n", "\n").split(/^__END__$/, 2) rescue Errno::ENOENT app, data = nil end if data if app and app =~ /([^\n]*\n)?#[^\n]*coding: *(\S+)/m encoding = $2 else encoding = settings.default_encoding end lines = app.count("\n") + 1 template = nil force_encoding data, encoding data.each_line do |line| lines += 1 if line =~ /^@@\s*(.*\S)\s*$/ template = force_encoding(String.new, encoding) templates[$1.to_sym] = [template, file, lines] elsif template template << line end end end end # Lookup or register a mime type in Rack's mime registry. def mime_type(type, value = nil) return type if type.nil? return type.to_s if type.to_s.include?('/') type = ".#{type}" unless type.to_s[0] == ?. return Rack::Mime.mime_type(type, nil) unless value Rack::Mime::MIME_TYPES[type] = value end # provides all mime types matching type, including deprecated types: # mime_types :html # => ['text/html'] # mime_types :js # => ['application/javascript', 'text/javascript'] def mime_types(type) type = mime_type type type =~ /^application\/(xml|javascript)$/ ? [type, "text/#$1"] : [type] end # Define a before filter; runs before all requests within the same # context as route handlers and may access/modify the request and # response. def before(path = /.*/, **options, &block) add_filter(:before, path, **options, &block) end # Define an after filter; runs after all requests within the same # context as route handlers and may access/modify the request and # response. def after(path = /.*/, **options, &block) add_filter(:after, path, **options, &block) end # add a filter def add_filter(type, path = /.*/, **options, &block) filters[type] << compile!(type, path, block, **options) end # Add a route condition. The route is considered non-matching when the # block returns false. def condition(name = "#{caller.first[/`.*'/]} condition", &block) @conditions << generate_method(name, &block) end def public=(value) warn ":public is no longer used to avoid overloading Module#public, use :public_folder or :public_dir instead" set(:public_folder, value) end def public_dir=(value) self.public_folder = value end def public_dir public_folder end # Defining a `GET` handler also automatically defines # a `HEAD` handler. def get(path, opts = {}, &block) conditions = @conditions.dup route('GET', path, opts, &block) @conditions = conditions route('HEAD', path, opts, &block) end def put(path, opts = {}, &bk) route 'PUT', path, opts, &bk end def post(path, opts = {}, &bk) route 'POST', path, opts, &bk end def delete(path, opts = {}, &bk) route 'DELETE', path, opts, &bk end def head(path, opts = {}, &bk) route 'HEAD', path, opts, &bk end def options(path, opts = {}, &bk) route 'OPTIONS', path, opts, &bk end def patch(path, opts = {}, &bk) route 'PATCH', path, opts, &bk end def link(path, opts = {}, &bk) route 'LINK', path, opts, &bk end def unlink(path, opts = {}, &bk) route 'UNLINK', path, opts, &bk end # Makes the methods defined in the block and in the Modules given # in `extensions` available to the handlers and templates def helpers(*extensions, &block) class_eval(&block) if block_given? prepend(*extensions) if extensions.any? end # Register an extension. Alternatively take a block from which an # extension will be created and registered on the fly. def register(*extensions, &block) extensions << Module.new(&block) if block_given? @extensions += extensions extensions.each do |extension| extend extension extension.registered(self) if extension.respond_to?(:registered) end end def development?; environment == :development end def production?; environment == :production end def test?; environment == :test end # Set configuration options for Sinatra and/or the app. # Allows scoping of settings for certain environments. def configure(*envs) yield self if envs.empty? || envs.include?(environment.to_sym) end # Use the specified Rack middleware def use(middleware, *args, &block) @prototype = nil @middleware << [middleware, args, block] end # Stop the self-hosted server if running. def quit! return unless running? # Use Thin's hard #stop! if available, otherwise just #stop. running_server.respond_to?(:stop!) ? running_server.stop! : running_server.stop $stderr.puts "== Sinatra has ended his set (crowd applauds)" unless suppress_messages? set :running_server, nil set :handler_name, nil end alias_method :stop!, :quit! # Run the Sinatra app as a self-hosted server using # Thin, Puma, Mongrel, or WEBrick (in that order). If given a block, will call # with the constructed handler once we have taken the stage. def run!(options = {}, &block) return if running? set options handler = detect_rack_handler handler_name = handler.name.gsub(/.*::/, '') server_settings = settings.respond_to?(:server_settings) ? settings.server_settings : {} server_settings.merge!(:Port => port, :Host => bind) begin start_server(handler, server_settings, handler_name, &block) rescue Errno::EADDRINUSE $stderr.puts "== Someone is already performing on port #{port}!" raise ensure quit! end end alias_method :start!, :run! # Check whether the self-hosted server is running or not. def running? running_server? end # The prototype instance used to process requests. def prototype @prototype ||= new end # Create a new instance without middleware in front of it. alias new! new unless method_defined? :new! # Create a new instance of the class fronted by its middleware # pipeline. The object is guaranteed to respond to #call but may not be # an instance of the class new was called on. def new(*args, &bk) instance = new!(*args, &bk) Wrapper.new(build(instance).to_app, instance) end # Creates a Rack::Builder instance with all the middleware set up and # the given +app+ as end point. def build(app) builder = Rack::Builder.new setup_default_middleware builder setup_middleware builder builder.run app builder end def call(env) synchronize { prototype.call(env) } end # Like Kernel#caller but excluding certain magic entries and without # line / method information; the resulting array contains filenames only. def caller_files cleaned_caller(1).flatten end # Like caller_files, but containing Arrays rather than strings with the # first element being the file, and the second being the line. def caller_locations cleaned_caller 2 end private # Starts the server by running the Rack Handler. def start_server(handler, server_settings, handler_name) # Ensure we initialize middleware before startup, to match standard Rack # behavior, by ensuring an instance exists: prototype # Run the instance we created: handler.run(self, **server_settings) do |server| unless suppress_messages? $stderr.puts "== Sinatra (v#{Sinatra::VERSION}) has taken the stage on #{port} for #{environment} with backup from #{handler_name}" end setup_traps set :running_server, server set :handler_name, handler_name server.threaded = settings.threaded if server.respond_to? :threaded= yield server if block_given? end end def suppress_messages? handler_name =~ /cgi/i || quiet end def setup_traps if traps? at_exit { quit! } [:INT, :TERM].each do |signal| old_handler = trap(signal) do quit! old_handler.call if old_handler.respond_to?(:call) end end set :traps, false end end # Dynamically defines a method on settings. def define_singleton(name, content = Proc.new) singleton_class.class_eval do undef_method(name) if method_defined? name String === content ? class_eval("def #{name}() #{content}; end") : define_method(name, &content) end end # Condition for matching host name. Parameter might be String or Regexp. def host_name(pattern) condition { pattern === request.host } end # Condition for matching user agent. Parameter should be Regexp. # Will set params[:agent]. def user_agent(pattern) condition do if request.user_agent.to_s =~ pattern @params[:agent] = $~[1..-1] true else false end end end alias_method :agent, :user_agent # Condition for matching mimetypes. Accepts file extensions. def provides(*types) types.map! { |t| mime_types(t) } types.flatten! condition do if type = response['Content-Type'] types.include? type or types.include? type[/^[^;]+/] elsif type = request.preferred_type(types) params = (type.respond_to?(:params) ? type.params : {}) content_type(type, params) true else false end end end def route(verb, path, options = {}, &block) enable :empty_path_info if path == "" and empty_path_info.nil? signature = compile!(verb, path, block, **options) (@routes[verb] ||= []) << signature invoke_hook(:route_added, verb, path, block) signature end def invoke_hook(name, *args) extensions.each { |e| e.send(name, *args) if e.respond_to?(name) } end def generate_method(method_name, &block) define_method(method_name, &block) method = instance_method method_name remove_method method_name method end def compile!(verb, path, block, **options) # Because of self.options.host host_name(options.delete(:host)) if options.key?(:host) # Pass Mustermann opts to compile() route_mustermann_opts = options.key?(:mustermann_opts) ? options.delete(:mustermann_opts) : {}.freeze options.each_pair { |option, args| send(option, *args) } pattern = compile(path, route_mustermann_opts) method_name = "#{verb} #{path}" unbound_method = generate_method(method_name, &block) conditions, @conditions = @conditions, [] wrapper = block.arity != 0 ? proc { |a, p| unbound_method.bind(a).call(*p) } : proc { |a, p| unbound_method.bind(a).call } [ pattern, conditions, wrapper ] end def compile(path, route_mustermann_opts = {}) Mustermann.new(path, **mustermann_opts.merge(route_mustermann_opts)) end def setup_default_middleware(builder) builder.use ExtendedRack builder.use ShowExceptions if show_exceptions? builder.use Rack::MethodOverride if method_override? builder.use Rack::Head setup_logging builder setup_sessions builder setup_protection builder end def setup_middleware(builder) middleware.each { |c,a,b| builder.use(c, *a, &b) } end def setup_logging(builder) if logging? setup_common_logger(builder) setup_custom_logger(builder) elsif logging == false setup_null_logger(builder) end end def setup_null_logger(builder) builder.use Rack::NullLogger end def setup_common_logger(builder) builder.use Sinatra::CommonLogger end def setup_custom_logger(builder) if logging.respond_to? :to_int builder.use Rack::Logger, logging else builder.use Rack::Logger end end def setup_protection(builder) return unless protection? options = Hash === protection ? protection.dup : {} options = { img_src: "'self' data:", font_src: "'self'" }.merge options protect_session = options.fetch(:session) { sessions? } options[:without_session] = !protect_session options[:reaction] ||= :drop_session builder.use Rack::Protection, options end def setup_sessions(builder) return unless sessions? options = {} options[:secret] = session_secret if session_secret? options.merge! sessions.to_hash if sessions.respond_to? :to_hash builder.use session_store, options end def detect_rack_handler servers = Array(server) servers.each do |server_name| begin return Rack::Handler.get(server_name.to_s) rescue LoadError, NameError end end fail "Server handler (#{servers.join(',')}) not found." end def inherited(subclass) subclass.reset! subclass.set :app_file, caller_files.first unless subclass.app_file? super end @@mutex = Mutex.new def synchronize(&block) if lock? @@mutex.synchronize(&block) else yield end end # used for deprecation warnings def warn(message) super message + "\n\tfrom #{cleaned_caller.first.join(':')}" end # Like Kernel#caller but excluding certain magic entries def cleaned_caller(keep = 3) caller(1). map! { |line| line.split(/:(?=\d|in )/, 3)[0,keep] }. reject { |file, *_| CALLERS_TO_IGNORE.any? { |pattern| file =~ pattern } } end end # Force data to specified encoding. It defaults to settings.default_encoding # which is UTF-8 by default def self.force_encoding(data, encoding = default_encoding) return if data == settings || data.is_a?(Tempfile) if data.respond_to? :force_encoding data.force_encoding(encoding).encode! elsif data.respond_to? :each_value data.each_value { |v| force_encoding(v, encoding) } elsif data.respond_to? :each data.each { |v| force_encoding(v, encoding) } end data end def force_encoding(*args) settings.force_encoding(*args) end reset! set :environment, (ENV['APP_ENV'] || ENV['RACK_ENV'] || :development).to_sym set :raise_errors, Proc.new { test? } set :dump_errors, Proc.new { !test? } set :show_exceptions, Proc.new { development? } set :sessions, false set :session_store, Rack::Session::Cookie set :logging, false set :protection, true set :method_override, false set :use_code, false set :default_encoding, "utf-8" set :x_cascade, true set :add_charset, %w[javascript xml xhtml+xml].map { |t| "application/#{t}" } settings.add_charset << /^text\// set :mustermann_opts, {} set :default_content_type, 'text/html' # explicitly generating a session secret eagerly to play nice with preforking begin require 'securerandom' set :session_secret, SecureRandom.hex(64) rescue LoadError, NotImplementedError # SecureRandom raises a NotImplementedError if no random device is available set :session_secret, "%064x" % Kernel.rand(2**256-1) end class << self alias_method :methodoverride?, :method_override? alias_method :methodoverride=, :method_override= end set :run, false # start server via at-exit hook? set :running_server, nil set :handler_name, nil set :traps, true set :server, %w[HTTP webrick] set :bind, Proc.new { development? ? 'localhost' : '0.0.0.0' } set :port, Integer(ENV['PORT'] && !ENV['PORT'].empty? ? ENV['PORT'] : 4567) set :quiet, false ruby_engine = defined?(RUBY_ENGINE) && RUBY_ENGINE if ruby_engine == 'macruby' server.unshift 'control_tower' else server.unshift 'reel' server.unshift 'puma' server.unshift 'mongrel' if ruby_engine.nil? server.unshift 'thin' if ruby_engine != 'jruby' server.unshift 'trinidad' if ruby_engine == 'jruby' end set :absolute_redirects, true set :prefixed_redirects, false set :empty_path_info, nil set :strict_paths, true set :app_file, nil set :root, Proc.new { app_file && File.expand_path(File.dirname(app_file)) } set :views, Proc.new { root && File.join(root, 'views') } set :reload_templates, Proc.new { development? } set :lock, false set :threaded, true set :public_folder, Proc.new { root && File.join(root, 'public') } set :static, Proc.new { public_folder && File.exist?(public_folder) } set :static_cache_control, false error ::Exception do response.status = 500 content_type 'text/html' '

Internal Server Error

' end configure :development do get '/__sinatra__/:image.png' do filename = __dir__ + "/images/#{params[:image].to_i}.png" content_type :png send_file filename end error NotFound do content_type 'text/html' if self.class == Sinatra::Application code = <<-RUBY.gsub(/^ {12}/, '') #{request.request_method.downcase} '#{request.path_info}' do "Hello World" end RUBY else code = <<-RUBY.gsub(/^ {12}/, '') class #{self.class} #{request.request_method.downcase} '#{request.path_info}' do "Hello World" end end RUBY file = settings.app_file.to_s.sub(settings.root.to_s, '').sub(/^\//, '') code = "# in #{file}\n#{code}" unless file.empty? end (<<-HTML).gsub(/^ {10}/, '')

Sinatra doesn’t know this ditty.

Try this:
#{Rack::Utils.escape_html(code)}
HTML end end end # Execution context for classic style (top-level) applications. All # DSL methods executed on main are delegated to this class. # # The Application class should not be subclassed, unless you want to # inherit all settings, routes, handlers, and error pages from the # top-level. Subclassing Sinatra::Base is highly recommended for # modular applications. class Application < Base set :logging, Proc.new { !test? } set :method_override, true set :run, Proc.new { !test? } set :app_file, nil def self.register(*extensions, &block) #:nodoc: added_methods = extensions.flat_map(&:public_instance_methods) Delegator.delegate(*added_methods) super(*extensions, &block) end end # Sinatra delegation mixin. Mixing this module into an object causes all # methods to be delegated to the Sinatra::Application class. Used primarily # at the top-level. module Delegator #:nodoc: def self.delegate(*methods) methods.each do |method_name| define_method(method_name) do |*args, &block| return super(*args, &block) if respond_to? method_name Delegator.target.send(method_name, *args, &block) end private method_name end end delegate :get, :patch, :put, :post, :delete, :head, :options, :link, :unlink, :template, :layout, :before, :after, :error, :not_found, :configure, :set, :mime_type, :enable, :disable, :use, :development?, :test?, :production?, :helpers, :settings, :register class << self attr_accessor :target end self.target = Application end class Wrapper def initialize(stack, instance) @stack, @instance = stack, instance end def settings @instance.settings end def helpers @instance end def call(env) @stack.call(env) end def inspect "#<#{@instance.class} app_file=#{settings.app_file.inspect}>" end end # Create a new Sinatra application; the block is evaluated in the class scope. def self.new(base = Base, &block) base = Class.new(base) base.class_eval(&block) if block_given? base end # Extend the top-level DSL with the modules provided. def self.register(*extensions, &block) Delegator.target.register(*extensions, &block) end # Include the helper modules provided in Sinatra's request context. def self.helpers(*extensions, &block) Delegator.target.helpers(*extensions, &block) end # Use the middleware for classic applications. def self.use(*args, &block) Delegator.target.use(*args, &block) end end ================================================ FILE: semantic/test/fixtures/cli/blank.json ================================================ ================================================ FILE: semantic/test/fixtures/cli/diff-empty-language.json ================================================ { "blobs": [{ "before": { "path": "method.rb", "content": "def foo; end", "language": "" }, "after": { "path": "method.rb", "content": "def bar(x); end", "language": "" } }] } ================================================ FILE: semantic/test/fixtures/cli/diff-no-after.json ================================================ { "blobs": [{ "before": { "path": "method.rb", "content": "def foo; end", "language": "Ruby" } }] } ================================================ FILE: semantic/test/fixtures/cli/diff-no-before.json ================================================ { "blobs": [{ "after": { "path": "method.rb", "content": "def bar(x); end", "language": "Ruby" } }] } ================================================ FILE: semantic/test/fixtures/cli/diff-no-language.json ================================================ { "blobs": [{ "before": { "path": "method.rb", "content": "def foo; end", }, "after": { "path": "method.rb", "content": "def bar(x); end", } }] } ================================================ FILE: semantic/test/fixtures/cli/diff-null-after.json ================================================ { "blobs": [{ "before": { "path": "method.rb", "content": "def foo; end", "language": "Ruby" }, "after": null }] } ================================================ FILE: semantic/test/fixtures/cli/diff-null-before.json ================================================ { "blobs": [{ "before": null, "after": { "path": "method.rb", "content": "def bar(x); end", "language": "Ruby" } }] } ================================================ FILE: semantic/test/fixtures/cli/diff-null-both-sides.json ================================================ { "blobs": [{ "before": null, "after": null }] } ================================================ FILE: semantic/test/fixtures/cli/diff-tree.json ================================================ {"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"}]}}]} ================================================ FILE: semantic/test/fixtures/cli/diff-tree.toc.json ================================================ {"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"}]}]} ================================================ FILE: semantic/test/fixtures/cli/diff-unsupported-language.json ================================================ { "blobs": [{ "after": { "path": "test.kt", "content": "fun main(args: Array) {\nprintln(\"hi\")\n}\n", "language": "Kotlin" } }] } ================================================ FILE: semantic/test/fixtures/cli/diff.json ================================================ { "blobs": [{ "before": { "path": "method.rb", "content": "def foo; end", "language": "Ruby" }, "after": { "path": "method.rb", "content": "def bar(x); end", "language": "Ruby" } }] } ================================================ FILE: semantic/test/fixtures/cli/parse-tree-empty.json ================================================ {"trees":[]} ================================================ FILE: semantic/test/fixtures/cli/parse-tree.json ================================================ {"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"}]} ================================================ FILE: semantic/test/fixtures/cli/parse-tree.symbols.json ================================================ {"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}}]}]} ================================================ FILE: semantic/test/fixtures/cli/parse-trees.json ================================================ {"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"}]} ================================================ FILE: semantic/test/fixtures/cli/parse.json ================================================ { "blobs": [{ "path": "method.rb", "content": "def foo; end", "language": "Ruby" }] } ================================================ FILE: semantic/test/fixtures/go/analysis/bar/bar.go ================================================ package bar func Bar() string { return "Bar func" } ================================================ FILE: semantic/test/fixtures/go/analysis/bar/rab.go ================================================ package bar func Rab() string { return "Rab func" } ================================================ FILE: semantic/test/fixtures/go/analysis/foo/foo.go ================================================ package foo func New() string { return "New foo" } ================================================ FILE: semantic/test/fixtures/go/analysis/main.go ================================================ package main import "./foo" import . "./bar" func main() { foo.New() Bar() Rab() } ================================================ FILE: semantic/test/fixtures/go/analysis/main1.go ================================================ package main import ( f "./foo" _ "./bar" ) func main() { f.New() } ================================================ FILE: semantic/test/fixtures/go/corpus/array-types.A.go ================================================ package main func main() { type a [2+2]x type b [3][5]int type c [2][2][2]float64 } ================================================ FILE: semantic/test/fixtures/go/corpus/array-types.B.go ================================================ package main func main() { type a [1+1]y type d [6][9]int type e [1][2][3]float64 } ================================================ FILE: semantic/test/fixtures/go/corpus/array-types.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Statements (Type (Identifier) (Array (Plus { (Integer) ->(Integer) } { (Integer) ->(Integer) }) { (Identifier) ->(Identifier) }))) (Statements (Type { (Identifier) ->(Identifier) } (Array { (Integer) ->(Integer) } (Array { (Integer) ->(Integer) } (Identifier))))) (Statements (Type { (Identifier) ->(Identifier) } (Array { (Integer) ->(Integer) } (Array (Integer) (Array { (Integer) ->(Integer) } (Identifier))))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/array-types.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Statements (Type (Identifier) (Array (Plus { (Integer) ->(Integer) } { (Integer) ->(Integer) }) { (Identifier) ->(Identifier) }))) (Statements (Type { (Identifier) ->(Identifier) } (Array { (Integer) ->(Integer) } (Array { (Integer) ->(Integer) } (Identifier))))) (Statements (Type { (Identifier) ->(Identifier) } (Array { (Integer) ->(Integer) } (Array (Integer) (Array { (Integer) ->(Integer) } (Identifier))))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/array-types.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "a") (Type (SimpleType (ArrayType (Expression (BinaryExpression (Token) (Expression (IntLiteral "2")) (Expression (IntLiteral "2")))) (Type (SimpleType (TypeIdentifier "x"))))))))) (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "b") (Type (SimpleType (ArrayType (Expression (IntLiteral "3")) (Type (SimpleType (ArrayType (Expression (IntLiteral "5")) (Type (SimpleType (TypeIdentifier "int")))))))))))) (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "c") (Type (SimpleType (ArrayType (Expression (IntLiteral "2")) (Type (SimpleType (ArrayType (Expression (IntLiteral "2")) (Type (SimpleType (ArrayType (Expression (IntLiteral "2")) (Type (SimpleType (TypeIdentifier "float64")))))))))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/array-types.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "a") (Type (SimpleType (ArrayType (Expression (BinaryExpression (Token) (Expression (IntLiteral "1")) (Expression (IntLiteral "1")))) (Type (SimpleType (TypeIdentifier "y"))))))))) (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "d") (Type (SimpleType (ArrayType (Expression (IntLiteral "6")) (Type (SimpleType (ArrayType (Expression (IntLiteral "9")) (Type (SimpleType (TypeIdentifier "int")))))))))))) (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "e") (Type (SimpleType (ArrayType (Expression (IntLiteral "1")) (Type (SimpleType (ArrayType (Expression (IntLiteral "2")) (Type (SimpleType (ArrayType (Expression (IntLiteral "3")) (Type (SimpleType (TypeIdentifier "float64")))))))))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/array-with-implicit-length.A.go ================================================ package main func main() { const a1 = [...]int{1, 2, 3} } ================================================ FILE: semantic/test/fixtures/go/corpus/array-with-implicit-length.B.go ================================================ package main func main() { const a1 = [...]int{4,5,6} } ================================================ FILE: semantic/test/fixtures/go/corpus/array-with-implicit-length.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Assignment (Identifier) (Composite (Array (Identifier)) (Statements { (Integer) ->(Integer) } {+(Integer)+} { (Integer) ->(Integer) } {-(Integer)-}))))) ================================================ FILE: semantic/test/fixtures/go/corpus/array-with-implicit-length.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Assignment (Identifier) (Composite (Array (Identifier)) (Statements { (Integer) ->(Integer) } {+(Integer)+} { (Integer) ->(Integer) } {-(Integer)-}))))) ================================================ FILE: semantic/test/fixtures/go/corpus/array-with-implicit-length.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (CompositeLiteral (LiteralValue (Element (Expression (IntLiteral "1"))) (Element (Expression (IntLiteral "2"))) (Element (Expression (IntLiteral "3")))) (ImplicitLengthArrayType (Type (SimpleType (TypeIdentifier "int"))))))) (Identifier "a1"))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/array-with-implicit-length.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (CompositeLiteral (LiteralValue (Element (Expression (IntLiteral "4"))) (Element (Expression (IntLiteral "5"))) (Element (Expression (IntLiteral "6")))) (ImplicitLengthArrayType (Type (SimpleType (TypeIdentifier "int"))))))) (Identifier "a1"))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/assignment-statements.A.go ================================================ package main func main() { a = 1 b, c += 2, 3 d *= 3 e += 1 f <<= 1 g >>= 2 h /= 2 i ^= 2 j %= 2 k &^= 2 var pointer *Point3D = &Point3D{y: 1000} } ================================================ FILE: semantic/test/fixtures/go/corpus/assignment-statements.B.go ================================================ package main func main() { l = 1 m, n += 2, 3 o *= 3 p += 1 q <<= 1 s >>= 2 t /= 2 u ^= 2 v %= 2 w &^= 2 var pointer *Point2D = &Point2D{x: 1000} } ================================================ FILE: semantic/test/fixtures/go/corpus/assignment-statements.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Assignment { (Identifier) ->(Identifier) } (Integer)) (AugmentedAssignment (Plus (Statements { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Statements (Integer) (Integer)))) {+(AugmentedAssignment {+(Times {+(Identifier)+} {+(Integer)+})+})+} {+(AugmentedAssignment {+(Plus {+(Identifier)+} {+(Integer)+})+})+} {+(AugmentedAssignment {+(LShift {+(Identifier)+} {+(Integer)+})+})+} (AugmentedAssignment { (Times {-(Identifier)-} {-(Integer)-}) ->(RShift {+(Identifier)+} {+(Integer)+}) }) {+(AugmentedAssignment {+(DividedBy {+(Identifier)+} {+(Integer)+})+})+} {+(AugmentedAssignment {+(BXOr {+(Identifier)+} {+(Integer)+})+})+} {+(AugmentedAssignment {+(Modulo {+(Identifier)+} {+(Integer)+})+})+} {+(AugmentedAssignment {+(Not {+(BAnd {+(Identifier)+} {+(Integer)+})+})+})+} {+(Assignment {+(Identifier)+} {+(Statements {+(Pointer {+(Identifier)+})+} {+(Reference {+(Composite {+(Identifier)+} {+(Statements {+(KeyValue {+(Identifier)+} {+(Integer)+})+})+})+})+})+})+} {-(AugmentedAssignment {-(Plus {-(Identifier)-} {-(Integer)-})-})-} {-(AugmentedAssignment {-(LShift {-(Identifier)-} {-(Integer)-})-})-} {-(AugmentedAssignment {-(RShift {-(Identifier)-} {-(Integer)-})-})-} {-(AugmentedAssignment {-(DividedBy {-(Identifier)-} {-(Integer)-})-})-} {-(AugmentedAssignment {-(BXOr {-(Identifier)-} {-(Integer)-})-})-} {-(AugmentedAssignment {-(Modulo {-(Identifier)-} {-(Integer)-})-})-} {-(AugmentedAssignment {-(Not {-(BAnd {-(Identifier)-} {-(Integer)-})-})-})-} {-(Assignment {-(Identifier)-} {-(Statements {-(Pointer {-(Identifier)-})-} {-(Reference {-(Composite {-(Identifier)-} {-(Statements {-(KeyValue {-(Identifier)-} {-(Integer)-})-})-})-})-})-})-}))) ================================================ FILE: semantic/test/fixtures/go/corpus/assignment-statements.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Assignment { (Identifier) ->(Identifier) } (Integer)) (AugmentedAssignment (Plus (Statements { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Statements (Integer) (Integer)))) {+(AugmentedAssignment {+(Times {+(Identifier)+} {+(Integer)+})+})+} (AugmentedAssignment { (Times {-(Identifier)-} {-(Integer)-}) ->(Plus {+(Identifier)+} {+(Integer)+}) }) {+(AugmentedAssignment {+(LShift {+(Identifier)+} {+(Integer)+})+})+} {+(AugmentedAssignment {+(RShift {+(Identifier)+} {+(Integer)+})+})+} {+(AugmentedAssignment {+(DividedBy {+(Identifier)+} {+(Integer)+})+})+} {+(AugmentedAssignment {+(BXOr {+(Identifier)+} {+(Integer)+})+})+} {+(AugmentedAssignment {+(Modulo {+(Identifier)+} {+(Integer)+})+})+} {+(AugmentedAssignment {+(Not {+(BAnd {+(Identifier)+} {+(Integer)+})+})+})+} {+(Assignment {+(Identifier)+} {+(Statements {+(Pointer {+(Identifier)+})+} {+(Reference {+(Composite {+(Identifier)+} {+(Statements {+(KeyValue {+(Identifier)+} {+(Integer)+})+})+})+})+})+})+} {-(AugmentedAssignment {-(Plus {-(Identifier)-} {-(Integer)-})-})-} {-(AugmentedAssignment {-(LShift {-(Identifier)-} {-(Integer)-})-})-} {-(AugmentedAssignment {-(RShift {-(Identifier)-} {-(Integer)-})-})-} {-(AugmentedAssignment {-(DividedBy {-(Identifier)-} {-(Integer)-})-})-} {-(AugmentedAssignment {-(BXOr {-(Identifier)-} {-(Integer)-})-})-} {-(AugmentedAssignment {-(Modulo {-(Identifier)-} {-(Integer)-})-})-} {-(AugmentedAssignment {-(Not {-(BAnd {-(Identifier)-} {-(Integer)-})-})-})-} {-(Assignment {-(Identifier)-} {-(Statements {-(Pointer {-(Identifier)-})-} {-(Reference {-(Composite {-(Identifier)-} {-(Statements {-(KeyValue {-(Identifier)-} {-(Integer)-})-})-})-})-})-})-}))) ================================================ FILE: semantic/test/fixtures/go/corpus/assignment-statements.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "a"))) (ExpressionList (Expression (IntLiteral "1")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "b")) (Expression (Identifier "c"))) (ExpressionList (Expression (IntLiteral "2")) (Expression (IntLiteral "3")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "d"))) (ExpressionList (Expression (IntLiteral "3")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "e"))) (ExpressionList (Expression (IntLiteral "1")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "f"))) (ExpressionList (Expression (IntLiteral "1")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "g"))) (ExpressionList (Expression (IntLiteral "2")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "h"))) (ExpressionList (Expression (IntLiteral "2")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "i"))) (ExpressionList (Expression (IntLiteral "2")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "j"))) (ExpressionList (Expression (IntLiteral "2")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "k"))) (ExpressionList (Expression (IntLiteral "2")))))) (Statement (VarDeclaration (VarSpec (ExpressionList (Expression (UnaryExpression (Token) (Expression (CompositeLiteral (LiteralValue (KeyedElement (FieldIdentifier "y") (Expression (IntLiteral "1000")))) (TypeIdentifier "Point3D")))))) (Identifier "pointer") (Type (SimpleType (PointerType (Type (SimpleType (TypeIdentifier "Point3D")))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/assignment-statements.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "l"))) (ExpressionList (Expression (IntLiteral "1")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "m")) (Expression (Identifier "n"))) (ExpressionList (Expression (IntLiteral "2")) (Expression (IntLiteral "3")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "o"))) (ExpressionList (Expression (IntLiteral "3")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "p"))) (ExpressionList (Expression (IntLiteral "1")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "q"))) (ExpressionList (Expression (IntLiteral "1")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "s"))) (ExpressionList (Expression (IntLiteral "2")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "t"))) (ExpressionList (Expression (IntLiteral "2")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "u"))) (ExpressionList (Expression (IntLiteral "2")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "v"))) (ExpressionList (Expression (IntLiteral "2")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "w"))) (ExpressionList (Expression (IntLiteral "2")))))) (Statement (VarDeclaration (VarSpec (ExpressionList (Expression (UnaryExpression (Token) (Expression (CompositeLiteral (LiteralValue (KeyedElement (FieldIdentifier "x") (Expression (IntLiteral "1000")))) (TypeIdentifier "Point2D")))))) (Identifier "pointer") (Type (SimpleType (PointerType (Type (SimpleType (TypeIdentifier "Point2D")))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/binary-expressions.A.go ================================================ package main func main() { // comment 1 a || // comment 2 b // comment 3 c && d e == f g != h i < j k <= l m > n o >= p q + r s - t u | v x ^ y z * aa bb / cc dd % ee ff << gg hh >> ii jj & kk ll &^ mm } ================================================ FILE: semantic/test/fixtures/go/corpus/binary-expressions.B.go ================================================ package main func main() { // comment 1 b || // comment 2 c // comment 3 d && c f == e h != g j < i l <= k n > m p >= o r + q t - s v | u y ^ x aa * z cc / bb ee % dd gg << ff ii >> hh kk & jj mm &^ ll } ================================================ FILE: semantic/test/fixtures/go/corpus/binary-expressions.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Context (Comment) (Or { (Identifier) ->(Identifier) } (Context (Comment) { (Identifier) ->(Identifier) }))) (Context (Comment) (And { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })) (Equal { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Not (Equal { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })) (LessThan { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) {+(LessThanEqual {+(Identifier)+} {+(Identifier)+})+} {+(GreaterThan {+(Identifier)+} {+(Identifier)+})+} {+(GreaterThanEqual {+(Identifier)+} {+(Identifier)+})+} {+(Plus {+(Identifier)+} {+(Identifier)+})+} {+(Minus {+(Identifier)+} {+(Identifier)+})+} {+(BOr {+(Identifier)+} {+(Identifier)+})+} {+(BXOr {+(Identifier)+} {+(Identifier)+})+} {+(Times {+(Identifier)+} {+(Identifier)+})+} {+(DividedBy {+(Identifier)+} {+(Identifier)+})+} {+(Modulo {+(Identifier)+} {+(Identifier)+})+} {+(LShift {+(Identifier)+} {+(Identifier)+})+} {+(RShift {+(Identifier)+} {+(Identifier)+})+} {+(BAnd {+(Identifier)+} {+(Identifier)+})+} {+(BAnd {+(Identifier)+} {+(Identifier)+})+} {-(LessThanEqual {-(Identifier)-} {-(Identifier)-})-} {-(GreaterThan {-(Identifier)-} {-(Identifier)-})-} {-(GreaterThanEqual {-(Identifier)-} {-(Identifier)-})-} {-(Plus {-(Identifier)-} {-(Identifier)-})-} {-(Minus {-(Identifier)-} {-(Identifier)-})-} {-(BOr {-(Identifier)-} {-(Identifier)-})-} {-(BXOr {-(Identifier)-} {-(Identifier)-})-} {-(Times {-(Identifier)-} {-(Identifier)-})-} {-(DividedBy {-(Identifier)-} {-(Identifier)-})-} {-(Modulo {-(Identifier)-} {-(Identifier)-})-} {-(LShift {-(Identifier)-} {-(Identifier)-})-} {-(RShift {-(Identifier)-} {-(Identifier)-})-} {-(BAnd {-(Identifier)-} {-(Identifier)-})-} {-(BAnd {-(Identifier)-} {-(Identifier)-})-}))) ================================================ FILE: semantic/test/fixtures/go/corpus/binary-expressions.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Context (Comment) (Or { (Identifier) ->(Identifier) } (Context (Comment) { (Identifier) ->(Identifier) }))) (Context (Comment) (And { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })) (Equal { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Not (Equal { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })) (LessThan { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) {+(LessThanEqual {+(Identifier)+} {+(Identifier)+})+} {+(GreaterThan {+(Identifier)+} {+(Identifier)+})+} {+(GreaterThanEqual {+(Identifier)+} {+(Identifier)+})+} {+(Plus {+(Identifier)+} {+(Identifier)+})+} {+(Minus {+(Identifier)+} {+(Identifier)+})+} {+(BOr {+(Identifier)+} {+(Identifier)+})+} {+(BXOr {+(Identifier)+} {+(Identifier)+})+} {+(Times {+(Identifier)+} {+(Identifier)+})+} {+(DividedBy {+(Identifier)+} {+(Identifier)+})+} {+(Modulo {+(Identifier)+} {+(Identifier)+})+} {+(LShift {+(Identifier)+} {+(Identifier)+})+} {+(RShift {+(Identifier)+} {+(Identifier)+})+} {+(BAnd {+(Identifier)+} {+(Identifier)+})+} {+(BAnd {+(Identifier)+} {+(Identifier)+})+} {-(LessThanEqual {-(Identifier)-} {-(Identifier)-})-} {-(GreaterThan {-(Identifier)-} {-(Identifier)-})-} {-(GreaterThanEqual {-(Identifier)-} {-(Identifier)-})-} {-(Plus {-(Identifier)-} {-(Identifier)-})-} {-(Minus {-(Identifier)-} {-(Identifier)-})-} {-(BOr {-(Identifier)-} {-(Identifier)-})-} {-(BXOr {-(Identifier)-} {-(Identifier)-})-} {-(Times {-(Identifier)-} {-(Identifier)-})-} {-(DividedBy {-(Identifier)-} {-(Identifier)-})-} {-(Modulo {-(Identifier)-} {-(Identifier)-})-} {-(LShift {-(Identifier)-} {-(Identifier)-})-} {-(RShift {-(Identifier)-} {-(Identifier)-})-} {-(BAnd {-(Identifier)-} {-(Identifier)-})-} {-(BAnd {-(Identifier)-} {-(Identifier)-})-}))) ================================================ FILE: semantic/test/fixtures/go/corpus/binary-expressions.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "a")) (Expression (Identifier "b")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "c")) (Expression (Identifier "d")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "e")) (Expression (Identifier "f")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "g")) (Expression (Identifier "h")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Identifier "j")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "k")) (Expression (Identifier "l")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "m")) (Expression (Identifier "n")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "o")) (Expression (Identifier "p")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "q")) (Expression (Identifier "r")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "s")) (Expression (Identifier "t")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "u")) (Expression (Identifier "v")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "x")) (Expression (Identifier "y")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "z")) (Expression (Identifier "aa")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "bb")) (Expression (Identifier "cc")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "dd")) (Expression (Identifier "ee")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "ff")) (Expression (Identifier "gg")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "hh")) (Expression (Identifier "ii")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "jj")) (Expression (Identifier "kk")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "ll")) (Expression (Identifier "mm"))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/binary-expressions.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "b")) (Expression (Identifier "c")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "d")) (Expression (Identifier "c")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "f")) (Expression (Identifier "e")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "h")) (Expression (Identifier "g")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "j")) (Expression (Identifier "i")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "l")) (Expression (Identifier "k")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "n")) (Expression (Identifier "m")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "p")) (Expression (Identifier "o")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "r")) (Expression (Identifier "q")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "t")) (Expression (Identifier "s")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "v")) (Expression (Identifier "u")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "y")) (Expression (Identifier "x")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "aa")) (Expression (Identifier "z")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "cc")) (Expression (Identifier "bb")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "ee")) (Expression (Identifier "dd")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "gg")) (Expression (Identifier "ff")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "ii")) (Expression (Identifier "hh")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "kk")) (Expression (Identifier "jj")))))) (Statement (SimpleStatement (Expression (BinaryExpression (Token) (Expression (Identifier "mm")) (Expression (Identifier "ll"))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/call-expressions.A.go ================================================ package main func main() { x(b, c...) y(b, c,) z(b,c...,) a() } ================================================ FILE: semantic/test/fixtures/go/corpus/call-expressions.B.go ================================================ package main func main() { a(b, c...) b(b, c,) c(b,c...,) } ================================================ FILE: semantic/test/fixtures/go/corpus/call-expressions.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Call { (Identifier) ->(Identifier) } (Statements (Identifier) (Variadic (Identifier))) (Empty)) (Call { (Identifier) ->(Identifier) } (Statements (Identifier) (Identifier)) (Empty)) (Call { (Identifier) ->(Identifier) } (Statements (Identifier) (Variadic (Identifier))) (Empty)) {-(Call {-(Identifier)-} {-(Statements)-} {-(Empty)-})-}))) ================================================ FILE: semantic/test/fixtures/go/corpus/call-expressions.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Call { (Identifier) ->(Identifier) } (Statements (Identifier) (Variadic (Identifier))) (Empty)) (Call { (Identifier) ->(Identifier) } (Statements (Identifier) (Identifier)) (Empty)) (Call { (Identifier) ->(Identifier) } (Statements (Identifier) (Variadic (Identifier))) (Empty)) {+(Call {+(Identifier)+} {+(Statements)+} {+(Empty)+})+}))) ================================================ FILE: semantic/test/fixtures/go/corpus/call-expressions.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "x")) (ArgumentList (Expression (Identifier "b")) (VariadicArgument (Expression (Identifier "c")))))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "y")) (ArgumentList (Expression (Identifier "b")) (Expression (Identifier "c"))))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "z")) (ArgumentList (Expression (Identifier "b")) (VariadicArgument (Expression (Identifier "c")))))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "a")) (ArgumentList)))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/call-expressions.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "a")) (ArgumentList (Expression (Identifier "b")) (VariadicArgument (Expression (Identifier "c")))))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "b")) (ArgumentList (Expression (Identifier "b")) (Expression (Identifier "c"))))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "c")) (ArgumentList (Expression (Identifier "b")) (VariadicArgument (Expression (Identifier "c"))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/case-statements.A.go ================================================ package main func main() { switch { } } ================================================ FILE: semantic/test/fixtures/go/corpus/case-statements.B.go ================================================ package main func main() { switch { case foo: f1() } switch e { case 1, 2: a() b() fallthrough default: c() break } } ================================================ FILE: semantic/test/fixtures/go/corpus/case-statements.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) { (Match {-(Empty)-} {-(Statements)-}) ->(Statements {+(Match {+(Statements)+} {+(Pattern {+(Statements {+(Identifier)+} {+(Call {+(Identifier)+} {+(Statements)+} {+(Empty)+})+})+} {+(Statements)+})+})+} {+(Match {+(Statements {+(Identifier)+})+} {+(Pattern {+(Statements {+(Statements {+(Integer)+} {+(Integer)+})+} {+(Call {+(Identifier)+} {+(Statements)+} {+(Empty)+})+} {+(Call {+(Identifier)+} {+(Statements)+} {+(Empty)+})+} {+(Pattern {+(Identifier)+} {+(Empty)+})+})+} {+(DefaultPattern {+(Statements {+(Call {+(Identifier)+} {+(Statements)+} {+(Empty)+})+} {+(Break {+(Empty)+})+})+})+})+})+}) })) ================================================ FILE: semantic/test/fixtures/go/corpus/case-statements.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) { (Statements {-(Match {-(Statements)-} {-(Pattern {-(Statements {-(Identifier)-} {-(Call {-(Identifier)-} {-(Statements)-} {-(Empty)-})-})-} {-(Statements)-})-})-} {-(Match {-(Statements {-(Identifier)-})-} {-(Pattern {-(Statements {-(Statements {-(Integer)-} {-(Integer)-})-} {-(Call {-(Identifier)-} {-(Statements)-} {-(Empty)-})-} {-(Call {-(Identifier)-} {-(Statements)-} {-(Empty)-})-} {-(Pattern {-(Identifier)-} {-(Empty)-})-})-} {-(DefaultPattern {-(Statements {-(Call {-(Identifier)-} {-(Statements)-} {-(Empty)-})-} {-(Break {-(Empty)-})-})-})-})-})-}) ->(Match {+(Empty)+} {+(Statements)+}) })) ================================================ FILE: semantic/test/fixtures/go/corpus/case-statements.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ExpressionSwitchStatement))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/case-statements.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ExpressionSwitchStatement (ExpressionCase (ExpressionList (Expression (Identifier "foo"))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "f1")) (ArgumentList)))))))) (Statement (ExpressionSwitchStatement (Expression (Identifier "e")) (ExpressionCase (ExpressionList (Expression (IntLiteral "1")) (Expression (IntLiteral "2"))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "a")) (ArgumentList))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "b")) (ArgumentList))))) (Statement (FallthroughStatement "fallthrough"))) (DefaultCase (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "c")) (ArgumentList))))) (Statement (BreakStatement)))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/channel-types.A.go ================================================ package main func main() { type ( c1 chan<- chan int c2 chan<- chan<- struct{} c3 chan<- <-chan int c4 <-chan <-chan int c5 chan (<-chan int) ) } ================================================ FILE: semantic/test/fixtures/go/corpus/channel-types.B.go ================================================ package main func main() { type ( c2 chan<- chan string c3 chan<- chan<- struct{} c4 chan<- <-chan string c4 <-chan <-chan string c5 chan (<-chan string) ) } ================================================ FILE: semantic/test/fixtures/go/corpus/channel-types.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Type { (Identifier) ->(Identifier) } (BidirectionalChannel (ReceiveChannel { (Identifier) ->(Identifier) }))) (Type { (Identifier) ->(Identifier) } (SendChannel (SendChannel (Constructor (Empty) (Statements))))) (Type { (Identifier) ->(Identifier) } (SendChannel (ReceiveChannel { (Identifier) ->(Identifier) }))) (Type (Identifier) (ReceiveChannel (ReceiveChannel { (Identifier) ->(Identifier) }))) (Type (Identifier) (BidirectionalChannel (Parenthesized (ReceiveChannel { (Identifier) ->(Identifier) }))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/channel-types.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Type { (Identifier) ->(Identifier) } (BidirectionalChannel (ReceiveChannel { (Identifier) ->(Identifier) }))) (Type { (Identifier) ->(Identifier) } (SendChannel (SendChannel (Constructor (Empty) (Statements))))) (Type { (Identifier) ->(Identifier) } (SendChannel (ReceiveChannel { (Identifier) ->(Identifier) }))) (Type (Identifier) (ReceiveChannel (ReceiveChannel { (Identifier) ->(Identifier) }))) (Type (Identifier) (BidirectionalChannel (Parenthesized (ReceiveChannel { (Identifier) ->(Identifier) }))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/channel-types.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "c1") (Type (SimpleType (ChannelType (Type (SimpleType (ChannelType (Type (SimpleType (TypeIdentifier "int")))))))))) (TypeSpec (TypeIdentifier "c2") (Type (SimpleType (ChannelType (Type (SimpleType (ChannelType (Type (SimpleType (StructType (FieldDeclarationList))))))))))) (TypeSpec (TypeIdentifier "c3") (Type (SimpleType (ChannelType (Type (SimpleType (ChannelType (Type (SimpleType (TypeIdentifier "int")))))))))) (TypeSpec (TypeIdentifier "c4") (Type (SimpleType (ChannelType (Type (SimpleType (ChannelType (Type (SimpleType (TypeIdentifier "int")))))))))) (TypeSpec (TypeIdentifier "c5") (Type (SimpleType (ChannelType (Type (ParenthesizedType (Type (SimpleType (ChannelType (Type (SimpleType (TypeIdentifier "int"))))))))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/channel-types.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "c2") (Type (SimpleType (ChannelType (Type (SimpleType (ChannelType (Type (SimpleType (TypeIdentifier "string")))))))))) (TypeSpec (TypeIdentifier "c3") (Type (SimpleType (ChannelType (Type (SimpleType (ChannelType (Type (SimpleType (StructType (FieldDeclarationList))))))))))) (TypeSpec (TypeIdentifier "c4") (Type (SimpleType (ChannelType (Type (SimpleType (ChannelType (Type (SimpleType (TypeIdentifier "string")))))))))) (TypeSpec (TypeIdentifier "c4") (Type (SimpleType (ChannelType (Type (SimpleType (ChannelType (Type (SimpleType (TypeIdentifier "string")))))))))) (TypeSpec (TypeIdentifier "c5") (Type (SimpleType (ChannelType (Type (ParenthesizedType (Type (SimpleType (ChannelType (Type (SimpleType (TypeIdentifier "string"))))))))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/comment.A.go ================================================ package main func main() { // this is a comment } ================================================ FILE: semantic/test/fixtures/go/corpus/comment.B.go ================================================ package main func main() { /* this is a block comment */ } ================================================ FILE: semantic/test/fixtures/go/corpus/comment.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Context { (Comment) ->(Comment) } (Empty)))) ================================================ FILE: semantic/test/fixtures/go/corpus/comment.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Context { (Comment) ->(Comment) } (Empty)))) ================================================ FILE: semantic/test/fixtures/go/corpus/comment.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/comment.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/const-declarations-with-types.A.go ================================================ package main func main() { const zero int = 0 } ================================================ FILE: semantic/test/fixtures/go/corpus/const-declarations-with-types.B.go ================================================ package main func main() { const one, two uiint64 = 1, 2 } ================================================ FILE: semantic/test/fixtures/go/corpus/const-declarations-with-types.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Assignment (Annotation (Statements { (Identifier) ->(Identifier) } {+(Identifier)+}) { (Identifier) ->(Identifier) }) { (Integer) ->(Statements {+(Integer)+} {+(Integer)+}) }))) ================================================ FILE: semantic/test/fixtures/go/corpus/const-declarations-with-types.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Assignment (Annotation (Statements { (Identifier) ->(Identifier) } {-(Identifier)-}) { (Identifier) ->(Identifier) }) { (Statements {-(Integer)-} {-(Integer)-}) ->(Integer) }))) ================================================ FILE: semantic/test/fixtures/go/corpus/const-declarations-with-types.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (IntLiteral "0"))) (Identifier "zero") (Type (SimpleType (TypeIdentifier "int"))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/const-declarations-with-types.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (IntLiteral "1")) (Expression (IntLiteral "2"))) (Identifier "one") (Token) (Identifier "two") (Type (SimpleType (TypeIdentifier "uiint64"))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/const-declarations-without-types.A.go ================================================ package main func main() { const zero = 0 } ================================================ FILE: semantic/test/fixtures/go/corpus/const-declarations-without-types.B.go ================================================ package main func main() { const one, two = 1, 2 } ================================================ FILE: semantic/test/fixtures/go/corpus/const-declarations-without-types.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Assignment { (Identifier) ->(Statements {+(Identifier)+} {+(Identifier)+}) } { (Integer) ->(Statements {+(Integer)+} {+(Integer)+}) }))) ================================================ FILE: semantic/test/fixtures/go/corpus/const-declarations-without-types.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Assignment { (Statements {-(Identifier)-} {-(Identifier)-}) ->(Identifier) } { (Statements {-(Integer)-} {-(Integer)-}) ->(Integer) }))) ================================================ FILE: semantic/test/fixtures/go/corpus/const-declarations-without-types.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (IntLiteral "0"))) (Identifier "zero"))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/const-declarations-without-types.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (IntLiteral "1")) (Expression (IntLiteral "2"))) (Identifier "one") (Token) (Identifier "two"))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/const-with-implicit-values.A.go ================================================ package main func main() { const ( zero = iota one two ) } ================================================ FILE: semantic/test/fixtures/go/corpus/const-with-implicit-values.B.go ================================================ package main func main() { const ( a = iota b c ) } ================================================ FILE: semantic/test/fixtures/go/corpus/const-with-implicit-values.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Assignment { (Identifier) ->(Identifier) } (Identifier)) (Assignment { (Identifier) ->(Identifier) } (Statements)) (Assignment { (Identifier) ->(Identifier) } (Statements))))) ================================================ FILE: semantic/test/fixtures/go/corpus/const-with-implicit-values.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Assignment { (Identifier) ->(Identifier) } (Identifier)) (Assignment { (Identifier) ->(Identifier) } (Statements)) (Assignment { (Identifier) ->(Identifier) } (Statements))))) ================================================ FILE: semantic/test/fixtures/go/corpus/const-with-implicit-values.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (Identifier "iota"))) (Identifier "zero")) (ConstSpec (Identifier "one")) (ConstSpec (Identifier "two"))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/const-with-implicit-values.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (Identifier "iota"))) (Identifier "a")) (ConstSpec (Identifier "b")) (ConstSpec (Identifier "c"))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/constructors.A.go ================================================ package main func main() { make(chan<- int) make(chan<- int, (new - old)) make(chan<- int, 5, 10) new(map[string]string) } ================================================ FILE: semantic/test/fixtures/go/corpus/constructors.B.go ================================================ package main func main() { make(chan<- string) make(chan<- string, (new - old)) make(chan<- string, 7, 11) new(map[int]int) } ================================================ FILE: semantic/test/fixtures/go/corpus/constructors.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Call (Identifier) (SendChannel { (Identifier) ->(Identifier) }) (Empty)) (Call (Identifier) (Statements (SendChannel { (Identifier) ->(Identifier) }) (Minus (Identifier) (Identifier))) (Empty)) (Call (Identifier) (Statements (SendChannel { (Identifier) ->(Identifier) }) { (Integer) ->(Integer) } { (Integer) ->(Integer) }) (Empty)) (Call (Identifier) (Map { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Empty))))) ================================================ FILE: semantic/test/fixtures/go/corpus/constructors.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Call (Identifier) (SendChannel { (Identifier) ->(Identifier) }) (Empty)) (Call (Identifier) (Statements (SendChannel { (Identifier) ->(Identifier) }) (Minus (Identifier) (Identifier))) (Empty)) (Call (Identifier) (Statements (SendChannel { (Identifier) ->(Identifier) }) { (Integer) ->(Integer) } { (Integer) ->(Integer) }) (Empty)) (Call (Identifier) (Map { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Empty))))) ================================================ FILE: semantic/test/fixtures/go/corpus/constructors.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "make")) (ArgumentList (Type (SimpleType (ChannelType (Type (SimpleType (TypeIdentifier "int"))))))))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "make")) (ArgumentList (Type (SimpleType (ChannelType (Type (SimpleType (TypeIdentifier "int")))))) (Expression (ParenthesizedExpression (Expression (BinaryExpression (Token) (Expression (Identifier "new")) (Expression (Identifier "old"))))))))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "make")) (ArgumentList (Type (SimpleType (ChannelType (Type (SimpleType (TypeIdentifier "int")))))) (Expression (IntLiteral "5")) (Expression (IntLiteral "10"))))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "new")) (ArgumentList (Type (SimpleType (MapType (Type (SimpleType (TypeIdentifier "string"))) (Type (SimpleType (TypeIdentifier "string")))))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/constructors.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "make")) (ArgumentList (Type (SimpleType (ChannelType (Type (SimpleType (TypeIdentifier "string"))))))))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "make")) (ArgumentList (Type (SimpleType (ChannelType (Type (SimpleType (TypeIdentifier "string")))))) (Expression (ParenthesizedExpression (Expression (BinaryExpression (Token) (Expression (Identifier "new")) (Expression (Identifier "old"))))))))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "make")) (ArgumentList (Type (SimpleType (ChannelType (Type (SimpleType (TypeIdentifier "string")))))) (Expression (IntLiteral "7")) (Expression (IntLiteral "11"))))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "new")) (ArgumentList (Type (SimpleType (MapType (Type (SimpleType (TypeIdentifier "int"))) (Type (SimpleType (TypeIdentifier "int")))))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/float-literals.A.go ================================================ package main func main() { f1 = 1.5 f2 = 1.5e100 f3 = 1.5e+50 f4 = 1.5e-5 f5 = .5e-50 } ================================================ FILE: semantic/test/fixtures/go/corpus/float-literals.B.go ================================================ package main func main() { f1 = 2.6 f2 = 2.6e211 f3 = 2.6e+60 f4 = 2.6e-7 f5 = .6e-60 } ================================================ FILE: semantic/test/fixtures/go/corpus/float-literals.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Assignment (Identifier) { (Float) ->(Float) }) (Assignment (Identifier) { (Float) ->(Float) }) (Assignment (Identifier) { (Float) ->(Float) }) (Assignment (Identifier) { (Float) ->(Float) }) (Assignment (Identifier) { (Float) ->(Float) })))) ================================================ FILE: semantic/test/fixtures/go/corpus/float-literals.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Assignment (Identifier) { (Float) ->(Float) }) (Assignment (Identifier) { (Float) ->(Float) }) (Assignment (Identifier) { (Float) ->(Float) }) (Assignment (Identifier) { (Float) ->(Float) }) (Assignment (Identifier) { (Float) ->(Float) })))) ================================================ FILE: semantic/test/fixtures/go/corpus/float-literals.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "f1"))) (ExpressionList (Expression (FloatLiteral "1.5")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "f2"))) (ExpressionList (Expression (FloatLiteral "1.5e100")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "f3"))) (ExpressionList (Expression (FloatLiteral "1.5e+50")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "f4"))) (ExpressionList (Expression (FloatLiteral "1.5e-5")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "f5"))) (ExpressionList (Expression (FloatLiteral ".5e-50"))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/float-literals.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "f1"))) (ExpressionList (Expression (FloatLiteral "2.6")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "f2"))) (ExpressionList (Expression (FloatLiteral "2.6e211")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "f3"))) (ExpressionList (Expression (FloatLiteral "2.6e+60")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "f4"))) (ExpressionList (Expression (FloatLiteral "2.6e-7")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (Identifier "f5"))) (ExpressionList (Expression (FloatLiteral ".6e-60"))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/for-statements.A.go ================================================ package main func main() { for { a() goto loop } for i := 0; i < 5; i++ { a() break loop } for ; i < 10; i++ { a() continue loop2 } for ;; { a() continue } for x := range y { a(x) break } for i, s := range a { g(i, s) } for key, val = range m { h(key, val) } for 1 < 2 { i() } for range ch {} } ================================================ FILE: semantic/test/fixtures/go/corpus/for-statements.B.go ================================================ package main func main() { for ;; { a() goto loop } for x := range y { a() break loop } for ;; { a() continue loop2 } for ; i < 10; i++ { a() continue } for { a(x) break } for s, i := range b { g(i, s) } for k, v = range m { h(k, v) } for 2 < 1 { j() } for range b {} } ================================================ FILE: semantic/test/fixtures/go/corpus/for-statements.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (For (Empty) (Empty) (Empty) (Statements (Call (Identifier) (Statements) (Empty)) (Goto (Identifier)))) {+(ForEach {+(Identifier)+} {+(Identifier)+} {+(Statements {+(Call {+(Identifier)+} {+(Statements)+} {+(Empty)+})+} {+(Break {+(Identifier)+})+})+})+} {+(For {+(Empty)+} {+(Empty)+} {+(Empty)+} {+(Statements {+(Call {+(Identifier)+} {+(Statements)+} {+(Empty)+})+} {+(Continue {+(Identifier)+})+})+})+} (For { (Assignment {-(Identifier)-} {-(Integer)-}) ->(LessThan {+(Identifier)+} {+(Integer)+}) } { (LessThan {-(Identifier)-} {-(Integer)-}) ->(PostIncrement {+(Identifier)+}) } { (PostIncrement {-(Identifier)-}) ->(Empty) } (Statements (Call (Identifier) (Statements) (Empty)) {+(Continue {+(Empty)+})+} {-(Break {-(Identifier)-})-})) {+(For {+(Empty)+} {+(Empty)+} {+(Empty)+} {+(Statements {+(Call {+(Identifier)+} {+(Identifier)+} {+(Empty)+})+} {+(Break {+(Empty)+})+})+})+} {+(ForEach {+(Statements {+(Identifier)+} {+(Identifier)+})+} {+(Identifier)+} {+(Call {+(Identifier)+} {+(Statements {+(Identifier)+} {+(Identifier)+})+} {+(Empty)+})+})+} {+(ForEach {+(Statements {+(Identifier)+} {+(Identifier)+})+} {+(Identifier)+} {+(Call {+(Identifier)+} {+(Statements {+(Identifier)+} {+(Identifier)+})+} {+(Empty)+})+})+} {+(For {+(Empty)+} {+(LessThan {+(Integer)+} {+(Integer)+})+} {+(Empty)+} {+(Call {+(Identifier)+} {+(Statements)+} {+(Empty)+})+})+} {+(ForEach {+(Empty)+} {+(Identifier)+} {+(Statements)+})+} {-(For {-(LessThan {-(Identifier)-} {-(Integer)-})-} {-(PostIncrement {-(Identifier)-})-} {-(Empty)-} {-(Statements {-(Call {-(Identifier)-} {-(Statements)-} {-(Empty)-})-} {-(Continue {-(Identifier)-})-})-})-} {-(For {-(Empty)-} {-(Empty)-} {-(Empty)-} {-(Statements {-(Call {-(Identifier)-} {-(Statements)-} {-(Empty)-})-} {-(Continue {-(Empty)-})-})-})-} {-(ForEach {-(Identifier)-} {-(Identifier)-} {-(Statements {-(Call {-(Identifier)-} {-(Identifier)-} {-(Empty)-})-} {-(Break {-(Empty)-})-})-})-} {-(ForEach {-(Statements {-(Identifier)-} {-(Identifier)-})-} {-(Identifier)-} {-(Call {-(Identifier)-} {-(Statements {-(Identifier)-} {-(Identifier)-})-} {-(Empty)-})-})-} {-(ForEach {-(Statements {-(Identifier)-} {-(Identifier)-})-} {-(Identifier)-} {-(Call {-(Identifier)-} {-(Statements {-(Identifier)-} {-(Identifier)-})-} {-(Empty)-})-})-} {-(For {-(Empty)-} {-(LessThan {-(Integer)-} {-(Integer)-})-} {-(Empty)-} {-(Call {-(Identifier)-} {-(Statements)-} {-(Empty)-})-})-} {-(ForEach {-(Empty)-} {-(Identifier)-} {-(Statements)-})-}))) ================================================ FILE: semantic/test/fixtures/go/corpus/for-statements.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (For (Empty) (Empty) (Empty) (Statements (Call (Identifier) (Statements) (Empty)) (Goto (Identifier)))) {+(For {+(Assignment {+(Identifier)+} {+(Integer)+})+} {+(LessThan {+(Identifier)+} {+(Integer)+})+} {+(PostIncrement {+(Identifier)+})+} {+(Statements {+(Call {+(Identifier)+} {+(Statements)+} {+(Empty)+})+} {+(Break {+(Identifier)+})+})+})+} {+(For {+(LessThan {+(Identifier)+} {+(Integer)+})+} {+(PostIncrement {+(Identifier)+})+} {+(Empty)+} {+(Statements {+(Call {+(Identifier)+} {+(Statements)+} {+(Empty)+})+} {+(Continue {+(Identifier)+})+})+})+} {+(For {+(Empty)+} {+(Empty)+} {+(Empty)+} {+(Statements {+(Call {+(Identifier)+} {+(Statements)+} {+(Empty)+})+} {+(Continue {+(Empty)+})+})+})+} (ForEach (Identifier) (Identifier) (Statements (Call (Identifier) {+(Identifier)+} {-(Statements)-} (Empty)) (Break { (Identifier) ->(Empty) }))) {+(ForEach {+(Statements {+(Identifier)+} {+(Identifier)+})+} {+(Identifier)+} {+(Call {+(Identifier)+} {+(Statements {+(Identifier)+} {+(Identifier)+})+} {+(Empty)+})+})+} {+(ForEach {+(Statements {+(Identifier)+} {+(Identifier)+})+} {+(Identifier)+} {+(Call {+(Identifier)+} {+(Statements {+(Identifier)+} {+(Identifier)+})+} {+(Empty)+})+})+} {+(For {+(Empty)+} {+(LessThan {+(Integer)+} {+(Integer)+})+} {+(Empty)+} {+(Call {+(Identifier)+} {+(Statements)+} {+(Empty)+})+})+} {+(ForEach {+(Empty)+} {+(Identifier)+} {+(Statements)+})+} {-(For {-(Empty)-} {-(Empty)-} {-(Empty)-} {-(Statements {-(Call {-(Identifier)-} {-(Statements)-} {-(Empty)-})-} {-(Continue {-(Identifier)-})-})-})-} {-(For {-(LessThan {-(Identifier)-} {-(Integer)-})-} {-(PostIncrement {-(Identifier)-})-} {-(Empty)-} {-(Statements {-(Call {-(Identifier)-} {-(Statements)-} {-(Empty)-})-} {-(Continue {-(Empty)-})-})-})-} {-(For {-(Empty)-} {-(Empty)-} {-(Empty)-} {-(Statements {-(Call {-(Identifier)-} {-(Identifier)-} {-(Empty)-})-} {-(Break {-(Empty)-})-})-})-} {-(ForEach {-(Statements {-(Identifier)-} {-(Identifier)-})-} {-(Identifier)-} {-(Call {-(Identifier)-} {-(Statements {-(Identifier)-} {-(Identifier)-})-} {-(Empty)-})-})-} {-(ForEach {-(Statements {-(Identifier)-} {-(Identifier)-})-} {-(Identifier)-} {-(Call {-(Identifier)-} {-(Statements {-(Identifier)-} {-(Identifier)-})-} {-(Empty)-})-})-} {-(For {-(Empty)-} {-(LessThan {-(Integer)-} {-(Integer)-})-} {-(Empty)-} {-(Call {-(Identifier)-} {-(Statements)-} {-(Empty)-})-})-} {-(ForEach {-(Empty)-} {-(Identifier)-} {-(Statements)-})-}))) ================================================ FILE: semantic/test/fixtures/go/corpus/for-statements.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ForStatement (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "a")) (ArgumentList))))) (Statement (GotoStatement (LabelName "loop")))))) (Statement (ForStatement (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "a")) (ArgumentList))))) (Statement (BreakStatement (LabelName "loop")))) (ForClause (SimpleStatement (ShortVarDeclaration (ExpressionList (Expression (Identifier "i"))) (ExpressionList (Expression (IntLiteral "0"))))) (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (IntLiteral "5")))) (SimpleStatement (IncStatement (Expression (Identifier "i"))))))) (Statement (ForStatement (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "a")) (ArgumentList))))) (Statement (ContinueStatement (LabelName "loop2")))) (ForClause (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (IntLiteral "10")))) (SimpleStatement (IncStatement (Expression (Identifier "i"))))))) (Statement (ForStatement (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "a")) (ArgumentList))))) (Statement (ContinueStatement))) (ForClause))) (Statement (ForStatement (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "a")) (ArgumentList (Expression (Identifier "x"))))))) (Statement (BreakStatement))) (RangeClause (ExpressionList (Expression (Identifier "x"))) (Expression (Identifier "y"))))) (Statement (ForStatement (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "g")) (ArgumentList (Expression (Identifier "i")) (Expression (Identifier "s")))))))) (RangeClause (ExpressionList (Expression (Identifier "i")) (Expression (Identifier "s"))) (Expression (Identifier "a"))))) (Statement (ForStatement (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "h")) (ArgumentList (Expression (Identifier "key")) (Expression (Identifier "val")))))))) (RangeClause (ExpressionList (Expression (Identifier "key")) (Expression (Identifier "val"))) (Expression (Identifier "m"))))) (Statement (ForStatement (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "i")) (ArgumentList)))))) (Expression (BinaryExpression (Token) (Expression (IntLiteral "1")) (Expression (IntLiteral "2")))))) (Statement (ForStatement (Block) (RangeClause (Expression (Identifier "ch")))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/for-statements.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ForStatement (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "a")) (ArgumentList))))) (Statement (GotoStatement (LabelName "loop")))) (ForClause))) (Statement (ForStatement (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "a")) (ArgumentList))))) (Statement (BreakStatement (LabelName "loop")))) (RangeClause (ExpressionList (Expression (Identifier "x"))) (Expression (Identifier "y"))))) (Statement (ForStatement (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "a")) (ArgumentList))))) (Statement (ContinueStatement (LabelName "loop2")))) (ForClause))) (Statement (ForStatement (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "a")) (ArgumentList))))) (Statement (ContinueStatement))) (ForClause (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (IntLiteral "10")))) (SimpleStatement (IncStatement (Expression (Identifier "i"))))))) (Statement (ForStatement (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "a")) (ArgumentList (Expression (Identifier "x"))))))) (Statement (BreakStatement))))) (Statement (ForStatement (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "g")) (ArgumentList (Expression (Identifier "i")) (Expression (Identifier "s")))))))) (RangeClause (ExpressionList (Expression (Identifier "s")) (Expression (Identifier "i"))) (Expression (Identifier "b"))))) (Statement (ForStatement (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "h")) (ArgumentList (Expression (Identifier "k")) (Expression (Identifier "v")))))))) (RangeClause (ExpressionList (Expression (Identifier "k")) (Expression (Identifier "v"))) (Expression (Identifier "m"))))) (Statement (ForStatement (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "j")) (ArgumentList)))))) (Expression (BinaryExpression (Token) (Expression (IntLiteral "2")) (Expression (IntLiteral "1")))))) (Statement (ForStatement (Block) (RangeClause (Expression (Identifier "b")))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/function-declarations.A.go ================================================ package main func main() {} func f1() {} func f2(a int, b, c, d string) int {} func f2() (int, error) {} func f2() (result int, err error) {} func lockedOSThread() bool func getcontext(c *u) /* int32 */ {} ================================================ FILE: semantic/test/fixtures/go/corpus/function-declarations.B.go ================================================ package main func main() {} func fa() {} func fb(a int, b, c, d string) int {} func fc() (int, error) {} func fd() (result int, err error) {} func fe() () {;} func lockOSThread() int func setcontext(c *u) /* int32 */ {} ================================================ FILE: semantic/test/fixtures/go/corpus/function-declarations.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements)) (Function { (Identifier) ->(Identifier) } (Statements)) (Function (Identifier) { (Identifier) ->(Identifier) } (Statements (Identifier) (Identifier)) (Statements (Identifier) (Identifier) (Identifier) (Identifier)) (Statements)) (Function (Statements (Statements (Identifier)) (Statements (Identifier))) { (Identifier) ->(Identifier) } (Statements)) (Function (Statements (Statements (Identifier) (Identifier)) (Statements (Identifier) (Identifier))) { (Identifier) ->(Identifier) } (Statements)) (Function {+(Statements)+} {-(Identifier)-} { (Identifier) ->(Identifier) } { (Empty) ->(NoOp {+(Empty)+}) }) {+(Function {+(Identifier)+} {+(Identifier)+} {+(Empty)+})+} (Function (Context (Comment) (Empty)) { (Identifier) ->(Identifier) } (Statements (Identifier) (Pointer (Identifier))) (Statements))) ================================================ FILE: semantic/test/fixtures/go/corpus/function-declarations.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements)) (Function { (Identifier) ->(Identifier) } (Statements)) (Function (Identifier) { (Identifier) ->(Identifier) } (Statements (Identifier) (Identifier)) (Statements (Identifier) (Identifier) (Identifier) (Identifier)) (Statements)) (Function (Statements (Statements (Identifier)) (Statements (Identifier))) { (Identifier) ->(Identifier) } (Statements)) (Function (Statements (Statements (Identifier) (Identifier)) (Statements (Identifier) (Identifier))) { (Identifier) ->(Identifier) } (Statements)) (Function {+(Identifier)+} {-(Statements)-} { (Identifier) ->(Identifier) } { (NoOp {-(Empty)-}) ->(Empty) }) {+(Function {+(Context {+(Comment)+} {+(Empty)+})+} {+(Identifier)+} {+(Statements {+(Identifier)+} {+(Pointer {+(Identifier)+})+})+} {+(Statements)+})+} {-(Function {-(Identifier)-} {-(Identifier)-} {-(Empty)-})-} {-(Function {-(Context {-(Comment)-} {-(Empty)-})-} {-(Identifier)-} {-(Statements {-(Identifier)-} {-(Pointer {-(Identifier)-})-})-} {-(Statements)-})-}) ================================================ FILE: semantic/test/fixtures/go/corpus/function-declarations.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block) (Identifier "main") (ParameterList)) (FunctionDeclaration (Block) (Identifier "f1") (ParameterList)) (FunctionDeclaration (Block) (SimpleType (TypeIdentifier "int")) (Identifier "f2") (ParameterList (ParameterDeclaration (Identifier "a") (Type (SimpleType (TypeIdentifier "int")))) (ParameterDeclaration (Identifier "b") (Token) (Identifier "c") (Token) (Identifier "d") (Type (SimpleType (TypeIdentifier "string")))))) (FunctionDeclaration (Block) (ParameterList (ParameterDeclaration (Type (SimpleType (TypeIdentifier "int")))) (ParameterDeclaration (Type (SimpleType (TypeIdentifier "error"))))) (Identifier "f2") (ParameterList)) (FunctionDeclaration (Block) (ParameterList (ParameterDeclaration (Identifier "result") (Type (SimpleType (TypeIdentifier "int")))) (ParameterDeclaration (Identifier "err") (Type (SimpleType (TypeIdentifier "error"))))) (Identifier "f2") (ParameterList)) (FunctionDeclaration (SimpleType (TypeIdentifier "bool")) (Identifier "lockedOSThread") (ParameterList)) (FunctionDeclaration (Block) (Identifier "getcontext") (ParameterList (ParameterDeclaration (Identifier "c") (Type (SimpleType (PointerType (Type (SimpleType (TypeIdentifier "u")))))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/function-declarations.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block) (Identifier "main") (ParameterList)) (FunctionDeclaration (Block) (Identifier "fa") (ParameterList)) (FunctionDeclaration (Block) (SimpleType (TypeIdentifier "int")) (Identifier "fb") (ParameterList (ParameterDeclaration (Identifier "a") (Type (SimpleType (TypeIdentifier "int")))) (ParameterDeclaration (Identifier "b") (Token) (Identifier "c") (Token) (Identifier "d") (Type (SimpleType (TypeIdentifier "string")))))) (FunctionDeclaration (Block) (ParameterList (ParameterDeclaration (Type (SimpleType (TypeIdentifier "int")))) (ParameterDeclaration (Type (SimpleType (TypeIdentifier "error"))))) (Identifier "fc") (ParameterList)) (FunctionDeclaration (Block) (ParameterList (ParameterDeclaration (Identifier "result") (Type (SimpleType (TypeIdentifier "int")))) (ParameterDeclaration (Identifier "err") (Type (SimpleType (TypeIdentifier "error"))))) (Identifier "fd") (ParameterList)) (FunctionDeclaration (Block (Statement (EmptyStatement ";"))) (ParameterList) (Identifier "fe") (ParameterList)) (FunctionDeclaration (SimpleType (TypeIdentifier "int")) (Identifier "lockOSThread") (ParameterList)) (FunctionDeclaration (Block) (Identifier "setcontext") (ParameterList (ParameterDeclaration (Identifier "c") (Type (SimpleType (PointerType (Type (SimpleType (TypeIdentifier "u")))))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/function-literals.A.go ================================================ package main func main() { const s1 = func(s string) (int, int) { return 1, 2 } } ================================================ FILE: semantic/test/fixtures/go/corpus/function-literals.B.go ================================================ package main func main() { const s1 = func(b int) (string, string) { return 1, 2 } } ================================================ FILE: semantic/test/fixtures/go/corpus/function-literals.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Assignment (Identifier) (Function (Statements (Statements { (Identifier) ->(Identifier) }) (Statements { (Identifier) ->(Identifier) })) (Empty) (Statements { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Return (Statements (Integer) (Integer))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/function-literals.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Assignment (Identifier) (Function (Statements (Statements { (Identifier) ->(Identifier) }) (Statements { (Identifier) ->(Identifier) })) (Empty) (Statements { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Return (Statements (Integer) (Integer))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/function-literals.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (FuncLiteral (Block (Statement (ReturnStatement (ExpressionList (Expression (IntLiteral "1")) (Expression (IntLiteral "2")))))) (ParameterList (ParameterDeclaration (Type (SimpleType (TypeIdentifier "int")))) (ParameterDeclaration (Type (SimpleType (TypeIdentifier "int"))))) (ParameterList (ParameterDeclaration (Identifier "s") (Type (SimpleType (TypeIdentifier "string")))))))) (Identifier "s1"))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/function-literals.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (FuncLiteral (Block (Statement (ReturnStatement (ExpressionList (Expression (IntLiteral "1")) (Expression (IntLiteral "2")))))) (ParameterList (ParameterDeclaration (Type (SimpleType (TypeIdentifier "string")))) (ParameterDeclaration (Type (SimpleType (TypeIdentifier "string"))))) (ParameterList (ParameterDeclaration (Identifier "b") (Type (SimpleType (TypeIdentifier "int")))))))) (Identifier "s1"))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/function-types.A.go ================================================ package main func main() { type ( a func(int) int b func(int, string) (bool, error) ) } ================================================ FILE: semantic/test/fixtures/go/corpus/function-types.B.go ================================================ package main func main() { type ( x func(string) string y func(string, int) (chan x, error) ) } ================================================ FILE: semantic/test/fixtures/go/corpus/function-types.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Type { (Identifier) ->(Identifier) } (Function (Statements { (Identifier) ->(Identifier) }) { (Identifier) ->(Identifier) })) (Type { (Identifier) ->(Identifier) } (Function {-(Statements {-(Identifier)-})-} (Statements (Identifier)) {+(Statements {+(Identifier)+})+} (Statements (Statements {+(BidirectionalChannel {+(Identifier)+})+} {-(Identifier)-}) (Statements (Identifier)))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/function-types.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Type { (Identifier) ->(Identifier) } (Function (Statements { (Identifier) ->(Identifier) }) { (Identifier) ->(Identifier) })) (Type { (Identifier) ->(Identifier) } (Function {-(Statements {-(Identifier)-})-} (Statements (Identifier)) {+(Statements {+(Identifier)+})+} (Statements (Statements {+(Identifier)+} {-(BidirectionalChannel {-(Identifier)-})-}) (Statements (Identifier)))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/function-types.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "a") (Type (SimpleType (FunctionType (SimpleType (TypeIdentifier "int")) (ParameterList (ParameterDeclaration (Type (SimpleType (TypeIdentifier "int"))))))))) (TypeSpec (TypeIdentifier "b") (Type (SimpleType (FunctionType (ParameterList (ParameterDeclaration (Type (SimpleType (TypeIdentifier "bool")))) (ParameterDeclaration (Type (SimpleType (TypeIdentifier "error"))))) (ParameterList (ParameterDeclaration (Type (SimpleType (TypeIdentifier "int")))) (ParameterDeclaration (Type (SimpleType (TypeIdentifier "string")))))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/function-types.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "x") (Type (SimpleType (FunctionType (SimpleType (TypeIdentifier "string")) (ParameterList (ParameterDeclaration (Type (SimpleType (TypeIdentifier "string"))))))))) (TypeSpec (TypeIdentifier "y") (Type (SimpleType (FunctionType (ParameterList (ParameterDeclaration (Type (SimpleType (ChannelType (Type (SimpleType (TypeIdentifier "x"))))))) (ParameterDeclaration (Type (SimpleType (TypeIdentifier "error"))))) (ParameterList (ParameterDeclaration (Type (SimpleType (TypeIdentifier "string")))) (ParameterDeclaration (Type (SimpleType (TypeIdentifier "int")))))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/go-and-defer-statements.A.go ================================================ package main func main() { defer x.y() go x.y() } ================================================ FILE: semantic/test/fixtures/go/corpus/go-and-defer-statements.B.go ================================================ package main func main() { defer a.b() go c.d() } ================================================ FILE: semantic/test/fixtures/go/corpus/go-and-defer-statements.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Defer (Call (MemberAccess { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Statements) (Empty))) (Go (Call (MemberAccess { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Statements) (Empty)))))) ================================================ FILE: semantic/test/fixtures/go/corpus/go-and-defer-statements.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Defer (Call (MemberAccess { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Statements) (Empty))) (Go (Call (MemberAccess { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Statements) (Empty)))))) ================================================ FILE: semantic/test/fixtures/go/corpus/go-and-defer-statements.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (DeferStatement (Expression (CallExpression (Expression (SelectorExpression (FieldIdentifier "y") (Expression (Identifier "x")))) (ArgumentList))))) (Statement (GoStatement (Expression (CallExpression (Expression (SelectorExpression (FieldIdentifier "y") (Expression (Identifier "x")))) (ArgumentList)))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/go-and-defer-statements.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (DeferStatement (Expression (CallExpression (Expression (SelectorExpression (FieldIdentifier "b") (Expression (Identifier "a")))) (ArgumentList))))) (Statement (GoStatement (Expression (CallExpression (Expression (SelectorExpression (FieldIdentifier "d") (Expression (Identifier "c")))) (ArgumentList)))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/grouped-import-declarations.A.go ================================================ package main import ( "net/http" . "some/dsl" alias "some/package" ) func main() { } ================================================ FILE: semantic/test/fixtures/go/corpus/grouped-import-declarations.B.go ================================================ package main import ( "net/socket" . "types/dsl" alias "awesome/package" ) func main() { } ================================================ FILE: semantic/test/fixtures/go/corpus/grouped-import-declarations.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Statements {+(QualifiedImport {+(Identifier)+})+} {+(Import {+(TextElement)+})+} {+(QualifiedImport {+(Identifier)+})+} {-(QualifiedImport {-(Identifier)-})-} {-(Import {-(TextElement)-})-} {-(QualifiedImport {-(Identifier)-})-}) (Function (Identifier) (Statements))) ================================================ FILE: semantic/test/fixtures/go/corpus/grouped-import-declarations.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Statements {+(QualifiedImport {+(Identifier)+})+} {+(Import {+(TextElement)+})+} {+(QualifiedImport {+(Identifier)+})+} {-(QualifiedImport {-(Identifier)-})-} {-(Import {-(TextElement)-})-} {-(QualifiedImport {-(Identifier)-})-}) (Function (Identifier) (Statements))) ================================================ FILE: semantic/test/fixtures/go/corpus/grouped-import-declarations.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (ImportDeclaration (ImportSpecList (ImportSpec (InterpretedStringLiteral)) (ImportSpec (InterpretedStringLiteral) (Dot ".")) (ImportSpec (InterpretedStringLiteral) (PackageIdentifier "alias")))) (FunctionDeclaration (Block) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/grouped-import-declarations.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (ImportDeclaration (ImportSpecList (ImportSpec (InterpretedStringLiteral)) (ImportSpec (InterpretedStringLiteral) (Dot ".")) (ImportSpec (InterpretedStringLiteral) (PackageIdentifier "alias")))) (FunctionDeclaration (Block) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/grouped-var-declarations.A.go ================================================ package main func main() { var ( zero = 0 one = 1 ) } ================================================ FILE: semantic/test/fixtures/go/corpus/grouped-var-declarations.B.go ================================================ package main func main() { var ( a = 0 b = 1 ) } ================================================ FILE: semantic/test/fixtures/go/corpus/grouped-var-declarations.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Assignment { (Identifier) ->(Identifier) } (Integer)) (Assignment { (Identifier) ->(Identifier) } (Integer))))) ================================================ FILE: semantic/test/fixtures/go/corpus/grouped-var-declarations.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Assignment { (Identifier) ->(Identifier) } (Integer)) (Assignment { (Identifier) ->(Identifier) } (Integer))))) ================================================ FILE: semantic/test/fixtures/go/corpus/grouped-var-declarations.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (VarDeclaration (VarSpec (ExpressionList (Expression (IntLiteral "0"))) (Identifier "zero")) (VarSpec (ExpressionList (Expression (IntLiteral "1"))) (Identifier "one"))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/grouped-var-declarations.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (VarDeclaration (VarSpec (ExpressionList (Expression (IntLiteral "0"))) (Identifier "a")) (VarSpec (ExpressionList (Expression (IntLiteral "1"))) (Identifier "b"))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/if-statements.A.go ================================================ package main func main() { if a() { b() } if a := b(); c { d() } if a() { b() } else { c() } if num := 9; num < 0 { d() } else if num < 10 { e() } else // comment if f() { g() } } ================================================ FILE: semantic/test/fixtures/go/corpus/if-statements.B.go ================================================ package main func main() { if x() { b() } if y := b(); c { d() } if z() { b() } else { c() } if num := 10; num < 0 { f() } else // comment if num < 100 { g() } else { h() } } ================================================ FILE: semantic/test/fixtures/go/corpus/if-statements.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (If (Statements (Call { (Identifier) ->(Identifier) } (Statements) (Empty))) (Call (Identifier) (Statements) (Empty)) (Empty)) (If (Statements (Assignment { (Identifier) ->(Identifier) } (Call (Identifier) (Statements) (Empty))) (Identifier)) (Call (Identifier) (Statements) (Empty)) (Empty)) (If (Statements (Call { (Identifier) ->(Identifier) } (Statements) (Empty))) (Call (Identifier) (Statements) (Empty)) (Call (Identifier) (Statements) (Empty))) (If (Statements (Assignment (Identifier) { (Integer) ->(Integer) }) (LessThan (Identifier) (Integer))) (Call { (Identifier) ->(Identifier) } (Statements) (Empty)) {+(Context {+(Comment)+} (If (Statements (LessThan (Identifier) { (Integer) ->(Integer) })) (Call { (Identifier) ->(Identifier) } (Statements) (Empty)) { (Context {-(Comment)-} {-(If {-(Statements {-(Call {-(Identifier)-} {-(Statements)-} {-(Empty)-})-})-} {-(Call {-(Identifier)-} {-(Statements)-} {-(Empty)-})-} {-(Empty)-})-}) ->(Call {+(Identifier)+} {+(Statements)+} {+(Empty)+}) }))+})))) ================================================ FILE: semantic/test/fixtures/go/corpus/if-statements.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (If (Statements (Call { (Identifier) ->(Identifier) } (Statements) (Empty))) (Call (Identifier) (Statements) (Empty)) (Empty)) (If (Statements (Assignment { (Identifier) ->(Identifier) } (Call (Identifier) (Statements) (Empty))) (Identifier)) (Call (Identifier) (Statements) (Empty)) (Empty)) (If (Statements (Call { (Identifier) ->(Identifier) } (Statements) (Empty))) (Call (Identifier) (Statements) (Empty)) (Call (Identifier) (Statements) (Empty))) (If (Statements (Assignment (Identifier) { (Integer) ->(Integer) }) (LessThan (Identifier) (Integer))) (Call { (Identifier) ->(Identifier) } (Statements) (Empty)) {-(Context {-(Comment)-} (If (Statements (LessThan (Identifier) { (Integer) ->(Integer) })) (Call { (Identifier) ->(Identifier) } (Statements) (Empty)) { (Call {-(Identifier)-} {-(Statements)-} {-(Empty)-}) ->(Context {+(Comment)+} {+(If {+(Statements {+(Call {+(Identifier)+} {+(Statements)+} {+(Empty)+})+})+} {+(Call {+(Identifier)+} {+(Statements)+} {+(Empty)+})+} {+(Empty)+})+}) }))-})))) ================================================ FILE: semantic/test/fixtures/go/corpus/if-statements.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (IfStatement (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "b")) (ArgumentList)))))) (Expression (CallExpression (Expression (Identifier "a")) (ArgumentList))))) (Statement (IfStatement (SimpleStatement (ShortVarDeclaration (ExpressionList (Expression (Identifier "a"))) (ExpressionList (Expression (CallExpression (Expression (Identifier "b")) (ArgumentList)))))) (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "d")) (ArgumentList)))))) (Expression (Identifier "c")))) (Statement (IfStatement (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "c")) (ArgumentList)))))) (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "b")) (ArgumentList)))))) (Expression (CallExpression (Expression (Identifier "a")) (ArgumentList))))) (Statement (IfStatement (IfStatement (IfStatement (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "g")) (ArgumentList)))))) (Expression (CallExpression (Expression (Identifier "f")) (ArgumentList)))) (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "e")) (ArgumentList)))))) (Expression (BinaryExpression (Token) (Expression (Identifier "num")) (Expression (IntLiteral "10"))))) (SimpleStatement (ShortVarDeclaration (ExpressionList (Expression (Identifier "num"))) (ExpressionList (Expression (IntLiteral "9"))))) (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "d")) (ArgumentList)))))) (Expression (BinaryExpression (Token) (Expression (Identifier "num")) (Expression (IntLiteral "0"))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/if-statements.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (IfStatement (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "b")) (ArgumentList)))))) (Expression (CallExpression (Expression (Identifier "x")) (ArgumentList))))) (Statement (IfStatement (SimpleStatement (ShortVarDeclaration (ExpressionList (Expression (Identifier "y"))) (ExpressionList (Expression (CallExpression (Expression (Identifier "b")) (ArgumentList)))))) (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "d")) (ArgumentList)))))) (Expression (Identifier "c")))) (Statement (IfStatement (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "c")) (ArgumentList)))))) (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "b")) (ArgumentList)))))) (Expression (CallExpression (Expression (Identifier "z")) (ArgumentList))))) (Statement (IfStatement (IfStatement (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "h")) (ArgumentList)))))) (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "g")) (ArgumentList)))))) (Expression (BinaryExpression (Token) (Expression (Identifier "num")) (Expression (IntLiteral "100"))))) (SimpleStatement (ShortVarDeclaration (ExpressionList (Expression (Identifier "num"))) (ExpressionList (Expression (IntLiteral "10"))))) (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "f")) (ArgumentList)))))) (Expression (BinaryExpression (Token) (Expression (Identifier "num")) (Expression (IntLiteral "0"))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/imaginary-literals.A.go ================================================ package main func main() { const ( a = 01i b = 1.e+100i ) } ================================================ FILE: semantic/test/fixtures/go/corpus/imaginary-literals.B.go ================================================ package main func main() { const ( a = 02i b = 1.e+103i ) } ================================================ FILE: semantic/test/fixtures/go/corpus/imaginary-literals.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Assignment (Identifier) { (Complex) ->(Complex) }) (Assignment (Identifier) { (Complex) ->(Complex) })))) ================================================ FILE: semantic/test/fixtures/go/corpus/imaginary-literals.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Assignment (Identifier) { (Complex) ->(Complex) }) (Assignment (Identifier) { (Complex) ->(Complex) })))) ================================================ FILE: semantic/test/fixtures/go/corpus/imaginary-literals.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (ImaginaryLiteral "01i"))) (Identifier "a")) (ConstSpec (ExpressionList (Expression (ImaginaryLiteral "1.e+100i"))) (Identifier "b"))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/imaginary-literals.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (ImaginaryLiteral "02i"))) (Identifier "a")) (ConstSpec (ExpressionList (Expression (ImaginaryLiteral "1.e+103i"))) (Identifier "b"))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/import-statements.A.go ================================================ package main import ( // avoid imported and not used errors // "io/ioutil" "net/http" // "os" ) func main() {} ================================================ FILE: semantic/test/fixtures/go/corpus/import-statements.B.go ================================================ package main import ( // avoid imported and not used errors // "io/ioutil" "http" // "os" ) func main() {} ================================================ FILE: semantic/test/fixtures/go/corpus/import-statements.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Statements (Comment) (Comment) { (QualifiedImport {-(Identifier)-}) ->(QualifiedImport {+(Identifier)+}) } (Comment)) (Function (Identifier) (Statements))) ================================================ FILE: semantic/test/fixtures/go/corpus/import-statements.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Statements (Comment) (Comment) { (QualifiedImport {-(Identifier)-}) ->(QualifiedImport {+(Identifier)+}) } (Comment)) (Function (Identifier) (Statements))) ================================================ FILE: semantic/test/fixtures/go/corpus/import-statements.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (ImportDeclaration (ImportSpecList (ImportSpec (InterpretedStringLiteral)))) (FunctionDeclaration (Block) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/import-statements.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (ImportDeclaration (ImportSpecList (ImportSpec (InterpretedStringLiteral)))) (FunctionDeclaration (Block) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/increment-decrement-statements.A.go ================================================ package main func main() { i++ j-- } ================================================ FILE: semantic/test/fixtures/go/corpus/increment-decrement-statements.B.go ================================================ package main func main() { foo++ x++ } ================================================ FILE: semantic/test/fixtures/go/corpus/increment-decrement-statements.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (PostIncrement { (Identifier) ->(Identifier) }) {+(PostIncrement {+(Identifier)+})+} {-(PostDecrement {-(Identifier)-})-}))) ================================================ FILE: semantic/test/fixtures/go/corpus/increment-decrement-statements.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (PostIncrement { (Identifier) ->(Identifier) }) {+(PostDecrement {+(Identifier)+})+} {-(PostIncrement {-(Identifier)-})-}))) ================================================ FILE: semantic/test/fixtures/go/corpus/increment-decrement-statements.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (IncStatement (Expression (Identifier "i"))))) (Statement (SimpleStatement (DecStatement (Expression (Identifier "j")))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/increment-decrement-statements.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (IncStatement (Expression (Identifier "foo"))))) (Statement (SimpleStatement (IncStatement (Expression (Identifier "x")))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/int-literals.A.go ================================================ package main func main() { const ( a = 1 b = 2 c = 3 ) } ================================================ FILE: semantic/test/fixtures/go/corpus/int-literals.B.go ================================================ package main func main() { const ( a = 4 b = 5 c = 6 ) } ================================================ FILE: semantic/test/fixtures/go/corpus/int-literals.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Assignment (Identifier) { (Integer) ->(Integer) }) (Assignment (Identifier) { (Integer) ->(Integer) }) (Assignment (Identifier) { (Integer) ->(Integer) })))) ================================================ FILE: semantic/test/fixtures/go/corpus/int-literals.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Assignment (Identifier) { (Integer) ->(Integer) }) (Assignment (Identifier) { (Integer) ->(Integer) }) (Assignment (Identifier) { (Integer) ->(Integer) })))) ================================================ FILE: semantic/test/fixtures/go/corpus/int-literals.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (IntLiteral "1"))) (Identifier "a")) (ConstSpec (ExpressionList (Expression (IntLiteral "2"))) (Identifier "b")) (ConstSpec (ExpressionList (Expression (IntLiteral "3"))) (Identifier "c"))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/int-literals.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (IntLiteral "4"))) (Identifier "a")) (ConstSpec (ExpressionList (Expression (IntLiteral "5"))) (Identifier "b")) (ConstSpec (ExpressionList (Expression (IntLiteral "6"))) (Identifier "c"))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/interface-types.A.go ================================================ package main func main() { type i1 interface {} type i2 interface { io.Reader } type i3 interface { i1 io.Reader SomeMethod(s string) error } // Option is an optional value or context to a transformation, used at pipeline type OptionA interface { public() } } ================================================ FILE: semantic/test/fixtures/go/corpus/interface-types.B.go ================================================ package main func main() { type j1 interface {} type j2 interface { io.Reader } type j3 interface { i1 io.Reader SomeMethod(s string) error } // Option is an optional value or context to a transformation, used at pipeline type OptionB interface { private() } } ================================================ FILE: semantic/test/fixtures/go/corpus/interface-types.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Statements (Type { (Identifier) ->(Identifier) } (Interface (Statements)))) (Statements (Type { (Identifier) ->(Identifier) } (Interface (MemberAccess (Identifier) (Identifier))))) (Statements (Type { (Identifier) ->(Identifier) } (Interface (Statements (Identifier) (MemberAccess (Identifier) (Identifier)) (MethodSignature (Identifier) (Identifier) (Statements (Identifier) (Identifier))))))) (Context (Comment) (Statements (Type { (Identifier) ->(Identifier) } (Interface (MethodSignature (Empty) { (Identifier) ->(Identifier) })))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/interface-types.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Statements (Type { (Identifier) ->(Identifier) } (Interface (Statements)))) (Statements (Type { (Identifier) ->(Identifier) } (Interface (MemberAccess (Identifier) (Identifier))))) (Statements (Type { (Identifier) ->(Identifier) } (Interface (Statements (Identifier) (MemberAccess (Identifier) (Identifier)) (MethodSignature (Identifier) (Identifier) (Statements (Identifier) (Identifier))))))) (Context (Comment) (Statements (Type { (Identifier) ->(Identifier) } (Interface (MethodSignature (Empty) { (Identifier) ->(Identifier) })))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/interface-types.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "i1") (Type (SimpleType (InterfaceType (MethodSpecList))))))) (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "i2") (Type (SimpleType (InterfaceType (MethodSpecList (QualifiedType (TypeIdentifier "Reader") (PackageIdentifier "io"))))))))) (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "i3") (Type (SimpleType (InterfaceType (MethodSpecList (TypeIdentifier "i1") (QualifiedType (TypeIdentifier "Reader") (PackageIdentifier "io")) (MethodSpec (SimpleType (TypeIdentifier "error")) (FieldIdentifier "SomeMethod") (ParameterList (ParameterDeclaration (Identifier "s") (Type (SimpleType (TypeIdentifier "string"))))))))))))) (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "OptionA") (Type (SimpleType (InterfaceType (MethodSpecList (MethodSpec (FieldIdentifier "public") (ParameterList)))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/interface-types.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "j1") (Type (SimpleType (InterfaceType (MethodSpecList))))))) (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "j2") (Type (SimpleType (InterfaceType (MethodSpecList (QualifiedType (TypeIdentifier "Reader") (PackageIdentifier "io"))))))))) (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "j3") (Type (SimpleType (InterfaceType (MethodSpecList (TypeIdentifier "i1") (QualifiedType (TypeIdentifier "Reader") (PackageIdentifier "io")) (MethodSpec (SimpleType (TypeIdentifier "error")) (FieldIdentifier "SomeMethod") (ParameterList (ParameterDeclaration (Identifier "s") (Type (SimpleType (TypeIdentifier "string"))))))))))))) (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "OptionB") (Type (SimpleType (InterfaceType (MethodSpecList (MethodSpec (FieldIdentifier "private") (ParameterList)))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/label-statements.A.go ================================================ package main func main() { L: ; // ';' terminates empty statement => L does not apply to for loop L1: { // L1 labels block => L1 does not apply to for loop for i := 0; i < 10; i++ { println(i); break L1; // comment } } { insert: } } ================================================ FILE: semantic/test/fixtures/go/corpus/label-statements.B.go ================================================ package main func main() { M: ; // ';' terminates empty statement => M does not apply to for loop M1: { // M1 labels block => M1 does not apply to for loop for i := 0; i < 10; i++ { println(i); break M1; // comment } } { replacement: } } ================================================ FILE: semantic/test/fixtures/go/corpus/label-statements.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Label { (Identifier) ->(Identifier) } (NoOp (Empty))) (Context { (Comment) ->(Comment) } (Label { (Identifier) ->(Identifier) } (Context { (Comment) ->(Comment) } (For (Assignment (Identifier) (Integer)) (LessThan (Identifier) (Integer)) (PostIncrement (Identifier)) (Statements (Call (Identifier) (Identifier) (Empty)) (Break { (Identifier) ->(Identifier) }) (Context (Comment) (Empty))))))) (Label { (Identifier) ->(Identifier) } (Empty))))) ================================================ FILE: semantic/test/fixtures/go/corpus/label-statements.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Label { (Identifier) ->(Identifier) } (NoOp (Empty))) (Context { (Comment) ->(Comment) } (Label { (Identifier) ->(Identifier) } (Context { (Comment) ->(Comment) } (For (Assignment (Identifier) (Integer)) (LessThan (Identifier) (Integer)) (PostIncrement (Identifier)) (Statements (Call (Identifier) (Identifier) (Empty)) (Break { (Identifier) ->(Identifier) }) (Context (Comment) (Empty))))))) (Label { (Identifier) ->(Identifier) } (Empty))))) ================================================ FILE: semantic/test/fixtures/go/corpus/label-statements.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (LabeledStatement (LabelName "L") (Statement (EmptyStatement ";")))) (Statement (LabeledStatement (LabelName "L1") (Statement (Block (Statement (ForStatement (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "println")) (ArgumentList (Expression (Identifier "i"))))))) (Statement (BreakStatement (LabelName "L1")))) (ForClause (SimpleStatement (ShortVarDeclaration (ExpressionList (Expression (Identifier "i"))) (ExpressionList (Expression (IntLiteral "0"))))) (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (IntLiteral "10")))) (SimpleStatement (IncStatement (Expression (Identifier "i"))))))))))) (Statement (Block (Statement (LabeledStatement (LabelName "insert")))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/label-statements.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (LabeledStatement (LabelName "M") (Statement (EmptyStatement ";")))) (Statement (LabeledStatement (LabelName "M1") (Statement (Block (Statement (ForStatement (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "println")) (ArgumentList (Expression (Identifier "i"))))))) (Statement (BreakStatement (LabelName "M1")))) (ForClause (SimpleStatement (ShortVarDeclaration (ExpressionList (Expression (Identifier "i"))) (ExpressionList (Expression (IntLiteral "0"))))) (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (IntLiteral "10")))) (SimpleStatement (IncStatement (Expression (Identifier "i"))))))))))) (Statement (Block (Statement (LabeledStatement (LabelName "replacement")))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/map-literals.A.go ================================================ package main func main() { const s = map[string]string{ "hi": "hello", "bye": "goodbye", } } ================================================ FILE: semantic/test/fixtures/go/corpus/map-literals.B.go ================================================ package main func main() { const s = map[string]int{ "foo": "bar", "baz": "hello", } } ================================================ FILE: semantic/test/fixtures/go/corpus/map-literals.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Assignment (Identifier) (Composite (Map (Identifier) { (Identifier) ->(Identifier) }) (Statements (KeyValue (TextElement) (TextElement)) (KeyValue (TextElement) (TextElement))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/map-literals.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Assignment (Identifier) (Composite (Map (Identifier) { (Identifier) ->(Identifier) }) (Statements (KeyValue (TextElement) (TextElement)) (KeyValue (TextElement) (TextElement))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/map-literals.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (CompositeLiteral (LiteralValue (KeyedElement (Expression (InterpretedStringLiteral)) (Expression (InterpretedStringLiteral))) (KeyedElement (Expression (InterpretedStringLiteral)) (Expression (InterpretedStringLiteral)))) (MapType (Type (SimpleType (TypeIdentifier "string"))) (Type (SimpleType (TypeIdentifier "string"))))))) (Identifier "s"))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/map-literals.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (CompositeLiteral (LiteralValue (KeyedElement (Expression (InterpretedStringLiteral)) (Expression (InterpretedStringLiteral))) (KeyedElement (Expression (InterpretedStringLiteral)) (Expression (InterpretedStringLiteral)))) (MapType (Type (SimpleType (TypeIdentifier "int"))) (Type (SimpleType (TypeIdentifier "string"))))))) (Identifier "s"))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/map-types.A.go ================================================ package main func main() { type m1 map[string]error } ================================================ FILE: semantic/test/fixtures/go/corpus/map-types.B.go ================================================ package main func main() { type m1 map[int]error } ================================================ FILE: semantic/test/fixtures/go/corpus/map-types.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Type (Identifier) (Map { (Identifier) ->(Identifier) } (Identifier)))))) ================================================ FILE: semantic/test/fixtures/go/corpus/map-types.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Type (Identifier) (Map { (Identifier) ->(Identifier) } (Identifier)))))) ================================================ FILE: semantic/test/fixtures/go/corpus/map-types.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "m1") (Type (SimpleType (MapType (Type (SimpleType (TypeIdentifier "error"))) (Type (SimpleType (TypeIdentifier "string")))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/map-types.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "m1") (Type (SimpleType (MapType (Type (SimpleType (TypeIdentifier "error"))) (Type (SimpleType (TypeIdentifier "int")))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/method-declarations.A.go ================================================ package main func main() {} func (s) Method() func (self Person) Equals(other Person) bool {} func (p *Point) Length() float64 { return math.Sqrt(p.x * p.x + p.y * p.y) } func (p *Point) Scale(factor float64) { p.x *= factor p.y *= factor } func (f *Field) Alive(x, y int) bool { } ================================================ FILE: semantic/test/fixtures/go/corpus/method-declarations.B.go ================================================ package main func main() {} func (s) Methods() func (self Num) Equals(other Num) bool {} func (p *Point) OtherLength() float64 { return math.Sqrt(math.Pow(p.x, 2) + p.x + math.Pow(p.y, 2) + p.y) } func (q *Point) Scale(factor int) { p.x *= factor p.y *= factor } func (f *Field) Alive(z, h int) bool { } ================================================ FILE: semantic/test/fixtures/go/corpus/method-declarations.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements)) (Method (Statements (Identifier)) { (Identifier) ->(Identifier) } (Empty)) (Method (Identifier) (Statements (Identifier) { (Identifier) ->(Identifier) }) (Identifier) (Statements (Identifier) { (Identifier) ->(Identifier) }) (Statements)) (Method (Identifier) (Statements (Identifier) (Pointer (Identifier))) { (Identifier) ->(Identifier) } (Return (Call (MemberAccess (Identifier) (Identifier)) (Plus { (Times {-(MemberAccess {-(Identifier)-} {-(Identifier)-})-} {-(MemberAccess {-(Identifier)-} {-(Identifier)-})-}) ->(Plus {+(Plus {+(Call {+(MemberAccess {+(Identifier)+} {+(Identifier)+})+} {+(Statements {+(MemberAccess {+(Identifier)+} {+(Identifier)+})+} {+(Integer)+})+} {+(Empty)+})+} {+(MemberAccess {+(Identifier)+} {+(Identifier)+})+})+} {+(Call {+(MemberAccess {+(Identifier)+} {+(Identifier)+})+} {+(Statements {+(MemberAccess {+(Identifier)+} {+(Identifier)+})+} {+(Integer)+})+} {+(Empty)+})+}) } { (Times {-(MemberAccess {-(Identifier)-} {-(Identifier)-})-} {-(MemberAccess {-(Identifier)-} {-(Identifier)-})-}) ->(MemberAccess {+(Identifier)+} {+(Identifier)+}) }) (Empty)))) (Method (Statements (AugmentedAssignment (Times (MemberAccess (Identifier) (Identifier)) (Identifier))) (AugmentedAssignment (Times (MemberAccess (Identifier) (Identifier)) (Identifier)))) (Statements { (Identifier) ->(Identifier) } (Pointer (Identifier))) (Identifier) (Statements (Identifier) { (Identifier) ->(Identifier) }) (Empty)) (Method (Identifier) (Statements (Identifier) (Pointer (Identifier))) (Identifier) (Statements { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) } (Identifier)) (Statements))) ================================================ FILE: semantic/test/fixtures/go/corpus/method-declarations.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements)) (Method (Statements (Identifier)) { (Identifier) ->(Identifier) } (Empty)) (Method (Identifier) (Statements (Identifier) { (Identifier) ->(Identifier) }) (Identifier) (Statements (Identifier) { (Identifier) ->(Identifier) }) (Statements)) (Method (Identifier) (Statements (Identifier) (Pointer (Identifier))) { (Identifier) ->(Identifier) } (Return (Call (MemberAccess (Identifier) (Identifier)) (Plus { (Plus {-(Plus {-(Call {-(MemberAccess {-(Identifier)-} {-(Identifier)-})-} {-(Statements {-(MemberAccess {-(Identifier)-} {-(Identifier)-})-} {-(Integer)-})-} {-(Empty)-})-} {-(MemberAccess {-(Identifier)-} {-(Identifier)-})-})-} {-(Call {-(MemberAccess {-(Identifier)-} {-(Identifier)-})-} {-(Statements {-(MemberAccess {-(Identifier)-} {-(Identifier)-})-} {-(Integer)-})-} {-(Empty)-})-}) ->(Times {+(MemberAccess {+(Identifier)+} {+(Identifier)+})+} {+(MemberAccess {+(Identifier)+} {+(Identifier)+})+}) } { (MemberAccess {-(Identifier)-} {-(Identifier)-}) ->(Times {+(MemberAccess {+(Identifier)+} {+(Identifier)+})+} {+(MemberAccess {+(Identifier)+} {+(Identifier)+})+}) }) (Empty)))) (Method (Statements (AugmentedAssignment (Times (MemberAccess (Identifier) (Identifier)) (Identifier))) (AugmentedAssignment (Times (MemberAccess (Identifier) (Identifier)) (Identifier)))) (Statements { (Identifier) ->(Identifier) } (Pointer (Identifier))) (Identifier) (Statements (Identifier) { (Identifier) ->(Identifier) }) (Empty)) (Method (Identifier) (Statements (Identifier) (Pointer (Identifier))) (Identifier) (Statements { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) } (Identifier)) (Statements))) ================================================ FILE: semantic/test/fixtures/go/corpus/method-declarations.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block) (Identifier "main") (ParameterList)) (MethodDeclaration (ParameterList (ParameterDeclaration (Type (SimpleType (TypeIdentifier "s"))))) (FieldIdentifier "Method") (ParameterList)) (MethodDeclaration (Block) (SimpleType (TypeIdentifier "bool")) (ParameterList (ParameterDeclaration (Identifier "self") (Type (SimpleType (TypeIdentifier "Person"))))) (FieldIdentifier "Equals") (ParameterList (ParameterDeclaration (Identifier "other") (Type (SimpleType (TypeIdentifier "Person")))))) (MethodDeclaration (Block (Statement (ReturnStatement (ExpressionList (Expression (CallExpression (Expression (SelectorExpression (FieldIdentifier "Sqrt") (Expression (Identifier "math")))) (ArgumentList (Expression (BinaryExpression (Token) (Expression (BinaryExpression (Token) (Expression (SelectorExpression (FieldIdentifier "x") (Expression (Identifier "p")))) (Expression (SelectorExpression (FieldIdentifier "x") (Expression (Identifier "p")))))) (Expression (BinaryExpression (Token) (Expression (SelectorExpression (FieldIdentifier "y") (Expression (Identifier "p")))) (Expression (SelectorExpression (FieldIdentifier "y") (Expression (Identifier "p"))))))))))))))) (SimpleType (TypeIdentifier "float64")) (ParameterList (ParameterDeclaration (Identifier "p") (Type (SimpleType (PointerType (Type (SimpleType (TypeIdentifier "Point")))))))) (FieldIdentifier "Length") (ParameterList)) (MethodDeclaration (Block (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (SelectorExpression (FieldIdentifier "x") (Expression (Identifier "p"))))) (ExpressionList (Expression (Identifier "factor")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (SelectorExpression (FieldIdentifier "y") (Expression (Identifier "p"))))) (ExpressionList (Expression (Identifier "factor"))))))) (ParameterList (ParameterDeclaration (Identifier "p") (Type (SimpleType (PointerType (Type (SimpleType (TypeIdentifier "Point")))))))) (FieldIdentifier "Scale") (ParameterList (ParameterDeclaration (Identifier "factor") (Type (SimpleType (TypeIdentifier "float64")))))) (MethodDeclaration (Block) (SimpleType (TypeIdentifier "bool")) (ParameterList (ParameterDeclaration (Identifier "f") (Type (SimpleType (PointerType (Type (SimpleType (TypeIdentifier "Field")))))))) (FieldIdentifier "Alive") (ParameterList (ParameterDeclaration (Identifier "x") (Token) (Identifier "y") (Type (SimpleType (TypeIdentifier "int"))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/method-declarations.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block) (Identifier "main") (ParameterList)) (MethodDeclaration (ParameterList (ParameterDeclaration (Type (SimpleType (TypeIdentifier "s"))))) (FieldIdentifier "Methods") (ParameterList)) (MethodDeclaration (Block) (SimpleType (TypeIdentifier "bool")) (ParameterList (ParameterDeclaration (Identifier "self") (Type (SimpleType (TypeIdentifier "Num"))))) (FieldIdentifier "Equals") (ParameterList (ParameterDeclaration (Identifier "other") (Type (SimpleType (TypeIdentifier "Num")))))) (MethodDeclaration (Block (Statement (ReturnStatement (ExpressionList (Expression (CallExpression (Expression (SelectorExpression (FieldIdentifier "Sqrt") (Expression (Identifier "math")))) (ArgumentList (Expression (BinaryExpression (Token) (Expression (BinaryExpression (Token) (Expression (BinaryExpression (Token) (Expression (CallExpression (Expression (SelectorExpression (FieldIdentifier "Pow") (Expression (Identifier "math")))) (ArgumentList (Expression (SelectorExpression (FieldIdentifier "x") (Expression (Identifier "p")))) (Expression (IntLiteral "2"))))) (Expression (SelectorExpression (FieldIdentifier "x") (Expression (Identifier "p")))))) (Expression (CallExpression (Expression (SelectorExpression (FieldIdentifier "Pow") (Expression (Identifier "math")))) (ArgumentList (Expression (SelectorExpression (FieldIdentifier "y") (Expression (Identifier "p")))) (Expression (IntLiteral "2"))))))) (Expression (SelectorExpression (FieldIdentifier "y") (Expression (Identifier "p"))))))))))))) (SimpleType (TypeIdentifier "float64")) (ParameterList (ParameterDeclaration (Identifier "p") (Type (SimpleType (PointerType (Type (SimpleType (TypeIdentifier "Point")))))))) (FieldIdentifier "OtherLength") (ParameterList)) (MethodDeclaration (Block (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (SelectorExpression (FieldIdentifier "x") (Expression (Identifier "p"))))) (ExpressionList (Expression (Identifier "factor")))))) (Statement (SimpleStatement (AssignmentStatement (Token) (ExpressionList (Expression (SelectorExpression (FieldIdentifier "y") (Expression (Identifier "p"))))) (ExpressionList (Expression (Identifier "factor"))))))) (ParameterList (ParameterDeclaration (Identifier "q") (Type (SimpleType (PointerType (Type (SimpleType (TypeIdentifier "Point")))))))) (FieldIdentifier "Scale") (ParameterList (ParameterDeclaration (Identifier "factor") (Type (SimpleType (TypeIdentifier "int")))))) (MethodDeclaration (Block) (SimpleType (TypeIdentifier "bool")) (ParameterList (ParameterDeclaration (Identifier "f") (Type (SimpleType (PointerType (Type (SimpleType (TypeIdentifier "Field")))))))) (FieldIdentifier "Alive") (ParameterList (ParameterDeclaration (Identifier "z") (Token) (Identifier "h") (Type (SimpleType (TypeIdentifier "int"))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/modifying-struct-fields.A.go ================================================ package main func main() { ctx := &uploadContext{ Remote: remote } } ================================================ FILE: semantic/test/fixtures/go/corpus/modifying-struct-fields.B.go ================================================ package main func main() { ctx := &uploadContext{ trackedLocksMu: new(sync.Mutex) } } ================================================ FILE: semantic/test/fixtures/go/corpus/modifying-struct-fields.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Assignment (Identifier) (Reference (Composite (Identifier) (Statements (KeyValue { (Identifier) ->(Identifier) } { (Identifier) ->(Call {+(Identifier)+} {+(MemberAccess {+(Identifier)+} {+(Identifier)+})+} {+(Empty)+}) }))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/modifying-struct-fields.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Assignment (Identifier) (Reference (Composite (Identifier) (Statements (KeyValue { (Identifier) ->(Identifier) } { (Call {-(Identifier)-} {-(MemberAccess {-(Identifier)-} {-(Identifier)-})-} {-(Empty)-}) ->(Identifier) }))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/modifying-struct-fields.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (ShortVarDeclaration (ExpressionList (Expression (Identifier "ctx"))) (ExpressionList (Expression (UnaryExpression (Token) (Expression (CompositeLiteral (LiteralValue (KeyedElement (FieldIdentifier "Remote") (Expression (Identifier "remote")))) (TypeIdentifier "uploadContext")))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/modifying-struct-fields.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (ShortVarDeclaration (ExpressionList (Expression (Identifier "ctx"))) (ExpressionList (Expression (UnaryExpression (Token) (Expression (CompositeLiteral (LiteralValue (KeyedElement (FieldIdentifier "trackedLocksMu") (Expression (CallExpression (Expression (Identifier "new")) (ArgumentList (Type (SimpleType (QualifiedType (TypeIdentifier "Mutex") (PackageIdentifier "sync"))))))))) (TypeIdentifier "uploadContext")))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/parameter-declarations-with-types.A.go ================================================ package main func main() { } func foo(a int, b string) { } ================================================ FILE: semantic/test/fixtures/go/corpus/parameter-declarations-with-types.B.go ================================================ package main func main() { } func foo(x string, y uint64) { } ================================================ FILE: semantic/test/fixtures/go/corpus/parameter-declarations-with-types.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements)) (Function (Identifier) (Statements { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Statements { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Statements))) ================================================ FILE: semantic/test/fixtures/go/corpus/parameter-declarations-with-types.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements)) (Function (Identifier) (Statements { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Statements { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Statements))) ================================================ FILE: semantic/test/fixtures/go/corpus/parameter-declarations-with-types.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block) (Identifier "main") (ParameterList)) (FunctionDeclaration (Block) (Identifier "foo") (ParameterList (ParameterDeclaration (Identifier "a") (Type (SimpleType (TypeIdentifier "int")))) (ParameterDeclaration (Identifier "b") (Type (SimpleType (TypeIdentifier "string"))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/parameter-declarations-with-types.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block) (Identifier "main") (ParameterList)) (FunctionDeclaration (Block) (Identifier "foo") (ParameterList (ParameterDeclaration (Identifier "x") (Type (SimpleType (TypeIdentifier "string")))) (ParameterDeclaration (Identifier "y") (Type (SimpleType (TypeIdentifier "uint64"))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/pointer-types.A.go ================================================ package main func main() { type ( p1 *string p2 **p1 ) } ================================================ FILE: semantic/test/fixtures/go/corpus/pointer-types.B.go ================================================ package main func main() { type ( p1 *int p2 **p3 ) } ================================================ FILE: semantic/test/fixtures/go/corpus/pointer-types.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Type (Identifier) (Pointer { (Identifier) ->(Identifier) })) (Type (Identifier) (Pointer (Pointer { (Identifier) ->(Identifier) })))))) ================================================ FILE: semantic/test/fixtures/go/corpus/pointer-types.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Type (Identifier) (Pointer { (Identifier) ->(Identifier) })) (Type (Identifier) (Pointer (Pointer { (Identifier) ->(Identifier) })))))) ================================================ FILE: semantic/test/fixtures/go/corpus/pointer-types.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "p1") (Type (SimpleType (PointerType (Type (SimpleType (TypeIdentifier "string"))))))) (TypeSpec (TypeIdentifier "p2") (Type (SimpleType (PointerType (Type (SimpleType (PointerType (Type (SimpleType (TypeIdentifier "p1"))))))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/pointer-types.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "p1") (Type (SimpleType (PointerType (Type (SimpleType (TypeIdentifier "int"))))))) (TypeSpec (TypeIdentifier "p2") (Type (SimpleType (PointerType (Type (SimpleType (PointerType (Type (SimpleType (TypeIdentifier "p3"))))))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/qualified-types.A.go ================================================ package main func main() { type a b.c } ================================================ FILE: semantic/test/fixtures/go/corpus/qualified-types.B.go ================================================ package main func main() { type x y.z } ================================================ FILE: semantic/test/fixtures/go/corpus/qualified-types.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Type { (Identifier) ->(Identifier) } (MemberAccess { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }))))) ================================================ FILE: semantic/test/fixtures/go/corpus/qualified-types.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Type { (Identifier) ->(Identifier) } (MemberAccess { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }))))) ================================================ FILE: semantic/test/fixtures/go/corpus/qualified-types.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "a") (Type (SimpleType (QualifiedType (TypeIdentifier "c") (PackageIdentifier "b")))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/qualified-types.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "x") (Type (SimpleType (QualifiedType (TypeIdentifier "z") (PackageIdentifier "y")))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/rune-literals.A.go ================================================ package main const ( a = 'δ' b = '⌘' c = '⌘' d = '⌘' e = '⌘' f = '⌘' ) ================================================ FILE: semantic/test/fixtures/go/corpus/rune-literals.B.go ================================================ package main const ( a = '©' b = '©' c = '©' d = '©' e = '©' f = '©' ) ================================================ FILE: semantic/test/fixtures/go/corpus/rune-literals.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Statements (Assignment (Identifier) { (Rune) ->(Rune) }) (Assignment (Identifier) { (Rune) ->(Rune) }) (Assignment (Identifier) { (Rune) ->(Rune) }) (Assignment (Identifier) { (Rune) ->(Rune) }) (Assignment (Identifier) { (Rune) ->(Rune) }) (Assignment (Identifier) { (Rune) ->(Rune) }))) ================================================ FILE: semantic/test/fixtures/go/corpus/rune-literals.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Statements (Assignment (Identifier) { (Rune) ->(Rune) }) (Assignment (Identifier) { (Rune) ->(Rune) }) (Assignment (Identifier) { (Rune) ->(Rune) }) (Assignment (Identifier) { (Rune) ->(Rune) }) (Assignment (Identifier) { (Rune) ->(Rune) }) (Assignment (Identifier) { (Rune) ->(Rune) }))) ================================================ FILE: semantic/test/fixtures/go/corpus/rune-literals.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (ConstDeclaration (ConstSpec (ExpressionList (Expression (RuneLiteral "'\948'"))) (Identifier "a")) (ConstSpec (ExpressionList (Expression (RuneLiteral "'\8984'"))) (Identifier "b")) (ConstSpec (ExpressionList (Expression (RuneLiteral "'\8984'"))) (Identifier "c")) (ConstSpec (ExpressionList (Expression (RuneLiteral "'\8984'"))) (Identifier "d")) (ConstSpec (ExpressionList (Expression (RuneLiteral "'\8984'"))) (Identifier "e")) (ConstSpec (ExpressionList (Expression (RuneLiteral "'\8984'"))) (Identifier "f")))) ================================================ FILE: semantic/test/fixtures/go/corpus/rune-literals.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (ConstDeclaration (ConstSpec (ExpressionList (Expression (RuneLiteral "'\169'"))) (Identifier "a")) (ConstSpec (ExpressionList (Expression (RuneLiteral "'\169'"))) (Identifier "b")) (ConstSpec (ExpressionList (Expression (RuneLiteral "'\169'"))) (Identifier "c")) (ConstSpec (ExpressionList (Expression (RuneLiteral "'\169'"))) (Identifier "d")) (ConstSpec (ExpressionList (Expression (RuneLiteral "'\169'"))) (Identifier "e")) (ConstSpec (ExpressionList (Expression (RuneLiteral "'\169'"))) (Identifier "f")))) ================================================ FILE: semantic/test/fixtures/go/corpus/select-statements.A.go ================================================ package main func main() { select { case x := <-c: println(x) case y <- c: println(5) case <-time.After(1): println(6) n-- if x { waitDone <- result{n, x} return } default: return } select { case <-ch: case <-timeout: default: } } ================================================ FILE: semantic/test/fixtures/go/corpus/select-statements.B.go ================================================ package main func main() { select { case a := <-c: println(x) case b <- c: println(5) case <-time.After(2): println(6) n++ if v { waitDone <- result{n, v} return } default: return } select { case <-channel: case <-timeout: } } ================================================ FILE: semantic/test/fixtures/go/corpus/select-statements.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Select (Statements (Pattern (Receive { (Identifier) ->(Identifier) } (ReceiveOperator (Identifier))) (Call (Identifier) (Identifier) (Empty))) (Pattern (Send { (Identifier) ->(Identifier) } (Identifier)) (Call (Identifier) (Integer) (Empty))) (Pattern (Receive (Empty) (ReceiveOperator (Call (MemberAccess (Identifier) (Identifier)) { (Integer) ->(Integer) } (Empty)))) (Statements (Call (Identifier) (Integer) (Empty)) {+(PostIncrement {+(Identifier)+})+} {+(If {+(Statements {+(Identifier)+})+} {+(Statements {+(Send {+(Identifier)+} {+(Composite {+(Identifier)+} {+(Statements {+(Identifier)+} {+(Identifier)+})+})+})+} {+(Return {+(Empty)+})+})+} {+(Empty)+})+} {-(PostDecrement {-(Identifier)-})-} {-(If {-(Statements {-(Identifier)-})-} {-(Statements {-(Send {-(Identifier)-} {-(Composite {-(Identifier)-} {-(Statements {-(Identifier)-} {-(Identifier)-})-})-})-} {-(Return {-(Empty)-})-})-} {-(Empty)-})-})) (DefaultPattern (Return (Empty))))) (Select (Statements (Pattern (Receive (Empty) (ReceiveOperator { (Identifier) ->(Identifier) })) (Statements)) (Pattern (Receive (Empty) (ReceiveOperator (Identifier))) (Statements)) {-(DefaultPattern {-(Statements)-})-}))))) ================================================ FILE: semantic/test/fixtures/go/corpus/select-statements.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Select (Statements (Pattern (Receive { (Identifier) ->(Identifier) } (ReceiveOperator (Identifier))) (Call (Identifier) (Identifier) (Empty))) (Pattern (Send { (Identifier) ->(Identifier) } (Identifier)) (Call (Identifier) (Integer) (Empty))) (Pattern (Receive (Empty) (ReceiveOperator (Call (MemberAccess (Identifier) (Identifier)) { (Integer) ->(Integer) } (Empty)))) (Statements (Call (Identifier) (Integer) (Empty)) {+(PostDecrement {+(Identifier)+})+} {+(If {+(Statements {+(Identifier)+})+} {+(Statements {+(Send {+(Identifier)+} {+(Composite {+(Identifier)+} {+(Statements {+(Identifier)+} {+(Identifier)+})+})+})+} {+(Return {+(Empty)+})+})+} {+(Empty)+})+} {-(PostIncrement {-(Identifier)-})-} {-(If {-(Statements {-(Identifier)-})-} {-(Statements {-(Send {-(Identifier)-} {-(Composite {-(Identifier)-} {-(Statements {-(Identifier)-} {-(Identifier)-})-})-})-} {-(Return {-(Empty)-})-})-} {-(Empty)-})-})) (DefaultPattern (Return (Empty))))) (Select (Statements (Pattern (Receive (Empty) (ReceiveOperator { (Identifier) ->(Identifier) })) (Statements)) (Pattern (Receive (Empty) (ReceiveOperator (Identifier))) (Statements)) {+(DefaultPattern {+(Statements)+})+}))))) ================================================ FILE: semantic/test/fixtures/go/corpus/select-statements.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SelectStatement (CommunicationCase (ReceiveStatement (ExpressionList (Expression (Identifier "x"))) (Expression (UnaryExpression (Token) (Expression (Identifier "c"))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "println")) (ArgumentList (Expression (Identifier "x")))))))) (CommunicationCase (SendStatement (Expression (Identifier "c")) (Expression (Identifier "y"))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "println")) (ArgumentList (Expression (IntLiteral "5")))))))) (CommunicationCase (ReceiveStatement (Expression (UnaryExpression (Token) (Expression (CallExpression (Expression (SelectorExpression (FieldIdentifier "After") (Expression (Identifier "time")))) (ArgumentList (Expression (IntLiteral "1")))))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "println")) (ArgumentList (Expression (IntLiteral "6"))))))) (Statement (SimpleStatement (DecStatement (Expression (Identifier "n"))))) (Statement (IfStatement (Block (Statement (SimpleStatement (SendStatement (Expression (CompositeLiteral (LiteralValue (Element (Expression (Identifier "n"))) (Element (Expression (Identifier "x")))) (TypeIdentifier "result"))) (Expression (Identifier "waitDone"))))) (Statement (ReturnStatement))) (Expression (Identifier "x"))))) (DefaultCase (Statement (ReturnStatement))))) (Statement (SelectStatement (CommunicationCase (ReceiveStatement (Expression (UnaryExpression (Token) (Expression (Identifier "ch")))))) (CommunicationCase (ReceiveStatement (Expression (UnaryExpression (Token) (Expression (Identifier "timeout")))))) (DefaultCase)))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/select-statements.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SelectStatement (CommunicationCase (ReceiveStatement (ExpressionList (Expression (Identifier "a"))) (Expression (UnaryExpression (Token) (Expression (Identifier "c"))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "println")) (ArgumentList (Expression (Identifier "x")))))))) (CommunicationCase (SendStatement (Expression (Identifier "c")) (Expression (Identifier "b"))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "println")) (ArgumentList (Expression (IntLiteral "5")))))))) (CommunicationCase (ReceiveStatement (Expression (UnaryExpression (Token) (Expression (CallExpression (Expression (SelectorExpression (FieldIdentifier "After") (Expression (Identifier "time")))) (ArgumentList (Expression (IntLiteral "2")))))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "println")) (ArgumentList (Expression (IntLiteral "6"))))))) (Statement (SimpleStatement (IncStatement (Expression (Identifier "n"))))) (Statement (IfStatement (Block (Statement (SimpleStatement (SendStatement (Expression (CompositeLiteral (LiteralValue (Element (Expression (Identifier "n"))) (Element (Expression (Identifier "v")))) (TypeIdentifier "result"))) (Expression (Identifier "waitDone"))))) (Statement (ReturnStatement))) (Expression (Identifier "v"))))) (DefaultCase (Statement (ReturnStatement))))) (Statement (SelectStatement (CommunicationCase (ReceiveStatement (Expression (UnaryExpression (Token) (Expression (Identifier "channel")))))) (CommunicationCase (ReceiveStatement (Expression (UnaryExpression (Token) (Expression (Identifier "timeout"))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/selector-expressions.A.go ================================================ package main func main() { a.b.c() } ================================================ FILE: semantic/test/fixtures/go/corpus/selector-expressions.B.go ================================================ package main func main() { x.y.z() } ================================================ FILE: semantic/test/fixtures/go/corpus/selector-expressions.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Call (MemberAccess (MemberAccess { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) { (Identifier) ->(Identifier) }) (Statements) (Empty)))) ================================================ FILE: semantic/test/fixtures/go/corpus/selector-expressions.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Call (MemberAccess (MemberAccess { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) { (Identifier) ->(Identifier) }) (Statements) (Empty)))) ================================================ FILE: semantic/test/fixtures/go/corpus/selector-expressions.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (SelectorExpression (FieldIdentifier "c") (Expression (SelectorExpression (FieldIdentifier "b") (Expression (Identifier "a")))))) (ArgumentList)))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/selector-expressions.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (SelectorExpression (FieldIdentifier "z") (Expression (SelectorExpression (FieldIdentifier "y") (Expression (Identifier "x")))))) (ArgumentList)))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/send-statements.A.go ================================================ package main func main() { foo <- 5 } ================================================ FILE: semantic/test/fixtures/go/corpus/send-statements.B.go ================================================ package main func main() { bar <- 6 } ================================================ FILE: semantic/test/fixtures/go/corpus/send-statements.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Send { (Identifier) ->(Identifier) } { (Integer) ->(Integer) }))) ================================================ FILE: semantic/test/fixtures/go/corpus/send-statements.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Send { (Identifier) ->(Identifier) } { (Integer) ->(Integer) }))) ================================================ FILE: semantic/test/fixtures/go/corpus/send-statements.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (SendStatement (Expression (IntLiteral "5")) (Expression (Identifier "foo")))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/send-statements.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (SendStatement (Expression (IntLiteral "6")) (Expression (Identifier "bar")))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/short-var-declarations.A.go ================================================ package main func main() { a, b := 1, 2 } ================================================ FILE: semantic/test/fixtures/go/corpus/short-var-declarations.B.go ================================================ package main func main() { x, y := 3, 4 } ================================================ FILE: semantic/test/fixtures/go/corpus/short-var-declarations.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Assignment (Statements { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Statements { (Integer) ->(Integer) } { (Integer) ->(Integer) })))) ================================================ FILE: semantic/test/fixtures/go/corpus/short-var-declarations.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Assignment (Statements { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Statements { (Integer) ->(Integer) } { (Integer) ->(Integer) })))) ================================================ FILE: semantic/test/fixtures/go/corpus/short-var-declarations.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (ShortVarDeclaration (ExpressionList (Expression (Identifier "a")) (Expression (Identifier "b"))) (ExpressionList (Expression (IntLiteral "1")) (Expression (IntLiteral "2"))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/short-var-declarations.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (ShortVarDeclaration (ExpressionList (Expression (Identifier "x")) (Expression (Identifier "y"))) (ExpressionList (Expression (IntLiteral "3")) (Expression (IntLiteral "4"))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/single-import-declarations.A.go ================================================ package main import "some/package2" import . "some/dsl" import alias "some/package" func main() { } ================================================ FILE: semantic/test/fixtures/go/corpus/single-import-declarations.B.go ================================================ package main import "foo/bar" import . "types/dsl" import alias "awesome/packages" func main() { } ================================================ FILE: semantic/test/fixtures/go/corpus/single-import-declarations.diffA-B.txt ================================================ (Statements (Package (Identifier)) { (QualifiedImport {-(Identifier)-}) ->(QualifiedImport {+(Identifier)+}) } { (Import {-(TextElement)-}) ->(Import {+(TextElement)+}) } { (QualifiedImport {-(Identifier)-}) ->(QualifiedImport {+(Identifier)+}) } (Function (Identifier) (Statements))) ================================================ FILE: semantic/test/fixtures/go/corpus/single-import-declarations.diffB-A.txt ================================================ (Statements (Package (Identifier)) { (QualifiedImport {-(Identifier)-}) ->(QualifiedImport {+(Identifier)+}) } { (Import {-(TextElement)-}) ->(Import {+(TextElement)+}) } { (QualifiedImport {-(Identifier)-}) ->(QualifiedImport {+(Identifier)+}) } (Function (Identifier) (Statements))) ================================================ FILE: semantic/test/fixtures/go/corpus/single-import-declarations.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (ImportDeclaration (ImportSpec (InterpretedStringLiteral))) (ImportDeclaration (ImportSpec (InterpretedStringLiteral) (Dot "."))) (ImportDeclaration (ImportSpec (InterpretedStringLiteral) (PackageIdentifier "alias"))) (FunctionDeclaration (Block) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/single-import-declarations.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (ImportDeclaration (ImportSpec (InterpretedStringLiteral))) (ImportDeclaration (ImportSpec (InterpretedStringLiteral) (Dot "."))) (ImportDeclaration (ImportSpec (InterpretedStringLiteral) (PackageIdentifier "alias"))) (FunctionDeclaration (Block) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/single-import-declarationsA.parseA.txt ================================================ ================================================ FILE: semantic/test/fixtures/go/corpus/single-line-function-declarations.A.go ================================================ package main func main() { } func f1() { a() } func f2() { a(); b() } func f3() { a(); b(); } ================================================ FILE: semantic/test/fixtures/go/corpus/single-line-function-declarations.B.go ================================================ package main func main() { } func g1() { a() } func g2() { a(); b() } func g3() { a(); b(); } ================================================ FILE: semantic/test/fixtures/go/corpus/single-line-function-declarations.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements)) (Function { (Identifier) ->(Identifier) } (Call (Identifier) (Statements) (Empty))) (Function { (Identifier) ->(Identifier) } (Statements (Call (Identifier) (Statements) (Empty)) (Call (Identifier) (Statements) (Empty)))) (Function { (Identifier) ->(Identifier) } (Statements (Call (Identifier) (Statements) (Empty)) (Call (Identifier) (Statements) (Empty))))) ================================================ FILE: semantic/test/fixtures/go/corpus/single-line-function-declarations.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements)) (Function { (Identifier) ->(Identifier) } (Call (Identifier) (Statements) (Empty))) (Function { (Identifier) ->(Identifier) } (Statements (Call (Identifier) (Statements) (Empty)) (Call (Identifier) (Statements) (Empty)))) (Function { (Identifier) ->(Identifier) } (Statements (Call (Identifier) (Statements) (Empty)) (Call (Identifier) (Statements) (Empty))))) ================================================ FILE: semantic/test/fixtures/go/corpus/single-line-function-declarations.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block) (Identifier "main") (ParameterList)) (FunctionDeclaration (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "a")) (ArgumentList)))))) (Identifier "f1") (ParameterList)) (FunctionDeclaration (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "a")) (ArgumentList))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "b")) (ArgumentList)))))) (Identifier "f2") (ParameterList)) (FunctionDeclaration (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "a")) (ArgumentList))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "b")) (ArgumentList)))))) (Identifier "f3") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/single-line-function-declarations.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block) (Identifier "main") (ParameterList)) (FunctionDeclaration (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "a")) (ArgumentList)))))) (Identifier "g1") (ParameterList)) (FunctionDeclaration (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "a")) (ArgumentList))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "b")) (ArgumentList)))))) (Identifier "g2") (ParameterList)) (FunctionDeclaration (Block (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "a")) (ArgumentList))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "b")) (ArgumentList)))))) (Identifier "g3") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/slice-expressions.A.go ================================================ package main func main() { a[2:] b[:3] c[:] d[1:2:3] e[1:2] } ================================================ FILE: semantic/test/fixtures/go/corpus/slice-expressions.B.go ================================================ package main func main() { a[1:] b[:2] c[1:2] d[2:1:4] f[1:2] } ================================================ FILE: semantic/test/fixtures/go/corpus/slice-expressions.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements {+(Slice {+(Identifier)+} {+(Integer)+} {+(Empty)+} {+(Empty)+})+} {+(Slice {+(Identifier)+} {+(Empty)+} {+(Integer)+} {+(Empty)+})+} {+(Slice {+(Identifier)+} {+(Integer)+} {+(Integer)+} {+(Empty)+})+} (Slice { (Identifier) ->(Identifier) } (Integer) { (Empty) ->(Integer) } { (Empty) ->(Integer) }) {+(Slice {+(Identifier)+} {+(Integer)+} {+(Integer)+} {+(Empty)+})+} {-(Slice {-(Identifier)-} {-(Empty)-} {-(Integer)-} {-(Empty)-})-} {-(Slice {-(Identifier)-} {-(Empty)-} {-(Empty)-} {-(Empty)-})-} {-(Slice {-(Identifier)-} {-(Integer)-} {-(Integer)-} {-(Integer)-})-} {-(Slice {-(Identifier)-} {-(Integer)-} {-(Integer)-} {-(Empty)-})-}))) ================================================ FILE: semantic/test/fixtures/go/corpus/slice-expressions.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements {+(Slice {+(Identifier)+} {+(Integer)+} {+(Empty)+} {+(Empty)+})+} {+(Slice {+(Identifier)+} {+(Empty)+} {+(Integer)+} {+(Empty)+})+} {+(Slice {+(Identifier)+} {+(Empty)+} {+(Empty)+} {+(Empty)+})+} (Slice { (Identifier) ->(Identifier) } (Integer) { (Empty) ->(Integer) } { (Empty) ->(Integer) }) (Slice { (Identifier) ->(Identifier) } { (Empty) ->(Integer) } (Integer) (Empty)) {-(Slice {-(Identifier)-} {-(Integer)-} {-(Integer)-} {-(Empty)-})-} {-(Slice {-(Identifier)-} {-(Integer)-} {-(Integer)-} {-(Integer)-})-} {-(Slice {-(Identifier)-} {-(Integer)-} {-(Integer)-} {-(Empty)-})-}))) ================================================ FILE: semantic/test/fixtures/go/corpus/slice-expressions.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (Expression (SliceExpression (Expression (IntLiteral "2")) (Expression (Identifier "a")))))) (Statement (SimpleStatement (Expression (SliceExpression (Expression (IntLiteral "3")) (Expression (Identifier "b")))))) (Statement (SimpleStatement (Expression (SliceExpression (Expression (Identifier "c")))))) (Statement (SimpleStatement (Expression (SliceExpression (Expression (IntLiteral "1")) (Expression (IntLiteral "3")) (Expression (IntLiteral "2")) (Expression (Identifier "d")))))) (Statement (SimpleStatement (Expression (SliceExpression (Expression (IntLiteral "1")) (Expression (IntLiteral "2")) (Expression (Identifier "e"))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/slice-expressions.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (Expression (SliceExpression (Expression (IntLiteral "1")) (Expression (Identifier "a")))))) (Statement (SimpleStatement (Expression (SliceExpression (Expression (IntLiteral "2")) (Expression (Identifier "b")))))) (Statement (SimpleStatement (Expression (SliceExpression (Expression (IntLiteral "1")) (Expression (IntLiteral "2")) (Expression (Identifier "c")))))) (Statement (SimpleStatement (Expression (SliceExpression (Expression (IntLiteral "2")) (Expression (IntLiteral "4")) (Expression (IntLiteral "1")) (Expression (Identifier "d")))))) (Statement (SimpleStatement (Expression (SliceExpression (Expression (IntLiteral "1")) (Expression (IntLiteral "2")) (Expression (Identifier "f"))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/slice-literals.A.go ================================================ package main func main() { const s1 = []string{} const s2 = []string{"hi"} const s3 = []string{ "hi", "hello", } } ================================================ FILE: semantic/test/fixtures/go/corpus/slice-literals.B.go ================================================ package main func main() { const s1 = []string{"sup"} const s2 = []string{"hello"} const s3 = []string{ "bar", "baz", } } ================================================ FILE: semantic/test/fixtures/go/corpus/slice-literals.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Assignment (Identifier) (Composite (Slice (Identifier)) (Statements {+(TextElement)+}))) (Assignment (Identifier) (Composite (Slice (Identifier)) (Statements (TextElement)))) (Assignment (Identifier) (Composite (Slice (Identifier)) (Statements (TextElement) (TextElement))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/slice-literals.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Assignment (Identifier) (Composite (Slice (Identifier)) (Statements {-(TextElement)-}))) (Assignment (Identifier) (Composite (Slice (Identifier)) (Statements (TextElement)))) (Assignment (Identifier) (Composite (Slice (Identifier)) (Statements (TextElement) (TextElement))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/slice-literals.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (CompositeLiteral (LiteralValue) (SliceType (Type (SimpleType (TypeIdentifier "string"))))))) (Identifier "s1")))) (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (CompositeLiteral (LiteralValue (Element (Expression (InterpretedStringLiteral)))) (SliceType (Type (SimpleType (TypeIdentifier "string"))))))) (Identifier "s2")))) (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (CompositeLiteral (LiteralValue (Element (Expression (InterpretedStringLiteral))) (Element (Expression (InterpretedStringLiteral)))) (SliceType (Type (SimpleType (TypeIdentifier "string"))))))) (Identifier "s3"))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/slice-literals.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (CompositeLiteral (LiteralValue (Element (Expression (InterpretedStringLiteral)))) (SliceType (Type (SimpleType (TypeIdentifier "string"))))))) (Identifier "s1")))) (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (CompositeLiteral (LiteralValue (Element (Expression (InterpretedStringLiteral)))) (SliceType (Type (SimpleType (TypeIdentifier "string"))))))) (Identifier "s2")))) (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (CompositeLiteral (LiteralValue (Element (Expression (InterpretedStringLiteral))) (Element (Expression (InterpretedStringLiteral)))) (SliceType (Type (SimpleType (TypeIdentifier "string"))))))) (Identifier "s3"))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/slice-types.A.go ================================================ package main func main() { type a []b type c [][]d } ================================================ FILE: semantic/test/fixtures/go/corpus/slice-types.B.go ================================================ package main func main() { type a [][]p type c []y } ================================================ FILE: semantic/test/fixtures/go/corpus/slice-types.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Statements (Type (Identifier) (Slice { (Identifier) ->(Slice {+(Identifier)+}) }))) (Statements (Type (Identifier) (Slice { (Slice {-(Identifier)-}) ->(Identifier) })))))) ================================================ FILE: semantic/test/fixtures/go/corpus/slice-types.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Statements (Type (Identifier) (Slice { (Slice {-(Identifier)-}) ->(Identifier) }))) (Statements (Type (Identifier) (Slice { (Identifier) ->(Slice {+(Identifier)+}) })))))) ================================================ FILE: semantic/test/fixtures/go/corpus/slice-types.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "a") (Type (SimpleType (SliceType (Type (SimpleType (TypeIdentifier "b"))))))))) (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "c") (Type (SimpleType (SliceType (Type (SimpleType (SliceType (Type (SimpleType (TypeIdentifier "d"))))))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/slice-types.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "a") (Type (SimpleType (SliceType (Type (SimpleType (SliceType (Type (SimpleType (TypeIdentifier "p")))))))))))) (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "c") (Type (SimpleType (SliceType (Type (SimpleType (TypeIdentifier "y")))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/string-literals.A.go ================================================ package main func main() { const ( a = "0" b = "hello world" ) } ================================================ FILE: semantic/test/fixtures/go/corpus/string-literals.B.go ================================================ package main func main() { const ( a = "2" b = "hi" ) } ================================================ FILE: semantic/test/fixtures/go/corpus/string-literals.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Assignment (Identifier) (TextElement)) (Assignment (Identifier) (TextElement))))) ================================================ FILE: semantic/test/fixtures/go/corpus/string-literals.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Assignment (Identifier) (TextElement)) (Assignment (Identifier) (TextElement))))) ================================================ FILE: semantic/test/fixtures/go/corpus/string-literals.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (InterpretedStringLiteral))) (Identifier "a")) (ConstSpec (ExpressionList (Expression (InterpretedStringLiteral))) (Identifier "b"))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/string-literals.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (InterpretedStringLiteral))) (Identifier "a")) (ConstSpec (ExpressionList (Expression (InterpretedStringLiteral))) (Identifier "b"))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/struct-field-declarations.A.go ================================================ package main func main() { type s3 struct { g int } } ================================================ FILE: semantic/test/fixtures/go/corpus/struct-field-declarations.B.go ================================================ package main func main() { type s3 struct { h, i int } } ================================================ FILE: semantic/test/fixtures/go/corpus/struct-field-declarations.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Type (Identifier) (Constructor (Empty) (Field (Identifier) (Statements { (Identifier) ->(Identifier) } {+(Identifier)+}))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/struct-field-declarations.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Type (Identifier) (Constructor (Empty) (Field (Identifier) (Statements { (Identifier) ->(Identifier) } {-(Identifier)-}))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/struct-field-declarations.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "s3") (Type (SimpleType (StructType (FieldDeclarationList (FieldDeclaration (FieldIdentifier "g") (TypeIdentifier "int")))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/struct-field-declarations.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "s3") (Type (SimpleType (StructType (FieldDeclarationList (FieldDeclaration (FieldIdentifier "h") (Token) (FieldIdentifier "i") (TypeIdentifier "int")))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/struct-literals.A.go ================================================ package main func main() { const s1 = Person{ name: "Frank", Age: "5 months", } const s2 = struct{i int;}{i: 5} const s3 = time.Time{} } ================================================ FILE: semantic/test/fixtures/go/corpus/struct-literals.B.go ================================================ package main func main() { const s1 = Dog{ name: "Frank", Age: "5 months", } const s2 = struct{i float;}{j: 6} const s3 = time.Month{} } ================================================ FILE: semantic/test/fixtures/go/corpus/struct-literals.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Assignment (Identifier) (Composite { (Identifier) ->(Identifier) } (Statements (KeyValue (Identifier) (TextElement)) (KeyValue (Identifier) (TextElement))))) (Assignment (Identifier) (Composite (Constructor (Empty) (Field { (Identifier) ->(Identifier) } (Statements (Identifier)))) (Statements (KeyValue { (Identifier) ->(Identifier) } { (Integer) ->(Integer) })))) (Assignment (Identifier) (Composite (MemberAccess (Identifier) { (Identifier) ->(Identifier) }) (Statements)))))) ================================================ FILE: semantic/test/fixtures/go/corpus/struct-literals.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Assignment (Identifier) (Composite { (Identifier) ->(Identifier) } (Statements (KeyValue (Identifier) (TextElement)) (KeyValue (Identifier) (TextElement))))) (Assignment (Identifier) (Composite (Constructor (Empty) (Field { (Identifier) ->(Identifier) } (Statements (Identifier)))) (Statements (KeyValue { (Identifier) ->(Identifier) } { (Integer) ->(Integer) })))) (Assignment (Identifier) (Composite (MemberAccess (Identifier) { (Identifier) ->(Identifier) }) (Statements)))))) ================================================ FILE: semantic/test/fixtures/go/corpus/struct-literals.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (CompositeLiteral (LiteralValue (KeyedElement (FieldIdentifier "name") (Expression (InterpretedStringLiteral))) (KeyedElement (FieldIdentifier "Age") (Expression (InterpretedStringLiteral)))) (TypeIdentifier "Person")))) (Identifier "s1")))) (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (CompositeLiteral (LiteralValue (KeyedElement (FieldIdentifier "i") (Expression (IntLiteral "5")))) (StructType (FieldDeclarationList (FieldDeclaration (FieldIdentifier "i") (TypeIdentifier "int"))))))) (Identifier "s2")))) (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (CompositeLiteral (LiteralValue) (QualifiedType (TypeIdentifier "Time") (PackageIdentifier "time"))))) (Identifier "s3"))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/struct-literals.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (CompositeLiteral (LiteralValue (KeyedElement (FieldIdentifier "name") (Expression (InterpretedStringLiteral))) (KeyedElement (FieldIdentifier "Age") (Expression (InterpretedStringLiteral)))) (TypeIdentifier "Dog")))) (Identifier "s1")))) (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (CompositeLiteral (LiteralValue (KeyedElement (FieldIdentifier "j") (Expression (IntLiteral "6")))) (StructType (FieldDeclarationList (FieldDeclaration (FieldIdentifier "i") (TypeIdentifier "float"))))))) (Identifier "s2")))) (Statement (ConstDeclaration (ConstSpec (ExpressionList (Expression (CompositeLiteral (LiteralValue) (QualifiedType (TypeIdentifier "Month") (PackageIdentifier "time"))))) (Identifier "s3"))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/struct-types.A.go ================================================ package main func main() { type s1 struct {} type s2 struct { Person } type s3 struct { f, g int } type s4 struct { p.s1 h int `json:"h"` } } ================================================ FILE: semantic/test/fixtures/go/corpus/struct-types.B.go ================================================ package main func main() { type t1 struct {} type t2 struct { Person } type t3 struct { f, g int } type t4 struct { p.s1 h int `json:"h"` } } ================================================ FILE: semantic/test/fixtures/go/corpus/struct-types.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Statements (Type { (Identifier) ->(Identifier) } (Constructor (Empty) (Statements)))) (Statements (Type { (Identifier) ->(Identifier) } (Constructor (Empty) (Field (Identifier) (Statements))))) (Statements (Type { (Identifier) ->(Identifier) } (Constructor (Empty) (Field (Identifier) (Statements (Identifier) (Identifier)))))) (Statements (Type { (Identifier) ->(Identifier) } (Constructor (Empty) (Statements (Field (Statements (MemberAccess (Identifier) (Identifier)))) (Field (Identifier) (TextElement) (Statements (Identifier)))))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/struct-types.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Statements (Type { (Identifier) ->(Identifier) } (Constructor (Empty) (Statements)))) (Statements (Type { (Identifier) ->(Identifier) } (Constructor (Empty) (Field (Identifier) (Statements))))) (Statements (Type { (Identifier) ->(Identifier) } (Constructor (Empty) (Field (Identifier) (Statements (Identifier) (Identifier)))))) (Statements (Type { (Identifier) ->(Identifier) } (Constructor (Empty) (Statements (Field (Statements (MemberAccess (Identifier) (Identifier)))) (Field (Identifier) (TextElement) (Statements (Identifier)))))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/struct-types.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "s1") (Type (SimpleType (StructType (FieldDeclarationList))))))) (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "s2") (Type (SimpleType (StructType (FieldDeclarationList (FieldDeclaration (TypeIdentifier "Person"))))))))) (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "s3") (Type (SimpleType (StructType (FieldDeclarationList (FieldDeclaration (FieldIdentifier "f") (Token) (FieldIdentifier "g") (TypeIdentifier "int"))))))))) (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "s4") (Type (SimpleType (StructType (FieldDeclarationList (FieldDeclaration (QualifiedType (TypeIdentifier "s1") (PackageIdentifier "p"))) (FieldDeclaration (RawStringLiteral "`json:\"h\"`") (FieldIdentifier "h") (TypeIdentifier "int")))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/struct-types.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "t1") (Type (SimpleType (StructType (FieldDeclarationList))))))) (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "t2") (Type (SimpleType (StructType (FieldDeclarationList (FieldDeclaration (TypeIdentifier "Person"))))))))) (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "t3") (Type (SimpleType (StructType (FieldDeclarationList (FieldDeclaration (FieldIdentifier "f") (Token) (FieldIdentifier "g") (TypeIdentifier "int"))))))))) (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "t4") (Type (SimpleType (StructType (FieldDeclarationList (FieldDeclaration (QualifiedType (TypeIdentifier "s1") (PackageIdentifier "p"))) (FieldDeclaration (RawStringLiteral "`json:\"h\"`") (FieldIdentifier "h") (TypeIdentifier "int")))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/switch-statement.parseA.txt ================================================ ================================================ FILE: semantic/test/fixtures/go/corpus/switch-statements.A.go ================================================ package main func main() { switch { case x < y: f1() case x < z: // comment 1 g() // comment 2 case x == 4: h() } } ================================================ FILE: semantic/test/fixtures/go/corpus/switch-statements.B.go ================================================ package main func main() { switch { case a < b: f1() case c < d: g() case e == 4: f() } } ================================================ FILE: semantic/test/fixtures/go/corpus/switch-statements.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Match (Statements) (Pattern (Statements (LessThan { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Call (Identifier) (Statements) (Empty))) (Pattern (Statements (LessThan { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) {-(Context {-(Comment)-} (Call (Identifier) (Statements) (Empty)))-}) {-(Context {-(Comment)-} (Pattern (Statements (Equal { (Identifier) ->(Identifier) } (Integer)) (Call { (Identifier) ->(Identifier) } (Statements) (Empty))) (Statements)))-}))))) ================================================ FILE: semantic/test/fixtures/go/corpus/switch-statements.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Match (Statements) (Pattern (Statements (LessThan { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Call (Identifier) (Statements) (Empty))) (Pattern (Statements (LessThan { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) {+(Context {+(Comment)+} (Call (Identifier) (Statements) (Empty)))+}) {+(Context {+(Comment)+} (Pattern (Statements (Equal { (Identifier) ->(Identifier) } (Integer)) (Call { (Identifier) ->(Identifier) } (Statements) (Empty))) (Statements)))+}))))) ================================================ FILE: semantic/test/fixtures/go/corpus/switch-statements.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ExpressionSwitchStatement (ExpressionCase (ExpressionList (Expression (BinaryExpression (Token) (Expression (Identifier "x")) (Expression (Identifier "y"))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "f1")) (ArgumentList)))))) (ExpressionCase (ExpressionList (Expression (BinaryExpression (Token) (Expression (Identifier "x")) (Expression (Identifier "z"))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "g")) (ArgumentList)))))) (ExpressionCase (ExpressionList (Expression (BinaryExpression (Token) (Expression (Identifier "x")) (Expression (IntLiteral "4"))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "h")) (ArgumentList))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/switch-statements.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (ExpressionSwitchStatement (ExpressionCase (ExpressionList (Expression (BinaryExpression (Token) (Expression (Identifier "a")) (Expression (Identifier "b"))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "f1")) (ArgumentList)))))) (ExpressionCase (ExpressionList (Expression (BinaryExpression (Token) (Expression (Identifier "c")) (Expression (Identifier "d"))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "g")) (ArgumentList)))))) (ExpressionCase (ExpressionList (Expression (BinaryExpression (Token) (Expression (Identifier "e")) (Expression (IntLiteral "4"))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "f")) (ArgumentList))))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/type-aliases.A.go ================================================ package main func main() { type ( nodeList = []*Node Polar = polar ) } ================================================ FILE: semantic/test/fixtures/go/corpus/type-aliases.B.go ================================================ package main func main() { type ( nodes = []*Node Radian = radian ) } ================================================ FILE: semantic/test/fixtures/go/corpus/type-aliases.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (TypeAlias { (Identifier) ->(Identifier) } (Slice (Pointer (Identifier)))) (TypeAlias { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })))) ================================================ FILE: semantic/test/fixtures/go/corpus/type-aliases.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (TypeAlias { (Identifier) ->(Identifier) } (Slice (Pointer (Identifier)))) (TypeAlias { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })))) ================================================ FILE: semantic/test/fixtures/go/corpus/type-aliases.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (TypeDeclaration (TypeAlias (TypeIdentifier "nodeList") (Type (SimpleType (SliceType (Type (SimpleType (PointerType (Type (SimpleType (TypeIdentifier "Node")))))))))) (TypeAlias (TypeIdentifier "Polar") (Type (SimpleType (TypeIdentifier "polar"))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/type-aliases.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (TypeDeclaration (TypeAlias (TypeIdentifier "nodes") (Type (SimpleType (SliceType (Type (SimpleType (PointerType (Type (SimpleType (TypeIdentifier "Node")))))))))) (TypeAlias (TypeIdentifier "Radian") (Type (SimpleType (TypeIdentifier "radian"))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/type-assertion-expressions.A.go ================================================ package main func main() { x.(z.Person) } ================================================ FILE: semantic/test/fixtures/go/corpus/type-assertion-expressions.B.go ================================================ package main func main() { b.(c.Dog) } ================================================ FILE: semantic/test/fixtures/go/corpus/type-assertion-expressions.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (TypeAssertion { (Identifier) ->(Identifier) } (MemberAccess { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })))) ================================================ FILE: semantic/test/fixtures/go/corpus/type-assertion-expressions.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (TypeAssertion { (Identifier) ->(Identifier) } (MemberAccess { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })))) ================================================ FILE: semantic/test/fixtures/go/corpus/type-assertion-expressions.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (Expression (TypeAssertionExpression (Type (SimpleType (QualifiedType (TypeIdentifier "Person") (PackageIdentifier "z")))) (Expression (Identifier "x"))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/type-assertion-expressions.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (Expression (TypeAssertionExpression (Type (SimpleType (QualifiedType (TypeIdentifier "Dog") (PackageIdentifier "c")))) (Expression (Identifier "b"))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/type-conversion-expressions.A.go ================================================ package main func main() { *Point(p) (*Point)(p) <-chan int(c) (<-chan int)(c) func()(x) (func())(x) (func() int)(x) func() int(x) []a.b(c.d) ([]a.b)(c.d) e.f(g) (e.f)(g) } ================================================ FILE: semantic/test/fixtures/go/corpus/type-conversion-expressions.B.go ================================================ package main func main() { *Point(q) (*Point)(q) <-chan int(d) (<-chan int)(d) func()(f) (func())(f) (func() int)(f) func() int(f) []x.y(z.e) ([]f.g)(h.i) j.k(l) (m.n)(o) } ================================================ FILE: semantic/test/fixtures/go/corpus/type-conversion-expressions.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Pointer (Call (Identifier) { (Identifier) ->(Identifier) } (Empty))) (Call (Pointer (Identifier)) { (Identifier) ->(Identifier) } (Empty)) (TypeConversion (ReceiveChannel (Identifier)) { (Identifier) ->(Identifier) }) (TypeConversion (Parenthesized (ReceiveChannel (Identifier))) { (Identifier) ->(Identifier) }) (TypeConversion (Function (Empty)) { (Identifier) ->(Identifier) }) (TypeConversion (Parenthesized (Function (Empty))) { (Identifier) ->(Identifier) }) (TypeConversion (Parenthesized (Function (Identifier))) { (Identifier) ->(Identifier) }) (TypeConversion (Function (Identifier)) { (Identifier) ->(Identifier) }) (TypeConversion (Slice (MemberAccess { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })) (MemberAccess { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })) (TypeConversion (Parenthesized (Slice (MemberAccess { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }))) (MemberAccess { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })) (Call (MemberAccess { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) { (Identifier) ->(Identifier) } (Empty)) (Call (MemberAccess { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) { (Identifier) ->(Identifier) } (Empty))))) ================================================ FILE: semantic/test/fixtures/go/corpus/type-conversion-expressions.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Pointer (Call (Identifier) { (Identifier) ->(Identifier) } (Empty))) (Call (Pointer (Identifier)) { (Identifier) ->(Identifier) } (Empty)) (TypeConversion (ReceiveChannel (Identifier)) { (Identifier) ->(Identifier) }) (TypeConversion (Parenthesized (ReceiveChannel (Identifier))) { (Identifier) ->(Identifier) }) (TypeConversion (Function (Empty)) { (Identifier) ->(Identifier) }) (TypeConversion (Parenthesized (Function (Empty))) { (Identifier) ->(Identifier) }) (TypeConversion (Parenthesized (Function (Identifier))) { (Identifier) ->(Identifier) }) (TypeConversion (Function (Identifier)) { (Identifier) ->(Identifier) }) (TypeConversion (Slice (MemberAccess { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })) (MemberAccess { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })) (TypeConversion (Parenthesized (Slice (MemberAccess { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }))) (MemberAccess { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })) (Call (MemberAccess { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) { (Identifier) ->(Identifier) } (Empty)) (Call (MemberAccess { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) { (Identifier) ->(Identifier) } (Empty))))) ================================================ FILE: semantic/test/fixtures/go/corpus/type-conversion-expressions.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (Expression (UnaryExpression (Token) (Expression (CallExpression (Expression (Identifier "Point")) (ArgumentList (Expression (Identifier "p"))))))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (ParenthesizedExpression (Expression (UnaryExpression (Token) (Expression (Identifier "Point")))))) (ArgumentList (Expression (Identifier "p"))))))) (Statement (SimpleStatement (Expression (TypeConversionExpression (Type (SimpleType (ChannelType (Type (SimpleType (TypeIdentifier "int")))))) (Expression (Identifier "c")))))) (Statement (SimpleStatement (Expression (TypeConversionExpression (Type (ParenthesizedType (Type (SimpleType (ChannelType (Type (SimpleType (TypeIdentifier "int")))))))) (Expression (Identifier "c")))))) (Statement (SimpleStatement (Expression (TypeConversionExpression (Type (SimpleType (FunctionType (ParameterList)))) (Expression (Identifier "x")))))) (Statement (SimpleStatement (Expression (TypeConversionExpression (Type (ParenthesizedType (Type (SimpleType (FunctionType (ParameterList)))))) (Expression (Identifier "x")))))) (Statement (SimpleStatement (Expression (TypeConversionExpression (Type (ParenthesizedType (Type (SimpleType (FunctionType (SimpleType (TypeIdentifier "int")) (ParameterList)))))) (Expression (Identifier "x")))))) (Statement (SimpleStatement (Expression (TypeConversionExpression (Type (SimpleType (FunctionType (SimpleType (TypeIdentifier "int")) (ParameterList)))) (Expression (Identifier "x")))))) (Statement (SimpleStatement (Expression (TypeConversionExpression (Type (SimpleType (SliceType (Type (SimpleType (QualifiedType (TypeIdentifier "b") (PackageIdentifier "a"))))))) (Expression (SelectorExpression (FieldIdentifier "d") (Expression (Identifier "c")))))))) (Statement (SimpleStatement (Expression (TypeConversionExpression (Type (ParenthesizedType (Type (SimpleType (SliceType (Type (SimpleType (QualifiedType (TypeIdentifier "b") (PackageIdentifier "a"))))))))) (Expression (SelectorExpression (FieldIdentifier "d") (Expression (Identifier "c")))))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (SelectorExpression (FieldIdentifier "f") (Expression (Identifier "e")))) (ArgumentList (Expression (Identifier "g"))))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (ParenthesizedExpression (Expression (SelectorExpression (FieldIdentifier "f") (Expression (Identifier "e")))))) (ArgumentList (Expression (Identifier "g")))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/type-conversion-expressions.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (Expression (UnaryExpression (Token) (Expression (CallExpression (Expression (Identifier "Point")) (ArgumentList (Expression (Identifier "q"))))))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (ParenthesizedExpression (Expression (UnaryExpression (Token) (Expression (Identifier "Point")))))) (ArgumentList (Expression (Identifier "q"))))))) (Statement (SimpleStatement (Expression (TypeConversionExpression (Type (SimpleType (ChannelType (Type (SimpleType (TypeIdentifier "int")))))) (Expression (Identifier "d")))))) (Statement (SimpleStatement (Expression (TypeConversionExpression (Type (ParenthesizedType (Type (SimpleType (ChannelType (Type (SimpleType (TypeIdentifier "int")))))))) (Expression (Identifier "d")))))) (Statement (SimpleStatement (Expression (TypeConversionExpression (Type (SimpleType (FunctionType (ParameterList)))) (Expression (Identifier "f")))))) (Statement (SimpleStatement (Expression (TypeConversionExpression (Type (ParenthesizedType (Type (SimpleType (FunctionType (ParameterList)))))) (Expression (Identifier "f")))))) (Statement (SimpleStatement (Expression (TypeConversionExpression (Type (ParenthesizedType (Type (SimpleType (FunctionType (SimpleType (TypeIdentifier "int")) (ParameterList)))))) (Expression (Identifier "f")))))) (Statement (SimpleStatement (Expression (TypeConversionExpression (Type (SimpleType (FunctionType (SimpleType (TypeIdentifier "int")) (ParameterList)))) (Expression (Identifier "f")))))) (Statement (SimpleStatement (Expression (TypeConversionExpression (Type (SimpleType (SliceType (Type (SimpleType (QualifiedType (TypeIdentifier "y") (PackageIdentifier "x"))))))) (Expression (SelectorExpression (FieldIdentifier "e") (Expression (Identifier "z")))))))) (Statement (SimpleStatement (Expression (TypeConversionExpression (Type (ParenthesizedType (Type (SimpleType (SliceType (Type (SimpleType (QualifiedType (TypeIdentifier "g") (PackageIdentifier "f"))))))))) (Expression (SelectorExpression (FieldIdentifier "i") (Expression (Identifier "h")))))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (SelectorExpression (FieldIdentifier "k") (Expression (Identifier "j")))) (ArgumentList (Expression (Identifier "l"))))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (ParenthesizedExpression (Expression (SelectorExpression (FieldIdentifier "n") (Expression (Identifier "m")))))) (ArgumentList (Expression (Identifier "o")))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/type-declarations.A.go ================================================ package main func main() { type a b type ( a b c d ) type ( // Read(cnt) == (wantStr, wantErr) testRead struct { cnt int wantStr string wantErr error } testFnc interface{} // testRead | testWriteTo | testRemaining ) } ================================================ FILE: semantic/test/fixtures/go/corpus/type-declarations.B.go ================================================ package main func main() { type x y type ( x y e f ) type ( // Read(cnt) == (wantStr, wantErr) testWrite struct { cnt int wantStr string wantErr error } testFac interface{} // testRead | testWriteTo | testRemaining ) } ================================================ FILE: semantic/test/fixtures/go/corpus/type-declarations.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Statements (Type { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })) (Statements (Type { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Type { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })) (Statements (Context (Comment) (Type { (Identifier) ->(Identifier) } (Constructor (Empty) (Statements (Field (Identifier) (Statements (Identifier))) (Field (Identifier) (Statements (Identifier))) (Field (Identifier) (Statements (Identifier))))))) (Type { (Identifier) ->(Identifier) } (Interface (Statements))) (Context (Comment) (Empty)))))) ================================================ FILE: semantic/test/fixtures/go/corpus/type-declarations.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Statements (Type { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })) (Statements (Type { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Type { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })) (Statements (Context (Comment) (Type { (Identifier) ->(Identifier) } (Constructor (Empty) (Statements (Field (Identifier) (Statements (Identifier))) (Field (Identifier) (Statements (Identifier))) (Field (Identifier) (Statements (Identifier))))))) (Type { (Identifier) ->(Identifier) } (Interface (Statements))) (Context (Comment) (Empty)))))) ================================================ FILE: semantic/test/fixtures/go/corpus/type-declarations.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "a") (Type (SimpleType (TypeIdentifier "b")))))) (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "a") (Type (SimpleType (TypeIdentifier "b")))) (TypeSpec (TypeIdentifier "c") (Type (SimpleType (TypeIdentifier "d")))))) (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "testRead") (Type (SimpleType (StructType (FieldDeclarationList (FieldDeclaration (FieldIdentifier "cnt") (TypeIdentifier "int")) (FieldDeclaration (FieldIdentifier "wantStr") (TypeIdentifier "string")) (FieldDeclaration (FieldIdentifier "wantErr") (TypeIdentifier "error"))))))) (TypeSpec (TypeIdentifier "testFnc") (Type (SimpleType (InterfaceType (MethodSpecList)))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/type-declarations.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "x") (Type (SimpleType (TypeIdentifier "y")))))) (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "x") (Type (SimpleType (TypeIdentifier "y")))) (TypeSpec (TypeIdentifier "e") (Type (SimpleType (TypeIdentifier "f")))))) (Statement (TypeDeclaration (TypeSpec (TypeIdentifier "testWrite") (Type (SimpleType (StructType (FieldDeclarationList (FieldDeclaration (FieldIdentifier "cnt") (TypeIdentifier "int")) (FieldDeclaration (FieldIdentifier "wantStr") (TypeIdentifier "string")) (FieldDeclaration (FieldIdentifier "wantErr") (TypeIdentifier "error"))))))) (TypeSpec (TypeIdentifier "testFac") (Type (SimpleType (InterfaceType (MethodSpecList)))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/type-switch-statements.A.go ================================================ package main func main() { switch c := d; f.(type) { case nil, *obj.LSym: // ok, but no node case []Person: a() case *Dog: break } switch v := i.(type) { case int: fmt.Println("twice i is", v*2) case float64: fmt.Println("the reciprocal of i is", 1/v) case string: h := len(v) / 2 fmt.Println("i swapped by halves is", v[h:]+v[:h]) default: } switch _ := r.(type) { // comment } } ================================================ FILE: semantic/test/fixtures/go/corpus/type-switch-statements.B.go ================================================ package main func main() { switch a := b; e.(type) { case nil, *obj.LSym: // ok, but no node case []Person: a() case *Dog: break default: break } switch x := j.(type) { case float64: fmt.Println("the reciprocal of i is", 1/x) case int: fmt.Println("twice i is", x*2) case string: l := len(x) / 2 fmt.Println("i swapped by halves is", x[l:]+x[:l]) default: } switch _ := s.(type) { // comment } } ================================================ FILE: semantic/test/fixtures/go/corpus/type-switch-statements.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (TypeSwitch (Statements (Assignment { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) { (Identifier) ->(Identifier) }) (Statements (Statements (Identifier) (Pointer (MemberAccess (Identifier) (Identifier)))) (Context (Comment) (Statements (Slice (Identifier)) (Call (Identifier) (Statements) (Empty)))) (Statements (Pointer (Identifier)) (Break (Empty))) {+(DefaultPattern {+(Break {+(Empty)+})+})+})) (TypeSwitch (Statements { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Statements (Statements { (Identifier) ->(Identifier) } (Call (MemberAccess (Identifier) (Identifier)) (Statements (TextElement) {+(DividedBy {+(Integer)+} {+(Identifier)+})+} {-(Times {-(Identifier)-} {-(Integer)-})-}) (Empty))) (Statements { (Identifier) ->(Identifier) } (Call (MemberAccess (Identifier) (Identifier)) (Statements (TextElement) {+(Times {+(Identifier)+} {+(Integer)+})+} {-(DividedBy {-(Integer)-} {-(Identifier)-})-}) (Empty))) (Statements (Identifier) (Assignment { (Identifier) ->(Identifier) } (DividedBy (Call (Identifier) { (Identifier) ->(Identifier) } (Empty)) (Integer))) (Call (MemberAccess (Identifier) (Identifier)) (Statements (TextElement) (Plus (Slice { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) } (Empty) (Empty)) (Slice { (Identifier) ->(Identifier) } (Empty) { (Identifier) ->(Identifier) } (Empty)))) (Empty))) (DefaultPattern (Statements)))) (TypeSwitch (Empty) (Statements (Identifier) { (Identifier) ->(Identifier) } (Context { (Comment) ->(Comment) } (Empty))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/type-switch-statements.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (TypeSwitch (Statements (Assignment { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) { (Identifier) ->(Identifier) }) (Statements (Statements (Identifier) (Pointer (MemberAccess (Identifier) (Identifier)))) (Context (Comment) (Statements (Slice (Identifier)) (Call (Identifier) (Statements) (Empty)))) (Statements (Pointer (Identifier)) (Break (Empty))) {-(DefaultPattern {-(Break {-(Empty)-})-})-})) (TypeSwitch (Statements { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Statements (Statements { (Identifier) ->(Identifier) } (Call (MemberAccess (Identifier) (Identifier)) (Statements (TextElement) {+(Times {+(Identifier)+} {+(Integer)+})+} {-(DividedBy {-(Integer)-} {-(Identifier)-})-}) (Empty))) (Statements { (Identifier) ->(Identifier) } (Call (MemberAccess (Identifier) (Identifier)) (Statements (TextElement) {+(DividedBy {+(Integer)+} {+(Identifier)+})+} {-(Times {-(Identifier)-} {-(Integer)-})-}) (Empty))) (Statements (Identifier) (Assignment { (Identifier) ->(Identifier) } (DividedBy (Call (Identifier) { (Identifier) ->(Identifier) } (Empty)) (Integer))) (Call (MemberAccess (Identifier) (Identifier)) (Statements (TextElement) (Plus (Slice { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) } (Empty) (Empty)) (Slice { (Identifier) ->(Identifier) } (Empty) { (Identifier) ->(Identifier) } (Empty)))) (Empty))) (DefaultPattern (Statements)))) (TypeSwitch (Empty) (Statements (Identifier) { (Identifier) ->(Identifier) } (Context { (Comment) ->(Comment) } (Empty))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/type-switch-statements.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (TypeSwitchStatement (Expression (Identifier "f")) (SimpleStatement (ShortVarDeclaration (ExpressionList (Expression (Identifier "c"))) (ExpressionList (Expression (Identifier "d"))))) (TypeCase (Type (SimpleType (TypeIdentifier "nil"))) (Token) (Type (SimpleType (PointerType (Type (SimpleType (QualifiedType (TypeIdentifier "LSym") (PackageIdentifier "obj")))))))) (TypeCase (Type (SimpleType (SliceType (Type (SimpleType (TypeIdentifier "Person")))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "a")) (ArgumentList)))))) (TypeCase (Type (SimpleType (PointerType (Type (SimpleType (TypeIdentifier "Dog")))))) (Statement (BreakStatement))))) (Statement (TypeSwitchStatement (Expression (Identifier "i")) (ExpressionList (Expression (Identifier "v"))) (TypeCase (Type (SimpleType (TypeIdentifier "int"))) (Statement (SimpleStatement (Expression (CallExpression (Expression (SelectorExpression (FieldIdentifier "Println") (Expression (Identifier "fmt")))) (ArgumentList (Expression (InterpretedStringLiteral)) (Expression (BinaryExpression (Token) (Expression (Identifier "v")) (Expression (IntLiteral "2")))))))))) (TypeCase (Type (SimpleType (TypeIdentifier "float64"))) (Statement (SimpleStatement (Expression (CallExpression (Expression (SelectorExpression (FieldIdentifier "Println") (Expression (Identifier "fmt")))) (ArgumentList (Expression (InterpretedStringLiteral)) (Expression (BinaryExpression (Token) (Expression (IntLiteral "1")) (Expression (Identifier "v")))))))))) (TypeCase (Type (SimpleType (TypeIdentifier "string"))) (Statement (SimpleStatement (ShortVarDeclaration (ExpressionList (Expression (Identifier "h"))) (ExpressionList (Expression (BinaryExpression (Token) (Expression (CallExpression (Expression (Identifier "len")) (ArgumentList (Expression (Identifier "v"))))) (Expression (IntLiteral "2")))))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (SelectorExpression (FieldIdentifier "Println") (Expression (Identifier "fmt")))) (ArgumentList (Expression (InterpretedStringLiteral)) (Expression (BinaryExpression (Token) (Expression (SliceExpression (Expression (Identifier "h")) (Expression (Identifier "v")))) (Expression (SliceExpression (Expression (Identifier "h")) (Expression (Identifier "v")))))))))))) (DefaultCase))) (Statement (TypeSwitchStatement (Expression (Identifier "r")) (ExpressionList (Expression (Identifier "_")))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/type-switch-statements.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (TypeSwitchStatement (Expression (Identifier "e")) (SimpleStatement (ShortVarDeclaration (ExpressionList (Expression (Identifier "a"))) (ExpressionList (Expression (Identifier "b"))))) (TypeCase (Type (SimpleType (TypeIdentifier "nil"))) (Token) (Type (SimpleType (PointerType (Type (SimpleType (QualifiedType (TypeIdentifier "LSym") (PackageIdentifier "obj")))))))) (TypeCase (Type (SimpleType (SliceType (Type (SimpleType (TypeIdentifier "Person")))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (Identifier "a")) (ArgumentList)))))) (TypeCase (Type (SimpleType (PointerType (Type (SimpleType (TypeIdentifier "Dog")))))) (Statement (BreakStatement))) (DefaultCase (Statement (BreakStatement))))) (Statement (TypeSwitchStatement (Expression (Identifier "j")) (ExpressionList (Expression (Identifier "x"))) (TypeCase (Type (SimpleType (TypeIdentifier "float64"))) (Statement (SimpleStatement (Expression (CallExpression (Expression (SelectorExpression (FieldIdentifier "Println") (Expression (Identifier "fmt")))) (ArgumentList (Expression (InterpretedStringLiteral)) (Expression (BinaryExpression (Token) (Expression (IntLiteral "1")) (Expression (Identifier "x")))))))))) (TypeCase (Type (SimpleType (TypeIdentifier "int"))) (Statement (SimpleStatement (Expression (CallExpression (Expression (SelectorExpression (FieldIdentifier "Println") (Expression (Identifier "fmt")))) (ArgumentList (Expression (InterpretedStringLiteral)) (Expression (BinaryExpression (Token) (Expression (Identifier "x")) (Expression (IntLiteral "2")))))))))) (TypeCase (Type (SimpleType (TypeIdentifier "string"))) (Statement (SimpleStatement (ShortVarDeclaration (ExpressionList (Expression (Identifier "l"))) (ExpressionList (Expression (BinaryExpression (Token) (Expression (CallExpression (Expression (Identifier "len")) (ArgumentList (Expression (Identifier "x"))))) (Expression (IntLiteral "2")))))))) (Statement (SimpleStatement (Expression (CallExpression (Expression (SelectorExpression (FieldIdentifier "Println") (Expression (Identifier "fmt")))) (ArgumentList (Expression (InterpretedStringLiteral)) (Expression (BinaryExpression (Token) (Expression (SliceExpression (Expression (Identifier "l")) (Expression (Identifier "x")))) (Expression (SliceExpression (Expression (Identifier "l")) (Expression (Identifier "x")))))))))))) (DefaultCase))) (Statement (TypeSwitchStatement (Expression (Identifier "s")) (ExpressionList (Expression (Identifier "_")))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/unary-expressions.A.go ================================================ package main func main() { +a -b !<-c *foo() ^h &bar <-d } ================================================ FILE: semantic/test/fixtures/go/corpus/unary-expressions.B.go ================================================ package main func main() { +b -c !<-d *bar() ^i &foo <-e } ================================================ FILE: semantic/test/fixtures/go/corpus/unary-expressions.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements { (Identifier) ->(Identifier) } {+(Negate {+(Identifier)+})+} {+(Not {+(ReceiveOperator {+(Identifier)+})+})+} {+(Pointer {+(Call {+(Identifier)+} {+(Statements)+} {+(Empty)+})+})+} {+(Complement {+(Identifier)+})+} {+(Reference {+(Identifier)+})+} {+(ReceiveOperator {+(Identifier)+})+} {-(Negate {-(Identifier)-})-} {-(Not {-(ReceiveOperator {-(Identifier)-})-})-} {-(Pointer {-(Call {-(Identifier)-} {-(Statements)-} {-(Empty)-})-})-} {-(Complement {-(Identifier)-})-} {-(Reference {-(Identifier)-})-} {-(ReceiveOperator {-(Identifier)-})-}))) ================================================ FILE: semantic/test/fixtures/go/corpus/unary-expressions.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements { (Identifier) ->(Identifier) } {+(Negate {+(Identifier)+})+} {+(Not {+(ReceiveOperator {+(Identifier)+})+})+} {+(Pointer {+(Call {+(Identifier)+} {+(Statements)+} {+(Empty)+})+})+} {+(Complement {+(Identifier)+})+} {+(Reference {+(Identifier)+})+} {+(ReceiveOperator {+(Identifier)+})+} {-(Negate {-(Identifier)-})-} {-(Not {-(ReceiveOperator {-(Identifier)-})-})-} {-(Pointer {-(Call {-(Identifier)-} {-(Statements)-} {-(Empty)-})-})-} {-(Complement {-(Identifier)-})-} {-(Reference {-(Identifier)-})-} {-(ReceiveOperator {-(Identifier)-})-}))) ================================================ FILE: semantic/test/fixtures/go/corpus/unary-expressions.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (Expression (UnaryExpression (Token) (Expression (Identifier "a")))))) (Statement (SimpleStatement (Expression (UnaryExpression (Token) (Expression (Identifier "b")))))) (Statement (SimpleStatement (Expression (UnaryExpression (Token) (Expression (UnaryExpression (Token) (Expression (Identifier "c")))))))) (Statement (SimpleStatement (Expression (UnaryExpression (Token) (Expression (CallExpression (Expression (Identifier "foo")) (ArgumentList))))))) (Statement (SimpleStatement (Expression (UnaryExpression (Token) (Expression (Identifier "h")))))) (Statement (SimpleStatement (Expression (UnaryExpression (Token) (Expression (Identifier "bar")))))) (Statement (SimpleStatement (Expression (UnaryExpression (Token) (Expression (Identifier "d"))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/unary-expressions.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (SimpleStatement (Expression (UnaryExpression (Token) (Expression (Identifier "b")))))) (Statement (SimpleStatement (Expression (UnaryExpression (Token) (Expression (Identifier "c")))))) (Statement (SimpleStatement (Expression (UnaryExpression (Token) (Expression (UnaryExpression (Token) (Expression (Identifier "d")))))))) (Statement (SimpleStatement (Expression (UnaryExpression (Token) (Expression (CallExpression (Expression (Identifier "bar")) (ArgumentList))))))) (Statement (SimpleStatement (Expression (UnaryExpression (Token) (Expression (Identifier "i")))))) (Statement (SimpleStatement (Expression (UnaryExpression (Token) (Expression (Identifier "foo")))))) (Statement (SimpleStatement (Expression (UnaryExpression (Token) (Expression (Identifier "e"))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/var-declarations-with-no-expressions.A.go ================================================ package main func main() { var zero int var one, two uint64 } ================================================ FILE: semantic/test/fixtures/go/corpus/var-declarations-with-no-expressions.B.go ================================================ package main func main() { var a int var b, c uint64 } ================================================ FILE: semantic/test/fixtures/go/corpus/var-declarations-with-no-expressions.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Assignment (Annotation (Statements { (Identifier) ->(Identifier) }) (Identifier)) (Statements)) (Assignment (Annotation (Statements { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Identifier)) (Statements))))) ================================================ FILE: semantic/test/fixtures/go/corpus/var-declarations-with-no-expressions.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Assignment (Annotation (Statements { (Identifier) ->(Identifier) }) (Identifier)) (Statements)) (Assignment (Annotation (Statements { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Identifier)) (Statements))))) ================================================ FILE: semantic/test/fixtures/go/corpus/var-declarations-with-no-expressions.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (VarDeclaration (VarSpec (Identifier "zero") (Type (SimpleType (TypeIdentifier "int")))))) (Statement (VarDeclaration (VarSpec (Identifier "one") (Token) (Identifier "two") (Type (SimpleType (TypeIdentifier "uint64"))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/var-declarations-with-no-expressions.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (VarDeclaration (VarSpec (Identifier "a") (Type (SimpleType (TypeIdentifier "int")))))) (Statement (VarDeclaration (VarSpec (Identifier "b") (Token) (Identifier "c") (Type (SimpleType (TypeIdentifier "uint64"))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/var-declarations-with-types.A.go ================================================ package main func main() { var zero int = 0 var one, two uint64 = 1, 2 } ================================================ FILE: semantic/test/fixtures/go/corpus/var-declarations-with-types.B.go ================================================ package main func main() { var a int = 0 var b, c uint64 = 1, 2 } ================================================ FILE: semantic/test/fixtures/go/corpus/var-declarations-with-types.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Assignment (Annotation (Statements { (Identifier) ->(Identifier) }) (Identifier)) (Integer)) (Assignment (Annotation (Statements { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Identifier)) (Statements (Integer) (Integer)))))) ================================================ FILE: semantic/test/fixtures/go/corpus/var-declarations-with-types.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements (Assignment (Annotation (Statements { (Identifier) ->(Identifier) }) (Identifier)) (Integer)) (Assignment (Annotation (Statements { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Identifier)) (Statements (Integer) (Integer)))))) ================================================ FILE: semantic/test/fixtures/go/corpus/var-declarations-with-types.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (VarDeclaration (VarSpec (ExpressionList (Expression (IntLiteral "0"))) (Identifier "zero") (Type (SimpleType (TypeIdentifier "int")))))) (Statement (VarDeclaration (VarSpec (ExpressionList (Expression (IntLiteral "1")) (Expression (IntLiteral "2"))) (Identifier "one") (Token) (Identifier "two") (Type (SimpleType (TypeIdentifier "uint64"))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/var-declarations-with-types.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (VarDeclaration (VarSpec (ExpressionList (Expression (IntLiteral "0"))) (Identifier "a") (Type (SimpleType (TypeIdentifier "int")))))) (Statement (VarDeclaration (VarSpec (ExpressionList (Expression (IntLiteral "1")) (Expression (IntLiteral "2"))) (Identifier "b") (Token) (Identifier "c") (Type (SimpleType (TypeIdentifier "uint64"))))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/var-declarations-without-types.A.go ================================================ package main func main() { var zero = 0 } ================================================ FILE: semantic/test/fixtures/go/corpus/var-declarations-without-types.B.go ================================================ package main func main() { var one, two = 1, 2 } ================================================ FILE: semantic/test/fixtures/go/corpus/var-declarations-without-types.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Assignment { (Identifier) ->(Statements {+(Identifier)+} {+(Identifier)+}) } { (Integer) ->(Statements {+(Integer)+} {+(Integer)+}) }))) ================================================ FILE: semantic/test/fixtures/go/corpus/var-declarations-without-types.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Assignment { (Statements {-(Identifier)-} {-(Identifier)-}) ->(Identifier) } { (Statements {-(Integer)-} {-(Integer)-}) ->(Integer) }))) ================================================ FILE: semantic/test/fixtures/go/corpus/var-declarations-without-types.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (VarDeclaration (VarSpec (ExpressionList (Expression (IntLiteral "0"))) (Identifier "zero"))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/var-declarations-without-types.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block (Statement (VarDeclaration (VarSpec (ExpressionList (Expression (IntLiteral "1")) (Expression (IntLiteral "2"))) (Identifier "one") (Token) (Identifier "two"))))) (Identifier "main") (ParameterList))) ================================================ FILE: semantic/test/fixtures/go/corpus/variadic-function-declarations.A.go ================================================ package main func main() { } func f1(a ...*int) {} func f2(...int) {} func f3(a, ...bool) {} ================================================ FILE: semantic/test/fixtures/go/corpus/variadic-function-declarations.B.go ================================================ package main func main() { } func g1(a ...*int) {} func g2(...int) {} func g3(a, ...bool) {} ================================================ FILE: semantic/test/fixtures/go/corpus/variadic-function-declarations.diffA-B.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements)) (Function { (Identifier) ->(Identifier) } (Variadic (Pointer (Identifier)) (Identifier)) (Statements)) (Function { (Identifier) ->(Identifier) } (Variadic (Identifier) (Empty)) (Statements)) (Function { (Identifier) ->(Identifier) } (Statements (Identifier)) (Variadic (Identifier) (Empty)) (Statements))) ================================================ FILE: semantic/test/fixtures/go/corpus/variadic-function-declarations.diffB-A.txt ================================================ (Statements (Package (Identifier)) (Function (Identifier) (Statements)) (Function { (Identifier) ->(Identifier) } (Variadic (Pointer (Identifier)) (Identifier)) (Statements)) (Function { (Identifier) ->(Identifier) } (Variadic (Identifier) (Empty)) (Statements)) (Function { (Identifier) ->(Identifier) } (Statements (Identifier)) (Variadic (Identifier) (Empty)) (Statements))) ================================================ FILE: semantic/test/fixtures/go/corpus/variadic-function-declarations.parseA.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block) (Identifier "main") (ParameterList)) (FunctionDeclaration (Block) (Identifier "f1") (ParameterList (VariadicParameterDeclaration (Identifier "a") (Type (SimpleType (PointerType (Type (SimpleType (TypeIdentifier "int"))))))))) (FunctionDeclaration (Block) (Identifier "f2") (ParameterList (VariadicParameterDeclaration (Type (SimpleType (TypeIdentifier "int")))))) (FunctionDeclaration (Block) (Identifier "f3") (ParameterList (ParameterDeclaration (Type (SimpleType (TypeIdentifier "a")))) (VariadicParameterDeclaration (Type (SimpleType (TypeIdentifier "bool"))))))) ================================================ FILE: semantic/test/fixtures/go/corpus/variadic-function-declarations.parseB.txt ================================================ (SourceFile (PackageClause (PackageIdentifier "main")) (FunctionDeclaration (Block) (Identifier "main") (ParameterList)) (FunctionDeclaration (Block) (Identifier "g1") (ParameterList (VariadicParameterDeclaration (Identifier "a") (Type (SimpleType (PointerType (Type (SimpleType (TypeIdentifier "int"))))))))) (FunctionDeclaration (Block) (Identifier "g2") (ParameterList (VariadicParameterDeclaration (Type (SimpleType (TypeIdentifier "int")))))) (FunctionDeclaration (Block) (Identifier "g3") (ParameterList (ParameterDeclaration (Type (SimpleType (TypeIdentifier "a")))) (VariadicParameterDeclaration (Type (SimpleType (TypeIdentifier "bool"))))))) ================================================ FILE: semantic/test/fixtures/go/import-graph/main.go ================================================ package app import _ "lib/Foo" import . "lib/Bar" import m "lib/Math" import "lib/Math" import ( "net/http" ) func foo() {} func main() { foo() m.Sin() Math.Sin() } ================================================ FILE: semantic/test/fixtures/go/import-graph/main.json ================================================ { "modules": { "app": { "imports": [ { "span": { "start": [ 3, 8 ], "end": [ 3, 19 ] }, "path": "lib/Foo", "symbols": [], "alias": "" }, { "span": { "start": [ 4, 8 ], "end": [ 4, 19 ] }, "path": "lib/Bar", "symbols": [], "alias": "" }, { "span": { "start": [ 5, 8 ], "end": [ 5, 20 ] }, "path": "lib/Math", "symbols": [], "alias": "m" }, { "span": { "start": [ 6, 8 ], "end": [ 6, 18 ] }, "path": "lib/Math", "symbols": [], "alias": "Math" }, { "span": { "start": [ 9, 2 ], "end": [ 9, 12 ] }, "path": "net/http", "symbols": [], "alias": "http" } ], "name": "app", "language": "Go", "declarations": [ { "span": { "start": [ 12, 1 ], "end": [ 12, 14 ] }, "kind": "Function", "name": "foo", "module": "app" }, { "span": { "start": [ 14, 1 ], "end": [ 19, 2 ] }, "kind": "Function", "name": "main", "module": "app" } ], "paths": [ "test/fixtures/go/import-graph/main.go" ], "calls": [ { "span": { "start": [ 15, 2 ], "end": [ 15, 7 ] }, "symbol": "foo", "targets": [] }, { "span": { "start": [ 17, 2 ], "end": [ 17, 9 ] }, "symbol": "Sin", "targets": [ "m" ] }, { "span": { "start": [ 18, 2 ], "end": [ 18, 12 ] }, "symbol": "Sin", "targets": [ "Math" ] } ] } } } ================================================ FILE: semantic/test/fixtures/go/matching/for.go ================================================ package main func merle() { for ii := 0; ii < 10; ii+=1 { for jj := 0; jj < 10; jj+=1 { print(ii + jj) } } } ================================================ FILE: semantic/test/fixtures/go/matching/integers.go ================================================ package main func taako() { return 1 + 2 + 3 } ================================================ FILE: semantic/test/fixtures/go/tags/method.go ================================================ import "net/http" func (c *apiClient) CheckAuth(req *http.Request, user, repo string) (*authenticatedActor, error) {} ================================================ FILE: semantic/test/fixtures/go/tags/simple_functions.go ================================================ package big import "testing" // TestFromBits ... func TestFromBits(t *testing.T) { Hi() } func Hi() { } ================================================ FILE: semantic/test/fixtures/go/toc/method-with-receiver.A.go ================================================ package lock ================================================ FILE: semantic/test/fixtures/go/toc/method-with-receiver.B.go ================================================ package lock func (c *apiClient) CheckAuth(req *http.Request, user, repo string) (*authenticatedActor, error) { } ================================================ FILE: semantic/test/fixtures/haskell/corpus/algebraic-datatype-declarations.A.hs ================================================ data N data N a = N a data N a = N !a data N a b = N !a b data B = A | A0 | A9 | Aa | A_ | Az' data N = N { a :: Int } data N = N { a, b :: Int } data N = N { a :: !Int, b :: Int } data N = N { a, b :: {-# UNPACK #-} !Int, c :: String } data N = N { a :: Int } | O { b :: String } data N = N { b :: Int } | O { c :: String } data N = N deriving Show data N = N deriving (Eq, Ord, Enum, Bounded, Show, Read) data Show a => N a = N a data (Eq a, Show a, Eq b) => N a b = N a b data (Eq (f a), Functor f) => N f a = N f a data Foo bar = HasCallStack => Foo bar data Baz foo = Show foo => Baz foo data Foo = Foo !Double# data SomeNumber = forall a . Show a => SomeNumber (Number a) ================================================ FILE: semantic/test/fixtures/haskell/corpus/algebraic-datatype-declarations.B.hs ================================================ data O data O a = O a data O a = O !a data O a b = O !a b data A = B | B0 | B9 | Ba | B_ | Bz' data O = O { a :: Int } data O = O { a, b :: Int } data O = O { a :: !Int, b :: Int } data O = O { a, b :: {-# UNPACK #-} !Int, c :: String } data N = N { b :: Int } | O { c :: String } data N = N { b :: Text } | O { c :: Bool } data N = N deriving Show data N = N deriving (Functor, Ord, Enum, Bounded, Show, Read) data Monad a => N a = N a data (Ord a, Show a, Eq b) => N a b = N a b data (Eq (f a), Applicative f) => N f a = N f a data Foo bar = HasCallStack => Wiz bar data Baz a = Show a => Baz a data Bar = Bar !Double# data SomeNumber = forall b . Show b => SomeNumber (Number b) ================================================ FILE: semantic/test/fixtures/haskell/corpus/algebraic-datatype-declarations.diffA-B.txt ================================================ (Module (Empty) (Statements (Datatype (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters) (Empty)) (Empty)) (Datatype (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters (TypeVariableIdentifier)) (Empty)) (Constructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (TypeParameters (TypeVariableIdentifier))) (Empty)) (Datatype (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters (TypeVariableIdentifier)) (Empty)) (Constructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (TypeParameters (StrictTypeVariable (TypeVariableIdentifier)))) (Empty)) (Datatype (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (Constructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (TypeParameters (StrictTypeVariable (TypeVariableIdentifier)) (TypeVariableIdentifier))) (Empty)) (Datatype (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters) (Empty)) {+(Constructor {+(ConstructorIdentifier)+} {+(TypeParameters)+})+} {+(Constructor {+(ConstructorIdentifier)+} {+(TypeParameters)+})+} {+(Constructor {+(ConstructorIdentifier)+} {+(TypeParameters)+})+} {+(Constructor {+(ConstructorIdentifier)+} {+(TypeParameters)+})+} {+(Constructor {+(ConstructorIdentifier)+} {+(TypeParameters)+})+} {+(Constructor {+(ConstructorIdentifier)+} {+(TypeParameters)+})+} {-(Constructor {-(ConstructorIdentifier)-} {-(TypeParameters)-})-} {-(Constructor {-(ConstructorIdentifier)-} {-(TypeParameters)-})-} {-(Constructor {-(ConstructorIdentifier)-} {-(TypeParameters)-})-} {-(Constructor {-(ConstructorIdentifier)-} {-(TypeParameters)-})-} {-(Constructor {-(ConstructorIdentifier)-} {-(TypeParameters)-})-} {-(Constructor {-(ConstructorIdentifier)-} {-(TypeParameters)-})-} (Empty)) (Datatype (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters) (Empty)) (RecordDataConstructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (Statements (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (Empty)) (Datatype (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters) (Empty)) (RecordDataConstructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (Statements (Field (Statements (VariableIdentifier) (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (Empty)) (Datatype (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters) (Empty)) (RecordDataConstructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (Statements (Field (Statements (VariableIdentifier)) (Type (StrictType (TypeConstructorIdentifier) (TypeParameters)) (TypeParameters) (Empty))) (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (Empty)) (Datatype (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters) (Empty)) (RecordDataConstructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (Statements (Field (Statements (VariableIdentifier) (VariableIdentifier)) (Type (Context (Pragma) (StrictType (TypeConstructorIdentifier) (TypeParameters))) (TypeParameters) (Empty))) (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (Empty)) {-(Datatype {-(Empty)-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(RecordDataConstructor {-(ConstructorIdentifier)-} {-(Statements {-(Field {-(Statements {-(VariableIdentifier)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-})-} {-(RecordDataConstructor {-(ConstructorIdentifier)-} {-(Statements {-(Field {-(Statements {-(VariableIdentifier)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-})-} {-(Empty)-})-} (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (RecordDataConstructor (ConstructorIdentifier) (Statements (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (RecordDataConstructor (ConstructorIdentifier) (Statements (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (Empty)) {+(Datatype {+(Empty)+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(RecordDataConstructor {+(ConstructorIdentifier)+} {+(Statements {+(Field {+(Statements {+(VariableIdentifier)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+})+} {+(RecordDataConstructor {+(ConstructorIdentifier)+} {+(Statements {+(Field {+(Statements {+(VariableIdentifier)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+})+} {+(Empty)+})+} (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters)) (Deriving (TypeClassIdentifier))) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters)) (Deriving { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier))) (Datatype (Context' (Class { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier))) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters (TypeVariableIdentifier))) (Empty)) (Datatype (Context' (Statements (Class { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier))) (Empty)) (Datatype (Context' (Statements (Class (TypeClassIdentifier) (Statements (TypeVariableIdentifier) (TypeVariableIdentifier))) (Class { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier)))) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (Constructor (Context' (TypeConstructorIdentifier)) { (ConstructorIdentifier) ->(ConstructorIdentifier) } (TypeParameters (TypeVariableIdentifier))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters { (TypeVariableIdentifier) ->(TypeVariableIdentifier) }) (Empty)) (Constructor (Context' (Class (TypeClassIdentifier) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) })) (ConstructorIdentifier) (TypeParameters { (TypeVariableIdentifier) ->(TypeVariableIdentifier) })) (Empty)) (Datatype (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters) (Empty)) (Constructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (TypeParameters (StrictTypeVariable (PrimitiveConstructorIdentifier)))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Constructor (ScopedTypeVariables { (TypeVariableIdentifier) ->(TypeVariableIdentifier) }) (Context' (Class (TypeClassIdentifier) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) })) (ConstructorIdentifier) (TypeParameters (Statements (TypeConstructorIdentifier) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) }))) (Empty)))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/algebraic-datatype-declarations.diffB-A.txt ================================================ (Module (Empty) (Statements (Datatype (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters) (Empty)) (Empty)) (Datatype (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters (TypeVariableIdentifier)) (Empty)) (Constructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (TypeParameters (TypeVariableIdentifier))) (Empty)) (Datatype (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters (TypeVariableIdentifier)) (Empty)) (Constructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (TypeParameters (StrictTypeVariable (TypeVariableIdentifier)))) (Empty)) (Datatype (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (Constructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (TypeParameters (StrictTypeVariable (TypeVariableIdentifier)) (TypeVariableIdentifier))) (Empty)) (Datatype (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters) (Empty)) {+(Constructor {+(ConstructorIdentifier)+} {+(TypeParameters)+})+} {+(Constructor {+(ConstructorIdentifier)+} {+(TypeParameters)+})+} {+(Constructor {+(ConstructorIdentifier)+} {+(TypeParameters)+})+} {+(Constructor {+(ConstructorIdentifier)+} {+(TypeParameters)+})+} {+(Constructor {+(ConstructorIdentifier)+} {+(TypeParameters)+})+} (Constructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (TypeParameters)) {-(Constructor {-(ConstructorIdentifier)-} {-(TypeParameters)-})-} {-(Constructor {-(ConstructorIdentifier)-} {-(TypeParameters)-})-} {-(Constructor {-(ConstructorIdentifier)-} {-(TypeParameters)-})-} {-(Constructor {-(ConstructorIdentifier)-} {-(TypeParameters)-})-} {-(Constructor {-(ConstructorIdentifier)-} {-(TypeParameters)-})-} (Empty)) (Datatype (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters) (Empty)) (RecordDataConstructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (Statements (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (Empty)) (Datatype (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters) (Empty)) (RecordDataConstructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (Statements (Field (Statements (VariableIdentifier) (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (Empty)) (Datatype (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters) (Empty)) (RecordDataConstructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (Statements (Field (Statements (VariableIdentifier)) (Type (StrictType (TypeConstructorIdentifier) (TypeParameters)) (TypeParameters) (Empty))) (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (Empty)) (Datatype (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters) (Empty)) (RecordDataConstructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (Statements (Field (Statements (VariableIdentifier) (VariableIdentifier)) (Type (Context (Pragma) (StrictType (TypeConstructorIdentifier) (TypeParameters))) (TypeParameters) (Empty))) (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (Empty)) {+(Datatype {+(Empty)+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(RecordDataConstructor {+(ConstructorIdentifier)+} {+(Statements {+(Field {+(Statements {+(VariableIdentifier)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+})+} {+(RecordDataConstructor {+(ConstructorIdentifier)+} {+(Statements {+(Field {+(Statements {+(VariableIdentifier)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+})+} {+(Empty)+})+} (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (RecordDataConstructor (ConstructorIdentifier) (Statements (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (RecordDataConstructor (ConstructorIdentifier) (Statements (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (Empty)) {-(Datatype {-(Empty)-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(RecordDataConstructor {-(ConstructorIdentifier)-} {-(Statements {-(Field {-(Statements {-(VariableIdentifier)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-})-} {-(RecordDataConstructor {-(ConstructorIdentifier)-} {-(Statements {-(Field {-(Statements {-(VariableIdentifier)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-})-} {-(Empty)-})-} (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters)) (Deriving (TypeClassIdentifier))) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters)) (Deriving { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier))) (Datatype (Context' (Class { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier))) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters (TypeVariableIdentifier))) (Empty)) (Datatype (Context' (Statements (Class { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier))) (Empty)) (Datatype (Context' (Statements (Class (TypeClassIdentifier) (Statements (TypeVariableIdentifier) (TypeVariableIdentifier))) (Class { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier)))) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (Constructor (Context' (TypeConstructorIdentifier)) { (ConstructorIdentifier) ->(ConstructorIdentifier) } (TypeParameters (TypeVariableIdentifier))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters { (TypeVariableIdentifier) ->(TypeVariableIdentifier) }) (Empty)) (Constructor (Context' (Class (TypeClassIdentifier) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) })) (ConstructorIdentifier) (TypeParameters { (TypeVariableIdentifier) ->(TypeVariableIdentifier) })) (Empty)) (Datatype (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters) (Empty)) (Constructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (TypeParameters (StrictTypeVariable (PrimitiveConstructorIdentifier)))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Constructor (ScopedTypeVariables { (TypeVariableIdentifier) ->(TypeVariableIdentifier) }) (Context' (Class (TypeClassIdentifier) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) })) (ConstructorIdentifier) (TypeParameters (Statements (TypeConstructorIdentifier) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) }))) (Empty)))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/algebraic-datatype-declarations.parseA.txt ================================================ (Module (Empty) (Statements (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters (TypeVariableIdentifier))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters (StrictTypeVariable (TypeVariableIdentifier)))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters (StrictTypeVariable (TypeVariableIdentifier)) (TypeVariableIdentifier))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters)) (Constructor (ConstructorIdentifier) (TypeParameters)) (Constructor (ConstructorIdentifier) (TypeParameters)) (Constructor (ConstructorIdentifier) (TypeParameters)) (Constructor (ConstructorIdentifier) (TypeParameters)) (Constructor (ConstructorIdentifier) (TypeParameters)) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (RecordDataConstructor (ConstructorIdentifier) (Statements (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (RecordDataConstructor (ConstructorIdentifier) (Statements (Field (Statements (VariableIdentifier) (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (RecordDataConstructor (ConstructorIdentifier) (Statements (Field (Statements (VariableIdentifier)) (Type (StrictType (TypeConstructorIdentifier) (TypeParameters)) (TypeParameters) (Empty))) (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (RecordDataConstructor (ConstructorIdentifier) (Statements (Field (Statements (VariableIdentifier) (VariableIdentifier)) (Type (Context (Pragma) (StrictType (TypeConstructorIdentifier) (TypeParameters))) (TypeParameters) (Empty))) (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (RecordDataConstructor (ConstructorIdentifier) (Statements (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (RecordDataConstructor (ConstructorIdentifier) (Statements (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (RecordDataConstructor (ConstructorIdentifier) (Statements (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (RecordDataConstructor (ConstructorIdentifier) (Statements (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters)) (Deriving (TypeClassIdentifier))) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters)) (Deriving (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier))) (Datatype (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters (TypeVariableIdentifier))) (Empty)) (Datatype (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier))) (Empty)) (Datatype (Context' (Statements (Class (TypeClassIdentifier) (Statements (TypeVariableIdentifier) (TypeVariableIdentifier))) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (Constructor (Context' (TypeConstructorIdentifier)) (ConstructorIdentifier) (TypeParameters (TypeVariableIdentifier))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (Constructor (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (ConstructorIdentifier) (TypeParameters (TypeVariableIdentifier))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters (StrictTypeVariable (PrimitiveConstructorIdentifier)))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Constructor (ScopedTypeVariables (TypeVariableIdentifier)) (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (ConstructorIdentifier) (TypeParameters (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier)))) (Empty)))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/algebraic-datatype-declarations.parseB.txt ================================================ (Module (Empty) (Statements (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters (TypeVariableIdentifier))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters (StrictTypeVariable (TypeVariableIdentifier)))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters (StrictTypeVariable (TypeVariableIdentifier)) (TypeVariableIdentifier))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters)) (Constructor (ConstructorIdentifier) (TypeParameters)) (Constructor (ConstructorIdentifier) (TypeParameters)) (Constructor (ConstructorIdentifier) (TypeParameters)) (Constructor (ConstructorIdentifier) (TypeParameters)) (Constructor (ConstructorIdentifier) (TypeParameters)) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (RecordDataConstructor (ConstructorIdentifier) (Statements (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (RecordDataConstructor (ConstructorIdentifier) (Statements (Field (Statements (VariableIdentifier) (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (RecordDataConstructor (ConstructorIdentifier) (Statements (Field (Statements (VariableIdentifier)) (Type (StrictType (TypeConstructorIdentifier) (TypeParameters)) (TypeParameters) (Empty))) (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (RecordDataConstructor (ConstructorIdentifier) (Statements (Field (Statements (VariableIdentifier) (VariableIdentifier)) (Type (Context (Pragma) (StrictType (TypeConstructorIdentifier) (TypeParameters))) (TypeParameters) (Empty))) (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (RecordDataConstructor (ConstructorIdentifier) (Statements (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (RecordDataConstructor (ConstructorIdentifier) (Statements (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (RecordDataConstructor (ConstructorIdentifier) (Statements (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (RecordDataConstructor (ConstructorIdentifier) (Statements (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters)) (Deriving (TypeClassIdentifier))) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters)) (Deriving (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier))) (Datatype (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters (TypeVariableIdentifier))) (Empty)) (Datatype (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier))) (Empty)) (Datatype (Context' (Statements (Class (TypeClassIdentifier) (Statements (TypeVariableIdentifier) (TypeVariableIdentifier))) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (Constructor (Context' (TypeConstructorIdentifier)) (ConstructorIdentifier) (TypeParameters (TypeVariableIdentifier))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (Constructor (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (ConstructorIdentifier) (TypeParameters (TypeVariableIdentifier))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Constructor (ConstructorIdentifier) (TypeParameters (StrictTypeVariable (PrimitiveConstructorIdentifier)))) (Empty)) (Datatype (Empty) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Constructor (ScopedTypeVariables (TypeVariableIdentifier)) (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (ConstructorIdentifier) (TypeParameters (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier)))) (Empty)))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/blank.A.hs ================================================ ================================================ FILE: semantic/test/fixtures/haskell/corpus/blank.parseA.txt ================================================ (Module (Empty) (Statements)) ================================================ FILE: semantic/test/fixtures/haskell/corpus/cpp-directives.A.hs ================================================ #ifndef mingw32_HOST_OS import System.Posix.Signals #endif ================================================ FILE: semantic/test/fixtures/haskell/corpus/cpp-directives.B.hs ================================================ #ifndef mingw64_HOST_OS import System.Util.Posix.Signals #endif ================================================ FILE: semantic/test/fixtures/haskell/corpus/cpp-directives.diffA-B.txt ================================================ (Module (Empty) (Statements { (CPPDirective) ->(CPPDirective) } (ImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) {+(ModuleIdentifier)+} (ModuleIdentifier) (ModuleIdentifier))) (CPPDirective))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/cpp-directives.diffB-A.txt ================================================ (Module (Empty) (Statements { (CPPDirective) ->(CPPDirective) } (ImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) {-(ModuleIdentifier)-} (ModuleIdentifier) (ModuleIdentifier))) (CPPDirective))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/cpp-directives.parseA.txt ================================================ (Module (Empty) (Statements (CPPDirective) (ImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier) (ModuleIdentifier))) (CPPDirective))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/cpp-directives.parseB.txt ================================================ (Module (Empty) (Statements (CPPDirective) (ImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier) (ModuleIdentifier) (ModuleIdentifier))) (CPPDirective))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/default-declaration.A.hs ================================================ module A where default () default (Integer, Double) ================================================ FILE: semantic/test/fixtures/haskell/corpus/default-declaration.B.hs ================================================ module A where default (Double, Integer) ================================================ FILE: semantic/test/fixtures/haskell/corpus/default-declaration.diffA-B.txt ================================================ (Module (ModuleIdentifier) (Statements (DefaultDeclaration {+(TypeConstructorIdentifier)+} {+(TypeConstructorIdentifier)+}) {-(DefaultDeclaration {-(TypeConstructorIdentifier)-} {-(TypeConstructorIdentifier)-})-})) ================================================ FILE: semantic/test/fixtures/haskell/corpus/default-declaration.diffB-A.txt ================================================ (Module (ModuleIdentifier) (Statements (DefaultDeclaration {-(TypeConstructorIdentifier)-} {-(TypeConstructorIdentifier)-}) {+(DefaultDeclaration {+(TypeConstructorIdentifier)+} {+(TypeConstructorIdentifier)+})+})) ================================================ FILE: semantic/test/fixtures/haskell/corpus/default-declaration.parseA.txt ================================================ (Module (ModuleIdentifier) (Statements (DefaultDeclaration) (DefaultDeclaration (TypeConstructorIdentifier) (TypeConstructorIdentifier)))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/default-declaration.parseB.txt ================================================ (Module (ModuleIdentifier) (Statements (DefaultDeclaration (TypeConstructorIdentifier) (TypeConstructorIdentifier)))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/expressions.A.hs ================================================ f = a b f = a b c f = a b c d f = Just b f = Right b f = Example a c d f = () a = [1..] a = [1,2..] a = [1..2] a = [1,2..10] a = [x | x <- xs] a = [(x, y) | x <- xs, y <- ys] a = [ x | xs <- [ [(1,2),(3,4)], [(5,4),(3,2)] ], (3,x) <- xs ] a = [(i,j) | i <- [1,2], j <- [1..4] ] a = [ [ (i,j) | i <- [1,2] ] | j <- [1..] ] f = take 5 [ [ (i,j) | i <- [1,2] ] | j <- [1..] ] a = (: a) a = (:< a) a = (a :) a = (a :|) g = h `i` j a = Data.Just parseJSON (JSON.Object r) = IncPK <$> r .: "id" <*> r .: "nullable_string" <*> r .: "non_nullable_string" <*> r .: "inserted_at" f = do a <- b =<< c b <- e >>= g f = \ x -> x f = \ (Just a) -> a f = \ x -> x : a : xs f = \ g a b -> g <$> a <*> b f = (-) f = 1 - 1 f = (-1) f = (-a) f = -(1) foo = catMaybes $ fmap (\p -> (p,) . Just <$> bar p) waz ================================================ FILE: semantic/test/fixtures/haskell/corpus/expressions.B.hs ================================================ g = a b g = a b c g = a b c d g = Just b g = Right b g = Example a c d g = () a = [2..] a = [2,3..] a = [2..9] a = [2,3..18] b = [x | x <- xs] b = [(x, y) | x <- xs, y <- ys] b = [ x | xs <- [ [(10,20),(30,40)], [(50,40),(30,20)] ], (30,x) <- xs ] b = [(i,j) | i <- [1,2,3,4], j <- [1..10] ] b = [ [ (i,j) | i <- [2,4] ] | j <- [5..] ] b = take 7 [ [ (i,j) | i <- [1,2] ] | j <- [1..] ] b = (: a) b = (:< a) b = (b :) b = (b :|) b = h `i` j b = Data.Just parseJSON (JSON.Object s) = IncPK <$> s .: "id" <*> s .: "nullable_string" <*> s .: "non_nullable_string" <*> s .: "inserted_at" g = do b <- d =<< e c <- f >>= h g = \ x -> x g = \ (Just a) -> a g = \ x -> x : a : xs g = \ g a b -> g <$> a <*> b g = (-) g = 1 - 1 g = (-1) g = (-a) g = -(1) bar = catMaybes $ fmap (\q -> (q,) . Just <$> baz q) waz ================================================ FILE: semantic/test/fixtures/haskell/corpus/expressions.diffA-B.txt ================================================ (Module (Empty) (Statements (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (App (VariableIdentifier) (Empty) (VariableIdentifier)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (App (App (VariableIdentifier) (Empty) (VariableIdentifier)) (Empty) (VariableIdentifier)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (App (App (App (VariableIdentifier) (Empty) (VariableIdentifier)) (Empty) (VariableIdentifier)) (Empty) (VariableIdentifier)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (App (ConstructorIdentifier) (Empty) (VariableIdentifier)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (App (ConstructorIdentifier) (Empty) (VariableIdentifier)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (App (App (App (ConstructorIdentifier) (Empty) (VariableIdentifier)) (Empty) (VariableIdentifier)) (Empty) (VariableIdentifier)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (UnitConstructor))) (Function (VariableIdentifier) (Statements (ArithmeticSequence { (Integer) ->(Integer) }))) (Function (VariableIdentifier) (Statements (ArithmeticSequence { (Integer) ->(Integer) } { (Integer) ->(Integer) }))) (Function (VariableIdentifier) (Statements (ArithmeticSequence { (Integer) ->(Integer) } { (Integer) ->(Integer) }))) (Function (VariableIdentifier) (Statements (ArithmeticSequence { (Integer) ->(Integer) } { (Integer) ->(Integer) } { (Integer) ->(Integer) }))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (ListComprehension (VariableIdentifier) (Generator (VariableIdentifier) (VariableIdentifier))))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (ListComprehension (Tuple (VariableIdentifier) (VariableIdentifier)) (Generator (VariableIdentifier) (VariableIdentifier)) (Generator (VariableIdentifier) (VariableIdentifier))))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (ListComprehension (VariableIdentifier) (Generator (VariableIdentifier) (Array (Array (Tuple { (Integer) ->(Integer) } { (Integer) ->(Integer) }) (Tuple { (Integer) ->(Integer) } { (Integer) ->(Integer) })) (Array (Tuple { (Integer) ->(Integer) } { (Integer) ->(Integer) }) (Tuple { (Integer) ->(Integer) } { (Integer) ->(Integer) })))) (Generator (TuplePattern { (Integer) ->(Integer) } (VariableIdentifier)) (VariableIdentifier))))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (ListComprehension (Tuple (VariableIdentifier) (VariableIdentifier)) (Generator (VariableIdentifier) (Array (Integer) (Integer) {+(Integer)+} {+(Integer)+})) (Generator (VariableIdentifier) (ArithmeticSequence (Integer) { (Integer) ->(Integer) }))))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (ListComprehension (ListComprehension (Tuple (VariableIdentifier) (VariableIdentifier)) (Generator (VariableIdentifier) (Array {-(Integer)-} (Integer) {+(Integer)+}))) (Generator (VariableIdentifier) (ArithmeticSequence { (Integer) ->(Integer) }))))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (App (App (VariableIdentifier) (Empty) { (Integer) ->(Integer) }) (Empty) (ListComprehension (ListComprehension (Tuple (VariableIdentifier) (VariableIdentifier)) (Generator (VariableIdentifier) (Array (Integer) (Integer)))) (Generator (VariableIdentifier) (ArithmeticSequence (Integer))))))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (RightOperatorSection (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (RightOperatorSection (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier)))) {+(Function {+(VariableIdentifier)+} {+(Statements {+(LeftOperatorSection {+(VariableIdentifier)+} {+(ConstructorOperator {+(ConstructorSymbol)+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(LeftOperatorSection {+(VariableIdentifier)+} {+(ConstructorOperator {+(ConstructorSymbol)+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(InfixVariableIdentifier)+})+} {+(VariableIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(QualifiedConstructorIdentifier {+(ModuleIdentifier)+} {+(ConstructorIdentifier)+})+})+})+} {-(Function {-(VariableIdentifier)-} {-(Statements {-(LeftOperatorSection {-(VariableIdentifier)-} {-(ConstructorOperator {-(ConstructorSymbol)-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(LeftOperatorSection {-(VariableIdentifier)-} {-(ConstructorOperator {-(ConstructorSymbol)-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(InfixVariableIdentifier)-})-} {-(VariableIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(QualifiedConstructorIdentifier {-(ModuleIdentifier)-} {-(ConstructorIdentifier)-})-})-})-} (Function (VariableIdentifier) (ConstructorPattern (Statements (QualifiedConstructorIdentifier (ModuleIdentifier) (ConstructorIdentifier)) { (VariableIdentifier) ->(VariableIdentifier) })) (Statements (InfixOperatorApp (ConstructorIdentifier) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp { (VariableIdentifier) ->(VariableIdentifier) } (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (TextElement) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp { (VariableIdentifier) ->(VariableIdentifier) } (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (TextElement) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp { (VariableIdentifier) ->(VariableIdentifier) } (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (TextElement) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp { (VariableIdentifier) ->(VariableIdentifier) } (Empty) (VariableOperator (VariableSymbol)) (TextElement))))))))))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (Do (BindPattern { (VariableIdentifier) ->(VariableIdentifier) } (InfixOperatorApp { (VariableIdentifier) ->(VariableIdentifier) } (Empty) (VariableOperator (VariableSymbol)) { (VariableIdentifier) ->(VariableIdentifier) })) (BindPattern { (VariableIdentifier) ->(VariableIdentifier) } (InfixOperatorApp { (VariableIdentifier) ->(VariableIdentifier) } (Empty) (VariableOperator (VariableSymbol)) { (VariableIdentifier) ->(VariableIdentifier) }))))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (Lambda (VariableIdentifier) (VariableIdentifier)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (Lambda (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))) (VariableIdentifier)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (Lambda (VariableIdentifier) (InfixOperatorApp (VariableIdentifier) (Empty) (ConstructorOperator (ConstructorSymbol)) (InfixOperatorApp (VariableIdentifier) (Empty) (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier)))))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (Lambda (Statements (VariableIdentifier) (VariableIdentifier) (VariableIdentifier)) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (VariableIdentifier)))))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (VariableOperator (VariableSymbol)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (InfixOperatorApp (Integer) (Empty) (VariableOperator (VariableSymbol)) (Integer)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (PrefixNegation (Integer)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (PrefixNegation (VariableIdentifier)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (PrefixNegation (Integer)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (App (App (VariableIdentifier) (Empty) (Lambda { (VariableIdentifier) ->(VariableIdentifier) } (InfixOperatorApp (Tuple { (VariableIdentifier) ->(VariableIdentifier) }) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (ConstructorIdentifier) (Empty) (VariableOperator (VariableSymbol)) (App { (VariableIdentifier) ->(VariableIdentifier) } (Empty) { (VariableIdentifier) ->(VariableIdentifier) }))))) (Empty) (VariableIdentifier))))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/expressions.diffB-A.txt ================================================ (Module (Empty) (Statements (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (App (VariableIdentifier) (Empty) (VariableIdentifier)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (App (App (VariableIdentifier) (Empty) (VariableIdentifier)) (Empty) (VariableIdentifier)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (App (App (App (VariableIdentifier) (Empty) (VariableIdentifier)) (Empty) (VariableIdentifier)) (Empty) (VariableIdentifier)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (App (ConstructorIdentifier) (Empty) (VariableIdentifier)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (App (ConstructorIdentifier) (Empty) (VariableIdentifier)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (App (App (App (ConstructorIdentifier) (Empty) (VariableIdentifier)) (Empty) (VariableIdentifier)) (Empty) (VariableIdentifier)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (UnitConstructor))) (Function (VariableIdentifier) (Statements (ArithmeticSequence { (Integer) ->(Integer) }))) (Function (VariableIdentifier) (Statements (ArithmeticSequence { (Integer) ->(Integer) } { (Integer) ->(Integer) }))) (Function (VariableIdentifier) (Statements (ArithmeticSequence { (Integer) ->(Integer) } { (Integer) ->(Integer) }))) (Function (VariableIdentifier) (Statements (ArithmeticSequence { (Integer) ->(Integer) } { (Integer) ->(Integer) } { (Integer) ->(Integer) }))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (ListComprehension (VariableIdentifier) (Generator (VariableIdentifier) (VariableIdentifier))))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (ListComprehension (Tuple (VariableIdentifier) (VariableIdentifier)) (Generator (VariableIdentifier) (VariableIdentifier)) (Generator (VariableIdentifier) (VariableIdentifier))))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (ListComprehension (VariableIdentifier) (Generator (VariableIdentifier) (Array (Array (Tuple { (Integer) ->(Integer) } { (Integer) ->(Integer) }) (Tuple { (Integer) ->(Integer) } { (Integer) ->(Integer) })) (Array (Tuple { (Integer) ->(Integer) } { (Integer) ->(Integer) }) (Tuple { (Integer) ->(Integer) } { (Integer) ->(Integer) })))) (Generator (TuplePattern { (Integer) ->(Integer) } (VariableIdentifier)) (VariableIdentifier))))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (ListComprehension (Tuple (VariableIdentifier) (VariableIdentifier)) (Generator (VariableIdentifier) (Array (Integer) (Integer) {-(Integer)-} {-(Integer)-})) (Generator (VariableIdentifier) (ArithmeticSequence (Integer) { (Integer) ->(Integer) }))))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (ListComprehension (ListComprehension (Tuple (VariableIdentifier) (VariableIdentifier)) (Generator (VariableIdentifier) (Array {+(Integer)+} (Integer) {-(Integer)-}))) (Generator (VariableIdentifier) (ArithmeticSequence { (Integer) ->(Integer) }))))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (App (App (VariableIdentifier) (Empty) { (Integer) ->(Integer) }) (Empty) (ListComprehension (ListComprehension (Tuple (VariableIdentifier) (VariableIdentifier)) (Generator (VariableIdentifier) (Array (Integer) (Integer)))) (Generator (VariableIdentifier) (ArithmeticSequence (Integer))))))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (RightOperatorSection (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (RightOperatorSection (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier)))) {+(Function {+(VariableIdentifier)+} {+(Statements {+(LeftOperatorSection {+(VariableIdentifier)+} {+(ConstructorOperator {+(ConstructorSymbol)+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(LeftOperatorSection {+(VariableIdentifier)+} {+(ConstructorOperator {+(ConstructorSymbol)+})+})+})+})+} {-(Function {-(VariableIdentifier)-} {-(Statements {-(LeftOperatorSection {-(VariableIdentifier)-} {-(ConstructorOperator {-(ConstructorSymbol)-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(LeftOperatorSection {-(VariableIdentifier)-} {-(ConstructorOperator {-(ConstructorSymbol)-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(InfixVariableIdentifier)-})-} {-(VariableIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(QualifiedConstructorIdentifier {-(ModuleIdentifier)-} {-(ConstructorIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(ConstructorPattern {-(Statements {-(QualifiedConstructorIdentifier {-(ModuleIdentifier)-} {-(ConstructorIdentifier)-})-} {-(VariableIdentifier)-})-})-} {-(Statements {-(InfixOperatorApp {-(ConstructorIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(InfixOperatorApp {-(TextElement)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(InfixOperatorApp {-(TextElement)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(InfixOperatorApp {-(TextElement)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(TextElement)-})-})-})-})-})-})-})-})-})-})-} (Function (VariableIdentifier) (Statements {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(InfixVariableIdentifier)+})+} {+(VariableIdentifier)+})+} {-(Do {-(BindPattern {-(VariableIdentifier)-} {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(VariableIdentifier)-})-})-} {-(BindPattern {-(VariableIdentifier)-} {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(VariableIdentifier)-})-})-})-})) {+(Function {+(VariableIdentifier)+} {+(Statements {+(QualifiedConstructorIdentifier {+(ModuleIdentifier)+} {+(ConstructorIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(ConstructorPattern {+(Statements {+(QualifiedConstructorIdentifier {+(ModuleIdentifier)+} {+(ConstructorIdentifier)+})+} {+(VariableIdentifier)+})+})+} {+(Statements {+(InfixOperatorApp {+(ConstructorIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(InfixOperatorApp {+(TextElement)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(InfixOperatorApp {+(TextElement)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(InfixOperatorApp {+(TextElement)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(TextElement)+})+})+})+})+})+})+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Do {+(BindPattern {+(VariableIdentifier)+} {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(VariableIdentifier)+})+})+} {+(BindPattern {+(VariableIdentifier)+} {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(VariableIdentifier)+})+})+})+})+})+} (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (Lambda (VariableIdentifier) (VariableIdentifier)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (Lambda (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))) (VariableIdentifier)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (Lambda (VariableIdentifier) (InfixOperatorApp (VariableIdentifier) (Empty) (ConstructorOperator (ConstructorSymbol)) (InfixOperatorApp (VariableIdentifier) (Empty) (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier)))))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (Lambda (Statements (VariableIdentifier) (VariableIdentifier) (VariableIdentifier)) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (VariableIdentifier)))))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (VariableOperator (VariableSymbol)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (InfixOperatorApp (Integer) (Empty) (VariableOperator (VariableSymbol)) (Integer)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (PrefixNegation (Integer)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (PrefixNegation (VariableIdentifier)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (PrefixNegation (Integer)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (App (App (VariableIdentifier) (Empty) (Lambda { (VariableIdentifier) ->(VariableIdentifier) } (InfixOperatorApp (Tuple { (VariableIdentifier) ->(VariableIdentifier) }) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (ConstructorIdentifier) (Empty) (VariableOperator (VariableSymbol)) (App { (VariableIdentifier) ->(VariableIdentifier) } (Empty) { (VariableIdentifier) ->(VariableIdentifier) }))))) (Empty) (VariableIdentifier))))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/expressions.parseA.txt ================================================ (Module (Empty) (Statements (Function (VariableIdentifier) (Statements (App (VariableIdentifier) (Empty) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (App (App (VariableIdentifier) (Empty) (VariableIdentifier)) (Empty) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (App (App (App (VariableIdentifier) (Empty) (VariableIdentifier)) (Empty) (VariableIdentifier)) (Empty) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (App (ConstructorIdentifier) (Empty) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (App (ConstructorIdentifier) (Empty) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (App (App (App (ConstructorIdentifier) (Empty) (VariableIdentifier)) (Empty) (VariableIdentifier)) (Empty) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (UnitConstructor))) (Function (VariableIdentifier) (Statements (ArithmeticSequence (Integer)))) (Function (VariableIdentifier) (Statements (ArithmeticSequence (Integer) (Integer)))) (Function (VariableIdentifier) (Statements (ArithmeticSequence (Integer) (Integer)))) (Function (VariableIdentifier) (Statements (ArithmeticSequence (Integer) (Integer) (Integer)))) (Function (VariableIdentifier) (Statements (ListComprehension (VariableIdentifier) (Generator (VariableIdentifier) (VariableIdentifier))))) (Function (VariableIdentifier) (Statements (ListComprehension (Tuple (VariableIdentifier) (VariableIdentifier)) (Generator (VariableIdentifier) (VariableIdentifier)) (Generator (VariableIdentifier) (VariableIdentifier))))) (Function (VariableIdentifier) (Statements (ListComprehension (VariableIdentifier) (Generator (VariableIdentifier) (Array (Array (Tuple (Integer) (Integer)) (Tuple (Integer) (Integer))) (Array (Tuple (Integer) (Integer)) (Tuple (Integer) (Integer))))) (Generator (TuplePattern (Integer) (VariableIdentifier)) (VariableIdentifier))))) (Function (VariableIdentifier) (Statements (ListComprehension (Tuple (VariableIdentifier) (VariableIdentifier)) (Generator (VariableIdentifier) (Array (Integer) (Integer))) (Generator (VariableIdentifier) (ArithmeticSequence (Integer) (Integer)))))) (Function (VariableIdentifier) (Statements (ListComprehension (ListComprehension (Tuple (VariableIdentifier) (VariableIdentifier)) (Generator (VariableIdentifier) (Array (Integer) (Integer)))) (Generator (VariableIdentifier) (ArithmeticSequence (Integer)))))) (Function (VariableIdentifier) (Statements (App (App (VariableIdentifier) (Empty) (Integer)) (Empty) (ListComprehension (ListComprehension (Tuple (VariableIdentifier) (VariableIdentifier)) (Generator (VariableIdentifier) (Array (Integer) (Integer)))) (Generator (VariableIdentifier) (ArithmeticSequence (Integer))))))) (Function (VariableIdentifier) (Statements (RightOperatorSection (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (RightOperatorSection (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (LeftOperatorSection (VariableIdentifier) (ConstructorOperator (ConstructorSymbol))))) (Function (VariableIdentifier) (Statements (LeftOperatorSection (VariableIdentifier) (ConstructorOperator (ConstructorSymbol))))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (InfixVariableIdentifier)) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (QualifiedConstructorIdentifier (ModuleIdentifier) (ConstructorIdentifier)))) (Function (VariableIdentifier) (ConstructorPattern (Statements (QualifiedConstructorIdentifier (ModuleIdentifier) (ConstructorIdentifier)) (VariableIdentifier))) (Statements (InfixOperatorApp (ConstructorIdentifier) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (TextElement) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (TextElement) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (TextElement) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (TextElement))))))))))) (Function (VariableIdentifier) (Statements (Do (BindPattern (VariableIdentifier) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (VariableIdentifier))) (BindPattern (VariableIdentifier) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (VariableIdentifier)))))) (Function (VariableIdentifier) (Statements (Lambda (VariableIdentifier) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (Lambda (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (Lambda (VariableIdentifier) (InfixOperatorApp (VariableIdentifier) (Empty) (ConstructorOperator (ConstructorSymbol)) (InfixOperatorApp (VariableIdentifier) (Empty) (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier)))))) (Function (VariableIdentifier) (Statements (Lambda (Statements (VariableIdentifier) (VariableIdentifier) (VariableIdentifier)) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (VariableIdentifier)))))) (Function (VariableIdentifier) (Statements (VariableOperator (VariableSymbol)))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (Integer) (Empty) (VariableOperator (VariableSymbol)) (Integer)))) (Function (VariableIdentifier) (Statements (PrefixNegation (Integer)))) (Function (VariableIdentifier) (Statements (PrefixNegation (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (PrefixNegation (Integer)))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (App (App (VariableIdentifier) (Empty) (Lambda (VariableIdentifier) (InfixOperatorApp (Tuple (VariableIdentifier)) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (ConstructorIdentifier) (Empty) (VariableOperator (VariableSymbol)) (App (VariableIdentifier) (Empty) (VariableIdentifier)))))) (Empty) (VariableIdentifier))))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/expressions.parseB.txt ================================================ (Module (Empty) (Statements (Function (VariableIdentifier) (Statements (App (VariableIdentifier) (Empty) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (App (App (VariableIdentifier) (Empty) (VariableIdentifier)) (Empty) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (App (App (App (VariableIdentifier) (Empty) (VariableIdentifier)) (Empty) (VariableIdentifier)) (Empty) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (App (ConstructorIdentifier) (Empty) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (App (ConstructorIdentifier) (Empty) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (App (App (App (ConstructorIdentifier) (Empty) (VariableIdentifier)) (Empty) (VariableIdentifier)) (Empty) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (UnitConstructor))) (Function (VariableIdentifier) (Statements (ArithmeticSequence (Integer)))) (Function (VariableIdentifier) (Statements (ArithmeticSequence (Integer) (Integer)))) (Function (VariableIdentifier) (Statements (ArithmeticSequence (Integer) (Integer)))) (Function (VariableIdentifier) (Statements (ArithmeticSequence (Integer) (Integer) (Integer)))) (Function (VariableIdentifier) (Statements (ListComprehension (VariableIdentifier) (Generator (VariableIdentifier) (VariableIdentifier))))) (Function (VariableIdentifier) (Statements (ListComprehension (Tuple (VariableIdentifier) (VariableIdentifier)) (Generator (VariableIdentifier) (VariableIdentifier)) (Generator (VariableIdentifier) (VariableIdentifier))))) (Function (VariableIdentifier) (Statements (ListComprehension (VariableIdentifier) (Generator (VariableIdentifier) (Array (Array (Tuple (Integer) (Integer)) (Tuple (Integer) (Integer))) (Array (Tuple (Integer) (Integer)) (Tuple (Integer) (Integer))))) (Generator (TuplePattern (Integer) (VariableIdentifier)) (VariableIdentifier))))) (Function (VariableIdentifier) (Statements (ListComprehension (Tuple (VariableIdentifier) (VariableIdentifier)) (Generator (VariableIdentifier) (Array (Integer) (Integer) (Integer) (Integer))) (Generator (VariableIdentifier) (ArithmeticSequence (Integer) (Integer)))))) (Function (VariableIdentifier) (Statements (ListComprehension (ListComprehension (Tuple (VariableIdentifier) (VariableIdentifier)) (Generator (VariableIdentifier) (Array (Integer) (Integer)))) (Generator (VariableIdentifier) (ArithmeticSequence (Integer)))))) (Function (VariableIdentifier) (Statements (App (App (VariableIdentifier) (Empty) (Integer)) (Empty) (ListComprehension (ListComprehension (Tuple (VariableIdentifier) (VariableIdentifier)) (Generator (VariableIdentifier) (Array (Integer) (Integer)))) (Generator (VariableIdentifier) (ArithmeticSequence (Integer))))))) (Function (VariableIdentifier) (Statements (RightOperatorSection (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (RightOperatorSection (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (LeftOperatorSection (VariableIdentifier) (ConstructorOperator (ConstructorSymbol))))) (Function (VariableIdentifier) (Statements (LeftOperatorSection (VariableIdentifier) (ConstructorOperator (ConstructorSymbol))))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (InfixVariableIdentifier)) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (QualifiedConstructorIdentifier (ModuleIdentifier) (ConstructorIdentifier)))) (Function (VariableIdentifier) (ConstructorPattern (Statements (QualifiedConstructorIdentifier (ModuleIdentifier) (ConstructorIdentifier)) (VariableIdentifier))) (Statements (InfixOperatorApp (ConstructorIdentifier) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (TextElement) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (TextElement) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (TextElement) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (TextElement))))))))))) (Function (VariableIdentifier) (Statements (Do (BindPattern (VariableIdentifier) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (VariableIdentifier))) (BindPattern (VariableIdentifier) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (VariableIdentifier)))))) (Function (VariableIdentifier) (Statements (Lambda (VariableIdentifier) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (Lambda (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (Lambda (VariableIdentifier) (InfixOperatorApp (VariableIdentifier) (Empty) (ConstructorOperator (ConstructorSymbol)) (InfixOperatorApp (VariableIdentifier) (Empty) (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier)))))) (Function (VariableIdentifier) (Statements (Lambda (Statements (VariableIdentifier) (VariableIdentifier) (VariableIdentifier)) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (VariableIdentifier)))))) (Function (VariableIdentifier) (Statements (VariableOperator (VariableSymbol)))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (Integer) (Empty) (VariableOperator (VariableSymbol)) (Integer)))) (Function (VariableIdentifier) (Statements (PrefixNegation (Integer)))) (Function (VariableIdentifier) (Statements (PrefixNegation (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (PrefixNegation (Integer)))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (App (App (VariableIdentifier) (Empty) (Lambda (VariableIdentifier) (InfixOperatorApp (Tuple (VariableIdentifier)) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (ConstructorIdentifier) (Empty) (VariableOperator (VariableSymbol)) (App (VariableIdentifier) (Empty) (VariableIdentifier)))))) (Empty) (VariableIdentifier))))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/function-declarations.A.hs ================================================ f num1 num2 = num2 f (Ex 1) = Ex 1 f n@num1 x@num2 = x f _ num2 = num2 f 1 2 = 3 f "hello" "world" = "goodbye" f 'a' 'b' = 'c' f 1.0 2.0 = 3.0 f Ex { a = 1 } = 1 f Ex { a = 1, b = 2 } = 2 f Ex {} = 2 f Blob{start, end} = [start, end] f Blob{..} = [start, end] f Blob{start, end = end', ..} = [start, end', name, path] f (1) = 1 f (-(1)) = 1 f (Example a b c) = a f (a :<: f) = 2 f ([]) = 1 f (1, 2) = 1 f ((Just 1), Just 2) = Just 1 f (Just a, Nothing) = Nothing f (Left a, Right b, -(1)) = b f [] = 0 f [a] = a f (a:bs) = a f (a:b:cs) = a f (a:b:c:ds) = a f ~a = 1 f ~(-(1)) = 1 f ~(~(a, b), c) = c f x = case x of Just a | a < 10 -> True | a < 20 -> False | a > 19 -> True g x = case x of Just a | a < 10, True, let b :: Int -> Int b x = x -> True Nothing -> False f x = case x of Just _ -> x where x = True Nothing -> False f a = case a of Just a -> g where g = h h = 1 Nothing -> i where i = j j = 2 f a = case a of Just a -> g Nothing -> i where g = 1 i = 2 f = ( \ a -> case a of A -> b ) a = reify tcName >>= \case TyConI (DataD _ _ _ _ cons _) -> do sigs <- filter (const makeSigs) <$> traverse genSig cons decs <- traverse genDecl cons pure $ sigs ++ decs _ -> fail "makeEff expects a type constructor" f x | x < 10, x > 2 = True | otherwise = False f x = do let z = x y <- a pure y f x = do let z = x a y where y = pure a a = 1 f y@Example = y { a = 1, b = 2 } f y@(Example { a = a', b = b' }) = y { a = a' + 1, b = b' ++ " !" } f = read @Int f = read @Int "5" f = read @Prelude.Int "5" f = read @Int . Prelude.id f = read @Prelude.Int . Prelude.id f = read @Int . id f = read @Prelude.Int . Prelude.id f = read @Int .id f = read @Prelude.Int .Prelude.id f = read @Int. id f = read @Prelude.Int. Prelude.id f = read @(x (Bar a)) f = Data.List.uncons . id f = Data.List.uncons . Prelude.id f = Data.List.uncons. id f = Data.List.uncons. Prelude.id f = Data.List.uncons .id f = Data.List.uncons .Prelude.id f = Data.List.uncons.id f = Data.List.uncons.Prelude.id f = Bar ': Baz f = Bar ':<: Baz f = (<>) f = a <> f = 1 where g = 2 where f = a where {- comment -} f = a where {- -} f = a where -- f = a where {-# COLUMN 42 #-} b = 2 eval (a :< b) (fmap subtermValue -> QualifiedName name iden) = bar sort :: (?cmp :: a -> a -> Bool) => [a] -> [a] sort = sortBy ?cmp b (E (u :: Union e b) q) = a ifte :: ( IvoryStore a , IvoryZero ('Stored a) , GetAlloc eff ~ 'Scope s ) => IBool -> Ivory eff a -> Ivory eff a -> Ivory eff a nullErrorReporter logger = pure reportError where reportError ErrorReport{..} = let msg = takeWhile (/= '\n') (displayException errorReportException) in logger msg errorReportContext ================================================ FILE: semantic/test/fixtures/haskell/corpus/function-declarations.B.hs ================================================ g num1 num2 = num2 g (Ex 1) = Ex 1 g n@num1 x@num2 = x g _ num2 = num2 g 1 2 = 3 g "hello" "world" = "goodbye" g 'a' 'b' = 'c' g 1.0 2.0 = 3.0 g Ex { a = 1 } = 1 g Ex { a = 1, b = 2 } = 2 g Ex {} = 2 g Blob{start, end} = [start, end] g Blob{..} = [start, end] g Blob{start, end = end', ..} = [start, end', name, path] g c@Ex { a = 1 } = c g (1) = 1 g (-(1)) = 1 g (Example a b c) = a g (a :<: f) = 2 g ([]) = 1 g (1, 2) = 1 g ((Just 1), Just 2) = Just 1 g (Just a, Nothing) = Nothing g (Left a, Right b, -(1)) = b g [] = 0 g [a] = a g (a:bs) = a g (a:b:cs) = a g (a:b:c:ds) = a g ~a = 1 g ~(-(1)) = 1 g ~(~(a, b), c) = c g x = case x of Just a | a < 10 -> True | a < 20 -> False | a > 19 -> True f x = case x of Just a | a < 10, True, let b :: Int -> Int b x = x -> True Nothing -> False g x = case x of Just _ -> x where x = True Nothing -> False g a = case a of Just a -> g where g = h h = 1 Nothing -> i where i = j j = 2 g a = case a of Just a -> g Nothing -> i where g = 1 i = 2 g = ( \ a -> case a of A -> b ) b = reify tcName >>= \case TyConI (DataD _ _ _ _ cons _) -> do sigs <- filter (const makeSigs) <$> traverse genSig cons decs <- traverse genDecl cons pure $ sigs ++ decs _ -> fail "makeEff expects a type constructor" g y | y < 10, y > 2 = True | otherwise = False g x = do let z = x y <- a pure y g x = do let z = x a y where y = pure a a = 1 g y@Example = y { a = 1, b = 2 } g y@(Example { a = a', b = b' }) = y { a = a' + 1, b = b' ++ " !" } g = read @Int g = read @Int "5" g = read @Prelude.Int "5" g = read @Int . Prelude.id g = read @Prelude.Int . Prelude.id g = read @Int . id g = read @Prelude.Int . Prelude.id g = read @Int .id g = read @Prelude.Int .Prelude.id g = read @Int. id g = read @Prelude.Int. Prelude.id g = read @(x (Bar a)) g = Data.List.uncons . id g = Data.List.uncons . Prelude.id g = Data.List.uncons. id g = Data.List.uncons. Prelude.id g = Data.List.uncons .id g = Data.List.uncons .Prelude.id g = Data.List.uncons.id g = Data.List.uncons.Prelude.id g = Bar ': Baz g = Bar ':<: Baz g = (<>) g = a <> g = 1 where h = 2 where g = a where {- comment -} g = a where {- -} g = a where -- g = a where {-# COLUMN 42 #-} c = 2 eval' (a :< b) (fmap subtermValue -> QualifiedName name' iden) = foo sort' :: (?cmp :: a -> a -> Bool) => [a] -> [a] sort' = sortBy ?cmp c (F (u :: Union e b) q) = b g :: ( IvoryStore a , IvoryZero ('Stored a) , GetAlloc eff ~ 'Scope s ) => IBool -> Ivory eff a -> Ivory eff a -> Ivory eff a emptyErrorReporter logger = pure reportError where reportError ErrorReport{..} = let msg = takeWhile (/= '\n') (displayException errorReportException) in logger msg errorReportContext ================================================ FILE: semantic/test/fixtures/haskell/corpus/function-declarations.diffA-B.txt ================================================ (Module (Empty) (Statements {-(Function {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(Integer)-})-})-} {-(Statements {-(App {-(ConstructorIdentifier)-} {-(Empty)-} {-(Integer)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(AsPattern {-(VariableIdentifier)-} {-(VariableIdentifier)-})-} {-(AsPattern {-(VariableIdentifier)-} {-(VariableIdentifier)-})-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Wildcard)-} {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Integer)-} {-(Integer)-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(TextElement)-} {-(TextElement)-} {-(Statements {-(TextElement)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Character)-} {-(Character)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Float)-} {-(Float)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(LabeledPattern {-(Statements {-(ConstructorIdentifier)-} {-(FieldPattern {-(VariableIdentifier)-} {-(Integer)-})-})-})-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(LabeledPattern {-(Statements {-(ConstructorIdentifier)-} {-(FieldPattern {-(VariableIdentifier)-} {-(Integer)-})-} {-(FieldPattern {-(VariableIdentifier)-} {-(Integer)-})-})-})-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(LabeledPattern {-(ConstructorIdentifier)-})-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(LabeledPattern {-(Statements {-(ConstructorIdentifier)-} {-(NamedFieldPun {-(VariableIdentifier)-})-} {-(NamedFieldPun {-(VariableIdentifier)-})-})-})-} {-(Statements {-(Array {-(VariableIdentifier)-} {-(VariableIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(LabeledPattern {-(Statements {-(ConstructorIdentifier)-} {-(RecordWildCards)-})-})-} {-(Statements {-(Array {-(VariableIdentifier)-} {-(VariableIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(LabeledPattern {-(Statements {-(ConstructorIdentifier)-} {-(NamedFieldPun {-(VariableIdentifier)-})-} {-(FieldPattern {-(VariableIdentifier)-} {-(VariableIdentifier)-})-} {-(RecordWildCards)-})-})-} {-(Statements {-(Array {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(VariableIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Integer)-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(NegativeLiteral {-(Integer)-})-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(VariableIdentifier)-})-})-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-} {-(ConstructorOperator {-(ConstructorSymbol)-})-} {-(VariableIdentifier)-})-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(ListConstructor)-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(TuplePattern {-(Integer)-} {-(Integer)-})-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(TuplePattern {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(Integer)-})-})-} {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(Integer)-})-})-})-} {-(Statements {-(App {-(ConstructorIdentifier)-} {-(Empty)-} {-(Integer)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(TuplePattern {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(VariableIdentifier)-})-})-} {-(ConstructorIdentifier)-})-} {-(Statements {-(ConstructorIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(TuplePattern {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(VariableIdentifier)-})-})-} {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(VariableIdentifier)-})-})-} {-(NegativeLiteral {-(Integer)-})-})-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(ListConstructor)-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(ListPattern {-(VariableIdentifier)-})-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-} {-(ConstructorOperator {-(ConstructorSymbol)-})-} {-(VariableIdentifier)-})-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-} {-(ConstructorOperator {-(ConstructorSymbol)-})-} {-(VariableIdentifier)-} {-(ConstructorOperator {-(ConstructorSymbol)-})-} {-(VariableIdentifier)-})-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-} {-(ConstructorOperator {-(ConstructorSymbol)-})-} {-(VariableIdentifier)-} {-(ConstructorOperator {-(ConstructorSymbol)-})-} {-(VariableIdentifier)-} {-(ConstructorOperator {-(ConstructorSymbol)-})-} {-(VariableIdentifier)-})-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(IrrefutablePattern {-(VariableIdentifier)-})-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(IrrefutablePattern {-(NegativeLiteral {-(Integer)-})-})-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(IrrefutablePattern {-(TuplePattern {-(IrrefutablePattern {-(TuplePattern {-(VariableIdentifier)-} {-(VariableIdentifier)-})-})-} {-(VariableIdentifier)-})-})-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(Statements {-(Match {-(VariableIdentifier)-} {-(Pattern {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(VariableIdentifier)-})-})-} {-(Statements {-(CaseGuardPattern {-(Guard {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(Integer)-})-})-} {-(ConstructorIdentifier)-})-} {-(CaseGuardPattern {-(Guard {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(Integer)-})-})-} {-(ConstructorIdentifier)-})-} {-(CaseGuardPattern {-(Guard {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(Integer)-})-})-} {-(ConstructorIdentifier)-})-})-})-})-})-})-} (Function (VariableIdentifier) { (VariableIdentifier) ->(VariableIdentifier) } {+(VariableIdentifier)+} (Statements {+(VariableIdentifier)+} {-(Match {-(VariableIdentifier)-} {-(Statements {-(Pattern {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(VariableIdentifier)-})-})-} {-(CaseGuardPattern {-(Guard {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(Integer)-})-})-} {-(Guard {-(ConstructorIdentifier)-})-} {-(Guard {-(Let {-(TypeSignature {-(VariableIdentifier)-} {-(FunctionType {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Empty)-})-})-} {-(ConstructorIdentifier)-})-})-} {-(Pattern {-(ConstructorIdentifier)-} {-(ConstructorIdentifier)-})-})-})-})) {-(Function {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(Statements {-(Match {-(VariableIdentifier)-} {-(Statements {-(Pattern {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(Wildcard)-})-})-} {-(Statements {-(VariableIdentifier)-} {-(Statements {-(Function {-(VariableIdentifier)-} {-(Statements {-(ConstructorIdentifier)-})-})-})-})-})-} {-(Pattern {-(ConstructorIdentifier)-} {-(ConstructorIdentifier)-})-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(Statements {-(Match {-(VariableIdentifier)-} {-(Statements {-(Pattern {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(VariableIdentifier)-})-})-} {-(Statements {-(VariableIdentifier)-} {-(Statements {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-})-})-})-})-})-} {-(Pattern {-(ConstructorIdentifier)-} {-(Statements {-(VariableIdentifier)-} {-(Statements {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-})-})-})-})-})-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(Statements {-(Match {-(VariableIdentifier)-} {-(Statements {-(Pattern {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(VariableIdentifier)-})-})-} {-(VariableIdentifier)-})-} {-(Pattern {-(ConstructorIdentifier)-} {-(VariableIdentifier)-})-} {-(Statements {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-})-})-})-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Lambda {-(VariableIdentifier)-} {-(Match {-(VariableIdentifier)-} {-(Pattern {-(ConstructorIdentifier)-} {-(VariableIdentifier)-})-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(App {-(VariableIdentifier)-} {-(Empty)-} {-(VariableIdentifier)-})-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(LambdaCase {-(Pattern {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(Wildcard)-} {-(Wildcard)-} {-(Wildcard)-} {-(Wildcard)-} {-(VariableIdentifier)-} {-(Wildcard)-})-})-})-})-} {-(Do {-(BindPattern {-(VariableIdentifier)-} {-(InfixOperatorApp {-(App {-(VariableIdentifier)-} {-(Empty)-} {-(App {-(VariableIdentifier)-} {-(Empty)-} {-(VariableIdentifier)-})-})-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(App {-(App {-(VariableIdentifier)-} {-(Empty)-} {-(VariableIdentifier)-})-} {-(Empty)-} {-(VariableIdentifier)-})-})-})-} {-(BindPattern {-(VariableIdentifier)-} {-(App {-(App {-(VariableIdentifier)-} {-(Empty)-} {-(VariableIdentifier)-})-} {-(Empty)-} {-(VariableIdentifier)-})-})-} {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(VariableIdentifier)-})-})-})-})-} {-(Pattern {-(Wildcard)-} {-(App {-(VariableIdentifier)-} {-(Empty)-} {-(TextElement)-})-})-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(Statements {-(FunctionGuardPattern {-(Guard {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(Integer)-})-})-} {-(Guard {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(Integer)-})-})-} {-(ConstructorIdentifier)-})-} {-(FunctionGuardPattern {-(Guard {-(VariableIdentifier)-})-} {-(ConstructorIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(Statements {-(Do {-(Let {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Empty)-})-} {-(BindPattern {-(VariableIdentifier)-} {-(VariableIdentifier)-})-} {-(App {-(VariableIdentifier)-} {-(Empty)-} {-(VariableIdentifier)-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(Statements {-(Do {-(Let {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Empty)-})-} {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(Statements {-(Function {-(VariableIdentifier)-} {-(Statements {-(App {-(VariableIdentifier)-} {-(Empty)-} {-(VariableIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-})-})-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(AsPattern {-(VariableIdentifier)-} {-(ConstructorIdentifier)-})-} {-(Statements {-(LabeledUpdate {-(VariableIdentifier)-} {-(FieldBind {-(VariableIdentifier)-} {-(Integer)-})-} {-(FieldBind {-(VariableIdentifier)-} {-(Integer)-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(AsPattern {-(VariableIdentifier)-} {-(LabeledPattern {-(Statements {-(ConstructorIdentifier)-} {-(FieldPattern {-(VariableIdentifier)-} {-(VariableIdentifier)-})-} {-(FieldPattern {-(VariableIdentifier)-} {-(VariableIdentifier)-})-})-})-})-} {-(Statements {-(LabeledUpdate {-(VariableIdentifier)-} {-(FieldBind {-(VariableIdentifier)-} {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(Integer)-})-})-} {-(FieldBind {-(VariableIdentifier)-} {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(TextElement)-})-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-} {-(TypeApp {-(ConstructorIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-} {-(TypeApp {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(TextElement)-})-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-} {-(TypeApp {-(ConstructorPattern {-(Statements {-(QualifiedConstructorIdentifier {-(ModuleIdentifier)-} {-(ConstructorIdentifier)-})-} {-(TextElement)-})-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(VariableIdentifier)-} {-(TypeApp {-(ConstructorIdentifier)-})-} {-(VariableOperator {-(VariableSymbol)-})-} {-(QualifiedVariableIdentifier {-(ModuleIdentifier)-} {-(VariableIdentifier)-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(VariableIdentifier)-} {-(TypeApp {-(QualifiedConstructorIdentifier {-(ModuleIdentifier)-} {-(ConstructorIdentifier)-})-})-} {-(VariableOperator {-(VariableSymbol)-})-} {-(QualifiedVariableIdentifier {-(ModuleIdentifier)-} {-(VariableIdentifier)-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(VariableIdentifier)-} {-(TypeApp {-(ConstructorIdentifier)-})-} {-(VariableOperator {-(VariableSymbol)-})-} {-(VariableIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(VariableIdentifier)-} {-(TypeApp {-(QualifiedConstructorIdentifier {-(ModuleIdentifier)-} {-(ConstructorIdentifier)-})-})-} {-(VariableOperator {-(VariableSymbol)-})-} {-(QualifiedVariableIdentifier {-(ModuleIdentifier)-} {-(VariableIdentifier)-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(VariableIdentifier)-} {-(TypeApp {-(ConstructorIdentifier)-})-} {-(VariableOperator {-(VariableSymbol)-})-} {-(VariableIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(VariableIdentifier)-} {-(TypeApp {-(QualifiedConstructorIdentifier {-(ModuleIdentifier)-} {-(ConstructorIdentifier)-})-})-} {-(VariableOperator {-(VariableSymbol)-})-} {-(QualifiedVariableIdentifier {-(ModuleIdentifier)-} {-(VariableIdentifier)-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(VariableIdentifier)-} {-(TypeApp {-(ConstructorIdentifier)-})-} {-(VariableOperator {-(VariableSymbol)-})-} {-(VariableIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(VariableIdentifier)-} {-(TypeApp {-(QualifiedConstructorIdentifier {-(ModuleIdentifier)-} {-(ConstructorIdentifier)-})-})-} {-(VariableOperator {-(VariableSymbol)-})-} {-(QualifiedVariableIdentifier {-(ModuleIdentifier)-} {-(VariableIdentifier)-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-} {-(TypeApp {-(App {-(VariableIdentifier)-} {-(Empty)-} {-(App {-(ConstructorIdentifier)-} {-(Empty)-} {-(VariableIdentifier)-})-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(QualifiedVariableIdentifier {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(VariableIdentifier)-})-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(VariableIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(QualifiedVariableIdentifier {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(VariableIdentifier)-})-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(QualifiedVariableIdentifier {-(ModuleIdentifier)-} {-(VariableIdentifier)-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(QualifiedVariableIdentifier {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(VariableIdentifier)-})-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(VariableIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(QualifiedVariableIdentifier {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(VariableIdentifier)-})-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(QualifiedVariableIdentifier {-(ModuleIdentifier)-} {-(VariableIdentifier)-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(QualifiedVariableIdentifier {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(VariableIdentifier)-})-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(VariableIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(QualifiedVariableIdentifier {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(VariableIdentifier)-})-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(QualifiedVariableIdentifier {-(ModuleIdentifier)-} {-(VariableIdentifier)-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(QualifiedVariableIdentifier {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(VariableIdentifier)-})-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(VariableIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(QualifiedVariableIdentifier {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(VariableIdentifier)-})-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(QualifiedVariableIdentifier {-(ModuleIdentifier)-} {-(VariableIdentifier)-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(ConstructorIdentifier)-} {-(Empty)-} {-(PromotedTypeOperator {-(ConstructorOperator {-(ConstructorSymbol)-})-})-} {-(ConstructorIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(ConstructorIdentifier)-} {-(Empty)-} {-(PromotedTypeOperator {-(ConstructorOperator {-(ConstructorSymbol)-})-})-} {-(ConstructorIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableOperator {-(VariableSymbol)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(Statements)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-} {-(Statements)-})-})-} (Function (VariableIdentifier) {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(Integer)+})+})+} (Statements {+(App {+(ConstructorIdentifier)+} {+(Empty)+} {+(Integer)+})+} {-(Integer)-} {-(Statements)-})) {+(Function {+(VariableIdentifier)+} {+(AsPattern {+(VariableIdentifier)+} {+(VariableIdentifier)+})+} {+(AsPattern {+(VariableIdentifier)+} {+(VariableIdentifier)+})+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Wildcard)+} {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Integer)+} {+(Integer)+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(TextElement)+} {+(TextElement)+} {+(Statements {+(TextElement)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Character)+} {+(Character)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Float)+} {+(Float)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(LabeledPattern {+(Statements {+(ConstructorIdentifier)+} {+(FieldPattern {+(VariableIdentifier)+} {+(Integer)+})+})+})+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(LabeledPattern {+(Statements {+(ConstructorIdentifier)+} {+(FieldPattern {+(VariableIdentifier)+} {+(Integer)+})+} {+(FieldPattern {+(VariableIdentifier)+} {+(Integer)+})+})+})+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(LabeledPattern {+(ConstructorIdentifier)+})+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(LabeledPattern {+(Statements {+(ConstructorIdentifier)+} {+(NamedFieldPun {+(VariableIdentifier)+})+} {+(NamedFieldPun {+(VariableIdentifier)+})+})+})+} {+(Statements {+(Array {+(VariableIdentifier)+} {+(VariableIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(LabeledPattern {+(Statements {+(ConstructorIdentifier)+} {+(RecordWildCards)+})+})+} {+(Statements {+(Array {+(VariableIdentifier)+} {+(VariableIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(LabeledPattern {+(Statements {+(ConstructorIdentifier)+} {+(NamedFieldPun {+(VariableIdentifier)+})+} {+(FieldPattern {+(VariableIdentifier)+} {+(VariableIdentifier)+})+} {+(RecordWildCards)+})+})+} {+(Statements {+(Array {+(VariableIdentifier)+} {+(VariableIdentifier)+} {+(VariableIdentifier)+} {+(VariableIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(AsPattern {+(VariableIdentifier)+} {+(LabeledPattern {+(Statements {+(ConstructorIdentifier)+} {+(FieldPattern {+(VariableIdentifier)+} {+(Integer)+})+})+})+})+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Integer)+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(NegativeLiteral {+(Integer)+})+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(VariableIdentifier)+} {+(VariableIdentifier)+} {+(VariableIdentifier)+})+})+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(ConstructorOperator {+(ConstructorSymbol)+})+} {+(VariableIdentifier)+})+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(ListConstructor)+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(TuplePattern {+(Integer)+} {+(Integer)+})+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(TuplePattern {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(Integer)+})+})+} {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(Integer)+})+})+})+} {+(Statements {+(App {+(ConstructorIdentifier)+} {+(Empty)+} {+(Integer)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(TuplePattern {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(VariableIdentifier)+})+})+} {+(ConstructorIdentifier)+})+} {+(Statements {+(ConstructorIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(TuplePattern {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(VariableIdentifier)+})+})+} {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(VariableIdentifier)+})+})+} {+(NegativeLiteral {+(Integer)+})+})+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(ListConstructor)+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(ListPattern {+(VariableIdentifier)+})+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(ConstructorOperator {+(ConstructorSymbol)+})+} {+(VariableIdentifier)+})+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(ConstructorOperator {+(ConstructorSymbol)+})+} {+(VariableIdentifier)+} {+(ConstructorOperator {+(ConstructorSymbol)+})+} {+(VariableIdentifier)+})+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(ConstructorOperator {+(ConstructorSymbol)+})+} {+(VariableIdentifier)+} {+(ConstructorOperator {+(ConstructorSymbol)+})+} {+(VariableIdentifier)+} {+(ConstructorOperator {+(ConstructorSymbol)+})+} {+(VariableIdentifier)+})+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(IrrefutablePattern {+(VariableIdentifier)+})+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(IrrefutablePattern {+(NegativeLiteral {+(Integer)+})+})+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(IrrefutablePattern {+(TuplePattern {+(IrrefutablePattern {+(TuplePattern {+(VariableIdentifier)+} {+(VariableIdentifier)+})+})+} {+(VariableIdentifier)+})+})+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(VariableIdentifier)+} {+(Statements {+(Match {+(VariableIdentifier)+} {+(Pattern {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(VariableIdentifier)+})+})+} {+(Statements {+(CaseGuardPattern {+(Guard {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(Integer)+})+})+} {+(ConstructorIdentifier)+})+} {+(CaseGuardPattern {+(Guard {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(Integer)+})+})+} {+(ConstructorIdentifier)+})+} {+(CaseGuardPattern {+(Guard {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(Integer)+})+})+} {+(ConstructorIdentifier)+})+})+})+})+})+})+} (Function (VariableIdentifier) {+(VariableIdentifier)+} (Statements {+(Match {+(VariableIdentifier)+} {+(Statements {+(Pattern {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(VariableIdentifier)+})+})+} {+(CaseGuardPattern {+(Guard {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(Integer)+})+})+} {+(Guard {+(ConstructorIdentifier)+})+} {+(Guard {+(Let {+(TypeSignature {+(VariableIdentifier)+} {+(FunctionType {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Empty)+})+})+} {+(ConstructorIdentifier)+})+})+} {+(Pattern {+(ConstructorIdentifier)+} {+(ConstructorIdentifier)+})+})+})+} {-(VariableIdentifier)-} {-(Statements {-(Comment)-})-})) (Function { (VariableIdentifier) ->(VariableIdentifier) } {+(VariableIdentifier)+} (Statements {+(Match {+(VariableIdentifier)+} {+(Statements {+(Pattern {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(Wildcard)+})+})+} {+(Statements {+(VariableIdentifier)+} {+(Statements {+(Function {+(VariableIdentifier)+} {+(Statements {+(ConstructorIdentifier)+})+})+})+})+})+} {+(Pattern {+(ConstructorIdentifier)+} {+(ConstructorIdentifier)+})+})+})+} {-(VariableIdentifier)-} {-(Statements {-(Comment)-})-})) {+(Function {+(VariableIdentifier)+} {+(VariableIdentifier)+} {+(Statements {+(Match {+(VariableIdentifier)+} {+(Statements {+(Pattern {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(VariableIdentifier)+})+})+} {+(Statements {+(VariableIdentifier)+} {+(Statements {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+})+})+})+})+})+} {+(Pattern {+(ConstructorIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(Statements {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+})+})+})+})+})+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(VariableIdentifier)+} {+(Statements {+(Match {+(VariableIdentifier)+} {+(Statements {+(Pattern {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(VariableIdentifier)+})+})+} {+(VariableIdentifier)+})+} {+(Pattern {+(ConstructorIdentifier)+} {+(VariableIdentifier)+})+} {+(Statements {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+})+})+})+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Lambda {+(VariableIdentifier)+} {+(Match {+(VariableIdentifier)+} {+(Pattern {+(ConstructorIdentifier)+} {+(VariableIdentifier)+})+})+})+})+})+} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-} {-(Statements {-(Comment)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-} {-(Statements {-(Pragma)-})-})-})-} (Function (VariableIdentifier) (Statements {+(InfixOperatorApp {+(App {+(VariableIdentifier)+} {+(Empty)+} {+(VariableIdentifier)+})+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(LambdaCase {+(Pattern {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(Wildcard)+} {+(Wildcard)+} {+(Wildcard)+} {+(Wildcard)+} {+(VariableIdentifier)+} {+(Wildcard)+})+})+})+})+} {+(Do {+(BindPattern {+(VariableIdentifier)+} {+(InfixOperatorApp {+(App {+(VariableIdentifier)+} {+(Empty)+} {+(App {+(VariableIdentifier)+} {+(Empty)+} {+(VariableIdentifier)+})+})+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(App {+(App {+(VariableIdentifier)+} {+(Empty)+} {+(VariableIdentifier)+})+} {+(Empty)+} {+(VariableIdentifier)+})+})+})+} {+(BindPattern {+(VariableIdentifier)+} {+(App {+(App {+(VariableIdentifier)+} {+(Empty)+} {+(VariableIdentifier)+})+} {+(Empty)+} {+(VariableIdentifier)+})+})+} {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(VariableIdentifier)+})+})+})+})+} {+(Pattern {+(Wildcard)+} {+(App {+(VariableIdentifier)+} {+(Empty)+} {+(TextElement)+})+})+})+})+} {-(Integer)-})) {+(Function {+(VariableIdentifier)+} {+(VariableIdentifier)+} {+(Statements {+(FunctionGuardPattern {+(Guard {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(Integer)+})+})+} {+(Guard {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(Integer)+})+})+} {+(ConstructorIdentifier)+})+} {+(FunctionGuardPattern {+(Guard {+(VariableIdentifier)+})+} {+(ConstructorIdentifier)+})+})+})+} (Function { (VariableIdentifier) ->(VariableIdentifier) } {+(VariableIdentifier)+} {-(Statements {-(VariableIdentifier)-} {-(ConstructorOperator {-(ConstructorSymbol)-})-} {-(VariableIdentifier)-})-} {-(ViewPattern {-(App {-(VariableIdentifier)-} {-(Empty)-} {-(VariableIdentifier)-})-} {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(VariableIdentifier)-} {-(VariableIdentifier)-})-})-})-} (Statements {+(Do {+(Let {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Empty)+})+} {+(BindPattern {+(VariableIdentifier)+} {+(VariableIdentifier)+})+} {+(App {+(VariableIdentifier)+} {+(Empty)+} {+(VariableIdentifier)+})+})+} {-(VariableIdentifier)-})) {+(Function {+(VariableIdentifier)+} {+(VariableIdentifier)+} {+(Statements {+(Do {+(Let {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Empty)+})+} {+(VariableIdentifier)+} {+(VariableIdentifier)+} {+(Statements {+(Function {+(VariableIdentifier)+} {+(Statements {+(App {+(VariableIdentifier)+} {+(Empty)+} {+(VariableIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+})+})+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(AsPattern {+(VariableIdentifier)+} {+(ConstructorIdentifier)+})+} {+(Statements {+(LabeledUpdate {+(VariableIdentifier)+} {+(FieldBind {+(VariableIdentifier)+} {+(Integer)+})+} {+(FieldBind {+(VariableIdentifier)+} {+(Integer)+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(AsPattern {+(VariableIdentifier)+} {+(LabeledPattern {+(Statements {+(ConstructorIdentifier)+} {+(FieldPattern {+(VariableIdentifier)+} {+(VariableIdentifier)+})+} {+(FieldPattern {+(VariableIdentifier)+} {+(VariableIdentifier)+})+})+})+})+} {+(Statements {+(LabeledUpdate {+(VariableIdentifier)+} {+(FieldBind {+(VariableIdentifier)+} {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(Integer)+})+})+} {+(FieldBind {+(VariableIdentifier)+} {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(TextElement)+})+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(TypeApp {+(ConstructorIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(TypeApp {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(TextElement)+})+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(TypeApp {+(ConstructorPattern {+(Statements {+(QualifiedConstructorIdentifier {+(ModuleIdentifier)+} {+(ConstructorIdentifier)+})+} {+(TextElement)+})+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(VariableIdentifier)+} {+(TypeApp {+(ConstructorIdentifier)+})+} {+(VariableOperator {+(VariableSymbol)+})+} {+(QualifiedVariableIdentifier {+(ModuleIdentifier)+} {+(VariableIdentifier)+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(VariableIdentifier)+} {+(TypeApp {+(QualifiedConstructorIdentifier {+(ModuleIdentifier)+} {+(ConstructorIdentifier)+})+})+} {+(VariableOperator {+(VariableSymbol)+})+} {+(QualifiedVariableIdentifier {+(ModuleIdentifier)+} {+(VariableIdentifier)+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(VariableIdentifier)+} {+(TypeApp {+(ConstructorIdentifier)+})+} {+(VariableOperator {+(VariableSymbol)+})+} {+(VariableIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(VariableIdentifier)+} {+(TypeApp {+(QualifiedConstructorIdentifier {+(ModuleIdentifier)+} {+(ConstructorIdentifier)+})+})+} {+(VariableOperator {+(VariableSymbol)+})+} {+(QualifiedVariableIdentifier {+(ModuleIdentifier)+} {+(VariableIdentifier)+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(VariableIdentifier)+} {+(TypeApp {+(ConstructorIdentifier)+})+} {+(VariableOperator {+(VariableSymbol)+})+} {+(VariableIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(VariableIdentifier)+} {+(TypeApp {+(QualifiedConstructorIdentifier {+(ModuleIdentifier)+} {+(ConstructorIdentifier)+})+})+} {+(VariableOperator {+(VariableSymbol)+})+} {+(QualifiedVariableIdentifier {+(ModuleIdentifier)+} {+(VariableIdentifier)+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(VariableIdentifier)+} {+(TypeApp {+(ConstructorIdentifier)+})+} {+(VariableOperator {+(VariableSymbol)+})+} {+(VariableIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(VariableIdentifier)+} {+(TypeApp {+(QualifiedConstructorIdentifier {+(ModuleIdentifier)+} {+(ConstructorIdentifier)+})+})+} {+(VariableOperator {+(VariableSymbol)+})+} {+(QualifiedVariableIdentifier {+(ModuleIdentifier)+} {+(VariableIdentifier)+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(TypeApp {+(App {+(VariableIdentifier)+} {+(Empty)+} {+(App {+(ConstructorIdentifier)+} {+(Empty)+} {+(VariableIdentifier)+})+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(QualifiedVariableIdentifier {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(VariableIdentifier)+})+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(VariableIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(QualifiedVariableIdentifier {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(VariableIdentifier)+})+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(QualifiedVariableIdentifier {+(ModuleIdentifier)+} {+(VariableIdentifier)+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(QualifiedVariableIdentifier {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(VariableIdentifier)+})+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(VariableIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(QualifiedVariableIdentifier {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(VariableIdentifier)+})+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(QualifiedVariableIdentifier {+(ModuleIdentifier)+} {+(VariableIdentifier)+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(QualifiedVariableIdentifier {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(VariableIdentifier)+})+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(VariableIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(QualifiedVariableIdentifier {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(VariableIdentifier)+})+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(QualifiedVariableIdentifier {+(ModuleIdentifier)+} {+(VariableIdentifier)+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(QualifiedVariableIdentifier {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(VariableIdentifier)+})+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(VariableIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(QualifiedVariableIdentifier {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(VariableIdentifier)+})+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(QualifiedVariableIdentifier {+(ModuleIdentifier)+} {+(VariableIdentifier)+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(ConstructorIdentifier)+} {+(Empty)+} {+(PromotedTypeOperator {+(ConstructorOperator {+(ConstructorSymbol)+})+})+} {+(ConstructorIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(ConstructorIdentifier)+} {+(Empty)+} {+(PromotedTypeOperator {+(ConstructorOperator {+(ConstructorSymbol)+})+})+} {+(ConstructorIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableOperator {+(VariableSymbol)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(Statements)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+} {+(Statements)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+} {+(Statements)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(Statements {+(Comment)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(Statements {+(Comment)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(Statements {+(Comment)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(Statements {+(Pragma)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(ConstructorOperator {+(ConstructorSymbol)+})+} {+(VariableIdentifier)+})+} {+(ViewPattern {+(App {+(VariableIdentifier)+} {+(Empty)+} {+(VariableIdentifier)+})+} {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(VariableIdentifier)+} {+(VariableIdentifier)+})+})+})+} {+(Statements {+(VariableIdentifier)+})+})+} (TypeSignature { (VariableIdentifier) ->(VariableIdentifier) } (ContextAlt (TypeSignature (ImplicitParameterIdentifier) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))))) (FunctionType (Type (Array (Type (TypeVariableIdentifier) (TypeParameters) (Empty))) (TypeParameters) (Empty)) (Type (Array (Type (TypeVariableIdentifier) (TypeParameters) (Empty))) (TypeParameters) (Empty)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (App (VariableIdentifier) (Empty) (ImplicitParameterIdentifier)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (ConstructorPattern (Statements { (ConstructorIdentifier) ->(ConstructorIdentifier) } (AnnotatedTypeVariable (TypeVariableIdentifier) (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier) (VariableIdentifier)))) (VariableIdentifier))) (Statements { (VariableIdentifier) ->(VariableIdentifier) })) (TypeSignature { (VariableIdentifier) ->(VariableIdentifier) } (ContextAlt (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (Statements (QuotedName (TypeConstructorIdentifier)) (TypeVariableIdentifier))) (EqualityConstraint (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (QuotedName (TypeConstructorIdentifier)) (TypeVariableIdentifier))))) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (VariableIdentifier) (Statements (App (VariableIdentifier) (Empty) (VariableIdentifier)) (Statements (Function (VariableIdentifier) (LabeledPattern (Statements (ConstructorIdentifier) (RecordWildCards))) (Statements (Let (Function (VariableIdentifier) (Statements (App (App (VariableIdentifier) (Empty) (RightOperatorSection (VariableOperator (VariableSymbol)) (Character))) (Empty) (App (VariableIdentifier) (Empty) (VariableIdentifier))))) (App (App (VariableIdentifier) (Empty) (VariableIdentifier)) (Empty) (VariableIdentifier)))))))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/function-declarations.diffB-A.txt ================================================ (Module (Empty) (Statements {+(Function {+(VariableIdentifier)+} {+(VariableIdentifier)+} {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(Integer)+})+})+} {+(Statements {+(App {+(ConstructorIdentifier)+} {+(Empty)+} {+(Integer)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(AsPattern {+(VariableIdentifier)+} {+(VariableIdentifier)+})+} {+(AsPattern {+(VariableIdentifier)+} {+(VariableIdentifier)+})+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Wildcard)+} {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Integer)+} {+(Integer)+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(TextElement)+} {+(TextElement)+} {+(Statements {+(TextElement)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Character)+} {+(Character)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Float)+} {+(Float)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(LabeledPattern {+(Statements {+(ConstructorIdentifier)+} {+(FieldPattern {+(VariableIdentifier)+} {+(Integer)+})+})+})+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(LabeledPattern {+(Statements {+(ConstructorIdentifier)+} {+(FieldPattern {+(VariableIdentifier)+} {+(Integer)+})+} {+(FieldPattern {+(VariableIdentifier)+} {+(Integer)+})+})+})+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(LabeledPattern {+(ConstructorIdentifier)+})+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(LabeledPattern {+(Statements {+(ConstructorIdentifier)+} {+(NamedFieldPun {+(VariableIdentifier)+})+} {+(NamedFieldPun {+(VariableIdentifier)+})+})+})+} {+(Statements {+(Array {+(VariableIdentifier)+} {+(VariableIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(LabeledPattern {+(Statements {+(ConstructorIdentifier)+} {+(RecordWildCards)+})+})+} {+(Statements {+(Array {+(VariableIdentifier)+} {+(VariableIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(LabeledPattern {+(Statements {+(ConstructorIdentifier)+} {+(NamedFieldPun {+(VariableIdentifier)+})+} {+(FieldPattern {+(VariableIdentifier)+} {+(VariableIdentifier)+})+} {+(RecordWildCards)+})+})+} {+(Statements {+(Array {+(VariableIdentifier)+} {+(VariableIdentifier)+} {+(VariableIdentifier)+} {+(VariableIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Integer)+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(NegativeLiteral {+(Integer)+})+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(VariableIdentifier)+} {+(VariableIdentifier)+} {+(VariableIdentifier)+})+})+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(ConstructorOperator {+(ConstructorSymbol)+})+} {+(VariableIdentifier)+})+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(ListConstructor)+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(TuplePattern {+(Integer)+} {+(Integer)+})+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(TuplePattern {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(Integer)+})+})+} {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(Integer)+})+})+})+} {+(Statements {+(App {+(ConstructorIdentifier)+} {+(Empty)+} {+(Integer)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(TuplePattern {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(VariableIdentifier)+})+})+} {+(ConstructorIdentifier)+})+} {+(Statements {+(ConstructorIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(TuplePattern {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(VariableIdentifier)+})+})+} {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(VariableIdentifier)+})+})+} {+(NegativeLiteral {+(Integer)+})+})+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(ListConstructor)+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(ListPattern {+(VariableIdentifier)+})+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(ConstructorOperator {+(ConstructorSymbol)+})+} {+(VariableIdentifier)+})+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(ConstructorOperator {+(ConstructorSymbol)+})+} {+(VariableIdentifier)+} {+(ConstructorOperator {+(ConstructorSymbol)+})+} {+(VariableIdentifier)+})+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(ConstructorOperator {+(ConstructorSymbol)+})+} {+(VariableIdentifier)+} {+(ConstructorOperator {+(ConstructorSymbol)+})+} {+(VariableIdentifier)+} {+(ConstructorOperator {+(ConstructorSymbol)+})+} {+(VariableIdentifier)+})+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(IrrefutablePattern {+(VariableIdentifier)+})+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(IrrefutablePattern {+(NegativeLiteral {+(Integer)+})+})+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(IrrefutablePattern {+(TuplePattern {+(IrrefutablePattern {+(TuplePattern {+(VariableIdentifier)+} {+(VariableIdentifier)+})+})+} {+(VariableIdentifier)+})+})+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(VariableIdentifier)+} {+(Statements {+(Match {+(VariableIdentifier)+} {+(Pattern {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(VariableIdentifier)+})+})+} {+(Statements {+(CaseGuardPattern {+(Guard {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(Integer)+})+})+} {+(ConstructorIdentifier)+})+} {+(CaseGuardPattern {+(Guard {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(Integer)+})+})+} {+(ConstructorIdentifier)+})+} {+(CaseGuardPattern {+(Guard {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(Integer)+})+})+} {+(ConstructorIdentifier)+})+})+})+})+})+})+} (Function (VariableIdentifier) { (VariableIdentifier) ->(VariableIdentifier) } {-(VariableIdentifier)-} (Statements {+(Match {+(VariableIdentifier)+} {+(Statements {+(Pattern {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(VariableIdentifier)+})+})+} {+(CaseGuardPattern {+(Guard {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(Integer)+})+})+} {+(Guard {+(ConstructorIdentifier)+})+} {+(Guard {+(Let {+(TypeSignature {+(VariableIdentifier)+} {+(FunctionType {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Empty)+})+})+} {+(ConstructorIdentifier)+})+})+} {+(Pattern {+(ConstructorIdentifier)+} {+(ConstructorIdentifier)+})+})+})+} {-(VariableIdentifier)-})) {-(Function {-(VariableIdentifier)-} {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(Integer)-})-})-} {-(Statements {-(App {-(ConstructorIdentifier)-} {-(Empty)-} {-(Integer)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(AsPattern {-(VariableIdentifier)-} {-(VariableIdentifier)-})-} {-(AsPattern {-(VariableIdentifier)-} {-(VariableIdentifier)-})-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Wildcard)-} {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Integer)-} {-(Integer)-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(TextElement)-} {-(TextElement)-} {-(Statements {-(TextElement)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Character)-} {-(Character)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Float)-} {-(Float)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(LabeledPattern {-(Statements {-(ConstructorIdentifier)-} {-(FieldPattern {-(VariableIdentifier)-} {-(Integer)-})-})-})-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(LabeledPattern {-(Statements {-(ConstructorIdentifier)-} {-(FieldPattern {-(VariableIdentifier)-} {-(Integer)-})-} {-(FieldPattern {-(VariableIdentifier)-} {-(Integer)-})-})-})-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(LabeledPattern {-(ConstructorIdentifier)-})-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(LabeledPattern {-(Statements {-(ConstructorIdentifier)-} {-(NamedFieldPun {-(VariableIdentifier)-})-} {-(NamedFieldPun {-(VariableIdentifier)-})-})-})-} {-(Statements {-(Array {-(VariableIdentifier)-} {-(VariableIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(LabeledPattern {-(Statements {-(ConstructorIdentifier)-} {-(RecordWildCards)-})-})-} {-(Statements {-(Array {-(VariableIdentifier)-} {-(VariableIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(LabeledPattern {-(Statements {-(ConstructorIdentifier)-} {-(NamedFieldPun {-(VariableIdentifier)-})-} {-(FieldPattern {-(VariableIdentifier)-} {-(VariableIdentifier)-})-} {-(RecordWildCards)-})-})-} {-(Statements {-(Array {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(VariableIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(AsPattern {-(VariableIdentifier)-} {-(LabeledPattern {-(Statements {-(ConstructorIdentifier)-} {-(FieldPattern {-(VariableIdentifier)-} {-(Integer)-})-})-})-})-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Integer)-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(NegativeLiteral {-(Integer)-})-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(VariableIdentifier)-})-})-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-} {-(ConstructorOperator {-(ConstructorSymbol)-})-} {-(VariableIdentifier)-})-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(ListConstructor)-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(TuplePattern {-(Integer)-} {-(Integer)-})-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(TuplePattern {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(Integer)-})-})-} {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(Integer)-})-})-})-} {-(Statements {-(App {-(ConstructorIdentifier)-} {-(Empty)-} {-(Integer)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(TuplePattern {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(VariableIdentifier)-})-})-} {-(ConstructorIdentifier)-})-} {-(Statements {-(ConstructorIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(TuplePattern {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(VariableIdentifier)-})-})-} {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(VariableIdentifier)-})-})-} {-(NegativeLiteral {-(Integer)-})-})-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(ListConstructor)-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(ListPattern {-(VariableIdentifier)-})-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-} {-(ConstructorOperator {-(ConstructorSymbol)-})-} {-(VariableIdentifier)-})-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-} {-(ConstructorOperator {-(ConstructorSymbol)-})-} {-(VariableIdentifier)-} {-(ConstructorOperator {-(ConstructorSymbol)-})-} {-(VariableIdentifier)-})-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-} {-(ConstructorOperator {-(ConstructorSymbol)-})-} {-(VariableIdentifier)-} {-(ConstructorOperator {-(ConstructorSymbol)-})-} {-(VariableIdentifier)-} {-(ConstructorOperator {-(ConstructorSymbol)-})-} {-(VariableIdentifier)-})-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(IrrefutablePattern {-(VariableIdentifier)-})-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(IrrefutablePattern {-(NegativeLiteral {-(Integer)-})-})-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(IrrefutablePattern {-(TuplePattern {-(IrrefutablePattern {-(TuplePattern {-(VariableIdentifier)-} {-(VariableIdentifier)-})-})-} {-(VariableIdentifier)-})-})-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(Statements {-(Match {-(VariableIdentifier)-} {-(Pattern {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(VariableIdentifier)-})-})-} {-(Statements {-(CaseGuardPattern {-(Guard {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(Integer)-})-})-} {-(ConstructorIdentifier)-})-} {-(CaseGuardPattern {-(Guard {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(Integer)-})-})-} {-(ConstructorIdentifier)-})-} {-(CaseGuardPattern {-(Guard {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(Integer)-})-})-} {-(ConstructorIdentifier)-})-})-})-})-})-})-} (Function (VariableIdentifier) (VariableIdentifier) (Statements (Match (VariableIdentifier) (Statements (Pattern (ConstructorPattern (Statements (ConstructorIdentifier) {+(Wildcard)+} {-(VariableIdentifier)-})) { (CaseGuardPattern {-(Guard {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(Integer)-})-})-} {-(Guard {-(ConstructorIdentifier)-})-} {-(Guard {-(Let {-(TypeSignature {-(VariableIdentifier)-} {-(FunctionType {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Empty)-})-})-} {-(ConstructorIdentifier)-}) ->(Statements {+(VariableIdentifier)+} {+(Statements {+(Function {+(VariableIdentifier)+} {+(Statements {+(ConstructorIdentifier)+})+})+})+}) }) (Pattern (ConstructorIdentifier) (ConstructorIdentifier)))))) {+(Function {+(VariableIdentifier)+} {+(VariableIdentifier)+} {+(Statements {+(Match {+(VariableIdentifier)+} {+(Statements {+(Pattern {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(VariableIdentifier)+})+})+} {+(Statements {+(VariableIdentifier)+} {+(Statements {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+})+})+})+})+})+} {+(Pattern {+(ConstructorIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(Statements {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+})+})+})+})+})+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(VariableIdentifier)+} {+(Statements {+(Match {+(VariableIdentifier)+} {+(Statements {+(Pattern {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(VariableIdentifier)+})+})+} {+(VariableIdentifier)+})+} {+(Pattern {+(ConstructorIdentifier)+} {+(VariableIdentifier)+})+} {+(Statements {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+})+})+})+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Lambda {+(VariableIdentifier)+} {+(Match {+(VariableIdentifier)+} {+(Pattern {+(ConstructorIdentifier)+} {+(VariableIdentifier)+})+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(App {+(VariableIdentifier)+} {+(Empty)+} {+(VariableIdentifier)+})+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(LambdaCase {+(Pattern {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(Wildcard)+} {+(Wildcard)+} {+(Wildcard)+} {+(Wildcard)+} {+(VariableIdentifier)+} {+(Wildcard)+})+})+})+})+} {+(Do {+(BindPattern {+(VariableIdentifier)+} {+(InfixOperatorApp {+(App {+(VariableIdentifier)+} {+(Empty)+} {+(App {+(VariableIdentifier)+} {+(Empty)+} {+(VariableIdentifier)+})+})+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(App {+(App {+(VariableIdentifier)+} {+(Empty)+} {+(VariableIdentifier)+})+} {+(Empty)+} {+(VariableIdentifier)+})+})+})+} {+(BindPattern {+(VariableIdentifier)+} {+(App {+(App {+(VariableIdentifier)+} {+(Empty)+} {+(VariableIdentifier)+})+} {+(Empty)+} {+(VariableIdentifier)+})+})+} {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(VariableIdentifier)+})+})+})+})+} {+(Pattern {+(Wildcard)+} {+(App {+(VariableIdentifier)+} {+(Empty)+} {+(TextElement)+})+})+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(VariableIdentifier)+} {+(Statements {+(FunctionGuardPattern {+(Guard {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(Integer)+})+})+} {+(Guard {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(Integer)+})+})+} {+(ConstructorIdentifier)+})+} {+(FunctionGuardPattern {+(Guard {+(VariableIdentifier)+})+} {+(ConstructorIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(VariableIdentifier)+} {+(Statements {+(Do {+(Let {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Empty)+})+} {+(BindPattern {+(VariableIdentifier)+} {+(VariableIdentifier)+})+} {+(App {+(VariableIdentifier)+} {+(Empty)+} {+(VariableIdentifier)+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(VariableIdentifier)+} {+(Statements {+(Do {+(Let {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Empty)+})+} {+(VariableIdentifier)+} {+(VariableIdentifier)+} {+(Statements {+(Function {+(VariableIdentifier)+} {+(Statements {+(App {+(VariableIdentifier)+} {+(Empty)+} {+(VariableIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+})+})+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(AsPattern {+(VariableIdentifier)+} {+(ConstructorIdentifier)+})+} {+(Statements {+(LabeledUpdate {+(VariableIdentifier)+} {+(FieldBind {+(VariableIdentifier)+} {+(Integer)+})+} {+(FieldBind {+(VariableIdentifier)+} {+(Integer)+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(AsPattern {+(VariableIdentifier)+} {+(LabeledPattern {+(Statements {+(ConstructorIdentifier)+} {+(FieldPattern {+(VariableIdentifier)+} {+(VariableIdentifier)+})+} {+(FieldPattern {+(VariableIdentifier)+} {+(VariableIdentifier)+})+})+})+})+} {+(Statements {+(LabeledUpdate {+(VariableIdentifier)+} {+(FieldBind {+(VariableIdentifier)+} {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(Integer)+})+})+} {+(FieldBind {+(VariableIdentifier)+} {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(TextElement)+})+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(TypeApp {+(ConstructorIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(TypeApp {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(TextElement)+})+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(TypeApp {+(ConstructorPattern {+(Statements {+(QualifiedConstructorIdentifier {+(ModuleIdentifier)+} {+(ConstructorIdentifier)+})+} {+(TextElement)+})+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(VariableIdentifier)+} {+(TypeApp {+(ConstructorIdentifier)+})+} {+(VariableOperator {+(VariableSymbol)+})+} {+(QualifiedVariableIdentifier {+(ModuleIdentifier)+} {+(VariableIdentifier)+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(VariableIdentifier)+} {+(TypeApp {+(QualifiedConstructorIdentifier {+(ModuleIdentifier)+} {+(ConstructorIdentifier)+})+})+} {+(VariableOperator {+(VariableSymbol)+})+} {+(QualifiedVariableIdentifier {+(ModuleIdentifier)+} {+(VariableIdentifier)+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(VariableIdentifier)+} {+(TypeApp {+(ConstructorIdentifier)+})+} {+(VariableOperator {+(VariableSymbol)+})+} {+(VariableIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(VariableIdentifier)+} {+(TypeApp {+(QualifiedConstructorIdentifier {+(ModuleIdentifier)+} {+(ConstructorIdentifier)+})+})+} {+(VariableOperator {+(VariableSymbol)+})+} {+(QualifiedVariableIdentifier {+(ModuleIdentifier)+} {+(VariableIdentifier)+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(VariableIdentifier)+} {+(TypeApp {+(ConstructorIdentifier)+})+} {+(VariableOperator {+(VariableSymbol)+})+} {+(VariableIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(VariableIdentifier)+} {+(TypeApp {+(QualifiedConstructorIdentifier {+(ModuleIdentifier)+} {+(ConstructorIdentifier)+})+})+} {+(VariableOperator {+(VariableSymbol)+})+} {+(QualifiedVariableIdentifier {+(ModuleIdentifier)+} {+(VariableIdentifier)+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(VariableIdentifier)+} {+(TypeApp {+(ConstructorIdentifier)+})+} {+(VariableOperator {+(VariableSymbol)+})+} {+(VariableIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(VariableIdentifier)+} {+(TypeApp {+(QualifiedConstructorIdentifier {+(ModuleIdentifier)+} {+(ConstructorIdentifier)+})+})+} {+(VariableOperator {+(VariableSymbol)+})+} {+(QualifiedVariableIdentifier {+(ModuleIdentifier)+} {+(VariableIdentifier)+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(TypeApp {+(App {+(VariableIdentifier)+} {+(Empty)+} {+(App {+(ConstructorIdentifier)+} {+(Empty)+} {+(VariableIdentifier)+})+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(QualifiedVariableIdentifier {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(VariableIdentifier)+})+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(VariableIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(QualifiedVariableIdentifier {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(VariableIdentifier)+})+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(QualifiedVariableIdentifier {+(ModuleIdentifier)+} {+(VariableIdentifier)+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(QualifiedVariableIdentifier {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(VariableIdentifier)+})+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(VariableIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(QualifiedVariableIdentifier {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(VariableIdentifier)+})+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(QualifiedVariableIdentifier {+(ModuleIdentifier)+} {+(VariableIdentifier)+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(QualifiedVariableIdentifier {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(VariableIdentifier)+})+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(VariableIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(QualifiedVariableIdentifier {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(VariableIdentifier)+})+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(QualifiedVariableIdentifier {+(ModuleIdentifier)+} {+(VariableIdentifier)+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(QualifiedVariableIdentifier {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(VariableIdentifier)+})+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(VariableIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(QualifiedVariableIdentifier {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(VariableIdentifier)+})+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(QualifiedVariableIdentifier {+(ModuleIdentifier)+} {+(VariableIdentifier)+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(ConstructorIdentifier)+} {+(Empty)+} {+(PromotedTypeOperator {+(ConstructorOperator {+(ConstructorSymbol)+})+})+} {+(ConstructorIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(ConstructorIdentifier)+} {+(Empty)+} {+(PromotedTypeOperator {+(ConstructorOperator {+(ConstructorSymbol)+})+})+} {+(ConstructorIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableOperator {+(VariableSymbol)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(InfixOperatorApp {+(VariableIdentifier)+} {+(Empty)+} {+(VariableOperator {+(VariableSymbol)+})+} {+(Statements)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+} {+(Statements)+})+})+} (Function (VariableIdentifier) {-(VariableIdentifier)-} (Statements {+(Integer)+} {+(Statements)+} {-(Match {-(VariableIdentifier)-} {-(Statements {-(Pattern {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(Wildcard)-})-})-} {-(Statements {-(VariableIdentifier)-} {-(Statements {-(Function {-(VariableIdentifier)-} {-(Statements {-(ConstructorIdentifier)-})-})-})-})-})-} {-(Pattern {-(ConstructorIdentifier)-} {-(ConstructorIdentifier)-})-})-})-})) {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(Statements {+(Comment)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(Statements {+(Comment)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(Statements {+(Comment)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(Statements {+(Pragma)+})+})+})+} {-(Function {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(Statements {-(Match {-(VariableIdentifier)-} {-(Statements {-(Pattern {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(VariableIdentifier)-})-})-} {-(Statements {-(VariableIdentifier)-} {-(Statements {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-})-})-})-})-})-} {-(Pattern {-(ConstructorIdentifier)-} {-(Statements {-(VariableIdentifier)-} {-(Statements {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-})-})-})-})-})-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(Statements {-(Match {-(VariableIdentifier)-} {-(Statements {-(Pattern {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(VariableIdentifier)-})-})-} {-(VariableIdentifier)-})-} {-(Pattern {-(ConstructorIdentifier)-} {-(VariableIdentifier)-})-} {-(Statements {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-})-})-})-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Lambda {-(VariableIdentifier)-} {-(Match {-(VariableIdentifier)-} {-(Pattern {-(ConstructorIdentifier)-} {-(VariableIdentifier)-})-})-})-})-})-} (Function (VariableIdentifier) (Statements {+(Integer)+} {-(InfixOperatorApp {-(App {-(VariableIdentifier)-} {-(Empty)-} {-(VariableIdentifier)-})-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(LambdaCase {-(Pattern {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(Wildcard)-} {-(Wildcard)-} {-(Wildcard)-} {-(Wildcard)-} {-(VariableIdentifier)-} {-(Wildcard)-})-})-})-})-} {-(Do {-(BindPattern {-(VariableIdentifier)-} {-(InfixOperatorApp {-(App {-(VariableIdentifier)-} {-(Empty)-} {-(App {-(VariableIdentifier)-} {-(Empty)-} {-(VariableIdentifier)-})-})-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(App {-(App {-(VariableIdentifier)-} {-(Empty)-} {-(VariableIdentifier)-})-} {-(Empty)-} {-(VariableIdentifier)-})-})-})-} {-(BindPattern {-(VariableIdentifier)-} {-(App {-(App {-(VariableIdentifier)-} {-(Empty)-} {-(VariableIdentifier)-})-} {-(Empty)-} {-(VariableIdentifier)-})-})-} {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(VariableIdentifier)-})-})-})-})-} {-(Pattern {-(Wildcard)-} {-(App {-(VariableIdentifier)-} {-(Empty)-} {-(TextElement)-})-})-})-})-})) {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+} {+(ConstructorOperator {+(ConstructorSymbol)+})+} {+(VariableIdentifier)+})+} {+(ViewPattern {+(App {+(VariableIdentifier)+} {+(Empty)+} {+(VariableIdentifier)+})+} {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(VariableIdentifier)+} {+(VariableIdentifier)+})+})+})+} {+(Statements {+(VariableIdentifier)+})+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(ContextAlt {+(TypeSignature {+(ImplicitParameterIdentifier)+} {+(FunctionType {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(FunctionType {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+})+})+} {+(FunctionType {+(Type {+(Array {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(Array {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(App {+(VariableIdentifier)+} {+(Empty)+} {+(ImplicitParameterIdentifier)+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(AnnotatedTypeVariable {+(TypeVariableIdentifier)+} {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(VariableIdentifier)+} {+(VariableIdentifier)+})+})+})+} {+(VariableIdentifier)+})+})+} {+(Statements {+(VariableIdentifier)+})+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(ContextAlt {+(Statements {+(Class {+(TypeClassIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Class {+(TypeClassIdentifier)+} {+(Statements {+(QuotedName {+(TypeConstructorIdentifier)+})+} {+(TypeVariableIdentifier)+})+})+} {+(EqualityConstraint {+(Class {+(TypeClassIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Class {+(QuotedName {+(TypeConstructorIdentifier)+})+} {+(TypeVariableIdentifier)+})+})+})+})+} {+(FunctionType {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(FunctionType {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+} {+(FunctionType {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(VariableIdentifier)+} {+(Statements {+(App {+(VariableIdentifier)+} {+(Empty)+} {+(VariableIdentifier)+})+} {+(Statements {+(Function {+(VariableIdentifier)+} {+(LabeledPattern {+(Statements {+(ConstructorIdentifier)+} {+(RecordWildCards)+})+})+} {+(Statements {+(Let {+(Function {+(VariableIdentifier)+} {+(Statements {+(App {+(App {+(VariableIdentifier)+} {+(Empty)+} {+(RightOperatorSection {+(VariableOperator {+(VariableSymbol)+})+} {+(Character)+})+})+} {+(Empty)+} {+(App {+(VariableIdentifier)+} {+(Empty)+} {+(VariableIdentifier)+})+})+})+})+} {+(App {+(App {+(VariableIdentifier)+} {+(Empty)+} {+(VariableIdentifier)+})+} {+(Empty)+} {+(VariableIdentifier)+})+})+})+})+})+})+})+} {-(Function {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(Statements {-(FunctionGuardPattern {-(Guard {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(Integer)-})-})-} {-(Guard {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(Integer)-})-})-} {-(ConstructorIdentifier)-})-} {-(FunctionGuardPattern {-(Guard {-(VariableIdentifier)-})-} {-(ConstructorIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(Statements {-(Do {-(Let {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Empty)-})-} {-(BindPattern {-(VariableIdentifier)-} {-(VariableIdentifier)-})-} {-(App {-(VariableIdentifier)-} {-(Empty)-} {-(VariableIdentifier)-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(Statements {-(Do {-(Let {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Empty)-})-} {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(Statements {-(Function {-(VariableIdentifier)-} {-(Statements {-(App {-(VariableIdentifier)-} {-(Empty)-} {-(VariableIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-})-})-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(AsPattern {-(VariableIdentifier)-} {-(ConstructorIdentifier)-})-} {-(Statements {-(LabeledUpdate {-(VariableIdentifier)-} {-(FieldBind {-(VariableIdentifier)-} {-(Integer)-})-} {-(FieldBind {-(VariableIdentifier)-} {-(Integer)-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(AsPattern {-(VariableIdentifier)-} {-(LabeledPattern {-(Statements {-(ConstructorIdentifier)-} {-(FieldPattern {-(VariableIdentifier)-} {-(VariableIdentifier)-})-} {-(FieldPattern {-(VariableIdentifier)-} {-(VariableIdentifier)-})-})-})-})-} {-(Statements {-(LabeledUpdate {-(VariableIdentifier)-} {-(FieldBind {-(VariableIdentifier)-} {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(Integer)-})-})-} {-(FieldBind {-(VariableIdentifier)-} {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(TextElement)-})-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-} {-(TypeApp {-(ConstructorIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-} {-(TypeApp {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(TextElement)-})-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-} {-(TypeApp {-(ConstructorPattern {-(Statements {-(QualifiedConstructorIdentifier {-(ModuleIdentifier)-} {-(ConstructorIdentifier)-})-} {-(TextElement)-})-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(VariableIdentifier)-} {-(TypeApp {-(ConstructorIdentifier)-})-} {-(VariableOperator {-(VariableSymbol)-})-} {-(QualifiedVariableIdentifier {-(ModuleIdentifier)-} {-(VariableIdentifier)-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(VariableIdentifier)-} {-(TypeApp {-(QualifiedConstructorIdentifier {-(ModuleIdentifier)-} {-(ConstructorIdentifier)-})-})-} {-(VariableOperator {-(VariableSymbol)-})-} {-(QualifiedVariableIdentifier {-(ModuleIdentifier)-} {-(VariableIdentifier)-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(VariableIdentifier)-} {-(TypeApp {-(ConstructorIdentifier)-})-} {-(VariableOperator {-(VariableSymbol)-})-} {-(VariableIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(VariableIdentifier)-} {-(TypeApp {-(QualifiedConstructorIdentifier {-(ModuleIdentifier)-} {-(ConstructorIdentifier)-})-})-} {-(VariableOperator {-(VariableSymbol)-})-} {-(QualifiedVariableIdentifier {-(ModuleIdentifier)-} {-(VariableIdentifier)-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(VariableIdentifier)-} {-(TypeApp {-(ConstructorIdentifier)-})-} {-(VariableOperator {-(VariableSymbol)-})-} {-(VariableIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(VariableIdentifier)-} {-(TypeApp {-(QualifiedConstructorIdentifier {-(ModuleIdentifier)-} {-(ConstructorIdentifier)-})-})-} {-(VariableOperator {-(VariableSymbol)-})-} {-(QualifiedVariableIdentifier {-(ModuleIdentifier)-} {-(VariableIdentifier)-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(VariableIdentifier)-} {-(TypeApp {-(ConstructorIdentifier)-})-} {-(VariableOperator {-(VariableSymbol)-})-} {-(VariableIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(VariableIdentifier)-} {-(TypeApp {-(QualifiedConstructorIdentifier {-(ModuleIdentifier)-} {-(ConstructorIdentifier)-})-})-} {-(VariableOperator {-(VariableSymbol)-})-} {-(QualifiedVariableIdentifier {-(ModuleIdentifier)-} {-(VariableIdentifier)-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-} {-(TypeApp {-(App {-(VariableIdentifier)-} {-(Empty)-} {-(App {-(ConstructorIdentifier)-} {-(Empty)-} {-(VariableIdentifier)-})-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(QualifiedVariableIdentifier {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(VariableIdentifier)-})-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(VariableIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(QualifiedVariableIdentifier {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(VariableIdentifier)-})-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(QualifiedVariableIdentifier {-(ModuleIdentifier)-} {-(VariableIdentifier)-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(QualifiedVariableIdentifier {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(VariableIdentifier)-})-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(VariableIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(QualifiedVariableIdentifier {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(VariableIdentifier)-})-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(QualifiedVariableIdentifier {-(ModuleIdentifier)-} {-(VariableIdentifier)-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(QualifiedVariableIdentifier {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(VariableIdentifier)-})-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(VariableIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(QualifiedVariableIdentifier {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(VariableIdentifier)-})-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(QualifiedVariableIdentifier {-(ModuleIdentifier)-} {-(VariableIdentifier)-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(QualifiedVariableIdentifier {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(VariableIdentifier)-})-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(VariableIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(QualifiedVariableIdentifier {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(VariableIdentifier)-})-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(QualifiedVariableIdentifier {-(ModuleIdentifier)-} {-(VariableIdentifier)-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(ConstructorIdentifier)-} {-(Empty)-} {-(PromotedTypeOperator {-(ConstructorOperator {-(ConstructorSymbol)-})-})-} {-(ConstructorIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(ConstructorIdentifier)-} {-(Empty)-} {-(PromotedTypeOperator {-(ConstructorOperator {-(ConstructorSymbol)-})-})-} {-(ConstructorIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableOperator {-(VariableSymbol)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(InfixOperatorApp {-(VariableIdentifier)-} {-(Empty)-} {-(VariableOperator {-(VariableSymbol)-})-} {-(Statements)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-} {-(Statements)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-} {-(Statements)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-} {-(Statements {-(Comment)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-} {-(Statements {-(Comment)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-} {-(Statements {-(Comment)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-} {-(Statements {-(Pragma)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-} {-(ConstructorOperator {-(ConstructorSymbol)-})-} {-(VariableIdentifier)-})-} {-(ViewPattern {-(App {-(VariableIdentifier)-} {-(Empty)-} {-(VariableIdentifier)-})-} {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(VariableIdentifier)-} {-(VariableIdentifier)-})-})-})-} {-(Statements {-(VariableIdentifier)-})-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(ContextAlt {-(TypeSignature {-(ImplicitParameterIdentifier)-} {-(FunctionType {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(FunctionType {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-})-})-} {-(FunctionType {-(Type {-(Array {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(Array {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(App {-(VariableIdentifier)-} {-(Empty)-} {-(ImplicitParameterIdentifier)-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(AnnotatedTypeVariable {-(TypeVariableIdentifier)-} {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(VariableIdentifier)-} {-(VariableIdentifier)-})-})-})-} {-(VariableIdentifier)-})-})-} {-(Statements {-(VariableIdentifier)-})-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(ContextAlt {-(Statements {-(Class {-(TypeClassIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Class {-(TypeClassIdentifier)-} {-(Statements {-(QuotedName {-(TypeConstructorIdentifier)-})-} {-(TypeVariableIdentifier)-})-})-} {-(EqualityConstraint {-(Class {-(TypeClassIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Class {-(QuotedName {-(TypeConstructorIdentifier)-})-} {-(TypeVariableIdentifier)-})-})-})-})-} {-(FunctionType {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(FunctionType {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-} {-(FunctionType {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(Statements {-(App {-(VariableIdentifier)-} {-(Empty)-} {-(VariableIdentifier)-})-} {-(Statements {-(Function {-(VariableIdentifier)-} {-(LabeledPattern {-(Statements {-(ConstructorIdentifier)-} {-(RecordWildCards)-})-})-} {-(Statements {-(Let {-(Function {-(VariableIdentifier)-} {-(Statements {-(App {-(App {-(VariableIdentifier)-} {-(Empty)-} {-(RightOperatorSection {-(VariableOperator {-(VariableSymbol)-})-} {-(Character)-})-})-} {-(Empty)-} {-(App {-(VariableIdentifier)-} {-(Empty)-} {-(VariableIdentifier)-})-})-})-})-} {-(App {-(App {-(VariableIdentifier)-} {-(Empty)-} {-(VariableIdentifier)-})-} {-(Empty)-} {-(VariableIdentifier)-})-})-})-})-})-})-})-})) ================================================ FILE: semantic/test/fixtures/haskell/corpus/function-declarations.parseA.txt ================================================ (Module (Empty) (Statements (Function (VariableIdentifier) (VariableIdentifier) (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (ConstructorPattern (Statements (ConstructorIdentifier) (Integer))) (Statements (App (ConstructorIdentifier) (Empty) (Integer)))) (Function (VariableIdentifier) (AsPattern (VariableIdentifier) (VariableIdentifier)) (AsPattern (VariableIdentifier) (VariableIdentifier)) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Wildcard) (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Integer) (Integer) (Statements (Integer))) (Function (VariableIdentifier) (TextElement) (TextElement) (Statements (TextElement))) (Function (VariableIdentifier) (Character) (Character) (Statements (Character))) (Function (VariableIdentifier) (Float) (Float) (Statements (Float))) (Function (VariableIdentifier) (LabeledPattern (Statements (ConstructorIdentifier) (FieldPattern (VariableIdentifier) (Integer)))) (Statements (Integer))) (Function (VariableIdentifier) (LabeledPattern (Statements (ConstructorIdentifier) (FieldPattern (VariableIdentifier) (Integer)) (FieldPattern (VariableIdentifier) (Integer)))) (Statements (Integer))) (Function (VariableIdentifier) (LabeledPattern (ConstructorIdentifier)) (Statements (Integer))) (Function (VariableIdentifier) (LabeledPattern (Statements (ConstructorIdentifier) (NamedFieldPun (VariableIdentifier)) (NamedFieldPun (VariableIdentifier)))) (Statements (Array (VariableIdentifier) (VariableIdentifier)))) (Function (VariableIdentifier) (LabeledPattern (Statements (ConstructorIdentifier) (RecordWildCards))) (Statements (Array (VariableIdentifier) (VariableIdentifier)))) (Function (VariableIdentifier) (LabeledPattern (Statements (ConstructorIdentifier) (NamedFieldPun (VariableIdentifier)) (FieldPattern (VariableIdentifier) (VariableIdentifier)) (RecordWildCards))) (Statements (Array (VariableIdentifier) (VariableIdentifier) (VariableIdentifier) (VariableIdentifier)))) (Function (VariableIdentifier) (Integer) (Statements (Integer))) (Function (VariableIdentifier) (NegativeLiteral (Integer)) (Statements (Integer))) (Function (VariableIdentifier) (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier) (VariableIdentifier) (VariableIdentifier))) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier)) (Statements (Integer))) (Function (VariableIdentifier) (ListConstructor) (Statements (Integer))) (Function (VariableIdentifier) (TuplePattern (Integer) (Integer)) (Statements (Integer))) (Function (VariableIdentifier) (TuplePattern (ConstructorPattern (Statements (ConstructorIdentifier) (Integer))) (ConstructorPattern (Statements (ConstructorIdentifier) (Integer)))) (Statements (App (ConstructorIdentifier) (Empty) (Integer)))) (Function (VariableIdentifier) (TuplePattern (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))) (ConstructorIdentifier)) (Statements (ConstructorIdentifier))) (Function (VariableIdentifier) (TuplePattern (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))) (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))) (NegativeLiteral (Integer))) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (ListConstructor) (Statements (Integer))) (Function (VariableIdentifier) (ListPattern (VariableIdentifier)) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier)) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier) (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier)) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier) (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier) (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier)) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (IrrefutablePattern (VariableIdentifier)) (Statements (Integer))) (Function (VariableIdentifier) (IrrefutablePattern (NegativeLiteral (Integer))) (Statements (Integer))) (Function (VariableIdentifier) (IrrefutablePattern (TuplePattern (IrrefutablePattern (TuplePattern (VariableIdentifier) (VariableIdentifier))) (VariableIdentifier))) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (VariableIdentifier) (Statements (Match (VariableIdentifier) (Pattern (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))) (Statements (CaseGuardPattern (Guard (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (Integer))) (ConstructorIdentifier)) (CaseGuardPattern (Guard (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (Integer))) (ConstructorIdentifier)) (CaseGuardPattern (Guard (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (Integer))) (ConstructorIdentifier))))))) (Function (VariableIdentifier) (VariableIdentifier) (Statements (Match (VariableIdentifier) (Statements (Pattern (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))) (CaseGuardPattern (Guard (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (Integer))) (Guard (ConstructorIdentifier)) (Guard (Let (TypeSignature (VariableIdentifier) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))) (Function (VariableIdentifier) (VariableIdentifier) (Statements (VariableIdentifier))) (Empty))) (ConstructorIdentifier))) (Pattern (ConstructorIdentifier) (ConstructorIdentifier)))))) (Function (VariableIdentifier) (VariableIdentifier) (Statements (Match (VariableIdentifier) (Statements (Pattern (ConstructorPattern (Statements (ConstructorIdentifier) (Wildcard))) (Statements (VariableIdentifier) (Statements (Function (VariableIdentifier) (Statements (ConstructorIdentifier)))))) (Pattern (ConstructorIdentifier) (ConstructorIdentifier)))))) (Function (VariableIdentifier) (VariableIdentifier) (Statements (Match (VariableIdentifier) (Statements (Pattern (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))) (Statements (VariableIdentifier) (Statements (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (Integer)))))) (Pattern (ConstructorIdentifier) (Statements (VariableIdentifier) (Statements (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (Integer)))))))))) (Function (VariableIdentifier) (VariableIdentifier) (Statements (Match (VariableIdentifier) (Statements (Pattern (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))) (VariableIdentifier)) (Pattern (ConstructorIdentifier) (VariableIdentifier)) (Statements (Function (VariableIdentifier) (Statements (Integer))) (Function (VariableIdentifier) (Statements (Integer)))))))) (Function (VariableIdentifier) (Statements (Lambda (VariableIdentifier) (Match (VariableIdentifier) (Pattern (ConstructorIdentifier) (VariableIdentifier)))))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (App (VariableIdentifier) (Empty) (VariableIdentifier)) (Empty) (VariableOperator (VariableSymbol)) (LambdaCase (Pattern (ConstructorPattern (Statements (ConstructorIdentifier) (ConstructorPattern (Statements (ConstructorIdentifier) (Wildcard) (Wildcard) (Wildcard) (Wildcard) (VariableIdentifier) (Wildcard))))) (Do (BindPattern (VariableIdentifier) (InfixOperatorApp (App (VariableIdentifier) (Empty) (App (VariableIdentifier) (Empty) (VariableIdentifier))) (Empty) (VariableOperator (VariableSymbol)) (App (App (VariableIdentifier) (Empty) (VariableIdentifier)) (Empty) (VariableIdentifier)))) (BindPattern (VariableIdentifier) (App (App (VariableIdentifier) (Empty) (VariableIdentifier)) (Empty) (VariableIdentifier))) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (VariableIdentifier))))) (Pattern (Wildcard) (App (VariableIdentifier) (Empty) (TextElement))))))) (Function (VariableIdentifier) (VariableIdentifier) (Statements (FunctionGuardPattern (Guard (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (Integer))) (Guard (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (Integer))) (ConstructorIdentifier)) (FunctionGuardPattern (Guard (VariableIdentifier)) (ConstructorIdentifier)))) (Function (VariableIdentifier) (VariableIdentifier) (Statements (Do (Let (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Empty)) (BindPattern (VariableIdentifier) (VariableIdentifier)) (App (VariableIdentifier) (Empty) (VariableIdentifier))))) (Function (VariableIdentifier) (VariableIdentifier) (Statements (Do (Let (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Empty)) (VariableIdentifier) (VariableIdentifier) (Statements (Function (VariableIdentifier) (Statements (App (VariableIdentifier) (Empty) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (Integer))))))) (Function (VariableIdentifier) (AsPattern (VariableIdentifier) (ConstructorIdentifier)) (Statements (LabeledUpdate (VariableIdentifier) (FieldBind (VariableIdentifier) (Integer)) (FieldBind (VariableIdentifier) (Integer))))) (Function (VariableIdentifier) (AsPattern (VariableIdentifier) (LabeledPattern (Statements (ConstructorIdentifier) (FieldPattern (VariableIdentifier) (VariableIdentifier)) (FieldPattern (VariableIdentifier) (VariableIdentifier))))) (Statements (LabeledUpdate (VariableIdentifier) (FieldBind (VariableIdentifier) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (Integer))) (FieldBind (VariableIdentifier) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (TextElement)))))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (TypeApp (ConstructorIdentifier)))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (TypeApp (ConstructorPattern (Statements (ConstructorIdentifier) (TextElement)))))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (TypeApp (ConstructorPattern (Statements (QualifiedConstructorIdentifier (ModuleIdentifier) (ConstructorIdentifier)) (TextElement)))))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (VariableIdentifier) (TypeApp (ConstructorIdentifier)) (VariableOperator (VariableSymbol)) (QualifiedVariableIdentifier (ModuleIdentifier) (VariableIdentifier))))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (VariableIdentifier) (TypeApp (QualifiedConstructorIdentifier (ModuleIdentifier) (ConstructorIdentifier))) (VariableOperator (VariableSymbol)) (QualifiedVariableIdentifier (ModuleIdentifier) (VariableIdentifier))))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (VariableIdentifier) (TypeApp (ConstructorIdentifier)) (VariableOperator (VariableSymbol)) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (VariableIdentifier) (TypeApp (QualifiedConstructorIdentifier (ModuleIdentifier) (ConstructorIdentifier))) (VariableOperator (VariableSymbol)) (QualifiedVariableIdentifier (ModuleIdentifier) (VariableIdentifier))))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (VariableIdentifier) (TypeApp (ConstructorIdentifier)) (VariableOperator (VariableSymbol)) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (VariableIdentifier) (TypeApp (QualifiedConstructorIdentifier (ModuleIdentifier) (ConstructorIdentifier))) (VariableOperator (VariableSymbol)) (QualifiedVariableIdentifier (ModuleIdentifier) (VariableIdentifier))))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (VariableIdentifier) (TypeApp (ConstructorIdentifier)) (VariableOperator (VariableSymbol)) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (VariableIdentifier) (TypeApp (QualifiedConstructorIdentifier (ModuleIdentifier) (ConstructorIdentifier))) (VariableOperator (VariableSymbol)) (QualifiedVariableIdentifier (ModuleIdentifier) (VariableIdentifier))))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (TypeApp (App (VariableIdentifier) (Empty) (App (ConstructorIdentifier) (Empty) (VariableIdentifier)))))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (QualifiedVariableIdentifier (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (VariableIdentifier)) (Empty) (VariableOperator (VariableSymbol)) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (QualifiedVariableIdentifier (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (VariableIdentifier)) (Empty) (VariableOperator (VariableSymbol)) (QualifiedVariableIdentifier (ModuleIdentifier) (VariableIdentifier))))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (QualifiedVariableIdentifier (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (VariableIdentifier)) (Empty) (VariableOperator (VariableSymbol)) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (QualifiedVariableIdentifier (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (VariableIdentifier)) (Empty) (VariableOperator (VariableSymbol)) (QualifiedVariableIdentifier (ModuleIdentifier) (VariableIdentifier))))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (QualifiedVariableIdentifier (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (VariableIdentifier)) (Empty) (VariableOperator (VariableSymbol)) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (QualifiedVariableIdentifier (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (VariableIdentifier)) (Empty) (VariableOperator (VariableSymbol)) (QualifiedVariableIdentifier (ModuleIdentifier) (VariableIdentifier))))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (QualifiedVariableIdentifier (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (VariableIdentifier)) (Empty) (VariableOperator (VariableSymbol)) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (QualifiedVariableIdentifier (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (VariableIdentifier)) (Empty) (VariableOperator (VariableSymbol)) (QualifiedVariableIdentifier (ModuleIdentifier) (VariableIdentifier))))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (ConstructorIdentifier) (Empty) (PromotedTypeOperator (ConstructorOperator (ConstructorSymbol))) (ConstructorIdentifier)))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (ConstructorIdentifier) (Empty) (PromotedTypeOperator (ConstructorOperator (ConstructorSymbol))) (ConstructorIdentifier)))) (Function (VariableIdentifier) (Statements (VariableOperator (VariableSymbol)))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (Statements)))) (Function (VariableIdentifier) (Statements (Integer) (Statements))) (Function (VariableIdentifier) (Statements (Integer) (Statements))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (Statements (Comment)))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (Statements (Comment)))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (Statements (Comment)))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (Statements (Pragma)))) (Function (VariableIdentifier) (Statements (Integer))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier)) (ViewPattern (App (VariableIdentifier) (Empty) (VariableIdentifier)) (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier) (VariableIdentifier)))) (Statements (VariableIdentifier))) (TypeSignature (VariableIdentifier) (ContextAlt (TypeSignature (ImplicitParameterIdentifier) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))))) (FunctionType (Type (Array (Type (TypeVariableIdentifier) (TypeParameters) (Empty))) (TypeParameters) (Empty)) (Type (Array (Type (TypeVariableIdentifier) (TypeParameters) (Empty))) (TypeParameters) (Empty)))) (Function (VariableIdentifier) (Statements (App (VariableIdentifier) (Empty) (ImplicitParameterIdentifier)))) (Function (VariableIdentifier) (ConstructorPattern (Statements (ConstructorIdentifier) (AnnotatedTypeVariable (TypeVariableIdentifier) (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier) (VariableIdentifier)))) (VariableIdentifier))) (Statements (VariableIdentifier))) (TypeSignature (VariableIdentifier) (ContextAlt (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (Statements (QuotedName (TypeConstructorIdentifier)) (TypeVariableIdentifier))) (EqualityConstraint (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (QuotedName (TypeConstructorIdentifier)) (TypeVariableIdentifier))))) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))))) (Function (VariableIdentifier) (VariableIdentifier) (Statements (App (VariableIdentifier) (Empty) (VariableIdentifier)) (Statements (Function (VariableIdentifier) (LabeledPattern (Statements (ConstructorIdentifier) (RecordWildCards))) (Statements (Let (Function (VariableIdentifier) (Statements (App (App (VariableIdentifier) (Empty) (RightOperatorSection (VariableOperator (VariableSymbol)) (Character))) (Empty) (App (VariableIdentifier) (Empty) (VariableIdentifier))))) (App (App (VariableIdentifier) (Empty) (VariableIdentifier)) (Empty) (VariableIdentifier)))))))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/function-declarations.parseB.txt ================================================ (Module (Empty) (Statements (Function (VariableIdentifier) (VariableIdentifier) (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (ConstructorPattern (Statements (ConstructorIdentifier) (Integer))) (Statements (App (ConstructorIdentifier) (Empty) (Integer)))) (Function (VariableIdentifier) (AsPattern (VariableIdentifier) (VariableIdentifier)) (AsPattern (VariableIdentifier) (VariableIdentifier)) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Wildcard) (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Integer) (Integer) (Statements (Integer))) (Function (VariableIdentifier) (TextElement) (TextElement) (Statements (TextElement))) (Function (VariableIdentifier) (Character) (Character) (Statements (Character))) (Function (VariableIdentifier) (Float) (Float) (Statements (Float))) (Function (VariableIdentifier) (LabeledPattern (Statements (ConstructorIdentifier) (FieldPattern (VariableIdentifier) (Integer)))) (Statements (Integer))) (Function (VariableIdentifier) (LabeledPattern (Statements (ConstructorIdentifier) (FieldPattern (VariableIdentifier) (Integer)) (FieldPattern (VariableIdentifier) (Integer)))) (Statements (Integer))) (Function (VariableIdentifier) (LabeledPattern (ConstructorIdentifier)) (Statements (Integer))) (Function (VariableIdentifier) (LabeledPattern (Statements (ConstructorIdentifier) (NamedFieldPun (VariableIdentifier)) (NamedFieldPun (VariableIdentifier)))) (Statements (Array (VariableIdentifier) (VariableIdentifier)))) (Function (VariableIdentifier) (LabeledPattern (Statements (ConstructorIdentifier) (RecordWildCards))) (Statements (Array (VariableIdentifier) (VariableIdentifier)))) (Function (VariableIdentifier) (LabeledPattern (Statements (ConstructorIdentifier) (NamedFieldPun (VariableIdentifier)) (FieldPattern (VariableIdentifier) (VariableIdentifier)) (RecordWildCards))) (Statements (Array (VariableIdentifier) (VariableIdentifier) (VariableIdentifier) (VariableIdentifier)))) (Function (VariableIdentifier) (AsPattern (VariableIdentifier) (LabeledPattern (Statements (ConstructorIdentifier) (FieldPattern (VariableIdentifier) (Integer))))) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Integer) (Statements (Integer))) (Function (VariableIdentifier) (NegativeLiteral (Integer)) (Statements (Integer))) (Function (VariableIdentifier) (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier) (VariableIdentifier) (VariableIdentifier))) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier)) (Statements (Integer))) (Function (VariableIdentifier) (ListConstructor) (Statements (Integer))) (Function (VariableIdentifier) (TuplePattern (Integer) (Integer)) (Statements (Integer))) (Function (VariableIdentifier) (TuplePattern (ConstructorPattern (Statements (ConstructorIdentifier) (Integer))) (ConstructorPattern (Statements (ConstructorIdentifier) (Integer)))) (Statements (App (ConstructorIdentifier) (Empty) (Integer)))) (Function (VariableIdentifier) (TuplePattern (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))) (ConstructorIdentifier)) (Statements (ConstructorIdentifier))) (Function (VariableIdentifier) (TuplePattern (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))) (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))) (NegativeLiteral (Integer))) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (ListConstructor) (Statements (Integer))) (Function (VariableIdentifier) (ListPattern (VariableIdentifier)) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier)) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier) (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier)) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier) (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier) (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier)) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (IrrefutablePattern (VariableIdentifier)) (Statements (Integer))) (Function (VariableIdentifier) (IrrefutablePattern (NegativeLiteral (Integer))) (Statements (Integer))) (Function (VariableIdentifier) (IrrefutablePattern (TuplePattern (IrrefutablePattern (TuplePattern (VariableIdentifier) (VariableIdentifier))) (VariableIdentifier))) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (VariableIdentifier) (Statements (Match (VariableIdentifier) (Pattern (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))) (Statements (CaseGuardPattern (Guard (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (Integer))) (ConstructorIdentifier)) (CaseGuardPattern (Guard (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (Integer))) (ConstructorIdentifier)) (CaseGuardPattern (Guard (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (Integer))) (ConstructorIdentifier))))))) (Function (VariableIdentifier) (VariableIdentifier) (Statements (Match (VariableIdentifier) (Statements (Pattern (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))) (CaseGuardPattern (Guard (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (Integer))) (Guard (ConstructorIdentifier)) (Guard (Let (TypeSignature (VariableIdentifier) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))) (Function (VariableIdentifier) (VariableIdentifier) (Statements (VariableIdentifier))) (Empty))) (ConstructorIdentifier))) (Pattern (ConstructorIdentifier) (ConstructorIdentifier)))))) (Function (VariableIdentifier) (VariableIdentifier) (Statements (Match (VariableIdentifier) (Statements (Pattern (ConstructorPattern (Statements (ConstructorIdentifier) (Wildcard))) (Statements (VariableIdentifier) (Statements (Function (VariableIdentifier) (Statements (ConstructorIdentifier)))))) (Pattern (ConstructorIdentifier) (ConstructorIdentifier)))))) (Function (VariableIdentifier) (VariableIdentifier) (Statements (Match (VariableIdentifier) (Statements (Pattern (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))) (Statements (VariableIdentifier) (Statements (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (Integer)))))) (Pattern (ConstructorIdentifier) (Statements (VariableIdentifier) (Statements (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (Integer)))))))))) (Function (VariableIdentifier) (VariableIdentifier) (Statements (Match (VariableIdentifier) (Statements (Pattern (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))) (VariableIdentifier)) (Pattern (ConstructorIdentifier) (VariableIdentifier)) (Statements (Function (VariableIdentifier) (Statements (Integer))) (Function (VariableIdentifier) (Statements (Integer)))))))) (Function (VariableIdentifier) (Statements (Lambda (VariableIdentifier) (Match (VariableIdentifier) (Pattern (ConstructorIdentifier) (VariableIdentifier)))))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (App (VariableIdentifier) (Empty) (VariableIdentifier)) (Empty) (VariableOperator (VariableSymbol)) (LambdaCase (Pattern (ConstructorPattern (Statements (ConstructorIdentifier) (ConstructorPattern (Statements (ConstructorIdentifier) (Wildcard) (Wildcard) (Wildcard) (Wildcard) (VariableIdentifier) (Wildcard))))) (Do (BindPattern (VariableIdentifier) (InfixOperatorApp (App (VariableIdentifier) (Empty) (App (VariableIdentifier) (Empty) (VariableIdentifier))) (Empty) (VariableOperator (VariableSymbol)) (App (App (VariableIdentifier) (Empty) (VariableIdentifier)) (Empty) (VariableIdentifier)))) (BindPattern (VariableIdentifier) (App (App (VariableIdentifier) (Empty) (VariableIdentifier)) (Empty) (VariableIdentifier))) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (VariableIdentifier))))) (Pattern (Wildcard) (App (VariableIdentifier) (Empty) (TextElement))))))) (Function (VariableIdentifier) (VariableIdentifier) (Statements (FunctionGuardPattern (Guard (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (Integer))) (Guard (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (Integer))) (ConstructorIdentifier)) (FunctionGuardPattern (Guard (VariableIdentifier)) (ConstructorIdentifier)))) (Function (VariableIdentifier) (VariableIdentifier) (Statements (Do (Let (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Empty)) (BindPattern (VariableIdentifier) (VariableIdentifier)) (App (VariableIdentifier) (Empty) (VariableIdentifier))))) (Function (VariableIdentifier) (VariableIdentifier) (Statements (Do (Let (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Empty)) (VariableIdentifier) (VariableIdentifier) (Statements (Function (VariableIdentifier) (Statements (App (VariableIdentifier) (Empty) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (Integer))))))) (Function (VariableIdentifier) (AsPattern (VariableIdentifier) (ConstructorIdentifier)) (Statements (LabeledUpdate (VariableIdentifier) (FieldBind (VariableIdentifier) (Integer)) (FieldBind (VariableIdentifier) (Integer))))) (Function (VariableIdentifier) (AsPattern (VariableIdentifier) (LabeledPattern (Statements (ConstructorIdentifier) (FieldPattern (VariableIdentifier) (VariableIdentifier)) (FieldPattern (VariableIdentifier) (VariableIdentifier))))) (Statements (LabeledUpdate (VariableIdentifier) (FieldBind (VariableIdentifier) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (Integer))) (FieldBind (VariableIdentifier) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (TextElement)))))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (TypeApp (ConstructorIdentifier)))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (TypeApp (ConstructorPattern (Statements (ConstructorIdentifier) (TextElement)))))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (TypeApp (ConstructorPattern (Statements (QualifiedConstructorIdentifier (ModuleIdentifier) (ConstructorIdentifier)) (TextElement)))))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (VariableIdentifier) (TypeApp (ConstructorIdentifier)) (VariableOperator (VariableSymbol)) (QualifiedVariableIdentifier (ModuleIdentifier) (VariableIdentifier))))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (VariableIdentifier) (TypeApp (QualifiedConstructorIdentifier (ModuleIdentifier) (ConstructorIdentifier))) (VariableOperator (VariableSymbol)) (QualifiedVariableIdentifier (ModuleIdentifier) (VariableIdentifier))))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (VariableIdentifier) (TypeApp (ConstructorIdentifier)) (VariableOperator (VariableSymbol)) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (VariableIdentifier) (TypeApp (QualifiedConstructorIdentifier (ModuleIdentifier) (ConstructorIdentifier))) (VariableOperator (VariableSymbol)) (QualifiedVariableIdentifier (ModuleIdentifier) (VariableIdentifier))))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (VariableIdentifier) (TypeApp (ConstructorIdentifier)) (VariableOperator (VariableSymbol)) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (VariableIdentifier) (TypeApp (QualifiedConstructorIdentifier (ModuleIdentifier) (ConstructorIdentifier))) (VariableOperator (VariableSymbol)) (QualifiedVariableIdentifier (ModuleIdentifier) (VariableIdentifier))))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (VariableIdentifier) (TypeApp (ConstructorIdentifier)) (VariableOperator (VariableSymbol)) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (VariableIdentifier) (TypeApp (QualifiedConstructorIdentifier (ModuleIdentifier) (ConstructorIdentifier))) (VariableOperator (VariableSymbol)) (QualifiedVariableIdentifier (ModuleIdentifier) (VariableIdentifier))))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (TypeApp (App (VariableIdentifier) (Empty) (App (ConstructorIdentifier) (Empty) (VariableIdentifier)))))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (QualifiedVariableIdentifier (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (VariableIdentifier)) (Empty) (VariableOperator (VariableSymbol)) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (QualifiedVariableIdentifier (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (VariableIdentifier)) (Empty) (VariableOperator (VariableSymbol)) (QualifiedVariableIdentifier (ModuleIdentifier) (VariableIdentifier))))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (QualifiedVariableIdentifier (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (VariableIdentifier)) (Empty) (VariableOperator (VariableSymbol)) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (QualifiedVariableIdentifier (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (VariableIdentifier)) (Empty) (VariableOperator (VariableSymbol)) (QualifiedVariableIdentifier (ModuleIdentifier) (VariableIdentifier))))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (QualifiedVariableIdentifier (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (VariableIdentifier)) (Empty) (VariableOperator (VariableSymbol)) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (QualifiedVariableIdentifier (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (VariableIdentifier)) (Empty) (VariableOperator (VariableSymbol)) (QualifiedVariableIdentifier (ModuleIdentifier) (VariableIdentifier))))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (QualifiedVariableIdentifier (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (VariableIdentifier)) (Empty) (VariableOperator (VariableSymbol)) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (QualifiedVariableIdentifier (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (VariableIdentifier)) (Empty) (VariableOperator (VariableSymbol)) (QualifiedVariableIdentifier (ModuleIdentifier) (VariableIdentifier))))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (ConstructorIdentifier) (Empty) (PromotedTypeOperator (ConstructorOperator (ConstructorSymbol))) (ConstructorIdentifier)))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (ConstructorIdentifier) (Empty) (PromotedTypeOperator (ConstructorOperator (ConstructorSymbol))) (ConstructorIdentifier)))) (Function (VariableIdentifier) (Statements (VariableOperator (VariableSymbol)))) (Function (VariableIdentifier) (Statements (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (Statements)))) (Function (VariableIdentifier) (Statements (Integer) (Statements))) (Function (VariableIdentifier) (Statements (Integer) (Statements))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (Statements (Comment)))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (Statements (Comment)))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (Statements (Comment)))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (Statements (Pragma)))) (Function (VariableIdentifier) (Statements (Integer))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (ConstructorOperator (ConstructorSymbol)) (VariableIdentifier)) (ViewPattern (App (VariableIdentifier) (Empty) (VariableIdentifier)) (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier) (VariableIdentifier)))) (Statements (VariableIdentifier))) (TypeSignature (VariableIdentifier) (ContextAlt (TypeSignature (ImplicitParameterIdentifier) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))))) (FunctionType (Type (Array (Type (TypeVariableIdentifier) (TypeParameters) (Empty))) (TypeParameters) (Empty)) (Type (Array (Type (TypeVariableIdentifier) (TypeParameters) (Empty))) (TypeParameters) (Empty)))) (Function (VariableIdentifier) (Statements (App (VariableIdentifier) (Empty) (ImplicitParameterIdentifier)))) (Function (VariableIdentifier) (ConstructorPattern (Statements (ConstructorIdentifier) (AnnotatedTypeVariable (TypeVariableIdentifier) (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier) (VariableIdentifier)))) (VariableIdentifier))) (Statements (VariableIdentifier))) (TypeSignature (VariableIdentifier) (ContextAlt (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (Statements (QuotedName (TypeConstructorIdentifier)) (TypeVariableIdentifier))) (EqualityConstraint (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (QuotedName (TypeConstructorIdentifier)) (TypeVariableIdentifier))))) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))))) (Function (VariableIdentifier) (VariableIdentifier) (Statements (App (VariableIdentifier) (Empty) (VariableIdentifier)) (Statements (Function (VariableIdentifier) (LabeledPattern (Statements (ConstructorIdentifier) (RecordWildCards))) (Statements (Let (Function (VariableIdentifier) (Statements (App (App (VariableIdentifier) (Empty) (RightOperatorSection (VariableOperator (VariableSymbol)) (Character))) (Empty) (App (VariableIdentifier) (Empty) (VariableIdentifier))))) (App (App (VariableIdentifier) (Empty) (VariableIdentifier)) (Empty) (VariableIdentifier)))))))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/gadt-declarations.A.hs ================================================ data Foo a b c where Baz :: a -> b -> c -> Foo a b c data Foo f a where Bar :: { jolo :: Maybe String, runJolo :: f a } -> Foo f a data Foo a :: [*] -> * where data Number a where Integer :: !Prelude.Integer -> Number Prelude.Integer Ratio :: !Prelude.Rational -> Number Prelude.Rational Decimal :: !Scientific -> Number Scientific data Union (r :: [ * -> * ]) (v :: *) where Union :: {-# UNPACK #-} !Int -> t v -> Union r v ================================================ FILE: semantic/test/fixtures/haskell/corpus/gadt-declarations.B.hs ================================================ data Bar a b c where Baz :: a -> b -> c -> Bar a b c data Bar f a where Baz :: { jolo :: Maybe String, runJolo :: f a } -> Bar f a data Bar a :: [*] -> [*] where data Number' a where Integer' :: !Prelude.Integer -> Number Prelude.Integer Ratio' :: !Prelude.Rational -> Number Prelude.Rational Decimal' :: !Scientific -> Number Scientific data Union (r :: [ * -> * ]) (v :: *) where Union :: {-# UNPACK #-} !Integer -> t v -> Union r v ================================================ FILE: semantic/test/fixtures/haskell/corpus/gadt-declarations.diffA-B.txt ================================================ (Module (Empty) (Statements (GADT (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (Statements (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (Statements (GADTConstructor (Empty) (TypeConstructorIdentifier) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))))))) (GADT (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (Statements (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (Statements (GADTConstructor (Empty) { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (FunctionType (Type (Statements (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier)) (Empty))) (Field (Statements (VariableIdentifier)) (Type (TypeVariableIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)))) (TypeParameters) (Empty)) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))))) (GADT (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (Statements (TypeVariableIdentifier)) (KindSignature (KindFunctionType (Kind (KindListType (Star))) (Kind { (Star) ->(KindListType {+(Star)+}) })))) (Statements)) (GADT (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (Statements (TypeVariableIdentifier)) (Empty)) (Statements (GADTConstructor (Empty) { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (FunctionType (Type (StrictType (QualifiedTypeConstructorIdentifier (ModuleIdentifier) (TypeConstructorIdentifier)) (TypeParameters)) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (QualifiedTypeConstructorIdentifier (ModuleIdentifier) (TypeConstructorIdentifier))) (Empty)))) (GADTConstructor (Empty) { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (FunctionType (Type (StrictType (QualifiedTypeConstructorIdentifier (ModuleIdentifier) (TypeConstructorIdentifier)) (TypeParameters)) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (QualifiedTypeConstructorIdentifier (ModuleIdentifier) (TypeConstructorIdentifier))) (Empty)))) (GADTConstructor (Empty) { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (FunctionType (Type (StrictType (TypeConstructorIdentifier) (TypeParameters)) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier)) (Empty)))))) (GADT (Empty) (Type (TypeConstructorIdentifier) (Statements (AnnotatedTypeVariable (TypeVariableIdentifier) (KindListType (KindFunctionType (Kind (Star)) (Kind (Star))))) (AnnotatedTypeVariable (TypeVariableIdentifier) (Star))) (Empty)) (Statements (GADTConstructor (Empty) (TypeConstructorIdentifier) (Statements (Pragma) (FunctionType (Type (StrictType { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters)) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))))))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/gadt-declarations.diffB-A.txt ================================================ (Module (Empty) (Statements (GADT (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (Statements (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (Statements (GADTConstructor (Empty) (TypeConstructorIdentifier) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))))))) (GADT (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (Statements (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (Statements (GADTConstructor (Empty) { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (FunctionType (Type (Statements (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier)) (Empty))) (Field (Statements (VariableIdentifier)) (Type (TypeVariableIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)))) (TypeParameters) (Empty)) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))))) (GADT (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (Statements (TypeVariableIdentifier)) (KindSignature (KindFunctionType (Kind (KindListType (Star))) (Kind { (KindListType {-(Star)-}) ->(Star) })))) (Statements)) (GADT (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (Statements (TypeVariableIdentifier)) (Empty)) (Statements (GADTConstructor (Empty) { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (FunctionType (Type (StrictType (QualifiedTypeConstructorIdentifier (ModuleIdentifier) (TypeConstructorIdentifier)) (TypeParameters)) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (QualifiedTypeConstructorIdentifier (ModuleIdentifier) (TypeConstructorIdentifier))) (Empty)))) (GADTConstructor (Empty) { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (FunctionType (Type (StrictType (QualifiedTypeConstructorIdentifier (ModuleIdentifier) (TypeConstructorIdentifier)) (TypeParameters)) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (QualifiedTypeConstructorIdentifier (ModuleIdentifier) (TypeConstructorIdentifier))) (Empty)))) (GADTConstructor (Empty) { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (FunctionType (Type (StrictType (TypeConstructorIdentifier) (TypeParameters)) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier)) (Empty)))))) (GADT (Empty) (Type (TypeConstructorIdentifier) (Statements (AnnotatedTypeVariable (TypeVariableIdentifier) (KindListType (KindFunctionType (Kind (Star)) (Kind (Star))))) (AnnotatedTypeVariable (TypeVariableIdentifier) (Star))) (Empty)) (Statements (GADTConstructor (Empty) (TypeConstructorIdentifier) (Statements (Pragma) (FunctionType (Type (StrictType { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters)) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))))))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/gadt-declarations.parseA.txt ================================================ (Module (Empty) (Statements (GADT (Empty) (Type (TypeConstructorIdentifier) (Statements (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (Statements (GADTConstructor (Empty) (TypeConstructorIdentifier) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))))))) (GADT (Empty) (Type (TypeConstructorIdentifier) (Statements (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (Statements (GADTConstructor (Empty) (TypeConstructorIdentifier) (FunctionType (Type (Statements (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier)) (Empty))) (Field (Statements (VariableIdentifier)) (Type (TypeVariableIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)))) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))))) (GADT (Empty) (Type (TypeConstructorIdentifier) (Statements (TypeVariableIdentifier)) (KindSignature (KindFunctionType (Kind (KindListType (Star))) (Kind (Star))))) (Statements)) (GADT (Empty) (Type (TypeConstructorIdentifier) (Statements (TypeVariableIdentifier)) (Empty)) (Statements (GADTConstructor (Empty) (TypeConstructorIdentifier) (FunctionType (Type (StrictType (QualifiedTypeConstructorIdentifier (ModuleIdentifier) (TypeConstructorIdentifier)) (TypeParameters)) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (QualifiedTypeConstructorIdentifier (ModuleIdentifier) (TypeConstructorIdentifier))) (Empty)))) (GADTConstructor (Empty) (TypeConstructorIdentifier) (FunctionType (Type (StrictType (QualifiedTypeConstructorIdentifier (ModuleIdentifier) (TypeConstructorIdentifier)) (TypeParameters)) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (QualifiedTypeConstructorIdentifier (ModuleIdentifier) (TypeConstructorIdentifier))) (Empty)))) (GADTConstructor (Empty) (TypeConstructorIdentifier) (FunctionType (Type (StrictType (TypeConstructorIdentifier) (TypeParameters)) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier)) (Empty)))))) (GADT (Empty) (Type (TypeConstructorIdentifier) (Statements (AnnotatedTypeVariable (TypeVariableIdentifier) (KindListType (KindFunctionType (Kind (Star)) (Kind (Star))))) (AnnotatedTypeVariable (TypeVariableIdentifier) (Star))) (Empty)) (Statements (GADTConstructor (Empty) (TypeConstructorIdentifier) (Statements (Pragma) (FunctionType (Type (StrictType (TypeConstructorIdentifier) (TypeParameters)) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))))))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/gadt-declarations.parseB.txt ================================================ (Module (Empty) (Statements (GADT (Empty) (Type (TypeConstructorIdentifier) (Statements (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (Statements (GADTConstructor (Empty) (TypeConstructorIdentifier) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))))))) (GADT (Empty) (Type (TypeConstructorIdentifier) (Statements (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (Statements (GADTConstructor (Empty) (TypeConstructorIdentifier) (FunctionType (Type (Statements (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier)) (Empty))) (Field (Statements (VariableIdentifier)) (Type (TypeVariableIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)))) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))))) (GADT (Empty) (Type (TypeConstructorIdentifier) (Statements (TypeVariableIdentifier)) (KindSignature (KindFunctionType (Kind (KindListType (Star))) (Kind (KindListType (Star)))))) (Statements)) (GADT (Empty) (Type (TypeConstructorIdentifier) (Statements (TypeVariableIdentifier)) (Empty)) (Statements (GADTConstructor (Empty) (TypeConstructorIdentifier) (FunctionType (Type (StrictType (QualifiedTypeConstructorIdentifier (ModuleIdentifier) (TypeConstructorIdentifier)) (TypeParameters)) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (QualifiedTypeConstructorIdentifier (ModuleIdentifier) (TypeConstructorIdentifier))) (Empty)))) (GADTConstructor (Empty) (TypeConstructorIdentifier) (FunctionType (Type (StrictType (QualifiedTypeConstructorIdentifier (ModuleIdentifier) (TypeConstructorIdentifier)) (TypeParameters)) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (QualifiedTypeConstructorIdentifier (ModuleIdentifier) (TypeConstructorIdentifier))) (Empty)))) (GADTConstructor (Empty) (TypeConstructorIdentifier) (FunctionType (Type (StrictType (TypeConstructorIdentifier) (TypeParameters)) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier)) (Empty)))))) (GADT (Empty) (Type (TypeConstructorIdentifier) (Statements (AnnotatedTypeVariable (TypeVariableIdentifier) (KindListType (KindFunctionType (Kind (Star)) (Kind (Star))))) (AnnotatedTypeVariable (TypeVariableIdentifier) (Star))) (Empty)) (Statements (GADTConstructor (Empty) (TypeConstructorIdentifier) (Statements (Pragma) (FunctionType (Type (StrictType (TypeConstructorIdentifier) (TypeParameters)) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))))))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/import-declaration.A.hs ================================================ module A where import Maybe import Either() import Data.Maybe (Maybe(..)) import Data.Aeson ((.:)) import Control.Comonad.Cofree ((:<)) import Data.Maybe (fromMaybe, fromJust) import Data.Maybe (Maybe(..), fromMaybe, fromJust) import qualified Data.Maybe import qualified Either () import qualified Data.Function (fix) import Data.Maybe as DM (Maybe(..)) import qualified Data.Maybe as DM import qualified Either as E () import qualified Data.Aeson as JSON import qualified Data.Aeson as D.A import Data.Maybe as DM (Maybe(..), fromMaybe) import qualified Data.Maybe as M (Maybe(..), fromMaybe) import GHC.Prim (Proxy#, proxy#) import "hint" HLint.Default import Data.Maybe hiding (Maybe(..), fromMaybe) import qualified Data.Maybe hiding () import qualified Data.Either hiding (Either(..), decodeEither) import qualified Data.Function hiding (fix) import qualified Data.List as DL hiding (head) ================================================ FILE: semantic/test/fixtures/haskell/corpus/import-declaration.B.hs ================================================ module A where import Data.Maybe import Data.Either() import Data.Util.Maybe (Maybe(..)) import Data.Util.Aeson ((.:)) import Control.Util.Comonad.Cofree ((:<)) import Data.Util.Maybe (fromMaybe, fromJust) import Data.Util.Maybe (Maybe(..), fromJust, fromMaybe) import qualified Data.Util.Maybe import qualified Data.Either () import qualified Data.Util.Function (fix) import Data.Util.Maybe as DM (Maybe(..)) import qualified Data.Util.Maybe as DM import qualified Data.Either as E () import qualified Data.Util.Aeson as JSON import qualified Data.Util.Aeson as D.A import Data.Util.Maybe as DM (Maybe(..), fromMaybe) import qualified Data.Util.Maybe as UM (Maybe(..), fromMaybe) import GHC.Prim (Box#, box#) import "hlint" HLint.Util.Default import Data.Util.Maybe hiding (Maybe(..), fromMaybe) import qualified Data.Util.Maybe hiding () import qualified Data.Util.Either hiding (Either(..), decodeEither) import qualified Data.Util.Function hiding (fix) import qualified Data.Util.List as DL hiding (head) ================================================ FILE: semantic/test/fixtures/haskell/corpus/import-declaration.diffA-B.txt ================================================ (Module (ModuleIdentifier) (Statements {+(ImportDeclaration {+(Empty)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+})+} {+(ImportDeclaration {+(Empty)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+})+} {+(ImportDeclaration {+(Empty)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(Import {+(Statements {+(TypeConstructorIdentifier)+} {+(AllConstructors)+})+})+})+} {+(ImportDeclaration {+(Empty)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(Import {+(VariableOperator {+(VariableSymbol)+})+})+})+} {+(ImportDeclaration {+(Empty)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+} {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(Import {+(ConstructorOperator {+(ConstructorSymbol)+})+})+})+} {+(ImportDeclaration {+(Empty)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(Import {+(VariableIdentifier)+})+} {+(Import {+(VariableIdentifier)+})+})+} {+(ImportDeclaration {+(Empty)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(Import {+(Statements {+(TypeConstructorIdentifier)+} {+(AllConstructors)+})+})+} {+(Import {+(VariableIdentifier)+})+} {+(Import {+(VariableIdentifier)+})+})+} {+(QualifiedImportDeclaration {+(Empty)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+})+} {+(QualifiedImportDeclaration {+(Empty)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+})+} {+(QualifiedImportDeclaration {+(Empty)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(Import {+(VariableIdentifier)+})+})+} {+(ImportDeclaration {+(Empty)+} {+(ImportAlias {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(ModuleIdentifier)+})+} {+(Import {+(Statements {+(TypeConstructorIdentifier)+} {+(AllConstructors)+})+})+})+} {+(QualifiedImportDeclaration {+(Empty)+} {+(ImportAlias {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(ModuleIdentifier)+})+})+} {+(QualifiedImportDeclaration {+(Empty)+} {+(ImportAlias {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(ModuleIdentifier)+})+})+} {+(QualifiedImportDeclaration {+(Empty)+} {+(ImportAlias {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(ModuleIdentifier)+})+})+} {+(QualifiedImportDeclaration {+(Empty)+} {+(ImportAlias {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+})+})+} {+(ImportDeclaration {+(Empty)+} {+(ImportAlias {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(ModuleIdentifier)+})+} {+(Import {+(Statements {+(TypeConstructorIdentifier)+} {+(AllConstructors)+})+})+} {+(Import {+(VariableIdentifier)+})+})+} {+(QualifiedImportDeclaration {+(Empty)+} {+(ImportAlias {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(ModuleIdentifier)+})+} {+(Import {+(Statements {+(TypeConstructorIdentifier)+} {+(AllConstructors)+})+})+} {+(Import {+(VariableIdentifier)+})+})+} {+(ImportDeclaration {+(Empty)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(Import {+(PrimitiveConstructorIdentifier)+})+} {+(Import {+(PrimitiveVariableIdentifier)+})+})+} {+(ImportDeclaration {+(TextElement)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+})+} {+(ImportDeclaration {+(Empty)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(HiddenImport {+(Statements {+(TypeConstructorIdentifier)+} {+(AllConstructors)+})+})+} {+(HiddenImport {+(VariableIdentifier)+})+})+} {+(QualifiedImportDeclaration {+(Empty)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+})+} {+(QualifiedImportDeclaration {+(Empty)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(HiddenImport {+(Statements {+(TypeConstructorIdentifier)+} {+(AllConstructors)+})+})+} {+(HiddenImport {+(VariableIdentifier)+})+})+} {+(QualifiedImportDeclaration {+(Empty)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(HiddenImport {+(VariableIdentifier)+})+})+} {+(QualifiedImportDeclaration {+(Empty)+} {+(ImportAlias {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(ModuleIdentifier)+})+} {+(HiddenImport {+(VariableIdentifier)+})+})+} {-(ImportDeclaration {-(Empty)-} {-(ModuleIdentifier)-})-} {-(ImportDeclaration {-(Empty)-} {-(ModuleIdentifier)-})-} {-(ImportDeclaration {-(Empty)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(Import {-(Statements {-(TypeConstructorIdentifier)-} {-(AllConstructors)-})-})-})-} {-(ImportDeclaration {-(Empty)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(Import {-(VariableOperator {-(VariableSymbol)-})-})-})-} {-(ImportDeclaration {-(Empty)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(Import {-(ConstructorOperator {-(ConstructorSymbol)-})-})-})-} {-(ImportDeclaration {-(Empty)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(Import {-(VariableIdentifier)-})-} {-(Import {-(VariableIdentifier)-})-})-} {-(ImportDeclaration {-(Empty)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(Import {-(Statements {-(TypeConstructorIdentifier)-} {-(AllConstructors)-})-})-} {-(Import {-(VariableIdentifier)-})-} {-(Import {-(VariableIdentifier)-})-})-} {-(QualifiedImportDeclaration {-(Empty)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-})-} {-(QualifiedImportDeclaration {-(Empty)-} {-(ModuleIdentifier)-})-} {-(QualifiedImportDeclaration {-(Empty)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(Import {-(VariableIdentifier)-})-})-} {-(ImportDeclaration {-(Empty)-} {-(ImportAlias {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(ModuleIdentifier)-})-} {-(Import {-(Statements {-(TypeConstructorIdentifier)-} {-(AllConstructors)-})-})-})-} {-(QualifiedImportDeclaration {-(Empty)-} {-(ImportAlias {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(ModuleIdentifier)-})-})-} {-(QualifiedImportDeclaration {-(Empty)-} {-(ImportAlias {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-})-} {-(QualifiedImportDeclaration {-(Empty)-} {-(ImportAlias {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(ModuleIdentifier)-})-})-} {-(QualifiedImportDeclaration {-(Empty)-} {-(ImportAlias {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-})-})-} {-(ImportDeclaration {-(Empty)-} {-(ImportAlias {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(ModuleIdentifier)-})-} {-(Import {-(Statements {-(TypeConstructorIdentifier)-} {-(AllConstructors)-})-})-} {-(Import {-(VariableIdentifier)-})-})-} {-(QualifiedImportDeclaration {-(Empty)-} {-(ImportAlias {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(ModuleIdentifier)-})-} {-(Import {-(Statements {-(TypeConstructorIdentifier)-} {-(AllConstructors)-})-})-} {-(Import {-(VariableIdentifier)-})-})-} {-(ImportDeclaration {-(Empty)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(Import {-(PrimitiveConstructorIdentifier)-})-} {-(Import {-(PrimitiveVariableIdentifier)-})-})-} {-(ImportDeclaration {-(TextElement)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-})-} {-(ImportDeclaration {-(Empty)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(HiddenImport {-(Statements {-(TypeConstructorIdentifier)-} {-(AllConstructors)-})-})-} {-(HiddenImport {-(VariableIdentifier)-})-})-} {-(QualifiedImportDeclaration {-(Empty)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-})-} {-(QualifiedImportDeclaration {-(Empty)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(HiddenImport {-(Statements {-(TypeConstructorIdentifier)-} {-(AllConstructors)-})-})-} {-(HiddenImport {-(VariableIdentifier)-})-})-} {-(QualifiedImportDeclaration {-(Empty)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(HiddenImport {-(VariableIdentifier)-})-})-} {-(QualifiedImportDeclaration {-(Empty)-} {-(ImportAlias {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(ModuleIdentifier)-})-} {-(HiddenImport {-(VariableIdentifier)-})-})-})) ================================================ FILE: semantic/test/fixtures/haskell/corpus/import-declaration.diffB-A.txt ================================================ (Module (ModuleIdentifier) (Statements {+(ImportDeclaration {+(Empty)+} {+(ModuleIdentifier)+})+} {+(ImportDeclaration {+(Empty)+} {+(ModuleIdentifier)+})+} {+(ImportDeclaration {+(Empty)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(Import {+(Statements {+(TypeConstructorIdentifier)+} {+(AllConstructors)+})+})+})+} {+(ImportDeclaration {+(Empty)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(Import {+(VariableOperator {+(VariableSymbol)+})+})+})+} {+(ImportDeclaration {+(Empty)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(Import {+(ConstructorOperator {+(ConstructorSymbol)+})+})+})+} {+(ImportDeclaration {+(Empty)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(Import {+(VariableIdentifier)+})+} {+(Import {+(VariableIdentifier)+})+})+} {+(ImportDeclaration {+(Empty)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(Import {+(Statements {+(TypeConstructorIdentifier)+} {+(AllConstructors)+})+})+} {+(Import {+(VariableIdentifier)+})+} {+(Import {+(VariableIdentifier)+})+})+} {+(QualifiedImportDeclaration {+(Empty)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+})+} {+(QualifiedImportDeclaration {+(Empty)+} {+(ModuleIdentifier)+})+} {+(QualifiedImportDeclaration {+(Empty)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(Import {+(VariableIdentifier)+})+})+} {+(ImportDeclaration {+(Empty)+} {+(ImportAlias {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(ModuleIdentifier)+})+} {+(Import {+(Statements {+(TypeConstructorIdentifier)+} {+(AllConstructors)+})+})+})+} {+(QualifiedImportDeclaration {+(Empty)+} {+(ImportAlias {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(ModuleIdentifier)+})+})+} {+(QualifiedImportDeclaration {+(Empty)+} {+(ImportAlias {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+})+} {+(QualifiedImportDeclaration {+(Empty)+} {+(ImportAlias {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(ModuleIdentifier)+})+})+} {+(QualifiedImportDeclaration {+(Empty)+} {+(ImportAlias {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+})+})+} {+(ImportDeclaration {+(Empty)+} {+(ImportAlias {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(ModuleIdentifier)+})+} {+(Import {+(Statements {+(TypeConstructorIdentifier)+} {+(AllConstructors)+})+})+} {+(Import {+(VariableIdentifier)+})+})+} {+(QualifiedImportDeclaration {+(Empty)+} {+(ImportAlias {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(ModuleIdentifier)+})+} {+(Import {+(Statements {+(TypeConstructorIdentifier)+} {+(AllConstructors)+})+})+} {+(Import {+(VariableIdentifier)+})+})+} {+(ImportDeclaration {+(Empty)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(Import {+(PrimitiveConstructorIdentifier)+})+} {+(Import {+(PrimitiveVariableIdentifier)+})+})+} {+(ImportDeclaration {+(TextElement)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+})+} {+(ImportDeclaration {+(Empty)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(HiddenImport {+(Statements {+(TypeConstructorIdentifier)+} {+(AllConstructors)+})+})+} {+(HiddenImport {+(VariableIdentifier)+})+})+} {+(QualifiedImportDeclaration {+(Empty)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+})+} {+(QualifiedImportDeclaration {+(Empty)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(HiddenImport {+(Statements {+(TypeConstructorIdentifier)+} {+(AllConstructors)+})+})+} {+(HiddenImport {+(VariableIdentifier)+})+})+} {+(QualifiedImportDeclaration {+(Empty)+} {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(HiddenImport {+(VariableIdentifier)+})+})+} {+(QualifiedImportDeclaration {+(Empty)+} {+(ImportAlias {+(QualifiedModuleIdentifier {+(ModuleIdentifier)+} {+(ModuleIdentifier)+})+} {+(ModuleIdentifier)+})+} {+(HiddenImport {+(VariableIdentifier)+})+})+} {-(ImportDeclaration {-(Empty)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-})-} {-(ImportDeclaration {-(Empty)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-})-} {-(ImportDeclaration {-(Empty)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(Import {-(Statements {-(TypeConstructorIdentifier)-} {-(AllConstructors)-})-})-})-} {-(ImportDeclaration {-(Empty)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(Import {-(VariableOperator {-(VariableSymbol)-})-})-})-} {-(ImportDeclaration {-(Empty)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-} {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(Import {-(ConstructorOperator {-(ConstructorSymbol)-})-})-})-} {-(ImportDeclaration {-(Empty)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(Import {-(VariableIdentifier)-})-} {-(Import {-(VariableIdentifier)-})-})-} {-(ImportDeclaration {-(Empty)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(Import {-(Statements {-(TypeConstructorIdentifier)-} {-(AllConstructors)-})-})-} {-(Import {-(VariableIdentifier)-})-} {-(Import {-(VariableIdentifier)-})-})-} {-(QualifiedImportDeclaration {-(Empty)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-})-} {-(QualifiedImportDeclaration {-(Empty)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-})-} {-(QualifiedImportDeclaration {-(Empty)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(Import {-(VariableIdentifier)-})-})-} {-(ImportDeclaration {-(Empty)-} {-(ImportAlias {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(ModuleIdentifier)-})-} {-(Import {-(Statements {-(TypeConstructorIdentifier)-} {-(AllConstructors)-})-})-})-} {-(QualifiedImportDeclaration {-(Empty)-} {-(ImportAlias {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(ModuleIdentifier)-})-})-} {-(QualifiedImportDeclaration {-(Empty)-} {-(ImportAlias {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(ModuleIdentifier)-})-})-} {-(QualifiedImportDeclaration {-(Empty)-} {-(ImportAlias {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(ModuleIdentifier)-})-})-} {-(QualifiedImportDeclaration {-(Empty)-} {-(ImportAlias {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-})-})-} {-(ImportDeclaration {-(Empty)-} {-(ImportAlias {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(ModuleIdentifier)-})-} {-(Import {-(Statements {-(TypeConstructorIdentifier)-} {-(AllConstructors)-})-})-} {-(Import {-(VariableIdentifier)-})-})-} {-(QualifiedImportDeclaration {-(Empty)-} {-(ImportAlias {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(ModuleIdentifier)-})-} {-(Import {-(Statements {-(TypeConstructorIdentifier)-} {-(AllConstructors)-})-})-} {-(Import {-(VariableIdentifier)-})-})-} {-(ImportDeclaration {-(Empty)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(Import {-(PrimitiveConstructorIdentifier)-})-} {-(Import {-(PrimitiveVariableIdentifier)-})-})-} {-(ImportDeclaration {-(TextElement)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-})-} {-(ImportDeclaration {-(Empty)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(HiddenImport {-(Statements {-(TypeConstructorIdentifier)-} {-(AllConstructors)-})-})-} {-(HiddenImport {-(VariableIdentifier)-})-})-} {-(QualifiedImportDeclaration {-(Empty)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-})-} {-(QualifiedImportDeclaration {-(Empty)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(HiddenImport {-(Statements {-(TypeConstructorIdentifier)-} {-(AllConstructors)-})-})-} {-(HiddenImport {-(VariableIdentifier)-})-})-} {-(QualifiedImportDeclaration {-(Empty)-} {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(HiddenImport {-(VariableIdentifier)-})-})-} {-(QualifiedImportDeclaration {-(Empty)-} {-(ImportAlias {-(QualifiedModuleIdentifier {-(ModuleIdentifier)-} {-(ModuleIdentifier)-} {-(ModuleIdentifier)-})-} {-(ModuleIdentifier)-})-} {-(HiddenImport {-(VariableIdentifier)-})-})-})) ================================================ FILE: semantic/test/fixtures/haskell/corpus/import-declaration.parseA.txt ================================================ (Module (ModuleIdentifier) (Statements (ImportDeclaration (Empty) (ModuleIdentifier)) (ImportDeclaration (Empty) (ModuleIdentifier)) (ImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (Import (Statements (TypeConstructorIdentifier) (AllConstructors)))) (ImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (Import (VariableOperator (VariableSymbol)))) (ImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier) (ModuleIdentifier)) (Import (ConstructorOperator (ConstructorSymbol)))) (ImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (Import (VariableIdentifier)) (Import (VariableIdentifier))) (ImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (Import (Statements (TypeConstructorIdentifier) (AllConstructors))) (Import (VariableIdentifier)) (Import (VariableIdentifier))) (QualifiedImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier))) (QualifiedImportDeclaration (Empty) (ModuleIdentifier)) (QualifiedImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (Import (VariableIdentifier))) (ImportDeclaration (Empty) (ImportAlias (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (ModuleIdentifier)) (Import (Statements (TypeConstructorIdentifier) (AllConstructors)))) (QualifiedImportDeclaration (Empty) (ImportAlias (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (ModuleIdentifier))) (QualifiedImportDeclaration (Empty) (ImportAlias (ModuleIdentifier) (ModuleIdentifier))) (QualifiedImportDeclaration (Empty) (ImportAlias (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (ModuleIdentifier))) (QualifiedImportDeclaration (Empty) (ImportAlias (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)))) (ImportDeclaration (Empty) (ImportAlias (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (ModuleIdentifier)) (Import (Statements (TypeConstructorIdentifier) (AllConstructors))) (Import (VariableIdentifier))) (QualifiedImportDeclaration (Empty) (ImportAlias (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (ModuleIdentifier)) (Import (Statements (TypeConstructorIdentifier) (AllConstructors))) (Import (VariableIdentifier))) (ImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (Import (PrimitiveConstructorIdentifier)) (Import (PrimitiveVariableIdentifier))) (ImportDeclaration (TextElement) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier))) (ImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (HiddenImport (Statements (TypeConstructorIdentifier) (AllConstructors))) (HiddenImport (VariableIdentifier))) (QualifiedImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier))) (QualifiedImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (HiddenImport (Statements (TypeConstructorIdentifier) (AllConstructors))) (HiddenImport (VariableIdentifier))) (QualifiedImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (HiddenImport (VariableIdentifier))) (QualifiedImportDeclaration (Empty) (ImportAlias (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (ModuleIdentifier)) (HiddenImport (VariableIdentifier))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/import-declaration.parseB.txt ================================================ (Module (ModuleIdentifier) (Statements (ImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier))) (ImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier))) (ImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier) (ModuleIdentifier)) (Import (Statements (TypeConstructorIdentifier) (AllConstructors)))) (ImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier) (ModuleIdentifier)) (Import (VariableOperator (VariableSymbol)))) (ImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier) (ModuleIdentifier) (ModuleIdentifier)) (Import (ConstructorOperator (ConstructorSymbol)))) (ImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier) (ModuleIdentifier)) (Import (VariableIdentifier)) (Import (VariableIdentifier))) (ImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier) (ModuleIdentifier)) (Import (Statements (TypeConstructorIdentifier) (AllConstructors))) (Import (VariableIdentifier)) (Import (VariableIdentifier))) (QualifiedImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier) (ModuleIdentifier))) (QualifiedImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier))) (QualifiedImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier) (ModuleIdentifier)) (Import (VariableIdentifier))) (ImportDeclaration (Empty) (ImportAlias (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier) (ModuleIdentifier)) (ModuleIdentifier)) (Import (Statements (TypeConstructorIdentifier) (AllConstructors)))) (QualifiedImportDeclaration (Empty) (ImportAlias (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier) (ModuleIdentifier)) (ModuleIdentifier))) (QualifiedImportDeclaration (Empty) (ImportAlias (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (ModuleIdentifier))) (QualifiedImportDeclaration (Empty) (ImportAlias (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier) (ModuleIdentifier)) (ModuleIdentifier))) (QualifiedImportDeclaration (Empty) (ImportAlias (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier) (ModuleIdentifier)) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)))) (ImportDeclaration (Empty) (ImportAlias (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier) (ModuleIdentifier)) (ModuleIdentifier)) (Import (Statements (TypeConstructorIdentifier) (AllConstructors))) (Import (VariableIdentifier))) (QualifiedImportDeclaration (Empty) (ImportAlias (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier) (ModuleIdentifier)) (ModuleIdentifier)) (Import (Statements (TypeConstructorIdentifier) (AllConstructors))) (Import (VariableIdentifier))) (ImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (Import (PrimitiveConstructorIdentifier)) (Import (PrimitiveVariableIdentifier))) (ImportDeclaration (TextElement) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier) (ModuleIdentifier))) (ImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier) (ModuleIdentifier)) (HiddenImport (Statements (TypeConstructorIdentifier) (AllConstructors))) (HiddenImport (VariableIdentifier))) (QualifiedImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier) (ModuleIdentifier))) (QualifiedImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier) (ModuleIdentifier)) (HiddenImport (Statements (TypeConstructorIdentifier) (AllConstructors))) (HiddenImport (VariableIdentifier))) (QualifiedImportDeclaration (Empty) (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier) (ModuleIdentifier)) (HiddenImport (VariableIdentifier))) (QualifiedImportDeclaration (Empty) (ImportAlias (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier) (ModuleIdentifier)) (ModuleIdentifier)) (HiddenImport (VariableIdentifier))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/layout.A.hs ================================================ f = let y = x x = let g = 1 in g in y f = a where a = b b = 1 f = a where a = b b = 1 f = foo where a = b where c = d e = f x = w g = do c a do b e do g g h i a = do b where c = d a = do b where c = d a = do b where c = d class Foo bar where fooVariables :: bar -> [Baz] {- -} class Foo1 bar where liftFoo = foldMap freeFoo bar = case freeFoo bar of [n] -> Right n ================================================ FILE: semantic/test/fixtures/haskell/corpus/layout.B.hs ================================================ f = let x = y y = let h = 1 in h in x f = b where b = a a = 1 f = c where c = b b = 1 f = bar where c = a where a = e e = f w = x g = do a b do c d do e f g h b = do a where d = c b = do c where c = e b = do a where a = f ================================================ FILE: semantic/test/fixtures/haskell/corpus/layout.diffA-B.txt ================================================ (Module (Empty) (Statements (Function (VariableIdentifier) (Statements (Let {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} (Function (VariableIdentifier) (Statements {+(VariableIdentifier)+} {-(Let {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-})-})-} {-(VariableIdentifier)-})-})) {+(Function {+(VariableIdentifier)+} {+(Statements {+(Let {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+})+})+} {+(VariableIdentifier)+})+})+})+} { (VariableIdentifier) ->(VariableIdentifier) }))) (Function (VariableIdentifier) (Statements { (VariableIdentifier) ->(VariableIdentifier) } (Statements {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} (Function (VariableIdentifier) (Statements {+(VariableIdentifier)+} {-(Integer)-})) {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+})+})+}))) (Function (VariableIdentifier) (Statements { (VariableIdentifier) ->(VariableIdentifier) } (Statements (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (Integer)))))) (Function (VariableIdentifier) (Statements { (VariableIdentifier) ->(VariableIdentifier) } (Statements (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements { (VariableIdentifier) ->(VariableIdentifier) } (Statements (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements { (VariableIdentifier) ->(VariableIdentifier) })) (Function (VariableIdentifier) (Statements (VariableIdentifier)))))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements { (VariableIdentifier) ->(VariableIdentifier) }))))) (Function (VariableIdentifier) (Statements (Do {-(VariableIdentifier)-} (VariableIdentifier) {+(VariableIdentifier)+} (Do {+(VariableIdentifier)+} {+(VariableIdentifier)+} {+(Do {+(VariableIdentifier)+} {+(VariableIdentifier)+})+} { (VariableIdentifier) ->(VariableIdentifier) } {-(VariableIdentifier)-} {-(Do {-(VariableIdentifier)-} {-(VariableIdentifier)-})-} {-(VariableIdentifier)-}) { (VariableIdentifier) ->(VariableIdentifier) }))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (Do { (VariableIdentifier) ->(VariableIdentifier) } (Statements (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements { (VariableIdentifier) ->(VariableIdentifier) })))))) {+(Function {+(VariableIdentifier)+} {+(Statements {+(Do {+(VariableIdentifier)+} {+(Statements {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+})+})+})+})+} (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (Do { (VariableIdentifier) ->(VariableIdentifier) } (Statements (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements { (VariableIdentifier) ->(VariableIdentifier) })))))) {-(Function {-(VariableIdentifier)-} {-(Statements {-(Do {-(VariableIdentifier)-} {-(Statements {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-})-})-})-})-} {-(TypeClass {-(Empty)-} {-(TypeClassIdentifier)-} {-(TypeVariableIdentifier)-} {-(Statements {-(Context {-(Comment)-} {-(TypeSignature {-(VariableIdentifier)-} {-(FunctionType {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-} {-(TypeParameters)-} {-(Empty)-})-})-})-})-})-})-} {-(TypeClass {-(Empty)-} {-(TypeClassIdentifier)-} {-(TypeVariableIdentifier)-} {-(Statements {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(Statements {-(Match {-(App {-(VariableIdentifier)-} {-(Empty)-} {-(VariableIdentifier)-})-} {-(Pattern {-(ListPattern {-(VariableIdentifier)-})-} {-(App {-(ConstructorIdentifier)-} {-(Empty)-} {-(VariableIdentifier)-})-})-})-})-})-})) ================================================ FILE: semantic/test/fixtures/haskell/corpus/layout.diffB-A.txt ================================================ (Module (Empty) (Statements (Function (VariableIdentifier) (Statements (Let {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} (Function (VariableIdentifier) (Statements {+(VariableIdentifier)+} {-(Let {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-})-})-} {-(VariableIdentifier)-})-})) {+(Function {+(VariableIdentifier)+} {+(Statements {+(Let {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+})+})+} {+(VariableIdentifier)+})+})+})+} { (VariableIdentifier) ->(VariableIdentifier) }))) (Function (VariableIdentifier) (Statements { (VariableIdentifier) ->(VariableIdentifier) } (Statements {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} (Function (VariableIdentifier) (Statements {+(VariableIdentifier)+} {-(Integer)-})) {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+})+})+}))) (Function (VariableIdentifier) (Statements { (VariableIdentifier) ->(VariableIdentifier) } (Statements (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (Integer)))))) (Function (VariableIdentifier) (Statements { (VariableIdentifier) ->(VariableIdentifier) } (Statements (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements { (VariableIdentifier) ->(VariableIdentifier) } (Statements (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements { (VariableIdentifier) ->(VariableIdentifier) })) (Function (VariableIdentifier) (Statements (VariableIdentifier)))))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements { (VariableIdentifier) ->(VariableIdentifier) }))))) (Function (VariableIdentifier) (Statements (Do {+(VariableIdentifier)+} (VariableIdentifier) {+(Do {+(VariableIdentifier)+} {+(VariableIdentifier)+} {+(Do {+(VariableIdentifier)+} {+(VariableIdentifier)+})+} {+(VariableIdentifier)+})+} { (VariableIdentifier) ->(VariableIdentifier) } {-(Do {-(VariableIdentifier)-} {-(VariableIdentifier)-} {-(Do {-(VariableIdentifier)-} {-(VariableIdentifier)-})-} {-(VariableIdentifier)-})-} {-(VariableIdentifier)-}))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (Do { (VariableIdentifier) ->(VariableIdentifier) } (Statements (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements { (VariableIdentifier) ->(VariableIdentifier) })))))) {+(Function {+(VariableIdentifier)+} {+(Statements {+(Do {+(VariableIdentifier)+} {+(Statements {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Do {+(VariableIdentifier)+} {+(Statements {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+})+})+})+})+} {+(TypeClass {+(Empty)+} {+(TypeClassIdentifier)+} {+(TypeVariableIdentifier)+} {+(Statements {+(Context {+(Comment)+} {+(TypeSignature {+(VariableIdentifier)+} {+(FunctionType {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+} {+(TypeParameters)+} {+(Empty)+})+})+})+})+})+})+} {+(TypeClass {+(Empty)+} {+(TypeClassIdentifier)+} {+(TypeVariableIdentifier)+} {+(Statements {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+})+})+} {+(Function {+(VariableIdentifier)+} {+(VariableIdentifier)+} {+(Statements {+(Match {+(App {+(VariableIdentifier)+} {+(Empty)+} {+(VariableIdentifier)+})+} {+(Pattern {+(ListPattern {+(VariableIdentifier)+})+} {+(App {+(ConstructorIdentifier)+} {+(Empty)+} {+(VariableIdentifier)+})+})+})+})+})+} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Do {-(VariableIdentifier)-} {-(Statements {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-})-})-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Do {-(VariableIdentifier)-} {-(Statements {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-})-})-})-})-})) ================================================ FILE: semantic/test/fixtures/haskell/corpus/layout.parseA.txt ================================================ (Module (Empty) (Statements (Function (VariableIdentifier) (Statements (Let (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (Let (Function (VariableIdentifier) (Statements (Integer))) (VariableIdentifier)))) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (Statements (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (Integer)))))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (Statements (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (Integer)))))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (Statements (Function (VariableIdentifier) (Statements (VariableIdentifier) (Statements (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (VariableIdentifier)))))) (Function (VariableIdentifier) (Statements (VariableIdentifier)))))) (Function (VariableIdentifier) (Statements (Do (VariableIdentifier) (VariableIdentifier) (Do (VariableIdentifier) (VariableIdentifier) (Do (VariableIdentifier) (VariableIdentifier)) (VariableIdentifier)) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (Do (VariableIdentifier) (Statements (Function (VariableIdentifier) (Statements (VariableIdentifier))))))) (Function (VariableIdentifier) (Statements (Do (VariableIdentifier) (Statements (Function (VariableIdentifier) (Statements (VariableIdentifier))))))) (Function (VariableIdentifier) (Statements (Do (VariableIdentifier) (Statements (Function (VariableIdentifier) (Statements (VariableIdentifier))))))) (TypeClass (Empty) (TypeClassIdentifier) (TypeVariableIdentifier) (Statements (Context (Comment) (TypeSignature (VariableIdentifier) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (Array (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))) (TypeParameters) (Empty))))))) (TypeClass (Empty) (TypeClassIdentifier) (TypeVariableIdentifier) (Statements (Function (VariableIdentifier) (Statements (VariableIdentifier))))) (Function (VariableIdentifier) (VariableIdentifier) (Statements (Match (App (VariableIdentifier) (Empty) (VariableIdentifier)) (Pattern (ListPattern (VariableIdentifier)) (App (ConstructorIdentifier) (Empty) (VariableIdentifier)))))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/layout.parseB.txt ================================================ (Module (Empty) (Statements (Function (VariableIdentifier) (Statements (Let (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (Let (Function (VariableIdentifier) (Statements (Integer))) (VariableIdentifier)))) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (Statements (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (Integer)))))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (Statements (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (Integer)))))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (Statements (Function (VariableIdentifier) (Statements (VariableIdentifier) (Statements (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (VariableIdentifier)))))) (Function (VariableIdentifier) (Statements (VariableIdentifier)))))) (Function (VariableIdentifier) (Statements (Do (VariableIdentifier) (VariableIdentifier) (Do (VariableIdentifier) (VariableIdentifier) (Do (VariableIdentifier) (VariableIdentifier)) (VariableIdentifier)) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (Do (VariableIdentifier) (Statements (Function (VariableIdentifier) (Statements (VariableIdentifier))))))) (Function (VariableIdentifier) (Statements (Do (VariableIdentifier) (Statements (Function (VariableIdentifier) (Statements (VariableIdentifier))))))) (Function (VariableIdentifier) (Statements (Do (VariableIdentifier) (Statements (Function (VariableIdentifier) (Statements (VariableIdentifier))))))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/literals.A.hs ================================================ module A where a = 0 a = 1 a = 0o00 a = 0O77 a = 0x00 a = 0XFF a = 0.00 a = 0.99 a = 0.00e01 a = 0.99E01 a = 0.00e+01 a = 0.99E-01 a = 0.00e-01 a = 0.99E+01 a = 00e01 a = 99E01 a = 00e+01 a = 99E-01 a = 00e-01 a = 99E+01 a = undefined _a0 = undefined _A0 = undefined a0 = undefined a9 = undefined aA = undefined aZ' = undefined a = True a = False a = 'a' a = 'b' a = '0' a = '1' a = '_' a = 'A' a = 'B' a = ',' a = '!' a = '#' a = '$' a = '%' a = '&' a = '⋆' a = '+' a = '.' a = '/' a = '<' a = '=' a = '>' a = '?' a = '^' a = '|' a = '-' a = '~' a = ':' a = '"' a = [ "\NUL" , "\SOH" , "\STX" , "\ETX" , "\EOT" , "\ENQ" , "\ACK" , "\BEL" , "\BS" , "\HT" , "\LF" , "\VT" , "\FF" , "\CR" , "\SO" , "\SI" , "\DLE" , "\DC1" , "\DC2" , "\DC3" , "\DC4" , "\NAK" , "\SYN" , "\ETB" , "\CAN" , "\EM" , "\SUB" , "\ESC" , "\FS" , "\GS" , "\RS" , "\US" , "\SP" , "\DEL" ] ================================================ FILE: semantic/test/fixtures/haskell/corpus/literals.B.hs ================================================ module A where b = 0 b = 1 b = 0o00 b = 0O77 b = 0x00 b = 0XFF b = 0.00 b = 0.99 b = 0.00e01 b = 0.99E01 b = 0.00e+01 b = 0.99E-01 b = 0.00e-01 b = 0.99E+01 b = 00e01 b = 99E01 b = 00e+01 b = 99E-01 b = 00e-01 b = 99E+01 b = undefined ba0 = undefined bA0 = undefined b0 = undefined b9 = undefined bA = undefined bZ' = undefined b = True b = False b = 'a' b = 'b' b = '0' b = '1' b = '_' b = 'A' b = 'B' b = ',' b = '!' b = '#' b = '$' b = '%' b = '&' b = '⋆' b = '+' b = '.' b = '/' b = '<' b = '=' b = '>' b = '?' b = '^' b = '|' b = '-' b = '~' b = ':' b = '"' b = [ "\NUL" , "\SOH" , "\STX" , "\ETX" , "\EOT" , "\ENQ" , "\ACK" , "\BEL" , "\BS" , "\HT" , "\LF" , "\VT" , "\FF" , "\CR" , "\SO" , "\SI" , "\DLE" , "\DC1" , "\DC2" , "\DC3" , "\DC4" , "\NAK" , "\SYN" , "\ETB" , "\CAN" , "\EM" , "\SUB" , "\ESC" , "\FS" , "\GS" , "\RS" , "\US" , "\SP" , "\DEL" ] ================================================ FILE: semantic/test/fixtures/haskell/corpus/literals.diffA-B.txt ================================================ (Module (ModuleIdentifier) (Statements {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(ConstructorIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(ConstructorIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Array {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+})+})+})+} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(ConstructorIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(ConstructorIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Array {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-})-})-})-})) ================================================ FILE: semantic/test/fixtures/haskell/corpus/literals.diffB-A.txt ================================================ (Module (ModuleIdentifier) (Statements {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Integer)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Float)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(VariableIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(ConstructorIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(ConstructorIdentifier)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Character)+})+})+} {+(Function {+(VariableIdentifier)+} {+(Statements {+(Array {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+})+})+})+} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Integer)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Float)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(VariableIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(ConstructorIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(ConstructorIdentifier)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Character)-})-})-} {-(Function {-(VariableIdentifier)-} {-(Statements {-(Array {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-})-})-})-})) ================================================ FILE: semantic/test/fixtures/haskell/corpus/literals.parseA.txt ================================================ (Module (ModuleIdentifier) (Statements (Function (VariableIdentifier) (Statements (Integer))) (Function (VariableIdentifier) (Statements (Integer))) (Function (VariableIdentifier) (Statements (Integer))) (Function (VariableIdentifier) (Statements (Integer))) (Function (VariableIdentifier) (Statements (Integer))) (Function (VariableIdentifier) (Statements (Integer))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (ConstructorIdentifier))) (Function (VariableIdentifier) (Statements (ConstructorIdentifier))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Array (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement)))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/literals.parseB.txt ================================================ (Module (ModuleIdentifier) (Statements (Function (VariableIdentifier) (Statements (Integer))) (Function (VariableIdentifier) (Statements (Integer))) (Function (VariableIdentifier) (Statements (Integer))) (Function (VariableIdentifier) (Statements (Integer))) (Function (VariableIdentifier) (Statements (Integer))) (Function (VariableIdentifier) (Statements (Integer))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (Float))) (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (VariableIdentifier) (Statements (ConstructorIdentifier))) (Function (VariableIdentifier) (Statements (ConstructorIdentifier))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Character))) (Function (VariableIdentifier) (Statements (Array (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement) (TextElement)))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration1.A.hs ================================================ module A where ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration1.B.hs ================================================ module B where ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration1.diffA-B.txt ================================================ (Module { (ModuleIdentifier) ->(ModuleIdentifier) } (Statements)) ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration1.diffB-A.txt ================================================ (Module { (ModuleIdentifier) ->(ModuleIdentifier) } (Statements)) ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration1.parseA.txt ================================================ (Module (ModuleIdentifier) (Statements)) ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration1.parseB.txt ================================================ (Module (ModuleIdentifier) (Statements)) ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration2.A.hs ================================================ module A () where ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration2.B.hs ================================================ module B () where ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration2.diffA-B.txt ================================================ (Module { (ModuleIdentifier) ->(ModuleIdentifier) } (Statements)) ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration2.diffB-A.txt ================================================ (Module { (ModuleIdentifier) ->(ModuleIdentifier) } (Statements)) ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration2.parseA.txt ================================================ (Module (ModuleIdentifier) (Statements)) ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration2.parseB.txt ================================================ (Module (ModuleIdentifier) (Statements)) ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration3.A.hs ================================================ module A.B' where ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration3.B.hs ================================================ module B.A' where ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration3.diffA-B.txt ================================================ (Module (QualifiedModuleIdentifier { (ModuleIdentifier) ->(ModuleIdentifier) } { (ModuleIdentifier) ->(ModuleIdentifier) }) (Statements)) ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration3.diffB-A.txt ================================================ (Module (QualifiedModuleIdentifier { (ModuleIdentifier) ->(ModuleIdentifier) } { (ModuleIdentifier) ->(ModuleIdentifier) }) (Statements)) ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration3.parseA.txt ================================================ (Module (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (Statements)) ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration3.parseB.txt ================================================ (Module (QualifiedModuleIdentifier (ModuleIdentifier) (ModuleIdentifier)) (Statements)) ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration4.A.hs ================================================ module A (type(+), (+)) where ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration4.B.hs ================================================ module A (type(-), (-)) where ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration4.diffA-B.txt ================================================ (Module (ModuleIdentifier) (Export (TypeConstructorExport (VariableOperator { (VariableSymbol) ->(VariableSymbol) }))) (Export (VariableOperator { (VariableSymbol) ->(VariableSymbol) })) (Statements)) ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration4.diffB-A.txt ================================================ (Module (ModuleIdentifier) (Export (TypeConstructorExport (VariableOperator { (VariableSymbol) ->(VariableSymbol) }))) (Export (VariableOperator { (VariableSymbol) ->(VariableSymbol) })) (Statements)) ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration4.parseA.txt ================================================ (Module (ModuleIdentifier) (Export (TypeConstructorExport (VariableOperator (VariableSymbol)))) (Export (VariableOperator (VariableSymbol))) (Statements)) ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration4.parseB.txt ================================================ (Module (ModuleIdentifier) (Export (TypeConstructorExport (VariableOperator (VariableSymbol)))) (Export (VariableOperator (VariableSymbol))) (Statements)) ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration5.A.hs ================================================ module A (Maybe(..), type(:<), type(+), maybe', module A, type Foo,) where ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration5.B.hs ================================================ module B (Maybe(..), type(:+), type(-), maybe', module B, type Bar,) where ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration5.diffA-B.txt ================================================ (Module { (ModuleIdentifier) ->(ModuleIdentifier) } (Export (Statements (TypeConstructorIdentifier) (AllConstructors))) (Export (TypeConstructorExport (ConstructorOperator { (ConstructorSymbol) ->(ConstructorSymbol) }))) (Export (TypeConstructorExport (VariableOperator { (VariableSymbol) ->(VariableSymbol) }))) (Export (VariableIdentifier)) (Export (ModuleExport { (ModuleIdentifier) ->(ModuleIdentifier) })) (Export (TypeConstructorExport { (ConstructorIdentifier) ->(ConstructorIdentifier) })) (Statements)) ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration5.diffB-A.txt ================================================ (Module { (ModuleIdentifier) ->(ModuleIdentifier) } (Export (Statements (TypeConstructorIdentifier) (AllConstructors))) (Export (TypeConstructorExport (ConstructorOperator { (ConstructorSymbol) ->(ConstructorSymbol) }))) (Export (TypeConstructorExport (VariableOperator { (VariableSymbol) ->(VariableSymbol) }))) (Export (VariableIdentifier)) (Export (ModuleExport { (ModuleIdentifier) ->(ModuleIdentifier) })) (Export (TypeConstructorExport { (ConstructorIdentifier) ->(ConstructorIdentifier) })) (Statements)) ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration5.parseA.txt ================================================ (Module (ModuleIdentifier) (Export (Statements (TypeConstructorIdentifier) (AllConstructors))) (Export (TypeConstructorExport (ConstructorOperator (ConstructorSymbol)))) (Export (TypeConstructorExport (VariableOperator (VariableSymbol)))) (Export (VariableIdentifier)) (Export (ModuleExport (ModuleIdentifier))) (Export (TypeConstructorExport (ConstructorIdentifier))) (Statements)) ================================================ FILE: semantic/test/fixtures/haskell/corpus/module-declaration5.parseB.txt ================================================ (Module (ModuleIdentifier) (Export (Statements (TypeConstructorIdentifier) (AllConstructors))) (Export (TypeConstructorExport (ConstructorOperator (ConstructorSymbol)))) (Export (TypeConstructorExport (VariableOperator (VariableSymbol)))) (Export (VariableIdentifier)) (Export (ModuleExport (ModuleIdentifier))) (Export (TypeConstructorExport (ConstructorIdentifier))) (Statements)) ================================================ FILE: semantic/test/fixtures/haskell/corpus/newtype-declaration.A.hs ================================================ newtype N = N Int newtype Show a => N = N a newtype Age = Age { unAge :: Maybe Int } newtype Bar a (b :: [* -> *]) c = Foo (a b c) newtype N = N Int deriving Show newtype N = N a deriving (Eq, Ord, Enum, Bounded, Show, Read) ================================================ FILE: semantic/test/fixtures/haskell/corpus/newtype-declaration.B.hs ================================================ newtype O = O Int newtype Show a => O = O a newtype Karage = Karage { unKarage :: Maybe Int } newtype Foo a (b :: [* -> *]) c = Bar (a b c) newtype O = O Int deriving Show newtype O = O a deriving (Eq, Ord, Enum, Bounded, Show, Read) ================================================ FILE: semantic/test/fixtures/haskell/corpus/newtype-declaration.diffA-B.txt ================================================ (Module (Empty) (Statements (NewType (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (Constructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (TypeConstructorIdentifier)) (Empty)) (NewType (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (Constructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (TypeVariableIdentifier)) (Empty)) (NewType (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (Constructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (Statements (Field (Statements { (VariableIdentifier) ->(VariableIdentifier) }) (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier)) (Empty))))) (Empty)) (NewType (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeVariableIdentifier) (AnnotatedTypeVariable (TypeVariableIdentifier) (KindListType (KindFunctionType (Kind (Star)) (Kind (Star))))) (TypeVariableIdentifier)) (Constructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (Statements (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))) (Empty)) (NewType (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (Constructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (TypeConstructorIdentifier)) (Deriving (TypeClassIdentifier))) (NewType (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (Constructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (TypeVariableIdentifier)) (Deriving (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/newtype-declaration.diffB-A.txt ================================================ (Module (Empty) (Statements (NewType (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (Constructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (TypeConstructorIdentifier)) (Empty)) (NewType (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (Constructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (TypeVariableIdentifier)) (Empty)) (NewType (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (Constructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (Statements (Field (Statements { (VariableIdentifier) ->(VariableIdentifier) }) (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier)) (Empty))))) (Empty)) (NewType (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeVariableIdentifier) (AnnotatedTypeVariable (TypeVariableIdentifier) (KindListType (KindFunctionType (Kind (Star)) (Kind (Star))))) (TypeVariableIdentifier)) (Constructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (Statements (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))) (Empty)) (NewType (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (Constructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (TypeConstructorIdentifier)) (Deriving (TypeClassIdentifier))) (NewType (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (Constructor { (ConstructorIdentifier) ->(ConstructorIdentifier) } (TypeVariableIdentifier)) (Deriving (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/newtype-declaration.parseA.txt ================================================ (Module (Empty) (Statements (NewType (Statements (TypeConstructorIdentifier)) (Constructor (ConstructorIdentifier) (TypeConstructorIdentifier)) (Empty)) (NewType (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (Statements (TypeConstructorIdentifier)) (Constructor (ConstructorIdentifier) (TypeVariableIdentifier)) (Empty)) (NewType (Statements (TypeConstructorIdentifier)) (Constructor (ConstructorIdentifier) (Statements (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier)) (Empty))))) (Empty)) (NewType (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (AnnotatedTypeVariable (TypeVariableIdentifier) (KindListType (KindFunctionType (Kind (Star)) (Kind (Star))))) (TypeVariableIdentifier)) (Constructor (ConstructorIdentifier) (Statements (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))) (Empty)) (NewType (Statements (TypeConstructorIdentifier)) (Constructor (ConstructorIdentifier) (TypeConstructorIdentifier)) (Deriving (TypeClassIdentifier))) (NewType (Statements (TypeConstructorIdentifier)) (Constructor (ConstructorIdentifier) (TypeVariableIdentifier)) (Deriving (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/newtype-declaration.parseB.txt ================================================ (Module (Empty) (Statements (NewType (Statements (TypeConstructorIdentifier)) (Constructor (ConstructorIdentifier) (TypeConstructorIdentifier)) (Empty)) (NewType (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (Statements (TypeConstructorIdentifier)) (Constructor (ConstructorIdentifier) (TypeVariableIdentifier)) (Empty)) (NewType (Statements (TypeConstructorIdentifier)) (Constructor (ConstructorIdentifier) (Statements (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier)) (Empty))))) (Empty)) (NewType (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (AnnotatedTypeVariable (TypeVariableIdentifier) (KindListType (KindFunctionType (Kind (Star)) (Kind (Star))))) (TypeVariableIdentifier)) (Constructor (ConstructorIdentifier) (Statements (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))) (Empty)) (NewType (Statements (TypeConstructorIdentifier)) (Constructor (ConstructorIdentifier) (TypeConstructorIdentifier)) (Deriving (TypeClassIdentifier))) (NewType (Statements (TypeConstructorIdentifier)) (Constructor (ConstructorIdentifier) (TypeVariableIdentifier)) (Deriving (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier) (TypeClassIdentifier))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/standalone-deriving-declaration.A.hs ================================================ deriving instance Eq b => Eq (Bar b) deriving instance Baz a (m a b c) => Baz a (Bar m a b c) deriving instance Bar Baz foo => BazFail (BarEval foo bix waz) deriving instance Bar (Foo (Baz waz)) bix => BazHeap bix (BarEval bix wax) ================================================ FILE: semantic/test/fixtures/haskell/corpus/standalone-deriving-declaration.B.hs ================================================ deriving instance Eq a => Eq (Foo a) deriving instance Bar a (m a b c) => Bar a (Baz m a b c) deriving instance Foo Baz foo => BazFail (FooEval foo bix waz) deriving instance Far (Boo (Baz waz)) bix => BooHeap bix (FarEval bix wax) ================================================ FILE: semantic/test/fixtures/haskell/corpus/standalone-deriving-declaration.diffA-B.txt ================================================ (Module (Empty) (Statements (StandaloneDerivingInstance (Context' (Class (TypeClassIdentifier) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) })) (TypeClassIdentifier) (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } { (TypeVariableIdentifier) ->(TypeVariableIdentifier) })) (StandaloneDerivingInstance (Context' (Class { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier) (Statements (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)))) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (Statements (TypeVariableIdentifier) (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)))) (StandaloneDerivingInstance (Context' (Class { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeConstructorIdentifier) (TypeVariableIdentifier))) (TypeClassIdentifier) (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))) (StandaloneDerivingInstance (Context' (Class { (TypeClassIdentifier) ->(TypeClassIdentifier) } (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (TypeVariableIdentifier))) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (Statements (TypeVariableIdentifier) (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeVariableIdentifier) (TypeVariableIdentifier)))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/standalone-deriving-declaration.diffB-A.txt ================================================ (Module (Empty) (Statements (StandaloneDerivingInstance (Context' (Class (TypeClassIdentifier) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) })) (TypeClassIdentifier) (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } { (TypeVariableIdentifier) ->(TypeVariableIdentifier) })) (StandaloneDerivingInstance (Context' (Class { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier) (Statements (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)))) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (Statements (TypeVariableIdentifier) (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)))) (StandaloneDerivingInstance (Context' (Class { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeConstructorIdentifier) (TypeVariableIdentifier))) (TypeClassIdentifier) (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))) (StandaloneDerivingInstance (Context' (Class { (TypeClassIdentifier) ->(TypeClassIdentifier) } (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (TypeVariableIdentifier))) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (Statements (TypeVariableIdentifier) (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeVariableIdentifier) (TypeVariableIdentifier)))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/standalone-deriving-declaration.parseA.txt ================================================ (Module (Empty) (Statements (StandaloneDerivingInstance (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (TypeClassIdentifier) (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (StandaloneDerivingInstance (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier) (Statements (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)))) (TypeClassIdentifier) (Statements (TypeVariableIdentifier) (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)))) (StandaloneDerivingInstance (Context' (Class (TypeClassIdentifier) (TypeConstructorIdentifier) (TypeVariableIdentifier))) (TypeClassIdentifier) (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))) (StandaloneDerivingInstance (Context' (Class (TypeClassIdentifier) (Statements (TypeConstructorIdentifier) (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (TypeVariableIdentifier))) (TypeClassIdentifier) (Statements (TypeVariableIdentifier) (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/standalone-deriving-declaration.parseB.txt ================================================ (Module (Empty) (Statements (StandaloneDerivingInstance (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (TypeClassIdentifier) (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (StandaloneDerivingInstance (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier) (Statements (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)))) (TypeClassIdentifier) (Statements (TypeVariableIdentifier) (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)))) (StandaloneDerivingInstance (Context' (Class (TypeClassIdentifier) (TypeConstructorIdentifier) (TypeVariableIdentifier))) (TypeClassIdentifier) (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))) (StandaloneDerivingInstance (Context' (Class (TypeClassIdentifier) (Statements (TypeConstructorIdentifier) (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (TypeVariableIdentifier))) (TypeClassIdentifier) (Statements (TypeVariableIdentifier) (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/statements.A.hs ================================================ f = if a then 1 else 2 f = if a; then b; else c f = if (if a then b else c) then d else e f = if if a then b else c then d else e head' :: [a] -> a head' [] = error "No head for empty lists!" head' (x:_) = x ================================================ FILE: semantic/test/fixtures/haskell/corpus/statements.B.hs ================================================ g = if b then 1 else 2 g = if b; then c; else d g = if (if b then c else d) then e else f g = if if b then c else d then e else f h' :: [a] -> a h' [] = error "No head for empty lists!" h' (x:_) = x ================================================ FILE: semantic/test/fixtures/haskell/corpus/statements.diffA-B.txt ================================================ (Module (Empty) (Statements (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (If { (VariableIdentifier) ->(VariableIdentifier) } (Integer) (Integer)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (If { (VariableIdentifier) ->(VariableIdentifier) } { (VariableIdentifier) ->(VariableIdentifier) } { (VariableIdentifier) ->(VariableIdentifier) }))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (If (If { (VariableIdentifier) ->(VariableIdentifier) } { (VariableIdentifier) ->(VariableIdentifier) } { (VariableIdentifier) ->(VariableIdentifier) }) { (VariableIdentifier) ->(VariableIdentifier) } { (VariableIdentifier) ->(VariableIdentifier) }))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (If (If { (VariableIdentifier) ->(VariableIdentifier) } { (VariableIdentifier) ->(VariableIdentifier) } { (VariableIdentifier) ->(VariableIdentifier) }) { (VariableIdentifier) ->(VariableIdentifier) } { (VariableIdentifier) ->(VariableIdentifier) }))) (TypeSignature { (VariableIdentifier) ->(VariableIdentifier) } (FunctionType (Type (Array (Type (TypeVariableIdentifier) (TypeParameters) (Empty))) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (ListConstructor) (Statements (App (VariableIdentifier) (Empty) (TextElement)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (VariableIdentifier) (ConstructorOperator (ConstructorSymbol)) (Wildcard)) (Statements (VariableIdentifier))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/statements.diffB-A.txt ================================================ (Module (Empty) (Statements (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (If { (VariableIdentifier) ->(VariableIdentifier) } (Integer) (Integer)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (If { (VariableIdentifier) ->(VariableIdentifier) } { (VariableIdentifier) ->(VariableIdentifier) } { (VariableIdentifier) ->(VariableIdentifier) }))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (If (If { (VariableIdentifier) ->(VariableIdentifier) } { (VariableIdentifier) ->(VariableIdentifier) } { (VariableIdentifier) ->(VariableIdentifier) }) { (VariableIdentifier) ->(VariableIdentifier) } { (VariableIdentifier) ->(VariableIdentifier) }))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (If (If { (VariableIdentifier) ->(VariableIdentifier) } { (VariableIdentifier) ->(VariableIdentifier) } { (VariableIdentifier) ->(VariableIdentifier) }) { (VariableIdentifier) ->(VariableIdentifier) } { (VariableIdentifier) ->(VariableIdentifier) }))) (TypeSignature { (VariableIdentifier) ->(VariableIdentifier) } (FunctionType (Type (Array (Type (TypeVariableIdentifier) (TypeParameters) (Empty))) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (ListConstructor) (Statements (App (VariableIdentifier) (Empty) (TextElement)))) (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements (VariableIdentifier) (ConstructorOperator (ConstructorSymbol)) (Wildcard)) (Statements (VariableIdentifier))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/statements.parseA.txt ================================================ (Module (Empty) (Statements (Function (VariableIdentifier) (Statements (If (VariableIdentifier) (Integer) (Integer)))) (Function (VariableIdentifier) (Statements (If (VariableIdentifier) (VariableIdentifier) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (If (If (VariableIdentifier) (VariableIdentifier) (VariableIdentifier)) (VariableIdentifier) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (If (If (VariableIdentifier) (VariableIdentifier) (VariableIdentifier)) (VariableIdentifier) (VariableIdentifier)))) (TypeSignature (VariableIdentifier) (FunctionType (Type (Array (Type (TypeVariableIdentifier) (TypeParameters) (Empty))) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (Function (VariableIdentifier) (ListConstructor) (Statements (App (VariableIdentifier) (Empty) (TextElement)))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (ConstructorOperator (ConstructorSymbol)) (Wildcard)) (Statements (VariableIdentifier))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/statements.parseB.txt ================================================ (Module (Empty) (Statements (Function (VariableIdentifier) (Statements (If (VariableIdentifier) (Integer) (Integer)))) (Function (VariableIdentifier) (Statements (If (VariableIdentifier) (VariableIdentifier) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (If (If (VariableIdentifier) (VariableIdentifier) (VariableIdentifier)) (VariableIdentifier) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (If (If (VariableIdentifier) (VariableIdentifier) (VariableIdentifier)) (VariableIdentifier) (VariableIdentifier)))) (TypeSignature (VariableIdentifier) (FunctionType (Type (Array (Type (TypeVariableIdentifier) (TypeParameters) (Empty))) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (Function (VariableIdentifier) (ListConstructor) (Statements (App (VariableIdentifier) (Empty) (TextElement)))) (Function (VariableIdentifier) (Statements (VariableIdentifier) (ConstructorOperator (ConstructorSymbol)) (Wildcard)) (Statements (VariableIdentifier))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/tempate-haskell.A.hs ================================================ [|example|] [e|example|] [p|example|] [t|example|] [d|example|] [str|example|] [ | example| ] [ e| example| ] [ p| example| ] [ t| example| ] [ d| example| ] [ str| example| ] [ | example | ] [ e | example | ] [ p | example | ] [ t | example | ] [ d | example | ] [ str | example | ] [str|integer,double,varchar,boolean,date,money,enum |13,3.14159,testing!,false,1900-01-01,$3.99,foo |12,0.1,a string,true,1929-10-01,12,bar |] [ | [{ "ret_setof_integers": 1 }, { "ret_setof_integers": 2 }, { "ret_setof_integers": 3 }] | ] [| [ { "ret_setof_integers": 1 }, { "ret_setof_integers": 2 }, { "ret_setof_integers": 3 } ] |] f = [|a|] `b` c f = $x f = $(a . b $ c) $(makeEff ''Embedded) ================================================ FILE: semantic/test/fixtures/haskell/corpus/tempate-haskell.parseA.txt ================================================ (Module (Empty) (Statements (QuasiQuotation (Empty) (QuasiQuotationExpressionBody)) (QuasiQuotation (QuasiQuotationExpression) (QuasiQuotationExpressionBody)) (QuasiQuotation (QuasiQuotationPattern) (QuasiQuotationExpressionBody)) (QuasiQuotation (QuasiQuotationType) (QuasiQuotationExpressionBody)) (QuasiQuotation (QuasiQuotationDeclaration) (QuasiQuotationExpressionBody)) (QuasiQuotation (QuasiQuotationQuoter) (QuasiQuotationExpressionBody)) (QuasiQuotation (Empty) (QuasiQuotationExpressionBody)) (QuasiQuotation (QuasiQuotationExpression) (QuasiQuotationExpressionBody)) (QuasiQuotation (QuasiQuotationPattern) (QuasiQuotationExpressionBody)) (QuasiQuotation (QuasiQuotationType) (QuasiQuotationExpressionBody)) (QuasiQuotation (QuasiQuotationDeclaration) (QuasiQuotationExpressionBody)) (QuasiQuotation (QuasiQuotationQuoter) (QuasiQuotationExpressionBody)) (QuasiQuotation (Empty) (QuasiQuotationExpressionBody)) (QuasiQuotation (QuasiQuotationExpression) (QuasiQuotationExpressionBody)) (QuasiQuotation (QuasiQuotationPattern) (QuasiQuotationExpressionBody)) (QuasiQuotation (QuasiQuotationType) (QuasiQuotationExpressionBody)) (QuasiQuotation (QuasiQuotationDeclaration) (QuasiQuotationExpressionBody)) (QuasiQuotation (QuasiQuotationQuoter) (QuasiQuotationExpressionBody)) (QuasiQuotation (QuasiQuotationQuoter) (QuasiQuotationExpressionBody)) (QuasiQuotation (Empty) (QuasiQuotationExpressionBody)) (QuasiQuotation (Empty) (QuasiQuotationExpressionBody)) (Function (VariableIdentifier) (Statements (InfixOperatorApp (QuasiQuotation (Empty) (QuasiQuotationExpressionBody)) (Empty) (VariableOperator (InfixVariableIdentifier)) (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (Splice (VariableIdentifier)))) (Function (VariableIdentifier) (Statements (Splice (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (VariableIdentifier)))))) (Splice (App (VariableIdentifier) (Empty) (QuotedName (QuotedName (TypeConstructorIdentifier))))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/template-haskell.B.hs ================================================ [|example'|] [e|example'|] [p|example'|] [t|example'|] [d|example'|] [str|example'|] [ | example'| ] [ e| example'| ] [ p| example'| ] [ t| example'| ] [ d| example'| ] [ str| example'| ] [ | example' | ] [ e | example' | ] [ p | example' | ] [ t | example' | ] [ d | example' | ] [ str | example' | ] [str|integer,double,varchar,boolean,date,money,enum |12,0.1,a string,true,1929-10-01,12,bar |13,3.14159,testing!,false,1900-01-01,$3.99,foo |] [ | [{ "ret_setof_integers": 3 }, { "ret_setof_integers": 4 }, { "ret_setof_integers": 5 }] | ] [| [ { "ret_setof_integers": 3 }, { "ret_setof_integers": 4 }, { "ret_setof_integers": 5 } ] |] g = [|a|] `b` c g = $x g = $(a . b $ c) $(makeEff' ''Embedded) ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-class-declarations.A.hs ================================================ class Show a where {} class Show a b where {} class Show a => Read a where {} class (Show a, Eq a) => Read a where {} class Foo a where { op :: Num b => a -> b -> a; op' :: (Num a, Num b) => a -> b -> a; } class Foo a where infixl `op` infixr 7 `op` infix 7 `op`, `ip`, `ap` infix <$> infix 7 <$> infix 7 : infix 7 :. infix 7 :<: class (Eq a) => Ord a where compare :: a -> a -> Ordering (<), (<=), (>=), (>) :: a -> a -> Bool max, min :: a -> a -> a id :: a class Bar a b m => Baz a b m where {} class Bar baz where foo :: wiz -> Baz default foo :: wiz -> Baz class Bar (baz :: Foo) where class Effectful (m :: [* -> *] -> * -> *) where class Foo bar where type Baz wiz :: Wax class Foo bar where type Baz wiz :: [* -> *] class Bar baz => Foo fax where type family Woo a :: [* -> *] class (Monad a, Show b) => Foo a b c | a -> c, b -> c where d :: a b ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-class-declarations.B.hs ================================================ class Eq a where {} class Ord a b where {} class Eq a => Ord a where {} class (Show a, Eq a) => Ord a where {} class Bar a where { op' :: Num b => a -> b -> a; op :: (Num a, Num b) => a -> b -> a; } class Bar a where infixl `op` infixr 8 `op` infix 8 `op`, `ip`, `ap` infix <$> infix 8 <$> infix 8 : infix 8 :. infix 8 :<: class (Eq b) => Ord b where compare :: b -> b -> Ordering (<), (<=), (>=), (>) :: b -> b -> Bool max, min :: b -> b -> b id :: b class Foo a b m => Bar a b m where {} class Foo bat where bar :: bat -> Baz default bar :: bat -> Baz class Foo (baz :: Bar) where class Effectful' (m' :: [* -> *] -> * -> *) where class Foo bar where type Baz wiz :: Wax class Foo bar where type Baz wiz :: [* -> *] class Foo baz => Bar fax where type family Woot a :: [* -> *] class (Monad a, Show b) => Foo a b c | b -> d, a -> b where d :: a b ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-class-declarations.diffA-B.txt ================================================ (Module (Empty) (Statements (TypeClass (Empty) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier) (Statements)) (TypeClass (Empty) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier) (TypeVariableIdentifier) (Statements)) (TypeClass (Context' (Class { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier))) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier) (Statements)) (TypeClass (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier) (Statements)) (TypeClass (Empty) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier) (Statements (TypeSignature { (VariableIdentifier) ->(VariableIdentifier) } (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty))))) (TypeSignature { (VariableIdentifier) ->(VariableIdentifier) } (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty))))))) (TypeClass (Empty) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier) (Statements (Fixity' (Empty) (VariableOperator (InfixVariableIdentifier))) (Fixity' { (Integer) ->(Integer) } (VariableOperator (InfixVariableIdentifier))) (Fixity' { (Integer) ->(Integer) } (VariableOperator (InfixVariableIdentifier)) (VariableOperator (InfixVariableIdentifier)) (VariableOperator (InfixVariableIdentifier))) (Fixity' (Empty) (VariableOperator (VariableSymbol))) (Fixity' { (Integer) ->(Integer) } (VariableOperator (VariableSymbol))) (Fixity' { (Integer) ->(Integer) } (ConstructorOperator (ConstructorSymbol))) (Fixity' { (Integer) ->(Integer) } (ConstructorOperator (ConstructorSymbol))) (Fixity' { (Integer) ->(Integer) } (ConstructorOperator (ConstructorSymbol))))) (TypeClass (Context' (Class (TypeClassIdentifier) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) })) (TypeClassIdentifier) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (Statements (TypeSignature (VariableIdentifier) (FunctionType (Type { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (TypeParameters) (Empty)) (FunctionType (Type { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (TypeSignature (VariableOperator (VariableSymbol)) (VariableOperator (VariableSymbol)) (VariableOperator (VariableSymbol)) (VariableOperator (VariableSymbol)) (FunctionType (Type { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (TypeParameters) (Empty)) (FunctionType (Type { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (TypeSignature (VariableIdentifier) (VariableIdentifier) (FunctionType (Type { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (TypeParameters) (Empty)) (FunctionType (Type { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (TypeParameters) (Empty)) (Type { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (TypeParameters) (Empty))))) (TypeSignature (VariableIdentifier) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) }))) (TypeClass (Context' (Class { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (Statements)) (TypeClass (Empty) { (TypeClassIdentifier) ->(TypeClassIdentifier) } { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (Statements (TypeSignature { (VariableIdentifier) ->(VariableIdentifier) } (FunctionType (Type { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))) (DefaultSignature { (VariableIdentifier) ->(VariableIdentifier) } (FunctionType (Type { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))))) (TypeClass (Empty) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (AnnotatedTypeVariable (TypeVariableIdentifier) { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (Statements)) (TypeClass (Empty) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (AnnotatedTypeVariable { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (KindFunctionType (Kind (KindListType (KindFunctionType (Kind (Star)) (Kind (Star))))) (KindFunctionType (Kind (Star)) (Kind (Star))))) (Statements)) (TypeClass (Empty) (TypeClassIdentifier) (TypeVariableIdentifier) (Statements (TypeSynonym (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier)) (TypeSignature (TypeConstructorIdentifier))))) (TypeClass (Empty) (TypeClassIdentifier) (TypeVariableIdentifier) (Statements (TypeSynonym (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier)) (KindSignature (KindListType (KindFunctionType (Kind (Star)) (Kind (Star)))))))) (TypeClass (Context' (Class { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier))) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier) (Statements (TypeFamily { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeVariableIdentifier) (KindSignature (KindListType (KindFunctionType (Kind (Star)) (Kind (Star))))) (Empty)))) (TypeClass (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (TypeClassIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (FunctionalDependency (Statements (FunctionType (Type { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (TypeParameters) (Empty)) (Type { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (TypeParameters) (Empty))) (FunctionType (Type { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (TypeParameters) (Empty)) (Type { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (TypeParameters) (Empty))))) (Statements (TypeSignature (VariableIdentifier) (Statements (TypeVariableIdentifier) (TypeVariableIdentifier))))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-class-declarations.diffB-A.txt ================================================ (Module (Empty) (Statements (TypeClass (Empty) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier) (Statements)) (TypeClass (Empty) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier) (TypeVariableIdentifier) (Statements)) (TypeClass (Context' (Class { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier))) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier) (Statements)) (TypeClass (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier) (Statements)) (TypeClass (Empty) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier) (Statements (TypeSignature { (VariableIdentifier) ->(VariableIdentifier) } (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty))))) (TypeSignature { (VariableIdentifier) ->(VariableIdentifier) } (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty))))))) (TypeClass (Empty) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier) (Statements (Fixity' (Empty) (VariableOperator (InfixVariableIdentifier))) (Fixity' { (Integer) ->(Integer) } (VariableOperator (InfixVariableIdentifier))) (Fixity' { (Integer) ->(Integer) } (VariableOperator (InfixVariableIdentifier)) (VariableOperator (InfixVariableIdentifier)) (VariableOperator (InfixVariableIdentifier))) (Fixity' (Empty) (VariableOperator (VariableSymbol))) (Fixity' { (Integer) ->(Integer) } (VariableOperator (VariableSymbol))) (Fixity' { (Integer) ->(Integer) } (ConstructorOperator (ConstructorSymbol))) (Fixity' { (Integer) ->(Integer) } (ConstructorOperator (ConstructorSymbol))) (Fixity' { (Integer) ->(Integer) } (ConstructorOperator (ConstructorSymbol))))) (TypeClass (Context' (Class (TypeClassIdentifier) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) })) (TypeClassIdentifier) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (Statements (TypeSignature (VariableIdentifier) (FunctionType (Type { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (TypeParameters) (Empty)) (FunctionType (Type { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (TypeSignature (VariableOperator (VariableSymbol)) (VariableOperator (VariableSymbol)) (VariableOperator (VariableSymbol)) (VariableOperator (VariableSymbol)) (FunctionType (Type { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (TypeParameters) (Empty)) (FunctionType (Type { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (TypeSignature (VariableIdentifier) (VariableIdentifier) (FunctionType (Type { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (TypeParameters) (Empty)) (FunctionType (Type { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (TypeParameters) (Empty)) (Type { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (TypeParameters) (Empty))))) (TypeSignature (VariableIdentifier) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) }))) (TypeClass (Context' (Class { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (Statements)) (TypeClass (Empty) { (TypeClassIdentifier) ->(TypeClassIdentifier) } { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (Statements (TypeSignature { (VariableIdentifier) ->(VariableIdentifier) } (FunctionType (Type { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))) (DefaultSignature { (VariableIdentifier) ->(VariableIdentifier) } (FunctionType (Type { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))))) (TypeClass (Empty) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (AnnotatedTypeVariable (TypeVariableIdentifier) { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (Statements)) (TypeClass (Empty) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (AnnotatedTypeVariable { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (KindFunctionType (Kind (KindListType (KindFunctionType (Kind (Star)) (Kind (Star))))) (KindFunctionType (Kind (Star)) (Kind (Star))))) (Statements)) (TypeClass (Empty) (TypeClassIdentifier) (TypeVariableIdentifier) (Statements (TypeSynonym (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier)) (TypeSignature (TypeConstructorIdentifier))))) (TypeClass (Empty) (TypeClassIdentifier) (TypeVariableIdentifier) (Statements (TypeSynonym (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier)) (KindSignature (KindListType (KindFunctionType (Kind (Star)) (Kind (Star)))))))) (TypeClass (Context' (Class { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier))) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier) (Statements (TypeFamily { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeVariableIdentifier) (KindSignature (KindListType (KindFunctionType (Kind (Star)) (Kind (Star))))) (Empty)))) (TypeClass (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (TypeClassIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (FunctionalDependency (Statements (FunctionType (Type { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (TypeParameters) (Empty)) (Type { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (TypeParameters) (Empty))) (FunctionType (Type { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (TypeParameters) (Empty)) (Type { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (TypeParameters) (Empty))))) (Statements (TypeSignature (VariableIdentifier) (Statements (TypeVariableIdentifier) (TypeVariableIdentifier))))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-class-declarations.parseA.txt ================================================ (Module (Empty) (Statements (TypeClass (Empty) (TypeClassIdentifier) (TypeVariableIdentifier) (Statements)) (TypeClass (Empty) (TypeClassIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (Statements)) (TypeClass (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (TypeClassIdentifier) (TypeVariableIdentifier) (Statements)) (TypeClass (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (TypeClassIdentifier) (TypeVariableIdentifier) (Statements)) (TypeClass (Empty) (TypeClassIdentifier) (TypeVariableIdentifier) (Statements (TypeSignature (VariableIdentifier) (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty))))) (TypeSignature (VariableIdentifier) (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty))))))) (TypeClass (Empty) (TypeClassIdentifier) (TypeVariableIdentifier) (Statements (Fixity' (Empty) (VariableOperator (InfixVariableIdentifier))) (Fixity' (Integer) (VariableOperator (InfixVariableIdentifier))) (Fixity' (Integer) (VariableOperator (InfixVariableIdentifier)) (VariableOperator (InfixVariableIdentifier)) (VariableOperator (InfixVariableIdentifier))) (Fixity' (Empty) (VariableOperator (VariableSymbol))) (Fixity' (Integer) (VariableOperator (VariableSymbol))) (Fixity' (Integer) (ConstructorOperator (ConstructorSymbol))) (Fixity' (Integer) (ConstructorOperator (ConstructorSymbol))) (Fixity' (Integer) (ConstructorOperator (ConstructorSymbol))))) (TypeClass (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (TypeClassIdentifier) (TypeVariableIdentifier) (Statements (TypeSignature (VariableIdentifier) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (TypeSignature (VariableOperator (VariableSymbol)) (VariableOperator (VariableSymbol)) (VariableOperator (VariableSymbol)) (VariableOperator (VariableSymbol)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (TypeSignature (VariableIdentifier) (VariableIdentifier) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty))))) (TypeSignature (VariableIdentifier) (TypeVariableIdentifier)))) (TypeClass (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))) (TypeClassIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (Statements)) (TypeClass (Empty) (TypeClassIdentifier) (TypeVariableIdentifier) (Statements (TypeSignature (VariableIdentifier) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))) (DefaultSignature (VariableIdentifier) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))))) (TypeClass (Empty) (TypeClassIdentifier) (AnnotatedTypeVariable (TypeVariableIdentifier) (TypeConstructorIdentifier)) (Statements)) (TypeClass (Empty) (TypeClassIdentifier) (AnnotatedTypeVariable (TypeVariableIdentifier) (KindFunctionType (Kind (KindListType (KindFunctionType (Kind (Star)) (Kind (Star))))) (KindFunctionType (Kind (Star)) (Kind (Star))))) (Statements)) (TypeClass (Empty) (TypeClassIdentifier) (TypeVariableIdentifier) (Statements (TypeSynonym (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier)) (TypeSignature (TypeConstructorIdentifier))))) (TypeClass (Empty) (TypeClassIdentifier) (TypeVariableIdentifier) (Statements (TypeSynonym (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier)) (KindSignature (KindListType (KindFunctionType (Kind (Star)) (Kind (Star)))))))) (TypeClass (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (TypeClassIdentifier) (TypeVariableIdentifier) (Statements (TypeFamily (TypeConstructorIdentifier) (TypeVariableIdentifier) (KindSignature (KindListType (KindFunctionType (Kind (Star)) (Kind (Star))))) (Empty)))) (TypeClass (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (TypeClassIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (FunctionalDependency (Statements (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty))) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty))))) (Statements (TypeSignature (VariableIdentifier) (Statements (TypeVariableIdentifier) (TypeVariableIdentifier))))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-class-declarations.parseB.txt ================================================ (Module (Empty) (Statements (TypeClass (Empty) (TypeClassIdentifier) (TypeVariableIdentifier) (Statements)) (TypeClass (Empty) (TypeClassIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (Statements)) (TypeClass (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (TypeClassIdentifier) (TypeVariableIdentifier) (Statements)) (TypeClass (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (TypeClassIdentifier) (TypeVariableIdentifier) (Statements)) (TypeClass (Empty) (TypeClassIdentifier) (TypeVariableIdentifier) (Statements (TypeSignature (VariableIdentifier) (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty))))) (TypeSignature (VariableIdentifier) (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty))))))) (TypeClass (Empty) (TypeClassIdentifier) (TypeVariableIdentifier) (Statements (Fixity' (Empty) (VariableOperator (InfixVariableIdentifier))) (Fixity' (Integer) (VariableOperator (InfixVariableIdentifier))) (Fixity' (Integer) (VariableOperator (InfixVariableIdentifier)) (VariableOperator (InfixVariableIdentifier)) (VariableOperator (InfixVariableIdentifier))) (Fixity' (Empty) (VariableOperator (VariableSymbol))) (Fixity' (Integer) (VariableOperator (VariableSymbol))) (Fixity' (Integer) (ConstructorOperator (ConstructorSymbol))) (Fixity' (Integer) (ConstructorOperator (ConstructorSymbol))) (Fixity' (Integer) (ConstructorOperator (ConstructorSymbol))))) (TypeClass (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (TypeClassIdentifier) (TypeVariableIdentifier) (Statements (TypeSignature (VariableIdentifier) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (TypeSignature (VariableOperator (VariableSymbol)) (VariableOperator (VariableSymbol)) (VariableOperator (VariableSymbol)) (VariableOperator (VariableSymbol)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))))) (TypeSignature (VariableIdentifier) (VariableIdentifier) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty))))) (TypeSignature (VariableIdentifier) (TypeVariableIdentifier)))) (TypeClass (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))) (TypeClassIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (Statements)) (TypeClass (Empty) (TypeClassIdentifier) (TypeVariableIdentifier) (Statements (TypeSignature (VariableIdentifier) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))) (DefaultSignature (VariableIdentifier) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))))) (TypeClass (Empty) (TypeClassIdentifier) (AnnotatedTypeVariable (TypeVariableIdentifier) (TypeConstructorIdentifier)) (Statements)) (TypeClass (Empty) (TypeClassIdentifier) (AnnotatedTypeVariable (TypeVariableIdentifier) (KindFunctionType (Kind (KindListType (KindFunctionType (Kind (Star)) (Kind (Star))))) (KindFunctionType (Kind (Star)) (Kind (Star))))) (Statements)) (TypeClass (Empty) (TypeClassIdentifier) (TypeVariableIdentifier) (Statements (TypeSynonym (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier)) (TypeSignature (TypeConstructorIdentifier))))) (TypeClass (Empty) (TypeClassIdentifier) (TypeVariableIdentifier) (Statements (TypeSynonym (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier)) (KindSignature (KindListType (KindFunctionType (Kind (Star)) (Kind (Star)))))))) (TypeClass (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (TypeClassIdentifier) (TypeVariableIdentifier) (Statements (TypeFamily (TypeConstructorIdentifier) (TypeVariableIdentifier) (KindSignature (KindListType (KindFunctionType (Kind (Star)) (Kind (Star))))) (Empty)))) (TypeClass (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (TypeClassIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (FunctionalDependency (Statements (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty))) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty))))) (Statements (TypeSignature (VariableIdentifier) (Statements (TypeVariableIdentifier) (TypeVariableIdentifier))))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-class-instance-declarations.A.hs ================================================ instance Show Int where instance Show Int where {} instance Show Int instance Show Int a where instance Show Int a where {} instance Show Int a instance Show (Maybe a) where instance Show (Maybe a) where {} instance Show (Maybe a) instance Show (a, b, c) where instance Show (a, b, c) where {} instance Show (a, b, c) instance Show [a] where instance Show [a] where {} instance Show [a] instance Show (a -> b) where instance Show (a -> b) where {} instance Show (a -> b) instance Show Foo where bar (Foo Baz) (Foo Wix) = EQ instance Show Foo where { bar (Foo Baz) (Foo Wix) = EQ } instance Show (,) where instance Show (,) where {} instance Show (,) instance Show (Bar, Baz a b) where instance Show (Bar, Baz a b) where {} instance Show (Bar, Baz a b) instance Show [(Bar, Baz a b)] where instance Show [(Bar, Baz a b)] where {} instance Show [(Bar, Baz a b)] instance Show [Bar] where instance Show [Bar] where {} instance Show [Bar] instance Show [Bar a b] where instance Show [Bar a b] where {} instance Show [Bar a b] instance Show [Bar Baz b] where instance Show [Bar Baz b] where {} instance Show [Bar Baz b] instance Show a => Read Int where {} instance Show a => Read (Maybe a) where {} instance (Show a, Eq a) => Read (Maybe a) where {} instance (Foo (Bar [Baz])) => Read (Bar) where {} instance (Foo (Bar (Baz, Baz))) => Read (Bar) where {} instance Foo Bar where baz :: Num b => a -> b -> a baz' :: (Num a, Num b) => Maybe a -> Either String b -> Maybe (Either String a) instance Bar a b m => Baz a b m where {} instance ( Foo (Bar a b '[]) c ) => Baz a b (Bix a b c) where instance (Bar baz ~ foo) => Wix baz where toWix = undefined Wix baz <> Wix baz' = Wix (baz <> baz') instance Bar (f :+: g) where {} instance (A :< b, B :< b) => Bar (A c) Foo where {} instance Foo Bar where foo D.F{..} = foo instance Show Foo where bar (Foo Baz) (Foo Baz) = EQ instance forall location a b. (Show a, Monad b) => MonadError (Value a) b where unit = pure . Unit instance Show A where b = c -- a instance Show A where b = c ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-class-instance-declarations.B.hs ================================================ instance Eq Int where instance Eq Int where {} instance Eq Int instance Eq Int a where instance Eq Int a where {} instance Eq Int a instance Eq (Maybe a) where instance Eq (Maybe a) where {} instance Eq (Maybe a) instance Eq (a, b, c) where instance Eq (a, b, c) where {} instance Eq (a, b, c) instance Eq [a] where instance Eq [a] where {} instance Eq [a] instance Eq (a -> b) where instance Eq (a -> b) where {} instance Eq (a -> b) instance Eq Foo where bar (Foo Baz) (Foo Wix) = EQ instance Eq Foo where { bar (Foo Baz) (Foo Wix) = EQ } instance Eq (,) where instance Eq (,) where {} instance Eq (,) instance Eq (Bar, Baz a b) where instance Eq (Bar, Baz a b) where {} instance Eq (Bar, Baz a b) instance Eq [(Bar, Baz a b)] where instance Eq [(Bar, Baz a b)] where {} instance Eq [(Bar, Baz a b)] instance Eq [Bar] where instance Eq [Bar] where {} instance Eq [Bar] instance Eq [Bar a b] where instance Eq [Bar a b] where {} instance Eq [Bar a b] instance Eq [Bar Baz b] where instance Eq [Bar Baz b] where {} instance Eq [Bar Baz b] instance Show a => Read Int where {} instance Show a => Read (Maybe a) where {} instance (Show a, Eq a) => Read (Maybe a) where {} instance (Foo (Bar [Baz])) => Read (Bar) where {} instance (Foo (Bar (Baz, Baz))) => Read (Bar) where {} instance Bar Foo where baz :: Num b => a -> b -> a baz' :: (Num a, Num b) => Maybe a -> Either String b -> Maybe (Either String a) instance Foo a b m => Bar a b m where {} instance ( Foo (Bar a b '[]) c ) => Baz a b (Bix a b c) where instance (Foo baz ~ bar) => Wix baz where toWix = undefined Wix baz <> Wix baz' = Wix (baz <> baz') instance Foo (f :+: g) where {} instance (B :< a, A :< b) => Foo (A b) Bar where {} instance Bar Foo where foo F.D{..} = bar instance Show Bar where bar (Bar Baz) (Bar Baz) = EQ instance forall location b c. (Show b, Monad c) => ErrorMonad (Value b) c where unit = pure . Unit instance Show B where c = d -- a instance Show B where c = d ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-class-instance-declarations.diffA-B.txt ================================================ (Module (Empty) (Statements (TypeClassInstance { (TypeClassIdentifier) ->(TypeClassIdentifier) } (Instance (TypeConstructorIdentifier)) (Statements)) {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(TypeConstructorIdentifier)+})+} {+(Statements)+})+} (TypeClassInstance { (TypeClassIdentifier) ->(TypeClassIdentifier) } (Instance (TypeConstructorIdentifier)) { (Statements) ->(Empty) }) {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Statements {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Statements {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Statements {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+})+})+} {+(Empty)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Statements {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Statements {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Statements {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+})+})+} {+(Empty)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Tuple {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Tuple {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Tuple {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Empty)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Empty)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(FunctionType {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(FunctionType {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(FunctionType {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Empty)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(TypeConstructorIdentifier)+})+} {+(Statements {+(Function {+(VariableIdentifier)+} {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(ConstructorIdentifier)+})+})+} {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(ConstructorIdentifier)+})+})+} {+(Statements {+(ConstructorIdentifier)+})+})+})+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(TypeConstructorIdentifier)+})+} {+(Statements {+(Function {+(VariableIdentifier)+} {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(ConstructorIdentifier)+})+})+} {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(ConstructorIdentifier)+})+})+} {+(Statements {+(ConstructorIdentifier)+})+})+})+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(TupleConstructor)+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(TupleConstructor)+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(TupleConstructor)+})+} {+(Empty)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Tuple {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Tuple {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Tuple {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+})+} {+(Empty)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(Tuple {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(Tuple {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(Tuple {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Empty)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Empty)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+})+} {+(Empty)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+})+} {+(Empty)+})+} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(TypeConstructorIdentifier)-})-} {-(Empty)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Statements {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Statements {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Statements {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-})-})-} {-(Empty)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Statements {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Statements {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Statements {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-})-})-} {-(Empty)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Tuple {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Tuple {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Tuple {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Empty)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Empty)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(FunctionType {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(FunctionType {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(FunctionType {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Empty)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(TypeConstructorIdentifier)-})-} {-(Statements {-(Function {-(VariableIdentifier)-} {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(ConstructorIdentifier)-})-})-} {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(ConstructorIdentifier)-})-})-} {-(Statements {-(ConstructorIdentifier)-})-})-})-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(TypeConstructorIdentifier)-})-} {-(Statements {-(Function {-(VariableIdentifier)-} {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(ConstructorIdentifier)-})-})-} {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(ConstructorIdentifier)-})-})-} {-(Statements {-(ConstructorIdentifier)-})-})-})-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(TupleConstructor)-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(TupleConstructor)-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(TupleConstructor)-})-} {-(Empty)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Tuple {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Tuple {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Tuple {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-})-} {-(Empty)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(Tuple {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(Tuple {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(Tuple {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Empty)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Empty)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-})-} {-(Empty)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-})-} {-(Empty)-})-} (TypeClassInstance (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements)) (TypeClassInstance (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (TypeClassIdentifier) (Instance (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (Statements)) (TypeClassInstance (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (TypeClassIdentifier) (Instance (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (Statements)) (TypeClassInstance (Context' (Class (TypeClassIdentifier) (Statements (TypeConstructorIdentifier) (Array (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))))) (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements)) (TypeClassInstance (Context' (Class (TypeClassIdentifier) (Statements (TypeConstructorIdentifier) (Tuple (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))))) (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements)) (TypeClassInstance { (TypeClassIdentifier) ->(TypeClassIdentifier) } (Instance { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (Statements (TypeSignature (VariableIdentifier) (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty))))) (TypeSignature (VariableIdentifier) (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier) (TypeVariableIdentifier)) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (Statements (TypeConstructorIdentifier) (TypeConstructorIdentifier) (TypeVariableIdentifier))) (Empty))))))) (TypeClassInstance (Context' (Class { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (Instance (Statements (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))) (Statements)) (TypeClassInstance (Context' (Class (TypeClassIdentifier) (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (QuotedName (ListConstructor))) (TypeVariableIdentifier))) (TypeClassIdentifier) (Instance (Statements (TypeVariableIdentifier) (TypeVariableIdentifier) (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)))) (Statements)) (TypeClassInstance (Context' (EqualityConstraint (Class { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier)) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) })) (TypeClassIdentifier) (Instance (TypeVariableIdentifier)) (Statements (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))) (VariableOperator (VariableSymbol)) (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))) (Statements (App (ConstructorIdentifier) (Empty) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (VariableIdentifier))))))) (TypeClassInstance { (TypeClassIdentifier) ->(TypeClassIdentifier) } (Instance (InfixOperatorPattern (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (ConstructorOperator (ConstructorSymbol)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (Statements)) (TypeClassInstance (Context' (Statements {+(Statements {+(TypeConstructorIdentifier)+} {+(ConstructorOperator {+(ConstructorSymbol)+})+} {+(TypeVariableIdentifier)+})+} (Statements (TypeConstructorIdentifier) (ConstructorOperator (ConstructorSymbol)) (TypeVariableIdentifier)) {-(Statements {-(TypeConstructorIdentifier)-} {-(ConstructorOperator {-(ConstructorSymbol)-})-} {-(TypeVariableIdentifier)-})-})) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (Instance (Statements (Statements (TypeConstructorIdentifier) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) }) { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) })) (Statements)) (TypeClassInstance { (TypeClassIdentifier) ->(TypeClassIdentifier) } (Instance { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (Statements (Function (VariableIdentifier) (LabeledPattern (Statements (QualifiedConstructorIdentifier { (ModuleIdentifier) ->(ModuleIdentifier) } { (ConstructorIdentifier) ->(ConstructorIdentifier) }) (RecordWildCards))) (Statements { (VariableIdentifier) ->(VariableIdentifier) })))) (TypeClassInstance (TypeClassIdentifier) (Instance { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (Statements (Function (VariableIdentifier) (ConstructorPattern (Statements { (ConstructorIdentifier) ->(ConstructorIdentifier) } (ConstructorIdentifier))) (ConstructorPattern (Statements { (ConstructorIdentifier) ->(ConstructorIdentifier) } (ConstructorIdentifier))) (Statements (ConstructorIdentifier))))) (TypeClassInstance (ScopedTypeVariables (Statements (TypeVariableIdentifier) {-(TypeVariableIdentifier)-} (TypeVariableIdentifier) {+(TypeVariableIdentifier)+})) (Context' (Statements (Class (TypeClassIdentifier) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) }) (Class (TypeClassIdentifier) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) }))) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (Instance (Statements (Statements (TypeConstructorIdentifier) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) }) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) })) (Statements (Function (VariableIdentifier) (Statements (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (ConstructorIdentifier)))))) (Context (Comment) (TypeClassInstance (TypeClassIdentifier) (Instance { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (Statements (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements { (VariableIdentifier) ->(VariableIdentifier) }))))) (TypeClassInstance (TypeClassIdentifier) (Instance { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (Statements (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements { (VariableIdentifier) ->(VariableIdentifier) })))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-class-instance-declarations.diffB-A.txt ================================================ (Module (Empty) (Statements (TypeClassInstance { (TypeClassIdentifier) ->(TypeClassIdentifier) } (Instance (TypeConstructorIdentifier)) (Statements)) {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(TypeConstructorIdentifier)+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(TypeConstructorIdentifier)+})+} {+(Empty)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Statements {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Statements {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Statements {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+})+})+} {+(Empty)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Statements {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Statements {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Statements {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+})+})+} {+(Empty)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Tuple {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Tuple {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Tuple {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Empty)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Empty)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(FunctionType {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(FunctionType {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(FunctionType {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Empty)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(TypeConstructorIdentifier)+})+} {+(Statements {+(Function {+(VariableIdentifier)+} {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(ConstructorIdentifier)+})+})+} {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(ConstructorIdentifier)+})+})+} {+(Statements {+(ConstructorIdentifier)+})+})+})+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(TypeConstructorIdentifier)+})+} {+(Statements {+(Function {+(VariableIdentifier)+} {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(ConstructorIdentifier)+})+})+} {+(ConstructorPattern {+(Statements {+(ConstructorIdentifier)+} {+(ConstructorIdentifier)+})+})+} {+(Statements {+(ConstructorIdentifier)+})+})+})+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(TupleConstructor)+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(TupleConstructor)+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(TupleConstructor)+})+} {+(Empty)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Tuple {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Tuple {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Tuple {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+})+} {+(Empty)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(Tuple {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(Tuple {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(Tuple {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Empty)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(Empty)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+})+} {+(Empty)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+})+} {+(Statements)+})+} {+(TypeClassInstance {+(TypeClassIdentifier)+} {+(Instance {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+})+} {+(Empty)+})+} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(TypeConstructorIdentifier)-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(TypeConstructorIdentifier)-})-} {-(Empty)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Statements {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Statements {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Statements {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-})-})-} {-(Empty)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Statements {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Statements {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Statements {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-})-})-} {-(Empty)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Tuple {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Tuple {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Tuple {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Empty)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Empty)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(FunctionType {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(FunctionType {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(FunctionType {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Empty)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(TypeConstructorIdentifier)-})-} {-(Statements {-(Function {-(VariableIdentifier)-} {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(ConstructorIdentifier)-})-})-} {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(ConstructorIdentifier)-})-})-} {-(Statements {-(ConstructorIdentifier)-})-})-})-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(TypeConstructorIdentifier)-})-} {-(Statements {-(Function {-(VariableIdentifier)-} {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(ConstructorIdentifier)-})-})-} {-(ConstructorPattern {-(Statements {-(ConstructorIdentifier)-} {-(ConstructorIdentifier)-})-})-} {-(Statements {-(ConstructorIdentifier)-})-})-})-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(TupleConstructor)-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(TupleConstructor)-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(TupleConstructor)-})-} {-(Empty)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Tuple {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Tuple {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Tuple {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-})-} {-(Empty)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(Tuple {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(Tuple {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(Tuple {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Empty)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(Empty)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-})-} {-(Empty)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-})-} {-(Statements)-})-} {-(TypeClassInstance {-(TypeClassIdentifier)-} {-(Instance {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-})-} {-(Empty)-})-} (TypeClassInstance (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements)) (TypeClassInstance (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (TypeClassIdentifier) (Instance (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (Statements)) (TypeClassInstance (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (TypeClassIdentifier) (Instance (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (Statements)) (TypeClassInstance (Context' (Class (TypeClassIdentifier) (Statements (TypeConstructorIdentifier) (Array (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))))) (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements)) (TypeClassInstance (Context' (Class (TypeClassIdentifier) (Statements (TypeConstructorIdentifier) (Tuple (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))))) (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements)) (TypeClassInstance { (TypeClassIdentifier) ->(TypeClassIdentifier) } (Instance { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (Statements (TypeSignature (VariableIdentifier) (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty))))) (TypeSignature (VariableIdentifier) (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier) (TypeVariableIdentifier)) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (Statements (TypeConstructorIdentifier) (TypeConstructorIdentifier) (TypeVariableIdentifier))) (Empty))))))) (TypeClassInstance (Context' (Class { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (Instance (Statements (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))) (Statements)) (TypeClassInstance (Context' (Class (TypeClassIdentifier) (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (QuotedName (ListConstructor))) (TypeVariableIdentifier))) (TypeClassIdentifier) (Instance (Statements (TypeVariableIdentifier) (TypeVariableIdentifier) (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)))) (Statements)) (TypeClassInstance (Context' (EqualityConstraint (Class { (TypeClassIdentifier) ->(TypeClassIdentifier) } (TypeVariableIdentifier)) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) })) (TypeClassIdentifier) (Instance (TypeVariableIdentifier)) (Statements (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))) (VariableOperator (VariableSymbol)) (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))) (Statements (App (ConstructorIdentifier) (Empty) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (VariableIdentifier))))))) (TypeClassInstance { (TypeClassIdentifier) ->(TypeClassIdentifier) } (Instance (InfixOperatorPattern (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (ConstructorOperator (ConstructorSymbol)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (Statements)) (TypeClassInstance (Context' (Statements {-(Statements {-(TypeConstructorIdentifier)-} {-(ConstructorOperator {-(ConstructorSymbol)-})-} {-(TypeVariableIdentifier)-})-} (Statements (TypeConstructorIdentifier) (ConstructorOperator (ConstructorSymbol)) (TypeVariableIdentifier)) {+(Statements {+(TypeConstructorIdentifier)+} {+(ConstructorOperator {+(ConstructorSymbol)+})+} {+(TypeVariableIdentifier)+})+})) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (Instance (Statements (Statements (TypeConstructorIdentifier) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) }) { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) })) (Statements)) (TypeClassInstance { (TypeClassIdentifier) ->(TypeClassIdentifier) } (Instance { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (Statements (Function (VariableIdentifier) (LabeledPattern (Statements (QualifiedConstructorIdentifier { (ModuleIdentifier) ->(ModuleIdentifier) } { (ConstructorIdentifier) ->(ConstructorIdentifier) }) (RecordWildCards))) (Statements { (VariableIdentifier) ->(VariableIdentifier) })))) (TypeClassInstance (TypeClassIdentifier) (Instance { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (Statements (Function (VariableIdentifier) (ConstructorPattern (Statements { (ConstructorIdentifier) ->(ConstructorIdentifier) } (ConstructorIdentifier))) (ConstructorPattern (Statements { (ConstructorIdentifier) ->(ConstructorIdentifier) } (ConstructorIdentifier))) (Statements (ConstructorIdentifier))))) (TypeClassInstance (ScopedTypeVariables (Statements (TypeVariableIdentifier) {+(TypeVariableIdentifier)+} (TypeVariableIdentifier) {-(TypeVariableIdentifier)-})) (Context' (Statements (Class (TypeClassIdentifier) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) }) (Class (TypeClassIdentifier) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) }))) { (TypeClassIdentifier) ->(TypeClassIdentifier) } (Instance (Statements (Statements (TypeConstructorIdentifier) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) }) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) })) (Statements (Function (VariableIdentifier) (Statements (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (ConstructorIdentifier)))))) (Context (Comment) (TypeClassInstance (TypeClassIdentifier) (Instance { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (Statements (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements { (VariableIdentifier) ->(VariableIdentifier) }))))) (TypeClassInstance (TypeClassIdentifier) (Instance { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (Statements (Function { (VariableIdentifier) ->(VariableIdentifier) } (Statements { (VariableIdentifier) ->(VariableIdentifier) })))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-class-instance-declarations.parseA.txt ================================================ (Module (Empty) (Statements (TypeClassInstance (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Empty)) (TypeClassInstance (TypeClassIdentifier) (Instance (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (Empty)) (TypeClassInstance (TypeClassIdentifier) (Instance (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (Empty)) (TypeClassInstance (TypeClassIdentifier) (Instance (Tuple (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Tuple (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Tuple (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (Empty)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (Empty)) (TypeClassInstance (TypeClassIdentifier) (Instance (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (Empty)) (TypeClassInstance (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements (Function (VariableIdentifier) (ConstructorPattern (Statements (ConstructorIdentifier) (ConstructorIdentifier))) (ConstructorPattern (Statements (ConstructorIdentifier) (ConstructorIdentifier))) (Statements (ConstructorIdentifier))))) (TypeClassInstance (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements (Function (VariableIdentifier) (ConstructorPattern (Statements (ConstructorIdentifier) (ConstructorIdentifier))) (ConstructorPattern (Statements (ConstructorIdentifier) (ConstructorIdentifier))) (Statements (ConstructorIdentifier))))) (TypeClassInstance (TypeClassIdentifier) (Instance (TupleConstructor)) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (TupleConstructor)) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (TupleConstructor)) (Empty)) (TypeClassInstance (TypeClassIdentifier) (Instance (Tuple (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Tuple (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Tuple (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))) (Empty)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (Tuple (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty))) (TypeParameters) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (Tuple (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty))) (TypeParameters) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (Tuple (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty))) (TypeParameters) (Empty)))) (Empty)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))) (Empty)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))) (Empty)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier) (TypeVariableIdentifier)) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier) (TypeVariableIdentifier)) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier) (TypeVariableIdentifier)) (Empty)))) (Empty)) (TypeClassInstance (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements)) (TypeClassInstance (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (TypeClassIdentifier) (Instance (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (Statements)) (TypeClassInstance (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (TypeClassIdentifier) (Instance (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (Statements)) (TypeClassInstance (Context' (Class (TypeClassIdentifier) (Statements (TypeConstructorIdentifier) (Array (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))))) (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements)) (TypeClassInstance (Context' (Class (TypeClassIdentifier) (Statements (TypeConstructorIdentifier) (Tuple (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))))) (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements (TypeSignature (VariableIdentifier) (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty))))) (TypeSignature (VariableIdentifier) (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier) (TypeVariableIdentifier)) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (Statements (TypeConstructorIdentifier) (TypeConstructorIdentifier) (TypeVariableIdentifier))) (Empty))))))) (TypeClassInstance (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))) (TypeClassIdentifier) (Instance (Statements (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))) (Statements)) (TypeClassInstance (Context' (Class (TypeClassIdentifier) (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (QuotedName (ListConstructor))) (TypeVariableIdentifier))) (TypeClassIdentifier) (Instance (Statements (TypeVariableIdentifier) (TypeVariableIdentifier) (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)))) (Statements)) (TypeClassInstance (Context' (EqualityConstraint (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (TypeVariableIdentifier))) (TypeClassIdentifier) (Instance (TypeVariableIdentifier)) (Statements (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))) (VariableOperator (VariableSymbol)) (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))) (Statements (App (ConstructorIdentifier) (Empty) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (VariableIdentifier))))))) (TypeClassInstance (TypeClassIdentifier) (Instance (InfixOperatorPattern (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (ConstructorOperator (ConstructorSymbol)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (Statements)) (TypeClassInstance (Context' (Statements (Statements (TypeConstructorIdentifier) (ConstructorOperator (ConstructorSymbol)) (TypeVariableIdentifier)) (Statements (TypeConstructorIdentifier) (ConstructorOperator (ConstructorSymbol)) (TypeVariableIdentifier)))) (TypeClassIdentifier) (Instance (Statements (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier)) (TypeConstructorIdentifier))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements (Function (VariableIdentifier) (LabeledPattern (Statements (QualifiedConstructorIdentifier (ModuleIdentifier) (ConstructorIdentifier)) (RecordWildCards))) (Statements (VariableIdentifier))))) (TypeClassInstance (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements (Function (VariableIdentifier) (ConstructorPattern (Statements (ConstructorIdentifier) (ConstructorIdentifier))) (ConstructorPattern (Statements (ConstructorIdentifier) (ConstructorIdentifier))) (Statements (ConstructorIdentifier))))) (TypeClassInstance (ScopedTypeVariables (Statements (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))) (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (TypeClassIdentifier) (Instance (Statements (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier)) (TypeVariableIdentifier))) (Statements (Function (VariableIdentifier) (Statements (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (ConstructorIdentifier)))))) (Context (Comment) (TypeClassInstance (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements (Function (VariableIdentifier) (Statements (VariableIdentifier)))))) (TypeClassInstance (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements (Function (VariableIdentifier) (Statements (VariableIdentifier))))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-class-instance-declarations.parseB.txt ================================================ (Module (Empty) (Statements (TypeClassInstance (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Empty)) (TypeClassInstance (TypeClassIdentifier) (Instance (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (Empty)) (TypeClassInstance (TypeClassIdentifier) (Instance (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (Empty)) (TypeClassInstance (TypeClassIdentifier) (Instance (Tuple (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Tuple (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Tuple (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (Empty)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (Empty)) (TypeClassInstance (TypeClassIdentifier) (Instance (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (Empty)) (TypeClassInstance (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements (Function (VariableIdentifier) (ConstructorPattern (Statements (ConstructorIdentifier) (ConstructorIdentifier))) (ConstructorPattern (Statements (ConstructorIdentifier) (ConstructorIdentifier))) (Statements (ConstructorIdentifier))))) (TypeClassInstance (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements (Function (VariableIdentifier) (ConstructorPattern (Statements (ConstructorIdentifier) (ConstructorIdentifier))) (ConstructorPattern (Statements (ConstructorIdentifier) (ConstructorIdentifier))) (Statements (ConstructorIdentifier))))) (TypeClassInstance (TypeClassIdentifier) (Instance (TupleConstructor)) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (TupleConstructor)) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (TupleConstructor)) (Empty)) (TypeClassInstance (TypeClassIdentifier) (Instance (Tuple (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Tuple (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Tuple (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))) (Empty)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (Tuple (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty))) (TypeParameters) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (Tuple (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty))) (TypeParameters) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (Tuple (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty))) (TypeParameters) (Empty)))) (Empty)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))) (Empty)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))) (Empty)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier) (TypeVariableIdentifier)) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier) (TypeVariableIdentifier)) (Empty)))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (Array (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier) (TypeVariableIdentifier)) (Empty)))) (Empty)) (TypeClassInstance (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements)) (TypeClassInstance (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (TypeClassIdentifier) (Instance (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (Statements)) (TypeClassInstance (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (TypeClassIdentifier) (Instance (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (Statements)) (TypeClassInstance (Context' (Class (TypeClassIdentifier) (Statements (TypeConstructorIdentifier) (Array (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))))) (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements)) (TypeClassInstance (Context' (Class (TypeClassIdentifier) (Statements (TypeConstructorIdentifier) (Tuple (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))))) (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements (TypeSignature (VariableIdentifier) (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty))))) (TypeSignature (VariableIdentifier) (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier) (TypeVariableIdentifier)) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (Statements (TypeConstructorIdentifier) (TypeConstructorIdentifier) (TypeVariableIdentifier))) (Empty))))))) (TypeClassInstance (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))) (TypeClassIdentifier) (Instance (Statements (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))) (Statements)) (TypeClassInstance (Context' (Class (TypeClassIdentifier) (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (QuotedName (ListConstructor))) (TypeVariableIdentifier))) (TypeClassIdentifier) (Instance (Statements (TypeVariableIdentifier) (TypeVariableIdentifier) (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)))) (Statements)) (TypeClassInstance (Context' (EqualityConstraint (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (TypeVariableIdentifier))) (TypeClassIdentifier) (Instance (TypeVariableIdentifier)) (Statements (Function (VariableIdentifier) (Statements (VariableIdentifier))) (Function (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))) (VariableOperator (VariableSymbol)) (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))) (Statements (App (ConstructorIdentifier) (Empty) (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (VariableIdentifier))))))) (TypeClassInstance (TypeClassIdentifier) (Instance (InfixOperatorPattern (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (ConstructorOperator (ConstructorSymbol)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (Statements)) (TypeClassInstance (Context' (Statements (Statements (TypeConstructorIdentifier) (ConstructorOperator (ConstructorSymbol)) (TypeVariableIdentifier)) (Statements (TypeConstructorIdentifier) (ConstructorOperator (ConstructorSymbol)) (TypeVariableIdentifier)))) (TypeClassIdentifier) (Instance (Statements (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier)) (TypeConstructorIdentifier))) (Statements)) (TypeClassInstance (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements (Function (VariableIdentifier) (LabeledPattern (Statements (QualifiedConstructorIdentifier (ModuleIdentifier) (ConstructorIdentifier)) (RecordWildCards))) (Statements (VariableIdentifier))))) (TypeClassInstance (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements (Function (VariableIdentifier) (ConstructorPattern (Statements (ConstructorIdentifier) (ConstructorIdentifier))) (ConstructorPattern (Statements (ConstructorIdentifier) (ConstructorIdentifier))) (Statements (ConstructorIdentifier))))) (TypeClassInstance (ScopedTypeVariables (Statements (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))) (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (TypeClassIdentifier) (Instance (Statements (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier)) (TypeVariableIdentifier))) (Statements (Function (VariableIdentifier) (Statements (InfixOperatorApp (VariableIdentifier) (Empty) (VariableOperator (VariableSymbol)) (ConstructorIdentifier)))))) (Context (Comment) (TypeClassInstance (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements (Function (VariableIdentifier) (Statements (VariableIdentifier)))))) (TypeClassInstance (TypeClassIdentifier) (Instance (TypeConstructorIdentifier)) (Statements (Function (VariableIdentifier) (Statements (VariableIdentifier))))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-family-declarations.A.hs ================================================ type family Foo bar where Bar = Wiz Baz = 'Custom Bar.Baz a = 'Custom Bar.Baz (A a) = 'Custom type family F a :: * type instance F [Int] = Int type instance F String = Char type family Bar (baz :: [(* -> *) -> Wiz]) (foo :: * -> *) :: Wiz where ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-family-declarations.B.hs ================================================ type family Baz bar where Baz = Wiz Bar = 'Custom Baz.Bar a = 'Custom Baz.Bar (B b) = 'Custom type family F b :: * type instance F [String] = Int type instance F Char = Char type family Baz (bar :: [(* -> *) -> Waz]) (faz :: * -> *) :: Waz where ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-family-declarations.diffA-B.txt ================================================ (Module (Empty) (Statements (TypeFamily { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeVariableIdentifier) (Empty) (Statements {-(Function {-(ConstructorIdentifier)-} {-(Statements {-(ConstructorIdentifier)-})-})-} (Function (ConstructorIdentifier) (Statements {+(ConstructorIdentifier)+} {-(QuotedName {-(TypeConstructorIdentifier)-})-})) {+(Function {+(ConstructorIdentifier)+} {+(Statements {+(QuotedName {+(TypeConstructorIdentifier)+})+})+})+} (Function (ConstructorPattern (Statements (QualifiedConstructorIdentifier { (ModuleIdentifier) ->(ModuleIdentifier) } { (ConstructorIdentifier) ->(ConstructorIdentifier) }) (VariableIdentifier))) (Statements (QuotedName (TypeConstructorIdentifier)))) (Function (ConstructorPattern (Statements (QualifiedConstructorIdentifier { (ModuleIdentifier) ->(ModuleIdentifier) } { (ConstructorIdentifier) ->(ConstructorIdentifier) }) (ConstructorPattern (Statements { (ConstructorIdentifier) ->(ConstructorIdentifier) } { (VariableIdentifier) ->(VariableIdentifier) })))) (Statements (QuotedName (TypeConstructorIdentifier)))))) (TypeFamily (TypeConstructorIdentifier) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (KindSignature (Star)) (Empty)) (TypeInstance (Statements (TypeConstructorIdentifier) (Array (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters) (Empty)))) (TypePattern (TypeConstructorIdentifier))) (TypeInstance (Statements (TypeConstructorIdentifier) { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (TypePattern (TypeConstructorIdentifier))) (TypeFamily { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (AnnotatedTypeVariable { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (KindListType (KindFunctionType (Kind (KindParenthesizedConstructor (KindFunctionType (Kind (Star)) (Kind (Star))))) { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }))) (AnnotatedTypeVariable { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (KindFunctionType (Kind (Star)) (Kind (Star)))) (TypeSignature { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (Statements)))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-family-declarations.diffB-A.txt ================================================ (Module (Empty) (Statements (TypeFamily { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeVariableIdentifier) (Empty) (Statements {-(Function {-(ConstructorIdentifier)-} {-(Statements {-(ConstructorIdentifier)-})-})-} (Function (ConstructorIdentifier) (Statements {+(ConstructorIdentifier)+} {-(QuotedName {-(TypeConstructorIdentifier)-})-})) {+(Function {+(ConstructorIdentifier)+} {+(Statements {+(QuotedName {+(TypeConstructorIdentifier)+})+})+})+} (Function (ConstructorPattern (Statements (QualifiedConstructorIdentifier { (ModuleIdentifier) ->(ModuleIdentifier) } { (ConstructorIdentifier) ->(ConstructorIdentifier) }) (VariableIdentifier))) (Statements (QuotedName (TypeConstructorIdentifier)))) (Function (ConstructorPattern (Statements (QualifiedConstructorIdentifier { (ModuleIdentifier) ->(ModuleIdentifier) } { (ConstructorIdentifier) ->(ConstructorIdentifier) }) (ConstructorPattern (Statements { (ConstructorIdentifier) ->(ConstructorIdentifier) } { (VariableIdentifier) ->(VariableIdentifier) })))) (Statements (QuotedName (TypeConstructorIdentifier)))))) (TypeFamily (TypeConstructorIdentifier) { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (KindSignature (Star)) (Empty)) (TypeInstance (Statements (TypeConstructorIdentifier) (Array (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters) (Empty)))) (TypePattern (TypeConstructorIdentifier))) (TypeInstance (Statements (TypeConstructorIdentifier) { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (TypePattern (TypeConstructorIdentifier))) (TypeFamily { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (AnnotatedTypeVariable { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (KindListType (KindFunctionType (Kind (KindParenthesizedConstructor (KindFunctionType (Kind (Star)) (Kind (Star))))) { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }))) (AnnotatedTypeVariable { (TypeVariableIdentifier) ->(TypeVariableIdentifier) } (KindFunctionType (Kind (Star)) (Kind (Star)))) (TypeSignature { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (Statements)))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-family-declarations.parseA.txt ================================================ (Module (Empty) (Statements (TypeFamily (TypeConstructorIdentifier) (TypeVariableIdentifier) (Empty) (Statements (Function (ConstructorIdentifier) (Statements (ConstructorIdentifier))) (Function (ConstructorIdentifier) (Statements (QuotedName (TypeConstructorIdentifier)))) (Function (ConstructorPattern (Statements (QualifiedConstructorIdentifier (ModuleIdentifier) (ConstructorIdentifier)) (VariableIdentifier))) (Statements (QuotedName (TypeConstructorIdentifier)))) (Function (ConstructorPattern (Statements (QualifiedConstructorIdentifier (ModuleIdentifier) (ConstructorIdentifier)) (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))))) (Statements (QuotedName (TypeConstructorIdentifier)))))) (TypeFamily (TypeConstructorIdentifier) (TypeVariableIdentifier) (KindSignature (Star)) (Empty)) (TypeInstance (Statements (TypeConstructorIdentifier) (Array (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))) (TypePattern (TypeConstructorIdentifier))) (TypeInstance (Statements (TypeConstructorIdentifier) (TypeConstructorIdentifier)) (TypePattern (TypeConstructorIdentifier))) (TypeFamily (TypeConstructorIdentifier) (AnnotatedTypeVariable (TypeVariableIdentifier) (KindListType (KindFunctionType (Kind (KindParenthesizedConstructor (KindFunctionType (Kind (Star)) (Kind (Star))))) (TypeConstructorIdentifier)))) (AnnotatedTypeVariable (TypeVariableIdentifier) (KindFunctionType (Kind (Star)) (Kind (Star)))) (TypeSignature (TypeConstructorIdentifier)) (Statements)))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-family-declarations.parseB.txt ================================================ (Module (Empty) (Statements (TypeFamily (TypeConstructorIdentifier) (TypeVariableIdentifier) (Empty) (Statements (Function (ConstructorIdentifier) (Statements (ConstructorIdentifier))) (Function (ConstructorIdentifier) (Statements (QuotedName (TypeConstructorIdentifier)))) (Function (ConstructorPattern (Statements (QualifiedConstructorIdentifier (ModuleIdentifier) (ConstructorIdentifier)) (VariableIdentifier))) (Statements (QuotedName (TypeConstructorIdentifier)))) (Function (ConstructorPattern (Statements (QualifiedConstructorIdentifier (ModuleIdentifier) (ConstructorIdentifier)) (ConstructorPattern (Statements (ConstructorIdentifier) (VariableIdentifier))))) (Statements (QuotedName (TypeConstructorIdentifier)))))) (TypeFamily (TypeConstructorIdentifier) (TypeVariableIdentifier) (KindSignature (Star)) (Empty)) (TypeInstance (Statements (TypeConstructorIdentifier) (Array (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))) (TypePattern (TypeConstructorIdentifier))) (TypeInstance (Statements (TypeConstructorIdentifier) (TypeConstructorIdentifier)) (TypePattern (TypeConstructorIdentifier))) (TypeFamily (TypeConstructorIdentifier) (AnnotatedTypeVariable (TypeVariableIdentifier) (KindListType (KindFunctionType (Kind (KindParenthesizedConstructor (KindFunctionType (Kind (Star)) (Kind (Star))))) (TypeConstructorIdentifier)))) (AnnotatedTypeVariable (TypeVariableIdentifier) (KindFunctionType (Kind (Star)) (Kind (Star)))) (TypeSignature (TypeConstructorIdentifier)) (Statements)))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-signatures.A.hs ================================================ bar :: a -> b -> c -> Int -> Maybe Int bar :: a -> b -> c -> [Int] -> Maybe Int factorial :: Num a => Show a => a -> a f :: Ex -> Ex f :: [Int] -> Int f :: (Int, Int) -> Maybe Int f :: a -> B c (D (E g ': h)) -> I [J k] (L m (N (O p ': q))) f :: forall a. [a] -> [a] f :: forall a b. (a, b) -> [a] apply :: proxy c -> (forall g . c g => g a -> b) -> Union fs a -> b f :: a ~ Int => a f :: (a ~ Int) => a sumCollects :: forall c1 c2. (B c1, B c2, E c1 ~ E c2) => c1 -> c2 -> c2 foo :: (Bar m) => Baz [Fiz Fuzz, Wiz, Wax, Woz] bar => a -> Baz m bar :: (Baz '[Foo Wix a] biz, Waz woo) => Out a -> [Foo] -> Baz biz Waz foo :: (f :< Bar) => Bar -> f yield :: ((Yield a b) :< e) => a ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-signatures.B.hs ================================================ foo :: a -> b -> c -> Int -> Maybe Int factorial :: Num a => a -> a g :: Ex -> Foo g :: [Double] -> Int g :: (Double, Int) -> Maybe Double g :: b -> B a (D (E g ': h)) -> I [J k] (L m (O (N p ': q))) g :: forall a. [a] -> [a] g :: forall a b. (a, b) -> [a] apply :: proxy d -> (forall g . d g => g a -> b) -> Union fs a -> b g :: a ~ Int => a g :: (a ~ Int) => a sumCollects :: forall d1 d2. (B d1, B d2, E d1 ~ E d2) => d1 -> d2 -> d2 bar :: (Bar m) => Baz [Fiz Fuzz, Wiz, Wax, Woz] bar => a -> Waz m foo :: (Baz '[Foo Wix a] biz, Waz woo) => Out a -> [Foo] -> Waz biz Baz bar :: (f :< Bar) => Bar -> f yield :: ((Yield b c) :< e) => b ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-signatures.diffA-B.txt ================================================ (Module (Empty) (Statements (TypeSignature { (VariableIdentifier) ->(VariableIdentifier) } (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier)) (Empty))))))) {+(TypeSignature {+(VariableIdentifier)+} {+(Context' {+(Class {+(TypeClassIdentifier)+} {+(TypeVariableIdentifier)+})+})+} {+(FunctionType {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(FunctionType {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(FunctionType {+(Type {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(FunctionType {+(Type {+(Tuple {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeConstructorIdentifier)+})+} {+(Empty)+})+})+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(FunctionType {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(FunctionType {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+} {+(Statements {+(TypeConstructorIdentifier)+} {+(InfixOperatorPattern {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+})+} {+(Empty)+})+} {+(TypeOperator)+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+})+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+} {+(Statements {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+} {+(Statements {+(TypeConstructorIdentifier)+} {+(InfixOperatorPattern {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+})+} {+(Empty)+})+} {+(TypeOperator)+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+})+})+} {+(Empty)+})+})+})+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(ScopedTypeVariables {+(TypeVariableIdentifier)+})+} {+(FunctionType {+(Type {+(Array {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(Array {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(ScopedTypeVariables {+(Statements {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+})+} {+(FunctionType {+(Type {+(Tuple {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(Array {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(FunctionType {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+})+} {+(Empty)+})+} {+(FunctionType {+(Type {+(Statements {+(ScopedTypeVariables {+(TypeVariableIdentifier)+})+} {+(Context' {+(Statements {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+})+} {+(FunctionType {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+})+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(TypeParameters)+} {+(Empty)+})+} {+(FunctionType {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+})+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(Context' {+(EqualityConstraint {+(TypeVariableIdentifier)+} {+(TypeConstructorIdentifier)+})+})+} {+(TypeVariableIdentifier)+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(Context' {+(EqualityConstraint {+(TypeVariableIdentifier)+} {+(TypeConstructorIdentifier)+})+})+} {+(TypeVariableIdentifier)+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(ScopedTypeVariables {+(Statements {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+})+} {+(Context' {+(Statements {+(Class {+(TypeClassIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Class {+(TypeClassIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(EqualityConstraint {+(Class {+(TypeClassIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Class {+(TypeClassIdentifier)+} {+(TypeVariableIdentifier)+})+})+})+})+} {+(FunctionType {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(FunctionType {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(Context' {+(Class {+(TypeClassIdentifier)+} {+(TypeVariableIdentifier)+})+})+} {+(Context' {+(Class {+(TypeClassIdentifier)+} {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeConstructorIdentifier)+})+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+} {+(TypeVariableIdentifier)+})+})+} {+(FunctionType {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(Context' {+(Statements {+(Class {+(TypeClassIdentifier)+} {+(QuotedName {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+})+} {+(TypeVariableIdentifier)+})+} {+(Class {+(TypeClassIdentifier)+} {+(TypeVariableIdentifier)+})+})+})+} {+(FunctionType {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+})+} {+(Empty)+})+} {+(FunctionType {+(Type {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+} {+(TypeConstructorIdentifier)+})+} {+(Empty)+})+})+})+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(Context' {+(Statements {+(TypeVariableIdentifier)+} {+(ConstructorOperator {+(ConstructorSymbol)+})+} {+(TypeConstructorIdentifier)+})+})+} {+(FunctionType {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(Context' {+(Statements {+(Class {+(TypeClassIdentifier)+} {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(ConstructorOperator {+(ConstructorSymbol)+})+} {+(TypeVariableIdentifier)+})+})+} {+(TypeVariableIdentifier)+})+} {-(TypeSignature {-(VariableIdentifier)-} {-(FunctionType {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(FunctionType {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(FunctionType {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(FunctionType {-(Type {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeConstructorIdentifier)-})-} {-(Empty)-})-})-})-})-})-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(Context' {-(Class {-(TypeClassIdentifier)-} {-(TypeVariableIdentifier)-})-})-} {-(Context' {-(Class {-(TypeClassIdentifier)-} {-(TypeVariableIdentifier)-})-})-} {-(FunctionType {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(FunctionType {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(FunctionType {-(Type {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(FunctionType {-(Type {-(Tuple {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeConstructorIdentifier)-})-} {-(Empty)-})-})-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(FunctionType {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(FunctionType {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-} {-(Statements {-(TypeConstructorIdentifier)-} {-(InfixOperatorPattern {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-})-} {-(Empty)-})-} {-(TypeOperator)-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-})-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-} {-(Statements {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-} {-(Statements {-(TypeConstructorIdentifier)-} {-(InfixOperatorPattern {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-})-} {-(Empty)-})-} {-(TypeOperator)-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-})-})-} {-(Empty)-})-})-})-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(ScopedTypeVariables {-(TypeVariableIdentifier)-})-} {-(FunctionType {-(Type {-(Array {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(Array {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(ScopedTypeVariables {-(Statements {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-})-} {-(FunctionType {-(Type {-(Tuple {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(Array {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(FunctionType {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-})-} {-(Empty)-})-} {-(FunctionType {-(Type {-(Statements {-(ScopedTypeVariables {-(TypeVariableIdentifier)-})-} {-(Context' {-(Statements {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-})-} {-(FunctionType {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-})-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(TypeParameters)-} {-(Empty)-})-} {-(FunctionType {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-})-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(Context' {-(EqualityConstraint {-(TypeVariableIdentifier)-} {-(TypeConstructorIdentifier)-})-})-} {-(TypeVariableIdentifier)-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(Context' {-(EqualityConstraint {-(TypeVariableIdentifier)-} {-(TypeConstructorIdentifier)-})-})-} {-(TypeVariableIdentifier)-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(ScopedTypeVariables {-(Statements {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-})-} {-(Context' {-(Statements {-(Class {-(TypeClassIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Class {-(TypeClassIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(EqualityConstraint {-(Class {-(TypeClassIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Class {-(TypeClassIdentifier)-} {-(TypeVariableIdentifier)-})-})-})-})-} {-(FunctionType {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(FunctionType {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(Context' {-(Class {-(TypeClassIdentifier)-} {-(TypeVariableIdentifier)-})-})-} {-(Context' {-(Class {-(TypeClassIdentifier)-} {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeConstructorIdentifier)-})-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-} {-(TypeVariableIdentifier)-})-})-} {-(FunctionType {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(Context' {-(Statements {-(Class {-(TypeClassIdentifier)-} {-(QuotedName {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-})-} {-(TypeVariableIdentifier)-})-} {-(Class {-(TypeClassIdentifier)-} {-(TypeVariableIdentifier)-})-})-})-} {-(FunctionType {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-})-} {-(Empty)-})-} {-(FunctionType {-(Type {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-} {-(TypeConstructorIdentifier)-})-} {-(Empty)-})-})-})-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(Context' {-(Statements {-(TypeVariableIdentifier)-} {-(ConstructorOperator {-(ConstructorSymbol)-})-} {-(TypeConstructorIdentifier)-})-})-} {-(FunctionType {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(Context' {-(Statements {-(Class {-(TypeClassIdentifier)-} {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(ConstructorOperator {-(ConstructorSymbol)-})-} {-(TypeVariableIdentifier)-})-})-} {-(TypeVariableIdentifier)-})-})) ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-signatures.diffB-A.txt ================================================ (Module (Empty) (Statements (TypeSignature { (VariableIdentifier) ->(VariableIdentifier) } (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier)) (Empty))))))) {+(TypeSignature {+(VariableIdentifier)+} {+(FunctionType {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(FunctionType {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(FunctionType {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(FunctionType {+(Type {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeConstructorIdentifier)+})+} {+(Empty)+})+})+})+})+})+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(Context' {+(Class {+(TypeClassIdentifier)+} {+(TypeVariableIdentifier)+})+})+} {+(Context' {+(Class {+(TypeClassIdentifier)+} {+(TypeVariableIdentifier)+})+})+} {+(FunctionType {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(FunctionType {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} (TypeSignature { (VariableIdentifier) ->(VariableIdentifier) } {-(Context' {-(Class {-(TypeClassIdentifier)-} {-(TypeVariableIdentifier)-})-})-} (FunctionType (Type { (TypeVariableIdentifier) ->(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+}) } (TypeParameters) (Empty)) (Type { (TypeVariableIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters) (Empty)))) {+(TypeSignature {+(VariableIdentifier)+} {+(FunctionType {+(Type {+(Tuple {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeConstructorIdentifier)+})+} {+(Empty)+})+})+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(FunctionType {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(FunctionType {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+} {+(Statements {+(TypeConstructorIdentifier)+} {+(InfixOperatorPattern {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+})+} {+(Empty)+})+} {+(TypeOperator)+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+})+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+} {+(Statements {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+} {+(Statements {+(TypeConstructorIdentifier)+} {+(InfixOperatorPattern {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+})+} {+(Empty)+})+} {+(TypeOperator)+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+})+})+} {+(Empty)+})+})+})+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(ScopedTypeVariables {+(TypeVariableIdentifier)+})+} {+(FunctionType {+(Type {+(Array {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(Array {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(ScopedTypeVariables {+(Statements {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+})+} {+(FunctionType {+(Type {+(Tuple {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(Array {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(FunctionType {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+})+} {+(Empty)+})+} {+(FunctionType {+(Type {+(Statements {+(ScopedTypeVariables {+(TypeVariableIdentifier)+})+} {+(Context' {+(Statements {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+})+} {+(FunctionType {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+})+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} {+(TypeParameters)+} {+(Empty)+})+} {+(FunctionType {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+})+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(Context' {+(EqualityConstraint {+(TypeVariableIdentifier)+} {+(TypeConstructorIdentifier)+})+})+} {+(TypeVariableIdentifier)+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(Context' {+(EqualityConstraint {+(TypeVariableIdentifier)+} {+(TypeConstructorIdentifier)+})+})+} {+(TypeVariableIdentifier)+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(ScopedTypeVariables {+(Statements {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+})+} {+(Context' {+(Statements {+(Class {+(TypeClassIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Class {+(TypeClassIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(EqualityConstraint {+(Class {+(TypeClassIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Class {+(TypeClassIdentifier)+} {+(TypeVariableIdentifier)+})+})+})+})+} {+(FunctionType {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(FunctionType {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(Context' {+(Class {+(TypeClassIdentifier)+} {+(TypeVariableIdentifier)+})+})+} {+(Context' {+(Class {+(TypeClassIdentifier)+} {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeConstructorIdentifier)+})+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+} {+(TypeVariableIdentifier)+})+})+} {+(FunctionType {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(Context' {+(Statements {+(Class {+(TypeClassIdentifier)+} {+(QuotedName {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(Empty)+})+})+})+} {+(TypeVariableIdentifier)+})+} {+(Class {+(TypeClassIdentifier)+} {+(TypeVariableIdentifier)+})+})+})+} {+(FunctionType {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+})+} {+(Empty)+})+} {+(FunctionType {+(Type {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeVariableIdentifier)+} {+(TypeConstructorIdentifier)+})+} {+(Empty)+})+})+})+})+} {+(TypeSignature {+(VariableIdentifier)+} {+(Context' {+(Statements {+(TypeVariableIdentifier)+} {+(ConstructorOperator {+(ConstructorSymbol)+})+} {+(TypeConstructorIdentifier)+})+})+} {+(FunctionType {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeVariableIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+})+})+} (TypeSignature { (VariableIdentifier) ->(VariableIdentifier) } {+(Context' {+(Statements {+(Class {+(TypeClassIdentifier)+} {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(ConstructorOperator {+(ConstructorSymbol)+})+} {+(TypeVariableIdentifier)+})+})+} { (FunctionType {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-}) ->(TypeVariableIdentifier) }) {-(TypeSignature {-(VariableIdentifier)-} {-(FunctionType {-(Type {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(FunctionType {-(Type {-(Tuple {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeConstructorIdentifier)-})-} {-(Empty)-})-})-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(FunctionType {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(FunctionType {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-} {-(Statements {-(TypeConstructorIdentifier)-} {-(InfixOperatorPattern {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-})-} {-(Empty)-})-} {-(TypeOperator)-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-})-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-} {-(Statements {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-} {-(Statements {-(TypeConstructorIdentifier)-} {-(InfixOperatorPattern {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-})-} {-(Empty)-})-} {-(TypeOperator)-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-})-})-} {-(Empty)-})-})-})-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(ScopedTypeVariables {-(TypeVariableIdentifier)-})-} {-(FunctionType {-(Type {-(Array {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(Array {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(ScopedTypeVariables {-(Statements {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-})-} {-(FunctionType {-(Type {-(Tuple {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(Array {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(FunctionType {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-})-} {-(Empty)-})-} {-(FunctionType {-(Type {-(Statements {-(ScopedTypeVariables {-(TypeVariableIdentifier)-})-} {-(Context' {-(Statements {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-})-} {-(FunctionType {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-})-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(TypeParameters)-} {-(Empty)-})-} {-(FunctionType {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-})-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(Context' {-(EqualityConstraint {-(TypeVariableIdentifier)-} {-(TypeConstructorIdentifier)-})-})-} {-(TypeVariableIdentifier)-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(Context' {-(EqualityConstraint {-(TypeVariableIdentifier)-} {-(TypeConstructorIdentifier)-})-})-} {-(TypeVariableIdentifier)-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(ScopedTypeVariables {-(Statements {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-})-} {-(Context' {-(Statements {-(Class {-(TypeClassIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Class {-(TypeClassIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(EqualityConstraint {-(Class {-(TypeClassIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Class {-(TypeClassIdentifier)-} {-(TypeVariableIdentifier)-})-})-})-})-} {-(FunctionType {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(FunctionType {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(Context' {-(Class {-(TypeClassIdentifier)-} {-(TypeVariableIdentifier)-})-})-} {-(Context' {-(Class {-(TypeClassIdentifier)-} {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeConstructorIdentifier)-})-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-} {-(TypeVariableIdentifier)-})-})-} {-(FunctionType {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(Context' {-(Statements {-(Class {-(TypeClassIdentifier)-} {-(QuotedName {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(Empty)-})-})-})-} {-(TypeVariableIdentifier)-})-} {-(Class {-(TypeClassIdentifier)-} {-(TypeVariableIdentifier)-})-})-})-} {-(FunctionType {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-})-} {-(Empty)-})-} {-(FunctionType {-(Type {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeVariableIdentifier)-} {-(TypeConstructorIdentifier)-})-} {-(Empty)-})-})-})-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(Context' {-(Statements {-(TypeVariableIdentifier)-} {-(ConstructorOperator {-(ConstructorSymbol)-})-} {-(TypeConstructorIdentifier)-})-})-} {-(FunctionType {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeVariableIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-})-})-} {-(TypeSignature {-(VariableIdentifier)-} {-(Context' {-(Statements {-(Class {-(TypeClassIdentifier)-} {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(ConstructorOperator {-(ConstructorSymbol)-})-} {-(TypeVariableIdentifier)-})-})-} {-(TypeVariableIdentifier)-})-})) ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-signatures.parseA.txt ================================================ (Module (Empty) (Statements (TypeSignature (VariableIdentifier) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier)) (Empty))))))) (TypeSignature (VariableIdentifier) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (Array (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier)) (Empty))))))) (TypeSignature (VariableIdentifier) (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (TypeSignature (VariableIdentifier) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))) (TypeSignature (VariableIdentifier) (FunctionType (Type (Array (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))) (TypeSignature (VariableIdentifier) (FunctionType (Type (Tuple (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier)) (Empty)))) (TypeSignature (VariableIdentifier) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (Statements (TypeConstructorIdentifier) (InfixOperatorPattern (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (TypeOperator) (Type (TypeVariableIdentifier) (TypeParameters) (Empty))))) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (Array (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty))) (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (Statements (TypeConstructorIdentifier) (InfixOperatorPattern (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (TypeOperator) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))))) (Empty))))) (TypeSignature (VariableIdentifier) (ScopedTypeVariables (TypeVariableIdentifier)) (FunctionType (Type (Array (Type (TypeVariableIdentifier) (TypeParameters) (Empty))) (TypeParameters) (Empty)) (Type (Array (Type (TypeVariableIdentifier) (TypeParameters) (Empty))) (TypeParameters) (Empty)))) (TypeSignature (VariableIdentifier) (ScopedTypeVariables (Statements (TypeVariableIdentifier) (TypeVariableIdentifier))) (FunctionType (Type (Tuple (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty))) (TypeParameters) (Empty)) (Type (Array (Type (TypeVariableIdentifier) (TypeParameters) (Empty))) (TypeParameters) (Empty)))) (TypeSignature (VariableIdentifier) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (FunctionType (Type (Statements (ScopedTypeVariables (TypeVariableIdentifier)) (Context' (Statements (TypeVariableIdentifier) (TypeVariableIdentifier))) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (TypeParameters) (Empty)) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))))) (TypeSignature (VariableIdentifier) (Context' (EqualityConstraint (TypeVariableIdentifier) (TypeConstructorIdentifier))) (TypeVariableIdentifier)) (TypeSignature (VariableIdentifier) (Context' (EqualityConstraint (TypeVariableIdentifier) (TypeConstructorIdentifier))) (TypeVariableIdentifier)) (TypeSignature (VariableIdentifier) (ScopedTypeVariables (Statements (TypeVariableIdentifier) (TypeVariableIdentifier))) (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (EqualityConstraint (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier))))) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty))))) (TypeSignature (VariableIdentifier) (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (Context' (Class (TypeClassIdentifier) (Array (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier)) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))) (TypeVariableIdentifier))) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)))) (TypeSignature (VariableIdentifier) (Context' (Statements (Class (TypeClassIdentifier) (QuotedName (Array (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier) (TypeVariableIdentifier)) (Empty)))) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (FunctionType (Type (Array (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeConstructorIdentifier)) (Empty))))) (TypeSignature (VariableIdentifier) (Context' (Statements (TypeVariableIdentifier) (ConstructorOperator (ConstructorSymbol)) (TypeConstructorIdentifier))) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (TypeSignature (VariableIdentifier) (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)) (ConstructorOperator (ConstructorSymbol)) (TypeVariableIdentifier))) (TypeVariableIdentifier)))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-signatures.parseB.txt ================================================ (Module (Empty) (Statements (TypeSignature (VariableIdentifier) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier)) (Empty))))))) (TypeSignature (VariableIdentifier) (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (TypeSignature (VariableIdentifier) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))) (TypeSignature (VariableIdentifier) (FunctionType (Type (Array (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)))) (TypeSignature (VariableIdentifier) (FunctionType (Type (Tuple (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier)) (Empty)))) (TypeSignature (VariableIdentifier) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (Statements (TypeConstructorIdentifier) (InfixOperatorPattern (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (TypeOperator) (Type (TypeVariableIdentifier) (TypeParameters) (Empty))))) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (Array (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty))) (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (Statements (TypeConstructorIdentifier) (InfixOperatorPattern (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (TypeOperator) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))))) (Empty))))) (TypeSignature (VariableIdentifier) (ScopedTypeVariables (TypeVariableIdentifier)) (FunctionType (Type (Array (Type (TypeVariableIdentifier) (TypeParameters) (Empty))) (TypeParameters) (Empty)) (Type (Array (Type (TypeVariableIdentifier) (TypeParameters) (Empty))) (TypeParameters) (Empty)))) (TypeSignature (VariableIdentifier) (ScopedTypeVariables (Statements (TypeVariableIdentifier) (TypeVariableIdentifier))) (FunctionType (Type (Tuple (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty))) (TypeParameters) (Empty)) (Type (Array (Type (TypeVariableIdentifier) (TypeParameters) (Empty))) (TypeParameters) (Empty)))) (TypeSignature (VariableIdentifier) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (FunctionType (Type (Statements (ScopedTypeVariables (TypeVariableIdentifier)) (Context' (Statements (TypeVariableIdentifier) (TypeVariableIdentifier))) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (TypeParameters) (Empty)) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))))) (TypeSignature (VariableIdentifier) (Context' (EqualityConstraint (TypeVariableIdentifier) (TypeConstructorIdentifier))) (TypeVariableIdentifier)) (TypeSignature (VariableIdentifier) (Context' (EqualityConstraint (TypeVariableIdentifier) (TypeConstructorIdentifier))) (TypeVariableIdentifier)) (TypeSignature (VariableIdentifier) (ScopedTypeVariables (Statements (TypeVariableIdentifier) (TypeVariableIdentifier))) (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (EqualityConstraint (Class (TypeClassIdentifier) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier))))) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty))))) (TypeSignature (VariableIdentifier) (Context' (Class (TypeClassIdentifier) (TypeVariableIdentifier))) (Context' (Class (TypeClassIdentifier) (Array (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier)) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))) (TypeVariableIdentifier))) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)))) (TypeSignature (VariableIdentifier) (Context' (Statements (Class (TypeClassIdentifier) (QuotedName (Array (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier) (TypeVariableIdentifier)) (Empty)))) (TypeVariableIdentifier)) (Class (TypeClassIdentifier) (TypeVariableIdentifier)))) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (FunctionType (Type (Array (Type (TypeConstructorIdentifier) (TypeParameters) (Empty))) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeConstructorIdentifier)) (Empty))))) (TypeSignature (VariableIdentifier) (Context' (Statements (TypeVariableIdentifier) (ConstructorOperator (ConstructorSymbol)) (TypeConstructorIdentifier))) (FunctionType (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeVariableIdentifier) (TypeParameters) (Empty)))) (TypeSignature (VariableIdentifier) (Context' (Statements (Class (TypeClassIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)) (ConstructorOperator (ConstructorSymbol)) (TypeVariableIdentifier))) (TypeVariableIdentifier)))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-synonyms.A.hs ================================================ type Foo = Bar type List = [] type Foo a = Bar a type Rec a = [Circ a] type V = () type X = (,) type Y = (,,) type Z = (->) type Nat = Zero ': Succ Zero ': Succ (Succ Zero) ': '[] type Foo bar baz wix = '[ W, A (B c) ] type Foo Bar = "higher-kinded" type Bar (Foo m a) = BarF m a type Foo = HasCallStack => Bar [] type Foo a b = forall a b. FooF a b type (Member t r) = KnownNat (ElemIndex t r) ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-synonyms.B.hs ================================================ type Bar = Foo type List' = [] type Foo a b = Bar a b type Rec a = [Triangle a] type X = () type Y = (,,) type Z = (,) type T = (->) type Nat = Succ (Succ Zero) ': Succ Zero ': Zero ': '[] type Wax bar baz wix = '[ W, A (B c) ] type Bar Foo = "higher-kinded" type Foo (Bar m a) = BarF m a type Bar = HasCallStack => Foo [] type Bar a b = forall a b. BarF a b type (MemberBar t r) = KnownNat (ElemIndexBar t r) ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-synonyms.diffA-B.txt ================================================ (Module (Empty) (Statements (TypeSynonym (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (TypePattern { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) })) (TypeSynonym (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (TypePattern (ListConstructor))) (TypeSynonym (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) {+(TypeVariableIdentifier)+}) (TypePattern (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) {+(TypeVariableIdentifier)+}))) (TypeSynonym (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier)) (TypePattern (Array (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters (TypeVariableIdentifier)) (Empty))))) (TypeSynonym (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (TypePattern (UnitConstructor))) {-(TypeSynonym {-(Statements {-(TypeConstructorIdentifier)-})-} {-(TypePattern {-(TupleConstructor)-})-})-} (TypeSynonym (Statements (TypeConstructorIdentifier)) (TypePattern (TupleConstructor))) (TypeSynonym (Statements (TypeConstructorIdentifier)) (TypePattern { (FunctionConstructor) ->(TupleConstructor) })) {+(TypeSynonym {+(Statements {+(TypeConstructorIdentifier)+})+} {+(TypePattern {+(FunctionConstructor)+})+})+} (TypeSynonym (Statements (TypeConstructorIdentifier)) (TypePattern (InfixOperatorPattern (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters {+(Statements {+(TypeConstructorIdentifier)+} {+(TypeConstructorIdentifier)+})+}) (Empty)) (TypeOperator) (Type (InfixOperatorPattern (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier)) (Empty)) (TypeOperator) (Type (InfixOperatorPattern (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters {-(Statements {-(TypeConstructorIdentifier)-} {-(TypeConstructorIdentifier)-})-}) (Empty)) (TypeOperator) (Type (QuotedName (ListConstructor)) (TypeParameters) (Empty))) (TypeParameters) (Empty))) (TypeParameters) (Empty))))) (TypeSynonym (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)) (TypePattern (QuotedName (Array (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (Empty)))))) (TypeSynonym (Statements {-(TypeConstructorIdentifier)-} (TypeConstructorIdentifier) {+(TypeConstructorIdentifier)+}) (TextElement)) (TypeSynonym (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeVariableIdentifier) (TypeVariableIdentifier))) (TypePattern (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)))) (TypeSynonym (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (Context' (TypeConstructorIdentifier)) (TypePattern (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (ListConstructor)))) (TypeSynonym (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeVariableIdentifier) (TypeVariableIdentifier)) (ScopedTypeVariables (Statements (TypeVariableIdentifier) (TypeVariableIdentifier))) (TypePattern (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeVariableIdentifier) (TypeVariableIdentifier)))) (TypeSynonym (Statements (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeVariableIdentifier) (TypeVariableIdentifier))) (TypePattern (Statements (TypeConstructorIdentifier) (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeVariableIdentifier) (TypeVariableIdentifier))))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-synonyms.diffB-A.txt ================================================ (Module (Empty) (Statements (TypeSynonym (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (TypePattern { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) })) (TypeSynonym (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (TypePattern (ListConstructor))) (TypeSynonym (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) {-(TypeVariableIdentifier)-}) (TypePattern (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) {-(TypeVariableIdentifier)-}))) (TypeSynonym (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier)) (TypePattern (Array (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters (TypeVariableIdentifier)) (Empty))))) (TypeSynonym (Statements { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) }) (TypePattern (UnitConstructor))) {+(TypeSynonym {+(Statements {+(TypeConstructorIdentifier)+})+} {+(TypePattern {+(TupleConstructor)+})+})+} (TypeSynonym (Statements (TypeConstructorIdentifier)) (TypePattern (TupleConstructor))) (TypeSynonym (Statements (TypeConstructorIdentifier)) (TypePattern { (TupleConstructor) ->(FunctionConstructor) })) {+(TypeSynonym {+(Statements {+(TypeConstructorIdentifier)+})+} {+(TypePattern {+(InfixOperatorPattern {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(TypeOperator)+} {+(Type {+(InfixOperatorPattern {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(TypeConstructorIdentifier)+})+} {+(Empty)+})+} {+(TypeOperator)+} {+(Type {+(InfixOperatorPattern {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(Statements {+(TypeConstructorIdentifier)+} {+(TypeConstructorIdentifier)+})+})+} {+(Empty)+})+} {+(TypeOperator)+} {+(Type {+(QuotedName {+(ListConstructor)+})+} {+(TypeParameters)+} {+(Empty)+})+})+} {+(TypeParameters)+} {+(Empty)+})+})+} {+(TypeParameters)+} {+(Empty)+})+})+})+})+} {+(TypeSynonym {+(Statements {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(TypePattern {+(QuotedName {+(Array {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters)+} {+(Empty)+})+} {+(Type {+(TypeConstructorIdentifier)+} {+(TypeParameters {+(Statements {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+})+})+} {+(Empty)+})+})+})+})+})+} {+(TypeSynonym {+(Statements {+(TypeConstructorIdentifier)+} {+(TypeConstructorIdentifier)+})+} {+(TextElement)+})+} {+(TypeSynonym {+(Statements {+(TypeConstructorIdentifier)+} {+(Statements {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+})+} {+(TypePattern {+(Statements {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+})+})+} {+(TypeSynonym {+(Statements {+(TypeConstructorIdentifier)+})+} {+(Context' {+(TypeConstructorIdentifier)+})+} {+(TypePattern {+(Statements {+(TypeConstructorIdentifier)+} {+(ListConstructor)+})+})+})+} {+(TypeSynonym {+(Statements {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+} {+(ScopedTypeVariables {+(Statements {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+})+} {+(TypePattern {+(Statements {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+})+})+} {+(TypeSynonym {+(Statements {+(Statements {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+})+} {+(TypePattern {+(Statements {+(TypeConstructorIdentifier)+} {+(Statements {+(TypeConstructorIdentifier)+} {+(TypeVariableIdentifier)+} {+(TypeVariableIdentifier)+})+})+})+})+} {-(TypeSynonym {-(Statements {-(TypeConstructorIdentifier)-})-} {-(TypePattern {-(FunctionConstructor)-})-})-} {-(TypeSynonym {-(Statements {-(TypeConstructorIdentifier)-})-} {-(TypePattern {-(InfixOperatorPattern {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(Statements {-(TypeConstructorIdentifier)-} {-(TypeConstructorIdentifier)-})-})-} {-(Empty)-})-} {-(TypeOperator)-} {-(Type {-(InfixOperatorPattern {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(TypeConstructorIdentifier)-})-} {-(Empty)-})-} {-(TypeOperator)-} {-(Type {-(InfixOperatorPattern {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(TypeOperator)-} {-(Type {-(QuotedName {-(ListConstructor)-})-} {-(TypeParameters)-} {-(Empty)-})-})-} {-(TypeParameters)-} {-(Empty)-})-})-} {-(TypeParameters)-} {-(Empty)-})-})-})-})-} {-(TypeSynonym {-(Statements {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(TypePattern {-(QuotedName {-(Array {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters)-} {-(Empty)-})-} {-(Type {-(TypeConstructorIdentifier)-} {-(TypeParameters {-(Statements {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-})-})-} {-(Empty)-})-})-})-})-})-} {-(TypeSynonym {-(Statements {-(TypeConstructorIdentifier)-} {-(TypeConstructorIdentifier)-})-} {-(TextElement)-})-} {-(TypeSynonym {-(Statements {-(TypeConstructorIdentifier)-} {-(Statements {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-})-} {-(TypePattern {-(Statements {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-})-})-} {-(TypeSynonym {-(Statements {-(TypeConstructorIdentifier)-})-} {-(Context' {-(TypeConstructorIdentifier)-})-} {-(TypePattern {-(Statements {-(TypeConstructorIdentifier)-} {-(ListConstructor)-})-})-})-} {-(TypeSynonym {-(Statements {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-} {-(ScopedTypeVariables {-(Statements {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-})-} {-(TypePattern {-(Statements {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-})-})-} {-(TypeSynonym {-(Statements {-(Statements {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-})-} {-(TypePattern {-(Statements {-(TypeConstructorIdentifier)-} {-(Statements {-(TypeConstructorIdentifier)-} {-(TypeVariableIdentifier)-} {-(TypeVariableIdentifier)-})-})-})-})-})) ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-synonyms.parseA.txt ================================================ (Module (Empty) (Statements (TypeSynonym (Statements (TypeConstructorIdentifier)) (TypePattern (TypeConstructorIdentifier))) (TypeSynonym (Statements (TypeConstructorIdentifier)) (TypePattern (ListConstructor))) (TypeSynonym (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier)) (TypePattern (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier)))) (TypeSynonym (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier)) (TypePattern (Array (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty))))) (TypeSynonym (Statements (TypeConstructorIdentifier)) (TypePattern (UnitConstructor))) (TypeSynonym (Statements (TypeConstructorIdentifier)) (TypePattern (TupleConstructor))) (TypeSynonym (Statements (TypeConstructorIdentifier)) (TypePattern (TupleConstructor))) (TypeSynonym (Statements (TypeConstructorIdentifier)) (TypePattern (FunctionConstructor))) (TypeSynonym (Statements (TypeConstructorIdentifier)) (TypePattern (InfixOperatorPattern (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (TypeOperator) (Type (InfixOperatorPattern (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier)) (Empty)) (TypeOperator) (Type (InfixOperatorPattern (Type (TypeConstructorIdentifier) (TypeParameters (Statements (TypeConstructorIdentifier) (TypeConstructorIdentifier))) (Empty)) (TypeOperator) (Type (QuotedName (ListConstructor)) (TypeParameters) (Empty))) (TypeParameters) (Empty))) (TypeParameters) (Empty))))) (TypeSynonym (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)) (TypePattern (QuotedName (Array (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (Empty)))))) (TypeSynonym (Statements (TypeConstructorIdentifier) (TypeConstructorIdentifier)) (TextElement)) (TypeSynonym (Statements (TypeConstructorIdentifier) (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))) (TypePattern (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)))) (TypeSynonym (Statements (TypeConstructorIdentifier)) (Context' (TypeConstructorIdentifier)) (TypePattern (Statements (TypeConstructorIdentifier) (ListConstructor)))) (TypeSynonym (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)) (ScopedTypeVariables (Statements (TypeVariableIdentifier) (TypeVariableIdentifier))) (TypePattern (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)))) (TypeSynonym (Statements (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))) (TypePattern (Statements (TypeConstructorIdentifier) (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))))))) ================================================ FILE: semantic/test/fixtures/haskell/corpus/type-synonyms.parseB.txt ================================================ (Module (Empty) (Statements (TypeSynonym (Statements (TypeConstructorIdentifier)) (TypePattern (TypeConstructorIdentifier))) (TypeSynonym (Statements (TypeConstructorIdentifier)) (TypePattern (ListConstructor))) (TypeSynonym (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)) (TypePattern (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)))) (TypeSynonym (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier)) (TypePattern (Array (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty))))) (TypeSynonym (Statements (TypeConstructorIdentifier)) (TypePattern (UnitConstructor))) (TypeSynonym (Statements (TypeConstructorIdentifier)) (TypePattern (TupleConstructor))) (TypeSynonym (Statements (TypeConstructorIdentifier)) (TypePattern (TupleConstructor))) (TypeSynonym (Statements (TypeConstructorIdentifier)) (TypePattern (FunctionConstructor))) (TypeSynonym (Statements (TypeConstructorIdentifier)) (TypePattern (InfixOperatorPattern (Type (TypeConstructorIdentifier) (TypeParameters (Statements (TypeConstructorIdentifier) (TypeConstructorIdentifier))) (Empty)) (TypeOperator) (Type (InfixOperatorPattern (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier)) (Empty)) (TypeOperator) (Type (InfixOperatorPattern (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (TypeOperator) (Type (QuotedName (ListConstructor)) (TypeParameters) (Empty))) (TypeParameters) (Empty))) (TypeParameters) (Empty))))) (TypeSynonym (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)) (TypePattern (QuotedName (Array (Type (TypeConstructorIdentifier) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier))) (Empty)))))) (TypeSynonym (Statements (TypeConstructorIdentifier) (TypeConstructorIdentifier)) (TextElement)) (TypeSynonym (Statements (TypeConstructorIdentifier) (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))) (TypePattern (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)))) (TypeSynonym (Statements (TypeConstructorIdentifier)) (Context' (TypeConstructorIdentifier)) (TypePattern (Statements (TypeConstructorIdentifier) (ListConstructor)))) (TypeSynonym (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)) (ScopedTypeVariables (Statements (TypeVariableIdentifier) (TypeVariableIdentifier))) (TypePattern (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)))) (TypeSynonym (Statements (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))) (TypePattern (Statements (TypeConstructorIdentifier) (Statements (TypeConstructorIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/ArrayAccess.A.java ================================================ class Dinosaur { void apply() { (T1)a[0]; } } ================================================ FILE: semantic/test/fixtures/java/corpus/ArrayAccess.B.java ================================================ class Dinosaur { void apply() { anArray[2]; } } ================================================ FILE: semantic/test/fixtures/java/corpus/ArrayAccess.diffA-B.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements {+(Subscript {+(Identifier)+} {+(Integer)+})+} {-(Annotation {-(Subscript {-(Identifier)-} {-(Integer)-})-} {-(Identifier)-})-}))))) ================================================ FILE: semantic/test/fixtures/java/corpus/ArrayAccess.diffB-A.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements {+(Annotation {+(Subscript {+(Identifier)+} {+(Integer)+})+} {+(Identifier)+})+} {-(Subscript {-(Identifier)-} {-(Integer)-})-}))))) ================================================ FILE: semantic/test/fixtures/java/corpus/ArrayAccess.parseA.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (Annotation (Subscript (Identifier) (Integer)) (Identifier))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/ArrayAccess.parseB.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (Subscript (Identifier) (Integer))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/AssertStatement.A.java ================================================ class Dino { void fn() { for (File file : snap.index()) { assert oldFile == null; } } } ================================================ FILE: semantic/test/fixtures/java/corpus/AssertStatement.B.java ================================================ class Dino { void fn() { assert failure : "expecting non null"; } } ================================================ FILE: semantic/test/fixtures/java/corpus/AssertStatement.diffA-B.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements {+(AssertStatement {+(Identifier)+} {+(TextElement)+})+} {-(ForEach {-(Variable {-(Identifier)-} {-(Identifier)-})-} {-(Call {-(MemberAccess {-(Identifier)-})-} {-(Empty)-})-} {-(Statements {-(AssertStatement {-(Equal {-(Identifier)-} {-(Null)-})-})-})-})-}))))) ================================================ FILE: semantic/test/fixtures/java/corpus/AssertStatement.diffB-A.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements {+(ForEach {+(Variable {+(Identifier)+} {+(Identifier)+})+} {+(Call {+(MemberAccess {+(Identifier)+})+} {+(Empty)+})+} {+(Statements {+(AssertStatement {+(Equal {+(Identifier)+} {+(Null)+})+})+})+})+} {-(AssertStatement {-(Identifier)-} {-(TextElement)-})-}))))) ================================================ FILE: semantic/test/fixtures/java/corpus/AssertStatement.parseA.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (ForEach (Variable (Identifier) (Identifier)) (Call (MemberAccess (Identifier)) (Empty)) (Statements (AssertStatement (Equal (Identifier) (Null)))))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/AssertStatement.parseB.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (AssertStatement (Identifier) (TextElement))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Binary.A.java ================================================ a ^ b; a % b; a << b; a >> b; a >>> b; 3 + 2; 3 - 2; 3 * 2; 9 / 3; ================================================ FILE: semantic/test/fixtures/java/corpus/Binary.B.java ================================================ a > b; a < b; a == b; a >= b; a <= b; a != b; a && b; a || b; a & b; a | b; ================================================ FILE: semantic/test/fixtures/java/corpus/Binary.diffA-B.txt ================================================ (Statements {+(GreaterThan {+(Identifier)+} {+(Identifier)+})+} {+(LessThan {+(Identifier)+} {+(Identifier)+})+} {+(Equal {+(Identifier)+} {+(Identifier)+})+} {+(GreaterThanEqual {+(Identifier)+} {+(Identifier)+})+} {+(LessThanEqual {+(Identifier)+} {+(Identifier)+})+} {+(Not {+(Equal {+(Identifier)+} {+(Identifier)+})+})+} {+(And {+(Identifier)+} {+(Identifier)+})+} {+(Or {+(Identifier)+} {+(Identifier)+})+} {+(BAnd {+(Identifier)+} {+(Identifier)+})+} {+(BOr {+(Identifier)+} {+(Identifier)+})+} {-(BXOr {-(Identifier)-} {-(Identifier)-})-} {-(Modulo {-(Identifier)-} {-(Identifier)-})-} {-(LShift {-(Identifier)-} {-(Identifier)-})-} {-(RShift {-(Identifier)-} {-(Identifier)-})-} {-(UnsignedRShift {-(Identifier)-} {-(Identifier)-})-} {-(Plus {-(Integer)-} {-(Integer)-})-} {-(Minus {-(Integer)-} {-(Integer)-})-} {-(Times {-(Integer)-} {-(Integer)-})-} {-(DividedBy {-(Integer)-} {-(Integer)-})-}) ================================================ FILE: semantic/test/fixtures/java/corpus/Binary.diffB-A.txt ================================================ (Statements {+(BXOr {+(Identifier)+} {+(Identifier)+})+} {+(Modulo {+(Identifier)+} {+(Identifier)+})+} {+(LShift {+(Identifier)+} {+(Identifier)+})+} {+(RShift {+(Identifier)+} {+(Identifier)+})+} {+(UnsignedRShift {+(Identifier)+} {+(Identifier)+})+} {+(Plus {+(Integer)+} {+(Integer)+})+} {+(Minus {+(Integer)+} {+(Integer)+})+} {+(Times {+(Integer)+} {+(Integer)+})+} {+(DividedBy {+(Integer)+} {+(Integer)+})+} {-(GreaterThan {-(Identifier)-} {-(Identifier)-})-} {-(LessThan {-(Identifier)-} {-(Identifier)-})-} {-(Equal {-(Identifier)-} {-(Identifier)-})-} {-(GreaterThanEqual {-(Identifier)-} {-(Identifier)-})-} {-(LessThanEqual {-(Identifier)-} {-(Identifier)-})-} {-(Not {-(Equal {-(Identifier)-} {-(Identifier)-})-})-} {-(And {-(Identifier)-} {-(Identifier)-})-} {-(Or {-(Identifier)-} {-(Identifier)-})-} {-(BAnd {-(Identifier)-} {-(Identifier)-})-} {-(BOr {-(Identifier)-} {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/java/corpus/Binary.parseA.txt ================================================ (Statements (BXOr (Identifier) (Identifier)) (Modulo (Identifier) (Identifier)) (LShift (Identifier) (Identifier)) (RShift (Identifier) (Identifier)) (UnsignedRShift (Identifier) (Identifier)) (Plus (Integer) (Integer)) (Minus (Integer) (Integer)) (Times (Integer) (Integer)) (DividedBy (Integer) (Integer))) ================================================ FILE: semantic/test/fixtures/java/corpus/Binary.parseB.txt ================================================ (Statements (GreaterThan (Identifier) (Identifier)) (LessThan (Identifier) (Identifier)) (Equal (Identifier) (Identifier)) (GreaterThanEqual (Identifier) (Identifier)) (LessThanEqual (Identifier) (Identifier)) (Not (Equal (Identifier) (Identifier))) (And (Identifier) (Identifier)) (Or (Identifier) (Identifier)) (BAnd (Identifier) (Identifier)) (BOr (Identifier) (Identifier))) ================================================ FILE: semantic/test/fixtures/java/corpus/Boolean.A.java ================================================ public class Point { void dinosaur() { Boolean x = true; } } ================================================ FILE: semantic/test/fixtures/java/corpus/Boolean.B.java ================================================ public class Point { void dinosaur() { Boolean example = false; } } ================================================ FILE: semantic/test/fixtures/java/corpus/Boolean.diffA-B.txt ================================================ (Statements (Class (AccessibilityModifier) (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (Statements (Assignment (Variable (Identifier) { (Identifier) ->(Identifier) }) { (Boolean) ->(Boolean) }))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Boolean.diffB-A.txt ================================================ (Statements (Class (AccessibilityModifier) (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (Statements (Assignment (Variable (Identifier) { (Identifier) ->(Identifier) }) { (Boolean) ->(Boolean) }))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Boolean.parseA.txt ================================================ (Statements (Class (AccessibilityModifier) (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (Statements (Assignment (Variable (Identifier) (Identifier)) (Boolean)))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Boolean.parseB.txt ================================================ (Statements (Class (AccessibilityModifier) (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (Statements (Assignment (Variable (Identifier) (Identifier)) (Boolean)))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Char.A.java ================================================ public class Point { void dinosaur() { Char a = 'a'; } } ================================================ FILE: semantic/test/fixtures/java/corpus/Char.B.java ================================================ class Point { Char dinosaur() { Char B = 'B'; if (x) B; } } ================================================ FILE: semantic/test/fixtures/java/corpus/Char.diffA-B.txt ================================================ (Statements (Class {-(AccessibilityModifier)-} (Identifier) (Statements (Method {+(Identifier)+} {-(Void)-} (Empty) (Identifier) (Statements (Statements (Assignment (Variable (Identifier) { (Identifier) ->(Identifier) }) { (TextElement) ->(TextElement) })) {+(If {+(Identifier)+} {+(Identifier)+} {+(Empty)+})+}))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Char.diffB-A.txt ================================================ (Statements (Class {+(AccessibilityModifier)+} (Identifier) (Statements (Method {+(Void)+} {-(Identifier)-} (Empty) (Identifier) (Statements (Statements (Assignment (Variable (Identifier) { (Identifier) ->(Identifier) }) { (TextElement) ->(TextElement) })) {-(If {-(Identifier)-} {-(Identifier)-} {-(Empty)-})-}))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Char.parseA.txt ================================================ (Statements (Class (AccessibilityModifier) (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (Statements (Assignment (Variable (Identifier) (Identifier)) (TextElement)))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Char.parseB.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Identifier) (Empty) (Identifier) (Statements (Statements (Assignment (Variable (Identifier) (Identifier)) (TextElement))) (If (Identifier) (Identifier) (Empty))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/ClassBody.A.java ================================================ class Dino { public void dispose() { Test.flat(new Function() { }); } } ================================================ FILE: semantic/test/fixtures/java/corpus/ClassBody.B.java ================================================ class Dino { } ================================================ FILE: semantic/test/fixtures/java/corpus/ClassBody.diffA-B.txt ================================================ (Statements (Class (Identifier) (Statements {-(Method {-(Void)-} {-(AccessibilityModifier)-} {-(Empty)-} {-(Identifier)-} {-(Statements {-(Call {-(MemberAccess {-(Identifier)-})-} {-(New {-(GenericType {-(Identifier)-} {-(Identifier)-})-} {-(Statements)-})-} {-(Empty)-})-})-})-}))) ================================================ FILE: semantic/test/fixtures/java/corpus/ClassBody.diffB-A.txt ================================================ (Statements (Class (Identifier) (Statements {+(Method {+(Void)+} {+(AccessibilityModifier)+} {+(Empty)+} {+(Identifier)+} {+(Statements {+(Call {+(MemberAccess {+(Identifier)+})+} {+(New {+(GenericType {+(Identifier)+} {+(Identifier)+})+} {+(Statements)+})+} {+(Empty)+})+})+})+}))) ================================================ FILE: semantic/test/fixtures/java/corpus/ClassBody.parseA.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (AccessibilityModifier) (Empty) (Identifier) (Statements (Call (MemberAccess (Identifier)) (New (GenericType (Identifier) (Identifier)) (Statements)) (Empty))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/ClassBody.parseB.txt ================================================ (Statements (Class (Identifier) (Statements))) ================================================ FILE: semantic/test/fixtures/java/corpus/ClassLiteral.A.java ================================================ class Dino { void normalError() { error(TestException.class); } } ================================================ FILE: semantic/test/fixtures/java/corpus/ClassLiteral.B.java ================================================ class Dino { public static void normalError() { Class c = String.class; } } ================================================ FILE: semantic/test/fixtures/java/corpus/ClassLiteral.diffA-B.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) {+(AccessibilityModifier)+} {+(AccessibilityModifier)+} (Empty) (Identifier) (Statements {+(GreaterThan {+(LessThan {+(Identifier)+} {+(Identifier)+})+} {+(Assignment {+(Identifier)+} {+(ClassLiteral {+(Identifier)+})+})+})+} {-(Call {-(Identifier)-} {-(ClassLiteral {-(Identifier)-})-} {-(Empty)-})-}))))) ================================================ FILE: semantic/test/fixtures/java/corpus/ClassLiteral.diffB-A.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) {-(AccessibilityModifier)-} {-(AccessibilityModifier)-} (Empty) (Identifier) (Statements {+(Call {+(Identifier)+} {+(ClassLiteral {+(Identifier)+})+} {+(Empty)+})+} {-(GreaterThan {-(LessThan {-(Identifier)-} {-(Identifier)-})-} {-(Assignment {-(Identifier)-} {-(ClassLiteral {-(Identifier)-})-})-})-}))))) ================================================ FILE: semantic/test/fixtures/java/corpus/ClassLiteral.parseA.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (Call (Identifier) (ClassLiteral (Identifier)) (Empty))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/ClassLiteral.parseB.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (AccessibilityModifier) (AccessibilityModifier) (Empty) (Identifier) (Statements (GreaterThan (LessThan (Identifier) (Identifier)) (Assignment (Identifier) (ClassLiteral (Identifier))))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Comment.A.java ================================================ // This is a single-line comment. ================================================ FILE: semantic/test/fixtures/java/corpus/Comment.B.java ================================================ /* This is a multi-line comment */ ================================================ FILE: semantic/test/fixtures/java/corpus/Comment.diffA-B.txt ================================================ (Statements (Context { (Comment) ->(Comment) } (Empty))) ================================================ FILE: semantic/test/fixtures/java/corpus/Comment.diffB-A.txt ================================================ (Statements (Context { (Comment) ->(Comment) } (Empty))) ================================================ FILE: semantic/test/fixtures/java/corpus/Comment.parseA.txt ================================================ (Statements (Context (Comment) (Empty))) ================================================ FILE: semantic/test/fixtures/java/corpus/Comment.parseB.txt ================================================ (Statements (Context (Comment) (Empty))) ================================================ FILE: semantic/test/fixtures/java/corpus/Continue.A.java ================================================ public class Test { public static void main(String args[]) { int [] numbers = {10, 20, 30, 40, 50}; for(int x : numbers ) { if( x == 30 ) { continue; } System.out.print( x ); System.out.print("\n"); } } } ================================================ FILE: semantic/test/fixtures/java/corpus/Continue.B.java ================================================ class Test { public static void main(String[] args) { if (i > 4 && i < 9) { continue; } } } ================================================ FILE: semantic/test/fixtures/java/corpus/Continue.diffA-B.txt ================================================ (Statements (Class {-(AccessibilityModifier)-} (Identifier) (Statements {+(Method {+(Void)+} {+(AccessibilityModifier)+} {+(AccessibilityModifier)+} {+(Empty)+} {+(Identifier)+} {+(Annotation {+(Identifier)+} {+(Array {+(Empty)+} {+(Identifier)+})+})+} {+(Statements {+(If {+(And {+(GreaterThan {+(Identifier)+} {+(Integer)+})+} {+(LessThan {+(Identifier)+} {+(Integer)+})+})+} {+(Statements {+(Continue {+(Empty)+})+})+} {+(Empty)+})+})+})+} {-(Error)-}))) ================================================ FILE: semantic/test/fixtures/java/corpus/Continue.diffB-A.txt ================================================ (Statements (Class {+(AccessibilityModifier)+} (Identifier) (Statements {+(Error)+} {-(Method {-(Void)-} {-(AccessibilityModifier)-} {-(AccessibilityModifier)-} {-(Empty)-} {-(Identifier)-} {-(Annotation {-(Identifier)-} {-(Array {-(Empty)-} {-(Identifier)-})-})-} {-(Statements {-(If {-(And {-(GreaterThan {-(Identifier)-} {-(Integer)-})-} {-(LessThan {-(Identifier)-} {-(Integer)-})-})-} {-(Statements {-(Continue {-(Empty)-})-})-} {-(Empty)-})-})-})-}))) ================================================ FILE: semantic/test/fixtures/java/corpus/Continue.parseA.txt ================================================ (Statements (Class (AccessibilityModifier) (Identifier) (Statements (Error)))) ================================================ FILE: semantic/test/fixtures/java/corpus/Continue.parseB.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (AccessibilityModifier) (AccessibilityModifier) (Empty) (Identifier) (Annotation (Identifier) (Array (Empty) (Identifier))) (Statements (If (And (GreaterThan (Identifier) (Integer)) (LessThan (Identifier) (Integer))) (Statements (Continue (Empty))) (Empty))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Continue0.A.java ================================================ public class Test { public static void main(String args[]) { int [] numbers = {10, 20, 30, 40, 50}; for(int x : numbers ) { if( x == 30 ) { continue; } System.out.print( x ); System.out.print("\n"); } } } ================================================ FILE: semantic/test/fixtures/java/corpus/Continue1.A.java ================================================ public class Test { public static void main(String args[]) { int [] numbers = {10, 20, 30, 40, 50}; for(int x : numbers ) { if( x == 30 ) { continue; } System.out.print( x ); System.out.print("\n"); } } } ================================================ FILE: semantic/test/fixtures/java/corpus/Dims.A.java ================================================ class ForDemo { int[] metrics; } ================================================ FILE: semantic/test/fixtures/java/corpus/Dims.B.java ================================================ class ForDemo { void main(String[] args){ } } ================================================ FILE: semantic/test/fixtures/java/corpus/Dims.diffA-B.txt ================================================ (Statements (Class (Identifier) (Statements {+(Method {+(Void)+} {+(Empty)+} {+(Identifier)+} {+(Annotation {+(Identifier)+} {+(Array {+(Empty)+} {+(Identifier)+})+})+} {+(Statements)+})+} {-(Statements {-(Variable {-(Array {-(Empty)-} {-(Int)-})-} {-(Identifier)-})-})-}))) ================================================ FILE: semantic/test/fixtures/java/corpus/Dims.diffB-A.txt ================================================ (Statements (Class (Identifier) (Statements {+(Statements {+(Variable {+(Array {+(Empty)+} {+(Int)+})+} {+(Identifier)+})+})+} {-(Method {-(Void)-} {-(Empty)-} {-(Identifier)-} {-(Annotation {-(Identifier)-} {-(Array {-(Empty)-} {-(Identifier)-})-})-} {-(Statements)-})-}))) ================================================ FILE: semantic/test/fixtures/java/corpus/Dims.parseA.txt ================================================ (Statements (Class (Identifier) (Statements (Statements (Variable (Array (Empty) (Int)) (Identifier)))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Dims.parseB.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Annotation (Identifier) (Array (Empty) (Identifier))) (Statements))))) ================================================ FILE: semantic/test/fixtures/java/corpus/DoWhile.A.java ================================================ class WhileDemo { public static void main(String[] args){ do { System.out.print("Guess my name: "); guess = scanner.nextLine(); } while (!"Daffy Duck".equals(guess)); } } ================================================ FILE: semantic/test/fixtures/java/corpus/DoWhile.B.java ================================================ class WhileDemo { public static void main(String[] args) { int i = 5; do { System.out.println(i); i++; } while (i <= 10); } } ================================================ FILE: semantic/test/fixtures/java/corpus/DoWhile.diffA-B.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (AccessibilityModifier) (AccessibilityModifier) (Empty) (Identifier) (Annotation (Identifier) (Array (Empty) (Identifier))) (Statements {+(Statements {+(Assignment {+(Variable {+(Int)+} {+(Identifier)+})+} {+(Integer)+})+})+} (DoWhile { (Not {-(Call {-(MemberAccess {-(TextElement)-})-} {-(Identifier)-} {-(Empty)-})-}) ->(LessThanEqual {+(Identifier)+} {+(Integer)+}) } (Statements (Call { (MemberAccess {-(MemberAccess {-(Identifier)-})-}) ->(MemberAccess {+(MemberAccess {+(Identifier)+})+}) } {+(Identifier)+} {-(TextElement)-} (Empty)) {+(PostIncrement {+(Identifier)+})+} {-(Assignment {-(Identifier)-} {-(Call {-(MemberAccess {-(Identifier)-})-} {-(Empty)-})-})-}))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/DoWhile.diffB-A.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (AccessibilityModifier) (AccessibilityModifier) (Empty) (Identifier) (Annotation (Identifier) (Array (Empty) (Identifier))) (Statements {+(DoWhile {+(Not {+(Call {+(MemberAccess {+(TextElement)+})+} {+(Identifier)+} {+(Empty)+})+})+} {+(Statements {+(Call {+(MemberAccess {+(MemberAccess {+(Identifier)+})+})+} {+(TextElement)+} {+(Empty)+})+} {+(Assignment {+(Identifier)+} {+(Call {+(MemberAccess {+(Identifier)+})+} {+(Empty)+})+})+})+})+} {-(Statements {-(Assignment {-(Variable {-(Int)-} {-(Identifier)-})-} {-(Integer)-})-})-} {-(DoWhile {-(LessThanEqual {-(Identifier)-} {-(Integer)-})-} {-(Statements {-(Call {-(MemberAccess {-(MemberAccess {-(Identifier)-})-})-} {-(Identifier)-} {-(Empty)-})-} {-(PostIncrement {-(Identifier)-})-})-})-}))))) ================================================ FILE: semantic/test/fixtures/java/corpus/DoWhile.parseA.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (AccessibilityModifier) (AccessibilityModifier) (Empty) (Identifier) (Annotation (Identifier) (Array (Empty) (Identifier))) (Statements (DoWhile (Not (Call (MemberAccess (TextElement)) (Identifier) (Empty))) (Statements (Call (MemberAccess (MemberAccess (Identifier))) (TextElement) (Empty)) (Assignment (Identifier) (Call (MemberAccess (Identifier)) (Empty)))))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/DoWhile.parseB.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (AccessibilityModifier) (AccessibilityModifier) (Empty) (Identifier) (Annotation (Identifier) (Array (Empty) (Identifier))) (Statements (Statements (Assignment (Variable (Int) (Identifier)) (Integer))) (DoWhile (LessThanEqual (Identifier) (Integer)) (Statements (Call (MemberAccess (MemberAccess (Identifier))) (Identifier) (Empty)) (PostIncrement (Identifier))))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/EnumDeclaration.A.java ================================================ public enum Colour { } ================================================ FILE: semantic/test/fixtures/java/corpus/EnumDeclaration.B.java ================================================ enum Colour { RED, GREEN, BLUE; } ================================================ FILE: semantic/test/fixtures/java/corpus/EnumDeclaration.diffA-B.txt ================================================ (Statements (EnumDeclaration {-(AccessibilityModifier)-} (Identifier) {+(Identifier)+} {+(Identifier)+} {+(Identifier)+})) ================================================ FILE: semantic/test/fixtures/java/corpus/EnumDeclaration.diffB-A.txt ================================================ (Statements (EnumDeclaration {+(AccessibilityModifier)+} (Identifier) {-(Identifier)-} {-(Identifier)-} {-(Identifier)-})) ================================================ FILE: semantic/test/fixtures/java/corpus/EnumDeclaration.parseA.txt ================================================ (Statements (EnumDeclaration (AccessibilityModifier) (Identifier))) ================================================ FILE: semantic/test/fixtures/java/corpus/EnumDeclaration.parseB.txt ================================================ (Statements (EnumDeclaration (Identifier) (Identifier) (Identifier) (Identifier))) ================================================ FILE: semantic/test/fixtures/java/corpus/FieldAccess.A.java ================================================ class Grouped { Flowable(K key) { this.key = key; } } ================================================ FILE: semantic/test/fixtures/java/corpus/FieldAccess.B.java ================================================ class Grouped { Flowable(K key) { System.out.println(favorite().mountain); } } ================================================ FILE: semantic/test/fixtures/java/corpus/FieldAccess.diffA-B.txt ================================================ (Statements (Class (Identifier) (Statements (Constructor (Identifier) (Annotation (Identifier) (Identifier)) (Statements {+(Call {+(MemberAccess {+(MemberAccess {+(Identifier)+})+})+} {+(MemberAccess {+(Call {+(Identifier)+} {+(Empty)+})+})+} {+(Empty)+})+} {-(Assignment {-(MemberAccess {-(This)-})-} {-(Identifier)-})-}))))) ================================================ FILE: semantic/test/fixtures/java/corpus/FieldAccess.diffB-A.txt ================================================ (Statements (Class (Identifier) (Statements (Constructor (Identifier) (Annotation (Identifier) (Identifier)) (Statements {+(Assignment {+(MemberAccess {+(This)+})+} {+(Identifier)+})+} {-(Call {-(MemberAccess {-(MemberAccess {-(Identifier)-})-})-} {-(MemberAccess {-(Call {-(Identifier)-} {-(Empty)-})-})-} {-(Empty)-})-}))))) ================================================ FILE: semantic/test/fixtures/java/corpus/FieldAccess.parseA.txt ================================================ (Statements (Class (Identifier) (Statements (Constructor (Identifier) (Annotation (Identifier) (Identifier)) (Statements (Assignment (MemberAccess (This)) (Identifier))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/FieldAccess.parseB.txt ================================================ (Statements (Class (Identifier) (Statements (Constructor (Identifier) (Annotation (Identifier) (Identifier)) (Statements (Call (MemberAccess (MemberAccess (Identifier))) (MemberAccess (Call (Identifier) (Empty))) (Empty))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Float.A.java ================================================ public class Point { void dinosaur() { Float x = 10.0; } } ================================================ FILE: semantic/test/fixtures/java/corpus/Float.B.java ================================================ public class Point { void dinosaur() { Float x = 10.0; Float y = 20.0; System.out.print(x + y); } } ================================================ FILE: semantic/test/fixtures/java/corpus/Float.diffA-B.txt ================================================ (Statements (Class (AccessibilityModifier) (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (Statements (Assignment (Variable (Identifier) (Identifier)) (Float))) {+(Statements {+(Assignment {+(Variable {+(Identifier)+} {+(Identifier)+})+} {+(Float)+})+})+} {+(Call {+(MemberAccess {+(MemberAccess {+(Identifier)+})+})+} {+(Plus {+(Identifier)+} {+(Identifier)+})+} {+(Empty)+})+}))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Float.diffB-A.txt ================================================ (Statements (Class (AccessibilityModifier) (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (Statements (Assignment (Variable (Identifier) (Identifier)) (Float))) {-(Statements {-(Assignment {-(Variable {-(Identifier)-} {-(Identifier)-})-} {-(Float)-})-})-} {-(Call {-(MemberAccess {-(MemberAccess {-(Identifier)-})-})-} {-(Plus {-(Identifier)-} {-(Identifier)-})-} {-(Empty)-})-}))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Float.parseA.txt ================================================ (Statements (Class (AccessibilityModifier) (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (Statements (Assignment (Variable (Identifier) (Identifier)) (Float)))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Float.parseB.txt ================================================ (Statements (Class (AccessibilityModifier) (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (Statements (Assignment (Variable (Identifier) (Identifier)) (Float))) (Statements (Assignment (Variable (Identifier) (Identifier)) (Float))) (Call (MemberAccess (MemberAccess (Identifier))) (Plus (Identifier) (Identifier)) (Empty))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/For.A.java ================================================ class ForDemo { public static void main(String[] args){ for(int i=1; i<11; i++){ System.out.println("Count is: " + i); } } } ================================================ FILE: semantic/test/fixtures/java/corpus/For.B.java ================================================ class ForDemo { public static void main(String[] args){ for(int i: list){ System.out.println("Count is: " + i); } } } ================================================ FILE: semantic/test/fixtures/java/corpus/For.diffA-B.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (AccessibilityModifier) (AccessibilityModifier) (Empty) (Identifier) (Annotation (Identifier) (Array (Empty) (Identifier))) (Statements {+(ForEach {+(Variable {+(Int)+} {+(Identifier)+})+} {+(Identifier)+} {+(Statements {+(Call {+(MemberAccess {+(MemberAccess {+(Identifier)+})+})+} {+(Plus {+(TextElement)+} {+(Identifier)+})+} {+(Empty)+})+})+})+} {-(For {-(Statements {-(Assignment {-(Variable {-(Int)-} {-(Identifier)-})-} {-(Integer)-})-})-} {-(LessThan {-(Identifier)-} {-(Integer)-})-} {-(Statements {-(PostIncrement {-(Identifier)-})-})-} {-(Statements {-(Call {-(MemberAccess {-(MemberAccess {-(Identifier)-})-})-} {-(Plus {-(TextElement)-} {-(Identifier)-})-} {-(Empty)-})-})-})-}))))) ================================================ FILE: semantic/test/fixtures/java/corpus/For.diffB-A.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (AccessibilityModifier) (AccessibilityModifier) (Empty) (Identifier) (Annotation (Identifier) (Array (Empty) (Identifier))) (Statements {+(For {+(Statements {+(Assignment {+(Variable {+(Int)+} {+(Identifier)+})+} {+(Integer)+})+})+} {+(LessThan {+(Identifier)+} {+(Integer)+})+} {+(Statements {+(PostIncrement {+(Identifier)+})+})+} {+(Statements {+(Call {+(MemberAccess {+(MemberAccess {+(Identifier)+})+})+} {+(Plus {+(TextElement)+} {+(Identifier)+})+} {+(Empty)+})+})+})+} {-(ForEach {-(Variable {-(Int)-} {-(Identifier)-})-} {-(Identifier)-} {-(Statements {-(Call {-(MemberAccess {-(MemberAccess {-(Identifier)-})-})-} {-(Plus {-(TextElement)-} {-(Identifier)-})-} {-(Empty)-})-})-})-}))))) ================================================ FILE: semantic/test/fixtures/java/corpus/For.parseA.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (AccessibilityModifier) (AccessibilityModifier) (Empty) (Identifier) (Annotation (Identifier) (Array (Empty) (Identifier))) (Statements (For (Statements (Assignment (Variable (Int) (Identifier)) (Integer))) (LessThan (Identifier) (Integer)) (Statements (PostIncrement (Identifier))) (Statements (Call (MemberAccess (MemberAccess (Identifier))) (Plus (TextElement) (Identifier)) (Empty))))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/For.parseB.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (AccessibilityModifier) (AccessibilityModifier) (Empty) (Identifier) (Annotation (Identifier) (Array (Empty) (Identifier))) (Statements (ForEach (Variable (Int) (Identifier)) (Identifier) (Statements (Call (MemberAccess (MemberAccess (Identifier))) (Plus (TextElement) (Identifier)) (Empty))))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/If.A.java ================================================ if (x) y; ================================================ FILE: semantic/test/fixtures/java/corpus/If.B.java ================================================ if (x=1) System.out.print(x); ================================================ FILE: semantic/test/fixtures/java/corpus/If.diffA-B.txt ================================================ (Statements (If { (Identifier) ->(Assignment {+(Identifier)+} {+(Integer)+}) } { (Identifier) ->(Call {+(MemberAccess {+(MemberAccess {+(Identifier)+})+})+} {+(Identifier)+} {+(Empty)+}) } (Empty))) ================================================ FILE: semantic/test/fixtures/java/corpus/If.diffB-A.txt ================================================ (Statements (If { (Assignment {-(Identifier)-} {-(Integer)-}) ->(Identifier) } { (Call {-(MemberAccess {-(MemberAccess {-(Identifier)-})-})-} {-(Identifier)-} {-(Empty)-}) ->(Identifier) } (Empty))) ================================================ FILE: semantic/test/fixtures/java/corpus/If.parseA.txt ================================================ (Statements (If (Identifier) (Identifier) (Empty))) ================================================ FILE: semantic/test/fixtures/java/corpus/If.parseB.txt ================================================ (Statements (If (Assignment (Identifier) (Integer)) (Call (MemberAccess (MemberAccess (Identifier))) (Identifier) (Empty)) (Empty))) ================================================ FILE: semantic/test/fixtures/java/corpus/Import.A.java ================================================ import javax.swing.JOptionPane; ================================================ FILE: semantic/test/fixtures/java/corpus/Import.B.java ================================================ import java.until.*; ================================================ FILE: semantic/test/fixtures/java/corpus/Import.diffA-B.txt ================================================ (Statements (Import {+(Identifier)+} {+(Identifier)+} {+(Asterisk)+} {-(Identifier)-} {-(Identifier)-} {-(Identifier)-})) ================================================ FILE: semantic/test/fixtures/java/corpus/Import.diffB-A.txt ================================================ (Statements (Import {+(Identifier)+} { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) } {-(Asterisk)-})) ================================================ FILE: semantic/test/fixtures/java/corpus/Import.parseA.txt ================================================ (Statements (Import (Identifier) (Identifier) (Identifier))) ================================================ FILE: semantic/test/fixtures/java/corpus/Import.parseB.txt ================================================ (Statements (Import (Identifier) (Identifier) (Asterisk))) ================================================ FILE: semantic/test/fixtures/java/corpus/Int.A.java ================================================ public class Point { void dinosaur() { Int x = 1; } } ================================================ FILE: semantic/test/fixtures/java/corpus/Int.B.java ================================================ public class Point { void dinosaur() { Int A = 123; Int B = 10; System.out.print(A + B); } } ================================================ FILE: semantic/test/fixtures/java/corpus/Int.diffA-B.txt ================================================ (Statements (Class (AccessibilityModifier) (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (Statements (Assignment (Variable (Identifier) { (Identifier) ->(Identifier) }) { (Integer) ->(Integer) })) {+(Statements {+(Assignment {+(Variable {+(Identifier)+} {+(Identifier)+})+} {+(Integer)+})+})+} {+(Call {+(MemberAccess {+(MemberAccess {+(Identifier)+})+})+} {+(Plus {+(Identifier)+} {+(Identifier)+})+} {+(Empty)+})+}))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Int.diffB-A.txt ================================================ (Statements (Class (AccessibilityModifier) (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (Statements (Assignment (Variable (Identifier) { (Identifier) ->(Identifier) }) { (Integer) ->(Integer) })) {-(Statements {-(Assignment {-(Variable {-(Identifier)-} {-(Identifier)-})-} {-(Integer)-})-})-} {-(Call {-(MemberAccess {-(MemberAccess {-(Identifier)-})-})-} {-(Plus {-(Identifier)-} {-(Identifier)-})-} {-(Empty)-})-}))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Int.parseA.txt ================================================ (Statements (Class (AccessibilityModifier) (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (Statements (Assignment (Variable (Identifier) (Identifier)) (Integer)))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Int.parseB.txt ================================================ (Statements (Class (AccessibilityModifier) (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (Statements (Assignment (Variable (Identifier) (Identifier)) (Integer))) (Statements (Assignment (Variable (Identifier) (Identifier)) (Integer))) (Call (MemberAccess (MemberAccess (Identifier))) (Plus (Identifier) (Identifier)) (Empty))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Interface.A.java ================================================ interface Top { } // normal declaration ================================================ FILE: semantic/test/fixtures/java/corpus/Interface.B.java ================================================ @interface TerminationHandle { Bar foo = 1; } // annotation type declaration ================================================ FILE: semantic/test/fixtures/java/corpus/Interface.diffA-B.txt ================================================ (Statements (InterfaceDeclaration { (Identifier) ->(Identifier) } (Statements {+(Statements {+(Assignment {+(Variable {+(Identifier)+} {+(Identifier)+})+} {+(Integer)+})+})+})) (Context { (Comment) ->(Comment) } (Empty))) ================================================ FILE: semantic/test/fixtures/java/corpus/Interface.diffB-A.txt ================================================ (Statements (InterfaceDeclaration { (Identifier) ->(Identifier) } (Statements {-(Statements {-(Assignment {-(Variable {-(Identifier)-} {-(Identifier)-})-} {-(Integer)-})-})-})) (Context { (Comment) ->(Comment) } (Empty))) ================================================ FILE: semantic/test/fixtures/java/corpus/Interface.parseA.txt ================================================ (Statements (InterfaceDeclaration (Identifier) (Statements)) (Context (Comment) (Empty))) ================================================ FILE: semantic/test/fixtures/java/corpus/Interface.parseB.txt ================================================ (Statements (InterfaceDeclaration (Identifier) (Statements (Statements (Assignment (Variable (Identifier) (Identifier)) (Integer))))) (Context (Comment) (Empty))) ================================================ FILE: semantic/test/fixtures/java/corpus/Lambda.A.java ================================================ class LambdaTest { void singleton() { version -> create; } } ================================================ FILE: semantic/test/fixtures/java/corpus/Lambda.B.java ================================================ class LambdaTest { void singleton() { stateOwner.add(x -> System.out.println("State changed")); } } ================================================ FILE: semantic/test/fixtures/java/corpus/Lambda.diffA-B.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements {+(Call {+(MemberAccess {+(Identifier)+})+} {+(Lambda {+(Identifier)+} {+(LambdaBody {+(Call {+(MemberAccess {+(MemberAccess {+(Identifier)+})+})+} {+(TextElement)+} {+(Empty)+})+})+})+} {+(Empty)+})+} {-(Lambda {-(Identifier)-} {-(LambdaBody {-(Identifier)-})-})-}))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Lambda.diffB-A.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements {+(Lambda {+(Identifier)+} {+(LambdaBody {+(Identifier)+})+})+} {-(Call {-(MemberAccess {-(Identifier)-})-} {-(Lambda {-(Identifier)-} {-(LambdaBody {-(Call {-(MemberAccess {-(MemberAccess {-(Identifier)-})-})-} {-(TextElement)-} {-(Empty)-})-})-})-} {-(Empty)-})-}))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Lambda.parseA.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (Lambda (Identifier) (LambdaBody (Identifier)))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Lambda.parseB.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (Call (MemberAccess (Identifier)) (Lambda (Identifier) (LambdaBody (Call (MemberAccess (MemberAccess (Identifier))) (TextElement) (Empty)))) (Empty))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/ScopedIdentifier.A.java ================================================ class Natural { int compare(Object a, Object b) { (a).compareTo(b); } } ================================================ FILE: semantic/test/fixtures/java/corpus/ScopedIdentifier.B.java ================================================ static final class EventLoopWorker extends Scheduler.Worker { } ================================================ FILE: semantic/test/fixtures/java/corpus/ScopedIdentifier.diffA-B.txt ================================================ (Statements (Class {+(AccessibilityModifier)+} {+(AccessibilityModifier)+} { (Identifier) ->(Identifier) } {+(MemberAccess {+(Identifier)+})+} (Statements {-(Method {-(Int)-} {-(Empty)-} {-(Identifier)-} {-(Annotation {-(Identifier)-} {-(Identifier)-})-} {-(Annotation {-(Identifier)-} {-(Identifier)-})-} {-(Statements {-(Call {-(MemberAccess {-(Identifier)-})-} {-(Identifier)-} {-(Empty)-})-})-})-}))) ================================================ FILE: semantic/test/fixtures/java/corpus/ScopedIdentifier.diffB-A.txt ================================================ (Statements (Class {-(AccessibilityModifier)-} {-(AccessibilityModifier)-} { (Identifier) ->(Identifier) } {-(MemberAccess {-(Identifier)-})-} (Statements {+(Method {+(Int)+} {+(Empty)+} {+(Identifier)+} {+(Annotation {+(Identifier)+} {+(Identifier)+})+} {+(Annotation {+(Identifier)+} {+(Identifier)+})+} {+(Statements {+(Call {+(MemberAccess {+(Identifier)+})+} {+(Identifier)+} {+(Empty)+})+})+})+}))) ================================================ FILE: semantic/test/fixtures/java/corpus/ScopedIdentifier.parseA.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Int) (Empty) (Identifier) (Annotation (Identifier) (Identifier)) (Annotation (Identifier) (Identifier)) (Statements (Call (MemberAccess (Identifier)) (Identifier) (Empty))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/ScopedIdentifier.parseB.txt ================================================ (Statements (Class (AccessibilityModifier) (AccessibilityModifier) (Identifier) (MemberAccess (Identifier)) (Statements))) ================================================ FILE: semantic/test/fixtures/java/corpus/SpreadParameter.A.java ================================================ class Dinosaur { Disposable(Disposable... resources) { } } ================================================ FILE: semantic/test/fixtures/java/corpus/SpreadParameter.B.java ================================================ class Dinosaur { Disposable(int ...resources) { } } ================================================ FILE: semantic/test/fixtures/java/corpus/SpreadParameter.diffA-B.txt ================================================ (Statements (Class (Identifier) (Statements (Constructor (Identifier) (SpreadParameter (Variable { (Identifier) ->(Int) } (Identifier))) (Statements))))) ================================================ FILE: semantic/test/fixtures/java/corpus/SpreadParameter.diffB-A.txt ================================================ (Statements (Class (Identifier) (Statements (Constructor (Identifier) (SpreadParameter (Variable { (Int) ->(Identifier) } (Identifier))) (Statements))))) ================================================ FILE: semantic/test/fixtures/java/corpus/SpreadParameter.parseA.txt ================================================ (Statements (Class (Identifier) (Statements (Constructor (Identifier) (SpreadParameter (Variable (Identifier) (Identifier))) (Statements))))) ================================================ FILE: semantic/test/fixtures/java/corpus/SpreadParameter.parseB.txt ================================================ (Statements (Class (Identifier) (Statements (Constructor (Identifier) (SpreadParameter (Variable (Int) (Identifier))) (Statements))))) ================================================ FILE: semantic/test/fixtures/java/corpus/String.A.java ================================================ public class Point { void dinosaur() { String str = "yo wassup"; } } ================================================ FILE: semantic/test/fixtures/java/corpus/String.B.java ================================================ public class Point { void dinosaur() { String gfg3 = String.format("%07d", num); } } ================================================ FILE: semantic/test/fixtures/java/corpus/String.diffA-B.txt ================================================ (Statements (Class (AccessibilityModifier) (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (Statements (Assignment (Variable (Identifier) { (Identifier) ->(Identifier) }) { (TextElement) ->(Call {+(MemberAccess {+(Identifier)+})+} {+(TextElement)+} {+(Identifier)+} {+(Empty)+}) }))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/String.diffB-A.txt ================================================ (Statements (Class (AccessibilityModifier) (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (Statements (Assignment (Variable (Identifier) { (Identifier) ->(Identifier) }) { (Call {-(MemberAccess {-(Identifier)-})-} {-(TextElement)-} {-(Identifier)-} {-(Empty)-}) ->(TextElement) }))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/String.parseA.txt ================================================ (Statements (Class (AccessibilityModifier) (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (Statements (Assignment (Variable (Identifier) (Identifier)) (TextElement)))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/String.parseB.txt ================================================ (Statements (Class (AccessibilityModifier) (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (Statements (Assignment (Variable (Identifier) (Identifier)) (Call (MemberAccess (Identifier)) (TextElement) (Identifier) (Empty))))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Switch.A.java ================================================ public class Test { public static void main(String[] args) { int day = 5; String dayString; switch (day) { case 1: dayString = "Monday"; break; case 2: dayString = "Tuesday"; break; case 3: dayString = "Wednesday"; break; case 4: dayString = "Thursday"; break; case 5: dayString = "Friday"; break; case 6: dayString = "Saturday"; break; case 7: dayString = "Sunday"; break; default: dayString = "Invalid day"; break; } System.out.println(dayString); } } ================================================ FILE: semantic/test/fixtures/java/corpus/Switch.B.java ================================================ public class Test { public static void main(String[] args) { int day = 5; int cupcakes = 2; switch (day) { case 1: cupcakes = 1; break; default: cupcakes = 2; break; } System.out.println(dayString); } } ================================================ FILE: semantic/test/fixtures/java/corpus/Switch.diffA-B.txt ================================================ (Statements (Class (AccessibilityModifier) (Identifier) (Statements (Method (Void) (AccessibilityModifier) (AccessibilityModifier) (Empty) (Identifier) (Annotation (Identifier) (Array (Empty) (Identifier))) (Statements (Statements (Assignment (Variable (Int) (Identifier)) (Integer))) (Statements {+(Assignment {+(Variable {+(Int)+} {+(Identifier)+})+} {+(Integer)+})+} {-(Variable {-(Identifier)-} {-(Identifier)-})-}) (Match (Identifier) (Statements (Pattern (Integer) (Statements (Assignment { (Identifier) ->(Identifier) } { (TextElement) ->(Integer) }) (Break (Empty)))) {+(Pattern {+(Empty)+} {+(Statements {+(Assignment {+(Identifier)+} {+(Integer)+})+} {+(Break {+(Empty)+})+})+})+} {-(Pattern {-(Integer)-} {-(Statements {-(Assignment {-(Identifier)-} {-(TextElement)-})-} {-(Break {-(Empty)-})-})-})-} {-(Pattern {-(Integer)-} {-(Statements {-(Assignment {-(Identifier)-} {-(TextElement)-})-} {-(Break {-(Empty)-})-})-})-} {-(Pattern {-(Integer)-} {-(Statements {-(Assignment {-(Identifier)-} {-(TextElement)-})-} {-(Break {-(Empty)-})-})-})-} {-(Pattern {-(Integer)-} {-(Statements {-(Assignment {-(Identifier)-} {-(TextElement)-})-} {-(Break {-(Empty)-})-})-})-} {-(Pattern {-(Integer)-} {-(Statements {-(Assignment {-(Identifier)-} {-(TextElement)-})-} {-(Break {-(Empty)-})-})-})-} {-(Pattern {-(Integer)-} {-(Statements {-(Assignment {-(Identifier)-} {-(TextElement)-})-} {-(Break {-(Empty)-})-})-})-} {-(Pattern {-(Empty)-} {-(Statements {-(Assignment {-(Identifier)-} {-(TextElement)-})-} {-(Break {-(Empty)-})-})-})-})) (Call (MemberAccess (MemberAccess (Identifier))) (Identifier) (Empty))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Switch.diffB-A.txt ================================================ (Statements (Class (AccessibilityModifier) (Identifier) (Statements (Method (Void) (AccessibilityModifier) (AccessibilityModifier) (Empty) (Identifier) (Annotation (Identifier) (Array (Empty) (Identifier))) (Statements (Statements (Assignment (Variable (Int) (Identifier)) (Integer))) (Statements {+(Variable {+(Identifier)+} {+(Identifier)+})+} {-(Assignment {-(Variable {-(Int)-} {-(Identifier)-})-} {-(Integer)-})-}) (Match (Identifier) (Statements (Pattern (Integer) (Statements (Assignment { (Identifier) ->(Identifier) } { (Integer) ->(TextElement) }) (Break (Empty)))) {+(Pattern {+(Integer)+} {+(Statements {+(Assignment {+(Identifier)+} {+(TextElement)+})+} {+(Break {+(Empty)+})+})+})+} (Pattern { (Empty) ->(Integer) } (Statements (Assignment { (Identifier) ->(Identifier) } { (Integer) ->(TextElement) }) (Break (Empty)))) {+(Pattern {+(Integer)+} {+(Statements {+(Assignment {+(Identifier)+} {+(TextElement)+})+} {+(Break {+(Empty)+})+})+})+} {+(Pattern {+(Integer)+} {+(Statements {+(Assignment {+(Identifier)+} {+(TextElement)+})+} {+(Break {+(Empty)+})+})+})+} {+(Pattern {+(Integer)+} {+(Statements {+(Assignment {+(Identifier)+} {+(TextElement)+})+} {+(Break {+(Empty)+})+})+})+} {+(Pattern {+(Integer)+} {+(Statements {+(Assignment {+(Identifier)+} {+(TextElement)+})+} {+(Break {+(Empty)+})+})+})+} {+(Pattern {+(Empty)+} {+(Statements {+(Assignment {+(Identifier)+} {+(TextElement)+})+} {+(Break {+(Empty)+})+})+})+})) (Call (MemberAccess (MemberAccess (Identifier))) (Identifier) (Empty))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Switch.parseA.txt ================================================ (Statements (Class (AccessibilityModifier) (Identifier) (Statements (Method (Void) (AccessibilityModifier) (AccessibilityModifier) (Empty) (Identifier) (Annotation (Identifier) (Array (Empty) (Identifier))) (Statements (Statements (Assignment (Variable (Int) (Identifier)) (Integer))) (Statements (Variable (Identifier) (Identifier))) (Match (Identifier) (Statements (Pattern (Integer) (Statements (Assignment (Identifier) (TextElement)) (Break (Empty)))) (Pattern (Integer) (Statements (Assignment (Identifier) (TextElement)) (Break (Empty)))) (Pattern (Integer) (Statements (Assignment (Identifier) (TextElement)) (Break (Empty)))) (Pattern (Integer) (Statements (Assignment (Identifier) (TextElement)) (Break (Empty)))) (Pattern (Integer) (Statements (Assignment (Identifier) (TextElement)) (Break (Empty)))) (Pattern (Integer) (Statements (Assignment (Identifier) (TextElement)) (Break (Empty)))) (Pattern (Integer) (Statements (Assignment (Identifier) (TextElement)) (Break (Empty)))) (Pattern (Empty) (Statements (Assignment (Identifier) (TextElement)) (Break (Empty)))))) (Call (MemberAccess (MemberAccess (Identifier))) (Identifier) (Empty))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Switch.parseB.txt ================================================ (Statements (Class (AccessibilityModifier) (Identifier) (Statements (Method (Void) (AccessibilityModifier) (AccessibilityModifier) (Empty) (Identifier) (Annotation (Identifier) (Array (Empty) (Identifier))) (Statements (Statements (Assignment (Variable (Int) (Identifier)) (Integer))) (Statements (Assignment (Variable (Int) (Identifier)) (Integer))) (Match (Identifier) (Statements (Pattern (Integer) (Statements (Assignment (Identifier) (Integer)) (Break (Empty)))) (Pattern (Empty) (Statements (Assignment (Identifier) (Integer)) (Break (Empty)))))) (Call (MemberAccess (MemberAccess (Identifier))) (Identifier) (Empty))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Throws.A.java ================================================ class Beyonce { void x() { BufferedReader newReader() throws FileNotFoundException { new BufferedReader(new InputStreamReader(new FileInputStream(file), charset)); } } } // this doesn't work ================================================ FILE: semantic/test/fixtures/java/corpus/Throws.B.java ================================================ class Beyonce { BufferedReader newReader() throws FileNotFoundException { new BufferedReader(new InputStreamReader(new FileInputStream(file), charset)); } } // this doesn't work ================================================ FILE: semantic/test/fixtures/java/corpus/TryCatches.A.java ================================================ class Example2{ public static void main(String args[]){ try{ int a[]=new int[7]; a[4]=30/0; System.out.println("First print statement in try block"); } catch(ArithmeticException e){ System.out.println("Warning: ArithmeticException"); } catch(ArrayIndexOutOfBoundsException e){ System.out.println("Warning: ArrayIndexOutOfBoundsException"); } catch(Exception e){ System.out.println("Warning: Some Other exception"); } System.out.println("Out of try-catch block..."); } } ================================================ FILE: semantic/test/fixtures/java/corpus/TryCatches.B.java ================================================ class Example2{ public static void main(String args[]){ try{ int data = 50; } catch (ArithmeticException e){System.out.println(e);} System.out.println("rest of the code..."); } } ================================================ FILE: semantic/test/fixtures/java/corpus/TryWithResourcesStatement.A.java ================================================ class Dino { void hi() { try (CustomAnalyzer analyzer = new CustomAnalyzer()){ } } } ================================================ FILE: semantic/test/fixtures/java/corpus/TryWithResourcesStatement.B.java ================================================ class Dino { void hi() { try (int analyzer = 123){ } } } ================================================ FILE: semantic/test/fixtures/java/corpus/TryWithResourcesStatement.diffA-B.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (TryWithResources (Assignment (Variable { (Identifier) ->(Int) } (Identifier)) { (New {-(Identifier)-}) ->(Integer) }) (Statements))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/TryWithResourcesStatement.diffB-A.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (TryWithResources (Assignment (Variable { (Int) ->(Identifier) } (Identifier)) { (Integer) ->(New {+(Identifier)+}) }) (Statements))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/TryWithResourcesStatement.parseA.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (TryWithResources (Assignment (Variable (Identifier) (Identifier)) (New (Identifier))) (Statements))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/TryWithResourcesStatement.parseB.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (TryWithResources (Assignment (Variable (Int) (Identifier)) (Integer)) (Statements))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/TypeArgument.A.java ================================================ class Test { void printCollection(Collection c) { // a wildcard collection } } ================================================ FILE: semantic/test/fixtures/java/corpus/TypeArgument.B.java ================================================ class Test { static void printCollection(Collection c) { // a wildcard collection for (Object o : c) { System.out.println(o); } } } ================================================ FILE: semantic/test/fixtures/java/corpus/TypeArgument.diffA-B.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) {+(AccessibilityModifier)+} (Empty) (Identifier) (Annotation (Identifier) (GenericType (Identifier) {+(Wildcard)+} {-(Identifier)-})) (Statements (Context (Comment) { (Empty) ->(ForEach {+(Variable {+(Identifier)+} {+(Identifier)+})+} {+(Identifier)+} {+(Statements {+(Call {+(MemberAccess {+(MemberAccess {+(Identifier)+})+})+} {+(Identifier)+} {+(Empty)+})+})+}) })))))) ================================================ FILE: semantic/test/fixtures/java/corpus/TypeArgument.diffB-A.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) {-(AccessibilityModifier)-} (Empty) (Identifier) (Annotation (Identifier) (GenericType (Identifier) {+(Identifier)+} {-(Wildcard)-})) (Statements (Context (Comment) { (ForEach {-(Variable {-(Identifier)-} {-(Identifier)-})-} {-(Identifier)-} {-(Statements {-(Call {-(MemberAccess {-(MemberAccess {-(Identifier)-})-})-} {-(Identifier)-} {-(Empty)-})-})-}) ->(Empty) })))))) ================================================ FILE: semantic/test/fixtures/java/corpus/TypeArgument.parseA.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Annotation (Identifier) (GenericType (Identifier) (Identifier))) (Statements (Context (Comment) (Empty))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/TypeArgument.parseB.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (AccessibilityModifier) (Empty) (Identifier) (Annotation (Identifier) (GenericType (Identifier) (Wildcard))) (Statements (Context (Comment) (ForEach (Variable (Identifier) (Identifier)) (Identifier) (Statements (Call (MemberAccess (MemberAccess (Identifier))) (Identifier) (Empty)))))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Update.A.java ================================================ foo++; ++bar; ================================================ FILE: semantic/test/fixtures/java/corpus/Update.B.java ================================================ baz--; --boo; ================================================ FILE: semantic/test/fixtures/java/corpus/Update.diffA-B.txt ================================================ (Statements {+(PostDecrement {+(Identifier)+})+} {+(PreDecrement {+(Identifier)+})+} {-(PostIncrement {-(Identifier)-})-} {-(PreIncrement {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/java/corpus/Update.diffB-A.txt ================================================ (Statements {+(PostIncrement {+(Identifier)+})+} {+(PreIncrement {+(Identifier)+})+} {-(PostDecrement {-(Identifier)-})-} {-(PreDecrement {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/java/corpus/Update.parseA.txt ================================================ (Statements (PostIncrement (Identifier)) (PreIncrement (Identifier))) ================================================ FILE: semantic/test/fixtures/java/corpus/Update.parseB.txt ================================================ (Statements (PostDecrement (Identifier)) (PreDecrement (Identifier))) ================================================ FILE: semantic/test/fixtures/java/corpus/VariableDeclaration.A.java ================================================ class Dino { void test() { int x = 3; } } ================================================ FILE: semantic/test/fixtures/java/corpus/VariableDeclaration.B.java ================================================ class Dino { void test() { float x = 3.0; } } ================================================ FILE: semantic/test/fixtures/java/corpus/VariableDeclaration.diffA-B.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (Statements (Assignment (Variable { (Int) ->(Float) } (Identifier)) { (Integer) ->(Float) }))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/VariableDeclaration.diffB-A.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (Statements (Assignment (Variable { (Float) ->(Int) } (Identifier)) { (Float) ->(Integer) }))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/VariableDeclaration.parseA.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (Statements (Assignment (Variable (Int) (Identifier)) (Integer)))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/VariableDeclaration.parseB.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Statements (Statements (Assignment (Variable (Float) (Identifier)) (Float)))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/While.A.java ================================================ class WhileDemo { public static void main(String[] args){ int count = 1; while (count < 11) { System.out.println("Count is: " + count); count++; } } } ================================================ FILE: semantic/test/fixtures/java/corpus/While.B.java ================================================ class WhileDemo { void main(String[] args){ String theString = "cheese"; while (theString != "poop") { System.out.println("Count is: " + theString); } } } ================================================ FILE: semantic/test/fixtures/java/corpus/While.diffA-B.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) {-(AccessibilityModifier)-} {-(AccessibilityModifier)-} (Empty) (Identifier) (Annotation (Identifier) (Array (Empty) (Identifier))) (Statements (Statements (Assignment (Variable { (Int) ->(Identifier) } { (Identifier) ->(Identifier) }) { (Integer) ->(TextElement) })) (While { (LessThan {-(Identifier)-} {-(Integer)-}) ->(Not {+(Equal {+(Identifier)+} {+(TextElement)+})+}) } (Statements (Call (MemberAccess (MemberAccess (Identifier))) (Plus (TextElement) { (Identifier) ->(Identifier) }) (Empty)) {-(PostIncrement {-(Identifier)-})-}))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/While.diffB-A.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) {+(AccessibilityModifier)+} {+(AccessibilityModifier)+} (Empty) (Identifier) (Annotation (Identifier) (Array (Empty) (Identifier))) (Statements (Statements (Assignment (Variable { (Identifier) ->(Int) } { (Identifier) ->(Identifier) }) { (TextElement) ->(Integer) })) (While { (Not {-(Equal {-(Identifier)-} {-(TextElement)-})-}) ->(LessThan {+(Identifier)+} {+(Integer)+}) } (Statements (Call (MemberAccess (MemberAccess (Identifier))) (Plus (TextElement) { (Identifier) ->(Identifier) }) (Empty)) {+(PostIncrement {+(Identifier)+})+}))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/While.parseA.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (AccessibilityModifier) (AccessibilityModifier) (Empty) (Identifier) (Annotation (Identifier) (Array (Empty) (Identifier))) (Statements (Statements (Assignment (Variable (Int) (Identifier)) (Integer))) (While (LessThan (Identifier) (Integer)) (Statements (Call (MemberAccess (MemberAccess (Identifier))) (Plus (TextElement) (Identifier)) (Empty)) (PostIncrement (Identifier))))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/While.parseB.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Annotation (Identifier) (Array (Empty) (Identifier))) (Statements (Statements (Assignment (Variable (Identifier) (Identifier)) (TextElement))) (While (Not (Equal (Identifier) (TextElement))) (Statements (Call (MemberAccess (MemberAccess (Identifier))) (Plus (TextElement) (Identifier)) (Empty))))))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Wildcard.A.java ================================================ class Connectable { void connect(Consumer connection); } ================================================ FILE: semantic/test/fixtures/java/corpus/Wildcard.B.java ================================================ class Connectable { void connect(C connection); } ================================================ FILE: semantic/test/fixtures/java/corpus/Wildcard.diffA-B.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Annotation (Identifier) (GenericType { (Identifier) ->(Identifier) } (Wildcard { (WildcardBoundSuper {-(Identifier)-}) ->(WildcardBoundExtends {+(Identifier)+}) }))) (Empty))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Wildcard.diffB-A.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Annotation (Identifier) (GenericType { (Identifier) ->(Identifier) } (Wildcard { (WildcardBoundExtends {-(Identifier)-}) ->(WildcardBoundSuper {+(Identifier)+}) }))) (Empty))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Wildcard.parseA.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Annotation (Identifier) (GenericType (Identifier) (Wildcard (WildcardBoundSuper (Identifier))))) (Empty))))) ================================================ FILE: semantic/test/fixtures/java/corpus/Wildcard.parseB.txt ================================================ (Statements (Class (Identifier) (Statements (Method (Void) (Empty) (Identifier) (Annotation (Identifier) (GenericType (Identifier) (Wildcard (WildcardBoundExtends (Identifier))))) (Empty))))) ================================================ FILE: semantic/test/fixtures/java/corpus/array-access.java ================================================ class Dinosaur { void apply() { (T1)a[0]; } } ================================================ FILE: semantic/test/fixtures/java/corpus/assertStatement.java ================================================ class Dino { void fn() { for (File file : snap.index()) { assert oldFile == null; } } } ================================================ FILE: semantic/test/fixtures/java/corpus/assertStringLiteral.java ================================================ class Dino { void hi() { assert failure : "expecting non null"; } } ================================================ FILE: semantic/test/fixtures/java/corpus/enum.java ================================================ enum HandSign { SCISSOR, PAPER, STONE } ================================================ FILE: semantic/test/fixtures/java/corpus/methodReference.java ================================================ class TermsSetQueryBuilder { void Terms() { min = read(Script::new); } } class TermsSetQueryBuilder { void Terms() { min = read(Script::yodawg); } } ================================================ FILE: semantic/test/fixtures/java/corpus/modifier-abstract.java ================================================ abstract class Point { } ================================================ FILE: semantic/test/fixtures/java/corpus/modifier-private.java ================================================ ================================================ FILE: semantic/test/fixtures/java/corpus/modifier-protected.java ================================================ protected class Point { } ================================================ FILE: semantic/test/fixtures/java/corpus/modifier-public.java ================================================ public class Point { } ================================================ FILE: semantic/test/fixtures/java/corpus/modifier-static.java ================================================ public static class Point { } ================================================ FILE: semantic/test/fixtures/java/corpus/null.java ================================================ public class Point { void dinosaur() { String str = null; } } ================================================ FILE: semantic/test/fixtures/java/corpus/package.java ================================================ package myVector; ================================================ FILE: semantic/test/fixtures/java/corpus/return.java ================================================ public class Point { void dinosaur() { return x; } } ================================================ FILE: semantic/test/fixtures/java/corpus/try.java ================================================ public class Bar { public void foo() { try { System.out.println(1/0); } catch (Exception e) { e.printStackTrace(System.out); } } } ================================================ FILE: semantic/test/fixtures/java/corpus/try_with_resources.java ================================================ public class Bar { public void foo() { try (BufferedReader br = new BufferedReader()) { System.out.println(1/0); } catch (Exception e) { e.printStackTrace(System.out); } } } ================================================ FILE: semantic/test/fixtures/javascript/analysis/exports/lib.js ================================================ export function square(x) { return x * x; } export function area(x, y) { return x * y; } ================================================ FILE: semantic/test/fixtures/javascript/analysis/exports/main.js ================================================ import { square, area } from 'lib'; console.log(square(11)); // 121 console.log(area(4, 3)); // 12 ================================================ FILE: semantic/test/fixtures/javascript/analysis/foo.js ================================================ module.exports.bar = bar function bar() { return "this is the bar function"; } ================================================ FILE: semantic/test/fixtures/javascript/analysis/main.js ================================================ const foo = require('./foo') foo.bar() ================================================ FILE: semantic/test/fixtures/javascript/analysis/main2.js ================================================ const bar = require('bar') const tos = require('tos') const wap = require('wap') console.log(bar()) console.log(tos()) console.log(wap()) ================================================ FILE: semantic/test/fixtures/javascript/corpus/anonymous-function.A.js ================================================ function(a,b) { return a + b; } ================================================ FILE: semantic/test/fixtures/javascript/corpus/anonymous-function.B.js ================================================ function(b,c) { return b * c; } ================================================ FILE: semantic/test/fixtures/javascript/corpus/anonymous-function.diffA-B.txt ================================================ (Statements (Function (Empty) (Empty) (Empty) {-(RequiredParameter {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(Empty)-})-} (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) {+(RequiredParameter {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(Empty)+})+} (StatementBlock (Return { (Plus {-(Identifier)-} {-(Identifier)-}) ->(Times {+(Identifier)+} {+(Identifier)+}) })))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/anonymous-function.diffB-A.txt ================================================ (Statements (Function (Empty) (Empty) (Empty) {+(RequiredParameter {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(Empty)+})+} (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) {-(RequiredParameter {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(Empty)-})-} (StatementBlock (Return { (Times {-(Identifier)-} {-(Identifier)-}) ->(Plus {+(Identifier)+} {+(Identifier)+}) })))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/anonymous-function.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Function (StatementBlock (Statement (ReturnStatement (Expression (BinaryExpression (Token) (Expression (Identifier "a")) (Expression (Identifier "b"))))))) (FormalParameters (RequiredParameter (Identifier "a")) (RequiredParameter (Identifier "b")))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/anonymous-function.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Function (StatementBlock (Statement (ReturnStatement (Expression (BinaryExpression (Token) (Expression (Identifier "b")) (Expression (Identifier "c"))))))) (FormalParameters (RequiredParameter (Identifier "b")) (RequiredParameter (Identifier "c")))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/anonymous-parameterless-function.A.js ================================================ function() { return 'hi'; } ================================================ FILE: semantic/test/fixtures/javascript/corpus/anonymous-parameterless-function.B.js ================================================ function() { return 'hello'; } ================================================ FILE: semantic/test/fixtures/javascript/corpus/anonymous-parameterless-function.diffA-B.txt ================================================ (Statements (Function (Empty) (Empty) (Empty) (StatementBlock (Return { (TextElement) ->(TextElement) })))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/anonymous-parameterless-function.diffB-A.txt ================================================ (Statements (Function (Empty) (Empty) (Empty) (StatementBlock (Return { (TextElement) ->(TextElement) })))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/anonymous-parameterless-function.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Function (StatementBlock (Statement (ReturnStatement (Expression (String))))) (FormalParameters)))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/anonymous-parameterless-function.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Function (StatementBlock (Statement (ReturnStatement (Expression (String))))) (FormalParameters)))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/array.A.js ================================================ [ "item1" ]; ================================================ FILE: semantic/test/fixtures/javascript/corpus/array.B.js ================================================ [ "item1", "item2" ]; ================================================ FILE: semantic/test/fixtures/javascript/corpus/array.diffA-B.txt ================================================ (Statements (Array (TextElement) {+(TextElement)+})) ================================================ FILE: semantic/test/fixtures/javascript/corpus/array.diffB-A.txt ================================================ (Statements (Array (TextElement) {-(TextElement)-})) ================================================ FILE: semantic/test/fixtures/javascript/corpus/array.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Array (Expression (String))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/array.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Array (Expression (String)) (Expression (String))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/arrow-function.A.js ================================================ (f, g) => { return h; }; ================================================ FILE: semantic/test/fixtures/javascript/corpus/arrow-function.B.js ================================================ (f, g) => { return g; }; ================================================ FILE: semantic/test/fixtures/javascript/corpus/arrow-function.diffA-B.txt ================================================ (Statements (Function (Empty) (Empty) (Empty) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Return { (Identifier) ->(Identifier) })))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/arrow-function.diffB-A.txt ================================================ (Statements (Function (Empty) (Empty) (Empty) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Return { (Identifier) ->(Identifier) })))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/arrow-function.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (ArrowFunction (StatementBlock (Statement (ReturnStatement (Expression (Identifier "h"))))) (FormalParameters (RequiredParameter (Identifier "f")) (RequiredParameter (Identifier "g")))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/arrow-function.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (ArrowFunction (StatementBlock (Statement (ReturnStatement (Expression (Identifier "g"))))) (FormalParameters (RequiredParameter (Identifier "f")) (RequiredParameter (Identifier "g")))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/assignment-pattern.A.js ================================================ var { x = 0 } = foo; ================================================ FILE: semantic/test/fixtures/javascript/corpus/assignment-pattern.B.js ================================================ var { y = 1 } = foo; ================================================ FILE: semantic/test/fixtures/javascript/corpus/assignment-pattern.diffA-B.txt ================================================ (Statements (VariableDeclaration (Assignment (Empty) (Hash (Assignment { (ShorthandPropertyIdentifier) ->(ShorthandPropertyIdentifier) } { (Float) ->(Float) })) (Identifier)))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/assignment-pattern.diffB-A.txt ================================================ (Statements (VariableDeclaration (Assignment (Empty) (Hash (Assignment { (ShorthandPropertyIdentifier) ->(ShorthandPropertyIdentifier) } { (Float) ->(Float) })) (Identifier)))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/assignment-pattern.parseA.txt ================================================ (Program (Statement (Declaration (VariableDeclaration (VariableDeclarator (Expression (Identifier "foo")) (DestructuringPattern (ObjectPattern (AssignmentPattern (ShorthandPropertyIdentifier "x") (Expression (Number "0")))))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/assignment-pattern.parseB.txt ================================================ (Program (Statement (Declaration (VariableDeclaration (VariableDeclarator (Expression (Identifier "foo")) (DestructuringPattern (ObjectPattern (AssignmentPattern (ShorthandPropertyIdentifier "y") (Expression (Number "1")))))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/assignment.A.js ================================================ x = 0; ================================================ FILE: semantic/test/fixtures/javascript/corpus/assignment.B.js ================================================ x = 1; ================================================ FILE: semantic/test/fixtures/javascript/corpus/assignment.diffA-B.txt ================================================ (Statements (Assignment (Identifier) { (Float) ->(Float) })) ================================================ FILE: semantic/test/fixtures/javascript/corpus/assignment.diffB-A.txt ================================================ (Statements (Assignment (Identifier) { (Float) ->(Float) })) ================================================ FILE: semantic/test/fixtures/javascript/corpus/assignment.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (AssignmentExpression (Identifier "x") (Expression (Number "0"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/assignment.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (AssignmentExpression (Identifier "x") (Expression (Number "1"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/bitwise-operator.A.js ================================================ i >> j; ================================================ FILE: semantic/test/fixtures/javascript/corpus/bitwise-operator.B.js ================================================ i >> k; ================================================ FILE: semantic/test/fixtures/javascript/corpus/bitwise-operator.diffA-B.txt ================================================ (Statements (RShift (Identifier) { (Identifier) ->(Identifier) })) ================================================ FILE: semantic/test/fixtures/javascript/corpus/bitwise-operator.diffB-A.txt ================================================ (Statements (RShift (Identifier) { (Identifier) ->(Identifier) })) ================================================ FILE: semantic/test/fixtures/javascript/corpus/bitwise-operator.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Identifier "j"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/bitwise-operator.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Identifier "k"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/boolean-operator.A.js ================================================ i || j; ================================================ FILE: semantic/test/fixtures/javascript/corpus/boolean-operator.B.js ================================================ i && j; ================================================ FILE: semantic/test/fixtures/javascript/corpus/boolean-operator.diffA-B.txt ================================================ (Statements {+(And {+(Identifier)+} {+(Identifier)+})+} {-(Or {-(Identifier)-} {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/javascript/corpus/boolean-operator.diffB-A.txt ================================================ (Statements {+(Or {+(Identifier)+} {+(Identifier)+})+} {-(And {-(Identifier)-} {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/javascript/corpus/boolean-operator.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Identifier "j"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/boolean-operator.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Identifier "j"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/break.A.js ================================================ for (i = 0; i < 10; i++) { if (i === 4) { break; }; i } ================================================ FILE: semantic/test/fixtures/javascript/corpus/break.B.js ================================================ for (i = 0; i < 10; i++) { if (i === 4) { continue; }; i } ================================================ FILE: semantic/test/fixtures/javascript/corpus/break.diffA-B.txt ================================================ (Statements (For (Assignment (Identifier) (Float)) (LessThan (Identifier) (Float)) (Update (Identifier)) (Statements (If (StrictEqual (Identifier) (Float)) (Statements {+(Continue {+(Empty)+})+} {-(Break {-(Empty)-})-}) (Empty)) (Empty) (Identifier)))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/break.diffB-A.txt ================================================ (Statements (For (Assignment (Identifier) (Float)) (LessThan (Identifier) (Float)) (Update (Identifier)) (Statements (If (StrictEqual (Identifier) (Float)) (Statements {+(Break {+(Empty)+})+} {-(Continue {-(Empty)-})-}) (Empty)) (Empty) (Identifier)))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/break.parseA.txt ================================================ (Program (Statement (ForStatement (Statement (StatementBlock (Statement (IfStatement (Statement (StatementBlock (Statement (BreakStatement)))) (ParenthesizedExpression (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Number "4"))))))) (Statement (EmptyStatement ";")) (Statement (ExpressionStatement (Expression (Identifier "i")))))) (ExpressionStatement (Expression (AssignmentExpression (Identifier "i") (Expression (Number "0"))))) (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Number "10"))))) (Expression (UpdateExpression (Token) (Expression (Identifier "i"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/break.parseB.txt ================================================ (Program (Statement (ForStatement (Statement (StatementBlock (Statement (IfStatement (Statement (StatementBlock (Statement (ContinueStatement)))) (ParenthesizedExpression (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Number "4"))))))) (Statement (EmptyStatement ";")) (Statement (ExpressionStatement (Expression (Identifier "i")))))) (ExpressionStatement (Expression (AssignmentExpression (Identifier "i") (Expression (Number "0"))))) (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Number "10"))))) (Expression (UpdateExpression (Token) (Expression (Identifier "i"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/chained-callbacks.A.js ================================================ this.map(function (a) { return a.b; }) ================================================ FILE: semantic/test/fixtures/javascript/corpus/chained-callbacks.B.js ================================================ this.reduce(function (a) { return b.a; }) ================================================ FILE: semantic/test/fixtures/javascript/corpus/chained-callbacks.diffA-B.txt ================================================ (Statements (Call (MemberAccess (This) { (Identifier) ->(Identifier) }) (Function (Empty) (Empty) (Empty) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Return (MemberAccess { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })))) (Empty))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/chained-callbacks.diffB-A.txt ================================================ (Statements (Call (MemberAccess (This) { (Identifier) ->(Identifier) }) (Function (Empty) (Empty) (Empty) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Return (MemberAccess { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })))) (Empty))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/chained-callbacks.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "map") (Expression (This "this")))) (Arguments (Expression (Function (StatementBlock (Statement (ReturnStatement (Expression (MemberExpression (PropertyIdentifier "b") (Expression (Identifier "a"))))))) (FormalParameters (RequiredParameter (Identifier "a"))))))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/chained-callbacks.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "reduce") (Expression (This "this")))) (Arguments (Expression (Function (StatementBlock (Statement (ReturnStatement (Expression (MemberExpression (PropertyIdentifier "a") (Expression (Identifier "b"))))))) (FormalParameters (RequiredParameter (Identifier "a"))))))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/chained-property-access.A.js ================================================ return returned.promise().done( newDefer.resolve ).fail( newDefer.reject ) ================================================ FILE: semantic/test/fixtures/javascript/corpus/chained-property-access.B.js ================================================ return returned.promise().done( otherDefer.resolve ).fail( otherDefer.reject ) ================================================ FILE: semantic/test/fixtures/javascript/corpus/chained-property-access.diffA-B.txt ================================================ (Statements (Return (Call (MemberAccess (Call (MemberAccess (Call (MemberAccess (Identifier) (Identifier)) (Empty)) (Identifier)) (MemberAccess { (Identifier) ->(Identifier) } (Identifier)) (Empty)) (Identifier)) (MemberAccess { (Identifier) ->(Identifier) } (Identifier)) (Empty)))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/chained-property-access.diffB-A.txt ================================================ (Statements (Return (Call (MemberAccess (Call (MemberAccess (Call (MemberAccess (Identifier) (Identifier)) (Empty)) (Identifier)) (MemberAccess { (Identifier) ->(Identifier) } (Identifier)) (Empty)) (Identifier)) (MemberAccess { (Identifier) ->(Identifier) } (Identifier)) (Empty)))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/chained-property-access.parseA.txt ================================================ (Program (Statement (ReturnStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "fail") (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "done") (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "promise") (Expression (Identifier "returned")))) (Arguments))))) (Arguments (Expression (MemberExpression (PropertyIdentifier "resolve") (Expression (Identifier "newDefer"))))))))) (Arguments (Expression (MemberExpression (PropertyIdentifier "reject") (Expression (Identifier "newDefer")))))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/chained-property-access.parseB.txt ================================================ (Program (Statement (ReturnStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "fail") (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "done") (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "promise") (Expression (Identifier "returned")))) (Arguments))))) (Arguments (Expression (MemberExpression (PropertyIdentifier "resolve") (Expression (Identifier "otherDefer"))))))))) (Arguments (Expression (MemberExpression (PropertyIdentifier "reject") (Expression (Identifier "otherDefer")))))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/class.A.js ================================================ class Foo { bar = 5; static one(a) { return a; }; two(b) { return b; } three(c) { return c; } } ================================================ FILE: semantic/test/fixtures/javascript/corpus/class.B.js ================================================ class Foo { static foo(a) { return a; }; bar(b) { return b; } baz(c) { return c; } } ================================================ FILE: semantic/test/fixtures/javascript/corpus/class.diffA-B.txt ================================================ (Statements (Class (TypeIdentifier) (Statements {+(Method {+(Empty)+} {+(Empty)+} {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(RequiredParameter {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(Empty)+})+} {+(StatementBlock {+(Return {+(Identifier)+})+})+})+} {+(Method {+(Empty)+} {+(Empty)+} {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(RequiredParameter {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(Empty)+})+} {+(StatementBlock {+(Return {+(Identifier)+})+})+})+} {+(Method {+(Empty)+} {+(Empty)+} {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(RequiredParameter {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(Empty)+})+} {+(StatementBlock {+(Return {+(Identifier)+})+})+})+} {-(PublicFieldDefinition {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(Float)-})-} {-(Method {-(Empty)-} {-(Empty)-} {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(RequiredParameter {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(Empty)-})-} {-(StatementBlock {-(Return {-(Identifier)-})-})-})-} {-(Method {-(Empty)-} {-(Empty)-} {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(RequiredParameter {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(Empty)-})-} {-(StatementBlock {-(Return {-(Identifier)-})-})-})-} {-(Method {-(Empty)-} {-(Empty)-} {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(RequiredParameter {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(Empty)-})-} {-(StatementBlock {-(Return {-(Identifier)-})-})-})-}))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/class.diffB-A.txt ================================================ (Statements (Class (TypeIdentifier) (Statements {+(PublicFieldDefinition {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(Float)+})+} (Method (Empty) (Empty) (Empty) (Empty) { (Identifier) ->(Identifier) } (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Return (Identifier)))) (Method (Empty) (Empty) (Empty) (Empty) { (Identifier) ->(Identifier) } (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Return (Identifier)))) (Method (Empty) (Empty) (Empty) (Empty) { (Identifier) ->(Identifier) } (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Return (Identifier))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/class.parseA.txt ================================================ (Program (Statement (Declaration (ClassDeclaration (ClassBody (PublicFieldDefinition (Expression (Number "5")) (PropertyIdentifier "bar")) (MethodDefinition (StatementBlock (Statement (ReturnStatement (Expression (Identifier "a"))))) (PropertyIdentifier "one") (FormalParameters (RequiredParameter (Identifier "a")))) (MethodDefinition (StatementBlock (Statement (ReturnStatement (Expression (Identifier "b"))))) (PropertyIdentifier "two") (FormalParameters (RequiredParameter (Identifier "b")))) (MethodDefinition (StatementBlock (Statement (ReturnStatement (Expression (Identifier "c"))))) (PropertyIdentifier "three") (FormalParameters (RequiredParameter (Identifier "c"))))) (TypeIdentifier "Foo"))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/class.parseB.txt ================================================ (Program (Statement (Declaration (ClassDeclaration (ClassBody (MethodDefinition (StatementBlock (Statement (ReturnStatement (Expression (Identifier "a"))))) (PropertyIdentifier "foo") (FormalParameters (RequiredParameter (Identifier "a")))) (MethodDefinition (StatementBlock (Statement (ReturnStatement (Expression (Identifier "b"))))) (PropertyIdentifier "bar") (FormalParameters (RequiredParameter (Identifier "b")))) (MethodDefinition (StatementBlock (Statement (ReturnStatement (Expression (Identifier "c"))))) (PropertyIdentifier "baz") (FormalParameters (RequiredParameter (Identifier "c"))))) (TypeIdentifier "Foo"))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/comma-operator.A.js ================================================ a = 1, b = 2; ================================================ FILE: semantic/test/fixtures/javascript/corpus/comma-operator.B.js ================================================ c = {d: (3, 4 + 5, 6)}; ================================================ FILE: semantic/test/fixtures/javascript/corpus/comma-operator.diffA-B.txt ================================================ (Statements {+(Assignment {+(Identifier)+} {+(Hash {+(KeyValue {+(Identifier)+} {+(SequenceExpression {+(Float)+} {+(SequenceExpression {+(Plus {+(Float)+} {+(Float)+})+} {+(Float)+})+})+})+})+})+} {-(SequenceExpression {-(Assignment {-(Identifier)-} {-(Float)-})-} {-(Assignment {-(Identifier)-} {-(Float)-})-})-}) ================================================ FILE: semantic/test/fixtures/javascript/corpus/comma-operator.diffB-A.txt ================================================ (Statements {+(SequenceExpression {+(Assignment {+(Identifier)+} {+(Float)+})+} {+(Assignment {+(Identifier)+} {+(Float)+})+})+} {-(Assignment {-(Identifier)-} {-(Hash {-(KeyValue {-(Identifier)-} {-(SequenceExpression {-(Float)-} {-(SequenceExpression {-(Plus {-(Float)-} {-(Float)-})-} {-(Float)-})-})-})-})-})-}) ================================================ FILE: semantic/test/fixtures/javascript/corpus/comma-operator.parseA.txt ================================================ (Program (Statement (ExpressionStatement (SequenceExpression (Expression (AssignmentExpression (Identifier "a") (Expression (Number "1")))) (Expression (AssignmentExpression (Identifier "b") (Expression (Number "2")))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/comma-operator.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (AssignmentExpression (Identifier "c") (Expression (Object (Pair (Expression (ParenthesizedExpression (SequenceExpression (Expression (Number "3")) (SequenceExpression (Expression (BinaryExpression (Token) (Expression (Number "4")) (Expression (Number "5")))) (Expression (Number "6")))))) (PropertyIdentifier "d"))))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/comment.A.js ================================================ // This is a property ================================================ FILE: semantic/test/fixtures/javascript/corpus/comment.B.js ================================================ /* * This is a method */ ================================================ FILE: semantic/test/fixtures/javascript/corpus/comment.diffA-B.txt ================================================ (Statements (Context { (Comment) ->(Comment) } (Empty))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/comment.diffB-A.txt ================================================ (Statements (Context { (Comment) ->(Comment) } (Empty))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/comment.parseA.txt ================================================ (Program) ================================================ FILE: semantic/test/fixtures/javascript/corpus/comment.parseB.txt ================================================ (Program) ================================================ FILE: semantic/test/fixtures/javascript/corpus/constructor-call.A.js ================================================ new module.Klass(1, "two"); ================================================ FILE: semantic/test/fixtures/javascript/corpus/constructor-call.B.js ================================================ new module.Klass(1, "three"); ================================================ FILE: semantic/test/fixtures/javascript/corpus/constructor-call.diffA-B.txt ================================================ (Statements (New (MemberAccess (Identifier) (Identifier)) (Empty) (Float) { (TextElement) ->(TextElement) })) ================================================ FILE: semantic/test/fixtures/javascript/corpus/constructor-call.diffB-A.txt ================================================ (Statements (New (MemberAccess (Identifier) (Identifier)) (Empty) (Float) { (TextElement) ->(TextElement) })) ================================================ FILE: semantic/test/fixtures/javascript/corpus/constructor-call.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (NewExpression (Arguments (Expression (Number "1")) (Expression (String))) (MemberExpression (PropertyIdentifier "Klass") (Expression (Identifier "module")))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/constructor-call.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (NewExpression (Arguments (Expression (Number "1")) (Expression (String))) (MemberExpression (PropertyIdentifier "Klass") (Expression (Identifier "module")))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/continue.A.js ================================================ for (i = 0; i < 10; i++) { if (i === 4) { continue; }; i } ================================================ FILE: semantic/test/fixtures/javascript/corpus/continue.B.js ================================================ for (i = 0; i < 10; i++) { if (i === 4) { break; }; i } ================================================ FILE: semantic/test/fixtures/javascript/corpus/continue.diffA-B.txt ================================================ (Statements (For (Assignment (Identifier) (Float)) (LessThan (Identifier) (Float)) (Update (Identifier)) (Statements (If (StrictEqual (Identifier) (Float)) (Statements {+(Break {+(Empty)+})+} {-(Continue {-(Empty)-})-}) (Empty)) (Empty) (Identifier)))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/continue.diffB-A.txt ================================================ (Statements (For (Assignment (Identifier) (Float)) (LessThan (Identifier) (Float)) (Update (Identifier)) (Statements (If (StrictEqual (Identifier) (Float)) (Statements {+(Continue {+(Empty)+})+} {-(Break {-(Empty)-})-}) (Empty)) (Empty) (Identifier)))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/continue.parseA.txt ================================================ (Program (Statement (ForStatement (Statement (StatementBlock (Statement (IfStatement (Statement (StatementBlock (Statement (ContinueStatement)))) (ParenthesizedExpression (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Number "4"))))))) (Statement (EmptyStatement ";")) (Statement (ExpressionStatement (Expression (Identifier "i")))))) (ExpressionStatement (Expression (AssignmentExpression (Identifier "i") (Expression (Number "0"))))) (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Number "10"))))) (Expression (UpdateExpression (Token) (Expression (Identifier "i"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/continue.parseB.txt ================================================ (Program (Statement (ForStatement (Statement (StatementBlock (Statement (IfStatement (Statement (StatementBlock (Statement (BreakStatement)))) (ParenthesizedExpression (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Number "4"))))))) (Statement (EmptyStatement ";")) (Statement (ExpressionStatement (Expression (Identifier "i")))))) (ExpressionStatement (Expression (AssignmentExpression (Identifier "i") (Expression (Number "0"))))) (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Number "10"))))) (Expression (UpdateExpression (Token) (Expression (Identifier "i"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/delete-operator.A.js ================================================ delete thing['prop']; ================================================ FILE: semantic/test/fixtures/javascript/corpus/delete-operator.B.js ================================================ delete thing.prop ================================================ FILE: semantic/test/fixtures/javascript/corpus/delete-operator.diffA-B.txt ================================================ (Statements (Delete { (Subscript {-(Identifier)-} {-(TextElement)-}) ->(MemberAccess {+(Identifier)+} {+(Identifier)+}) })) ================================================ FILE: semantic/test/fixtures/javascript/corpus/delete-operator.diffB-A.txt ================================================ (Statements (Delete { (MemberAccess {-(Identifier)-} {-(Identifier)-}) ->(Subscript {+(Identifier)+} {+(TextElement)+}) })) ================================================ FILE: semantic/test/fixtures/javascript/corpus/delete-operator.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (UnaryExpression (Token) (Expression (SubscriptExpression (Expression (Identifier "thing")) (Expression (String))))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/delete-operator.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (UnaryExpression (Token) (Expression (MemberExpression (PropertyIdentifier "prop") (Expression (Identifier "thing"))))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/do-while-statement.A.js ================================================ do { console.log(insert); } while (true); ================================================ FILE: semantic/test/fixtures/javascript/corpus/do-while-statement.B.js ================================================ do { console.log(replacement); } while (false); ================================================ FILE: semantic/test/fixtures/javascript/corpus/do-while-statement.diffA-B.txt ================================================ (Statements (DoWhile { (Boolean) ->(Boolean) } (Statements (Call (MemberAccess (Identifier) (Identifier)) { (Identifier) ->(Identifier) } (Empty))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/do-while-statement.diffB-A.txt ================================================ (Statements (DoWhile { (Boolean) ->(Boolean) } (Statements (Call (MemberAccess (Identifier) (Identifier)) { (Identifier) ->(Identifier) } (Empty))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/do-while-statement.parseA.txt ================================================ (Program (Statement (DoStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "log") (Expression (Identifier "console")))) (Arguments (Expression (Identifier "insert"))))))))) (ParenthesizedExpression (Expression (True "true")))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/do-while-statement.parseB.txt ================================================ (Program (Statement (DoStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "log") (Expression (Identifier "console")))) (Arguments (Expression (Identifier "replacement"))))))))) (ParenthesizedExpression (Expression (False "false")))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/export.A.js ================================================ export { name1, name2, name3, nameN }; export { variable1 as name1, variable2 as name2, nameN }; export let name1, name2, nameN; export let name1 = value1, name2 = value2, name3, nameN; export default namedFunction; export default function () { }; export default function name1() { }; export { name1 as default }; export * from 'foo'; export { name1, name2, nameN } from 'foo'; export { import1 as name1, import2 as name2, nameN } from 'bar'; ================================================ FILE: semantic/test/fixtures/javascript/corpus/export.B.js ================================================ export { name4, name5, name6, nameZ }; export { variable2 as name2, variable3 as name3, nameY }; export let name3, name4, nameT; export let name2 = value2, name3 = value3, name4, nameO; export default otherNamedFunction; export default function newName1() {}; export default function () {}; export { name2 as statement }; export * from 'baz'; export { name7, name8, nameP } from 'buzz'; export { import6 as name6, import7 as name7, nameB } from 'fizz'; ================================================ FILE: semantic/test/fixtures/javascript/corpus/export.diffA-B.txt ================================================ (Statements { (QualifiedExport) ->(QualifiedExport) } { (QualifiedExport) ->(QualifiedExport) } (DefaultExport (VariableDeclaration (Assignment (Empty) { (Identifier) ->(Identifier) } (Empty)) (Assignment (Empty) { (Identifier) ->(Identifier) } (Empty)) (Assignment (Empty) { (Identifier) ->(Identifier) } (Empty)))) (DefaultExport (VariableDeclaration {-(Assignment {-(Empty)-} {-(Identifier)-} {-(Identifier)-})-} (Assignment (Empty) (Identifier) (Identifier)) (Assignment (Empty) (Identifier) { (Empty) ->(Identifier) }) (Assignment (Empty) { (Identifier) ->(Identifier) } (Empty)) {+(Assignment {+(Empty)+} {+(Identifier)+} {+(Empty)+})+})) (DefaultExport { (Identifier) ->(Identifier) }) {+(DefaultExport {+(Function {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(StatementBlock)+})+})+} (DefaultExport (Function (Empty) (Empty) (Empty) (StatementBlock))) {+(QualifiedExport)+} {+(DefaultExport {+(TextElement)+})+} {+(QualifiedExportFrom)+} {+(QualifiedExportFrom)+} {-(DefaultExport {-(Function {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(StatementBlock)-})-})-} {-(QualifiedExport)-} {-(DefaultExport {-(TextElement)-})-} {-(QualifiedExportFrom)-} {-(QualifiedExportFrom)-}) ================================================ FILE: semantic/test/fixtures/javascript/corpus/export.diffB-A.txt ================================================ (Statements { (QualifiedExport) ->(QualifiedExport) } { (QualifiedExport) ->(QualifiedExport) } (DefaultExport (VariableDeclaration (Assignment (Empty) { (Identifier) ->(Identifier) } (Empty)) (Assignment (Empty) { (Identifier) ->(Identifier) } (Empty)) (Assignment (Empty) { (Identifier) ->(Identifier) } (Empty)))) (DefaultExport (VariableDeclaration {+(Assignment {+(Empty)+} {+(Identifier)+} {+(Identifier)+})+} (Assignment (Empty) (Identifier) (Identifier)) (Assignment (Empty) (Identifier) { (Identifier) ->(Empty) }) (Assignment (Empty) { (Identifier) ->(Identifier) } (Empty)) {-(Assignment {-(Empty)-} {-(Identifier)-} {-(Empty)-})-})) (DefaultExport { (Identifier) ->(Identifier) }) {-(DefaultExport {-(Function {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(StatementBlock)-})-})-} (DefaultExport (Function (Empty) (Empty) (Empty) (StatementBlock))) {+(DefaultExport {+(Function {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(StatementBlock)+})+})+} { (QualifiedExport) ->(QualifiedExport) } (DefaultExport { (TextElement) ->(TextElement) }) { (QualifiedExportFrom) ->(QualifiedExportFrom) } { (QualifiedExportFrom) ->(QualifiedExportFrom) }) ================================================ FILE: semantic/test/fixtures/javascript/corpus/export.parseA.txt ================================================ (Program (Statement (ExportStatement (ExportClause (ExportSpecifier (Identifier "name1")) (ExportSpecifier (Identifier "name2")) (ExportSpecifier (Identifier "name3")) (ExportSpecifier (Identifier "nameN"))))) (Statement (ExportStatement (ExportClause (ExportSpecifier (Identifier "name1") (Identifier "variable1")) (ExportSpecifier (Identifier "name2") (Identifier "variable2")) (ExportSpecifier (Identifier "nameN"))))) (Statement (ExportStatement (Declaration (LexicalDeclaration (VariableDeclarator (Identifier "name1")) (VariableDeclarator (Identifier "name2")) (VariableDeclarator (Identifier "nameN")))))) (Statement (ExportStatement (Declaration (LexicalDeclaration (VariableDeclarator (Expression (Identifier "value1")) (Identifier "name1")) (VariableDeclarator (Expression (Identifier "value2")) (Identifier "name2")) (VariableDeclarator (Identifier "name3")) (VariableDeclarator (Identifier "nameN")))))) (Statement (ExportStatement (Expression (Identifier "namedFunction")))) (Statement (ExportStatement (Expression (Function (StatementBlock) (FormalParameters))))) (Statement (ExportStatement (Expression (Function (StatementBlock) (Identifier "name1") (FormalParameters))))) (Statement (ExportStatement (ExportClause (ExportSpecifier (Identifier "default") (Identifier "name1"))))) (Statement (ExportStatement (String))) (Statement (ExportStatement (String) (ExportClause (ExportSpecifier (Identifier "name1")) (ExportSpecifier (Identifier "name2")) (ExportSpecifier (Identifier "nameN"))))) (Statement (ExportStatement (String) (ExportClause (ExportSpecifier (Identifier "name1") (Identifier "import1")) (ExportSpecifier (Identifier "name2") (Identifier "import2")) (ExportSpecifier (Identifier "nameN")))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/export.parseB.txt ================================================ (Program (Statement (ExportStatement (ExportClause (ExportSpecifier (Identifier "name4")) (ExportSpecifier (Identifier "name5")) (ExportSpecifier (Identifier "name6")) (ExportSpecifier (Identifier "nameZ"))))) (Statement (ExportStatement (ExportClause (ExportSpecifier (Identifier "name2") (Identifier "variable2")) (ExportSpecifier (Identifier "name3") (Identifier "variable3")) (ExportSpecifier (Identifier "nameY"))))) (Statement (ExportStatement (Declaration (LexicalDeclaration (VariableDeclarator (Identifier "name3")) (VariableDeclarator (Identifier "name4")) (VariableDeclarator (Identifier "nameT")))))) (Statement (ExportStatement (Declaration (LexicalDeclaration (VariableDeclarator (Expression (Identifier "value2")) (Identifier "name2")) (VariableDeclarator (Expression (Identifier "value3")) (Identifier "name3")) (VariableDeclarator (Identifier "name4")) (VariableDeclarator (Identifier "nameO")))))) (Statement (ExportStatement (Expression (Identifier "otherNamedFunction")))) (Statement (ExportStatement (Expression (Function (StatementBlock) (Identifier "newName1") (FormalParameters))))) (Statement (ExportStatement (Expression (Function (StatementBlock) (FormalParameters))))) (Statement (ExportStatement (ExportClause (ExportSpecifier (Identifier "statement") (Identifier "name2"))))) (Statement (ExportStatement (String))) (Statement (ExportStatement (String) (ExportClause (ExportSpecifier (Identifier "name7")) (ExportSpecifier (Identifier "name8")) (ExportSpecifier (Identifier "nameP"))))) (Statement (ExportStatement (String) (ExportClause (ExportSpecifier (Identifier "name6") (Identifier "import6")) (ExportSpecifier (Identifier "name7") (Identifier "import7")) (ExportSpecifier (Identifier "nameB")))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/false.A.js ================================================ false; ================================================ FILE: semantic/test/fixtures/javascript/corpus/false.B.js ================================================ return false; ================================================ FILE: semantic/test/fixtures/javascript/corpus/false.diffA-B.txt ================================================ (Statements {+(Return {+(Boolean)+})+} {-(Boolean)-}) ================================================ FILE: semantic/test/fixtures/javascript/corpus/false.diffB-A.txt ================================================ (Statements {+(Boolean)+} {-(Return {-(Boolean)-})-}) ================================================ FILE: semantic/test/fixtures/javascript/corpus/false.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (False "false"))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/false.parseB.txt ================================================ (Program (Statement (ReturnStatement (Expression (False "false"))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/for-in-statement.A.js ================================================ for (thing in things) { thing(); } ================================================ FILE: semantic/test/fixtures/javascript/corpus/for-in-statement.B.js ================================================ for (item in items) { item(); } ================================================ FILE: semantic/test/fixtures/javascript/corpus/for-in-statement.diffA-B.txt ================================================ (Statements (ForEach { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) } (Statements (Call { (Identifier) ->(Identifier) } (Empty))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/for-in-statement.diffB-A.txt ================================================ (Statements (ForEach { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) } (Statements (Call { (Identifier) ->(Identifier) } (Empty))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/for-in-statement.parseA.txt ================================================ (Program (Statement (ForInStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "thing")) (Arguments))))))) (Identifier "thing") (Expression (Identifier "things"))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/for-in-statement.parseB.txt ================================================ (Program (Statement (ForInStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "item")) (Arguments))))))) (Identifier "item") (Expression (Identifier "items"))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/for-loop-with-in-statement.A.js ================================================ for (key in something && i = 0; i < n; i++) { doSomething(); } ================================================ FILE: semantic/test/fixtures/javascript/corpus/for-loop-with-in-statement.B.js ================================================ for (otherKey in something && i = 0; i < n; i++) { doOtherSomething(); } ================================================ FILE: semantic/test/fixtures/javascript/corpus/for-loop-with-in-statement.diffA-B.txt ================================================ (Statements (For (And (Member { (Identifier) ->(Identifier) } (Identifier)) (Assignment (Identifier) (Float))) (LessThan (Identifier) (Identifier)) (Update (Identifier)) (Statements (Call { (Identifier) ->(Identifier) } (Empty))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/for-loop-with-in-statement.diffB-A.txt ================================================ (Statements (For (And (Member { (Identifier) ->(Identifier) } (Identifier)) (Assignment (Identifier) (Float))) (LessThan (Identifier) (Identifier)) (Update (Identifier)) (Statements (Call { (Identifier) ->(Identifier) } (Empty))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/for-loop-with-in-statement.parseA.txt ================================================ (Program (Statement (ForStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "doSomething")) (Arguments))))))) (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (BinaryExpression (Token) (Expression (Identifier "key")) (Expression (Identifier "something")))) (Expression (AssignmentExpression (Identifier "i") (Expression (Number "0"))))))) (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Identifier "n"))))) (Expression (UpdateExpression (Token) (Expression (Identifier "i"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/for-loop-with-in-statement.parseB.txt ================================================ (Program (Statement (ForStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "doOtherSomething")) (Arguments))))))) (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (BinaryExpression (Token) (Expression (Identifier "otherKey")) (Expression (Identifier "something")))) (Expression (AssignmentExpression (Identifier "i") (Expression (Number "0"))))))) (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Identifier "n"))))) (Expression (UpdateExpression (Token) (Expression (Identifier "i"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/for-of-statement.A.js ================================================ for (let item of items) { process(item); }; ================================================ FILE: semantic/test/fixtures/javascript/corpus/for-of-statement.B.js ================================================ for (let thing of things) { process(thing); }; ================================================ FILE: semantic/test/fixtures/javascript/corpus/for-of-statement.diffA-B.txt ================================================ (Statements (ForEach { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) } (Statements (Call (Identifier) { (Identifier) ->(Identifier) } (Empty)))) (Empty)) ================================================ FILE: semantic/test/fixtures/javascript/corpus/for-of-statement.diffB-A.txt ================================================ (Statements (ForEach { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) } (Statements (Call (Identifier) { (Identifier) ->(Identifier) } (Empty)))) (Empty)) ================================================ FILE: semantic/test/fixtures/javascript/corpus/for-of-statement.parseA.txt ================================================ (Program (Statement (ForInStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "process")) (Arguments (Expression (Identifier "item"))))))))) (Identifier "item") (Expression (Identifier "items")))) (Statement (EmptyStatement ";"))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/for-of-statement.parseB.txt ================================================ (Program (Statement (ForInStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "process")) (Arguments (Expression (Identifier "thing"))))))))) (Identifier "thing") (Expression (Identifier "things")))) (Statement (EmptyStatement ";"))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/for-statement.A.js ================================================ for (i = 0, init(); i < 10; i++) { log(i); } ================================================ FILE: semantic/test/fixtures/javascript/corpus/for-statement.B.js ================================================ for (i = 0, init(); i < 100; i++) { log(i); } ================================================ FILE: semantic/test/fixtures/javascript/corpus/for-statement.diffA-B.txt ================================================ (Statements (For (SequenceExpression (Assignment (Identifier) (Float)) (Call (Identifier) (Empty))) (LessThan (Identifier) { (Float) ->(Float) }) (Update (Identifier)) (Statements (Call (Identifier) (Identifier) (Empty))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/for-statement.diffB-A.txt ================================================ (Statements (For (SequenceExpression (Assignment (Identifier) (Float)) (Call (Identifier) (Empty))) (LessThan (Identifier) { (Float) ->(Float) }) (Update (Identifier)) (Statements (Call (Identifier) (Identifier) (Empty))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/for-statement.parseA.txt ================================================ (Program (Statement (ForStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "log")) (Arguments (Expression (Identifier "i"))))))))) (ExpressionStatement (SequenceExpression (Expression (AssignmentExpression (Identifier "i") (Expression (Number "0")))) (Expression (CallExpression (Expression (Identifier "init")) (Arguments))))) (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Number "10"))))) (Expression (UpdateExpression (Token) (Expression (Identifier "i"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/for-statement.parseB.txt ================================================ (Program (Statement (ForStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "log")) (Arguments (Expression (Identifier "i"))))))))) (ExpressionStatement (SequenceExpression (Expression (AssignmentExpression (Identifier "i") (Expression (Number "0")))) (Expression (CallExpression (Expression (Identifier "init")) (Arguments))))) (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Number "100"))))) (Expression (UpdateExpression (Token) (Expression (Identifier "i"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/function-call-args.A.js ================================================ someFunction(1, "string", function(a,b) { console.log(a); return b; }, true) ================================================ FILE: semantic/test/fixtures/javascript/corpus/function-call-args.B.js ================================================ someFunction(1, "otherString", function(b,c) { console.log(b); return c; }, false) ================================================ FILE: semantic/test/fixtures/javascript/corpus/function-call-args.diffA-B.txt ================================================ (Statements (Call (Identifier) (Float) { (TextElement) ->(TextElement) } (Function (Empty) (Empty) (Empty) {-(RequiredParameter {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(Empty)-})-} (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) {+(RequiredParameter {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(Empty)+})+} (StatementBlock (Call (MemberAccess (Identifier) (Identifier)) { (Identifier) ->(Identifier) } (Empty)) (Return { (Identifier) ->(Identifier) }))) { (Boolean) ->(Boolean) } (Empty))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/function-call-args.diffB-A.txt ================================================ (Statements (Call (Identifier) (Float) { (TextElement) ->(TextElement) } (Function (Empty) (Empty) (Empty) {+(RequiredParameter {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(Empty)+})+} (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) {-(RequiredParameter {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(Empty)-})-} (StatementBlock (Call (MemberAccess (Identifier) (Identifier)) { (Identifier) ->(Identifier) } (Empty)) (Return { (Identifier) ->(Identifier) }))) { (Boolean) ->(Boolean) } (Empty))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/function-call-args.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "someFunction")) (Arguments (Expression (Number "1")) (Expression (String)) (Expression (Function (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "log") (Expression (Identifier "console")))) (Arguments (Expression (Identifier "a"))))))) (Statement (ReturnStatement (Expression (Identifier "b"))))) (FormalParameters (RequiredParameter (Identifier "a")) (RequiredParameter (Identifier "b"))))) (Expression (True "true")))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/function-call-args.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "someFunction")) (Arguments (Expression (Number "1")) (Expression (String)) (Expression (Function (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "log") (Expression (Identifier "console")))) (Arguments (Expression (Identifier "b"))))))) (Statement (ReturnStatement (Expression (Identifier "c"))))) (FormalParameters (RequiredParameter (Identifier "b")) (RequiredParameter (Identifier "c"))))) (Expression (False "false")))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/function-call.A.js ================================================ someFunction(arg1, "arg2"); ================================================ FILE: semantic/test/fixtures/javascript/corpus/function-call.B.js ================================================ someFunction(arg1, "arg3"); ================================================ FILE: semantic/test/fixtures/javascript/corpus/function-call.diffA-B.txt ================================================ (Statements (Call (Identifier) (Identifier) { (TextElement) ->(TextElement) } (Empty))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/function-call.diffB-A.txt ================================================ (Statements (Call (Identifier) (Identifier) { (TextElement) ->(TextElement) } (Empty))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/function-call.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "someFunction")) (Arguments (Expression (Identifier "arg1")) (Expression (String)))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/function-call.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "someFunction")) (Arguments (Expression (Identifier "arg1")) (Expression (String)))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/function.A.js ================================================ function(arg1, arg2) { arg2; }; ================================================ FILE: semantic/test/fixtures/javascript/corpus/function.B.js ================================================ function(arg1, arg2) { arg1; }; ================================================ FILE: semantic/test/fixtures/javascript/corpus/function.diffA-B.txt ================================================ (Statements (Function (Empty) (Empty) (Empty) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock { (Identifier) ->(Identifier) }))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/function.diffB-A.txt ================================================ (Statements (Function (Empty) (Empty) (Empty) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock { (Identifier) ->(Identifier) }))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/function.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Function (StatementBlock (Statement (ExpressionStatement (Expression (Identifier "arg2"))))) (FormalParameters (RequiredParameter (Identifier "arg1")) (RequiredParameter (Identifier "arg2")))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/function.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Function (StatementBlock (Statement (ExpressionStatement (Expression (Identifier "arg1"))))) (FormalParameters (RequiredParameter (Identifier "arg1")) (RequiredParameter (Identifier "arg2")))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/generator-function.A.js ================================================ function *generateStuff(arg1, arg2) { yield; yield arg2; }; ================================================ FILE: semantic/test/fixtures/javascript/corpus/generator-function.B.js ================================================ function *generateNewStuff(arg1, arg2) { yield; yield arg2; }; ================================================ FILE: semantic/test/fixtures/javascript/corpus/generator-function.diffA-B.txt ================================================ (Statements (Function (Empty) (Empty) { (Identifier) ->(Identifier) } (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Yield (Empty)) (Yield (Identifier)))) (Empty)) ================================================ FILE: semantic/test/fixtures/javascript/corpus/generator-function.diffB-A.txt ================================================ (Statements (Function (Empty) (Empty) { (Identifier) ->(Identifier) } (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Yield (Empty)) (Yield (Identifier)))) (Empty)) ================================================ FILE: semantic/test/fixtures/javascript/corpus/generator-function.parseA.txt ================================================ (Program (Statement (Declaration (GeneratorFunctionDeclaration (StatementBlock (Statement (ExpressionStatement (Expression (YieldExpression)))) (Statement (ExpressionStatement (Expression (YieldExpression (Expression (Identifier "arg2"))))))) (Identifier "generateStuff") (FormalParameters (RequiredParameter (Identifier "arg1")) (RequiredParameter (Identifier "arg2")))))) (Statement (EmptyStatement ";"))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/generator-function.parseB.txt ================================================ (Program (Statement (Declaration (GeneratorFunctionDeclaration (StatementBlock (Statement (ExpressionStatement (Expression (YieldExpression)))) (Statement (ExpressionStatement (Expression (YieldExpression (Expression (Identifier "arg2"))))))) (Identifier "generateNewStuff") (FormalParameters (RequiredParameter (Identifier "arg1")) (RequiredParameter (Identifier "arg2")))))) (Statement (EmptyStatement ";"))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/identifier.A.js ================================================ theVar; ================================================ FILE: semantic/test/fixtures/javascript/corpus/identifier.B.js ================================================ theVar2 ================================================ FILE: semantic/test/fixtures/javascript/corpus/identifier.diffA-B.txt ================================================ (Statements { (Identifier) ->(Identifier) }) ================================================ FILE: semantic/test/fixtures/javascript/corpus/identifier.diffB-A.txt ================================================ (Statements { (Identifier) ->(Identifier) }) ================================================ FILE: semantic/test/fixtures/javascript/corpus/identifier.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Identifier "theVar"))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/identifier.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Identifier "theVar2"))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/if-else.A.js ================================================ if (x) y; else if (a) b; else if (c) d; else if (e) f; else g ================================================ FILE: semantic/test/fixtures/javascript/corpus/if-else.B.js ================================================ if (g) h; else if (i) { j; } else if (k) l; else if (m) { n; } else o ================================================ FILE: semantic/test/fixtures/javascript/corpus/if-else.diffA-B.txt ================================================ (Statements (If { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) } (If { (Identifier) ->(Identifier) } { (Identifier) ->(Statements {+(Identifier)+}) } (If { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) } (If { (Identifier) ->(Identifier) } { (Identifier) ->(Statements {+(Identifier)+}) } { (Identifier) ->(Identifier) }))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/if-else.diffB-A.txt ================================================ (Statements (If { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) } (If { (Identifier) ->(Identifier) } { (Statements {-(Identifier)-}) ->(Identifier) } (If { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) } (If { (Identifier) ->(Identifier) } { (Statements {-(Identifier)-}) ->(Identifier) } { (Identifier) ->(Identifier) }))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/if-else.parseA.txt ================================================ (Program (Statement (IfStatement (Statement (IfStatement (Statement (IfStatement (Statement (IfStatement (Statement (ExpressionStatement (Expression (Identifier "g")))) (Statement (ExpressionStatement (Expression (Identifier "f")))) (ParenthesizedExpression (Expression (Identifier "e"))))) (Statement (ExpressionStatement (Expression (Identifier "d")))) (ParenthesizedExpression (Expression (Identifier "c"))))) (Statement (ExpressionStatement (Expression (Identifier "b")))) (ParenthesizedExpression (Expression (Identifier "a"))))) (Statement (ExpressionStatement (Expression (Identifier "y")))) (ParenthesizedExpression (Expression (Identifier "x")))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/if-else.parseB.txt ================================================ (Program (Statement (IfStatement (Statement (IfStatement (Statement (IfStatement (Statement (IfStatement (Statement (ExpressionStatement (Expression (Identifier "o")))) (Statement (StatementBlock (Statement (ExpressionStatement (Expression (Identifier "n")))))) (ParenthesizedExpression (Expression (Identifier "m"))))) (Statement (ExpressionStatement (Expression (Identifier "l")))) (ParenthesizedExpression (Expression (Identifier "k"))))) (Statement (StatementBlock (Statement (ExpressionStatement (Expression (Identifier "j")))))) (ParenthesizedExpression (Expression (Identifier "i"))))) (Statement (ExpressionStatement (Expression (Identifier "h")))) (ParenthesizedExpression (Expression (Identifier "g")))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/if.A.js ================================================ if (x) { log(y); } ================================================ FILE: semantic/test/fixtures/javascript/corpus/if.B.js ================================================ if (a.b) { log(c); d; } ================================================ FILE: semantic/test/fixtures/javascript/corpus/if.diffA-B.txt ================================================ (Statements (If { (Identifier) ->(MemberAccess {+(Identifier)+} {+(Identifier)+}) } (Statements (Call (Identifier) { (Identifier) ->(Identifier) } (Empty)) {+(Identifier)+}) (Empty))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/if.diffB-A.txt ================================================ (Statements (If { (MemberAccess {-(Identifier)-} {-(Identifier)-}) ->(Identifier) } (Statements (Call (Identifier) { (Identifier) ->(Identifier) } (Empty)) {-(Identifier)-}) (Empty))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/if.parseA.txt ================================================ (Program (Statement (IfStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "log")) (Arguments (Expression (Identifier "y"))))))))) (ParenthesizedExpression (Expression (Identifier "x")))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/if.parseB.txt ================================================ (Program (Statement (IfStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "log")) (Arguments (Expression (Identifier "c"))))))) (Statement (ExpressionStatement (Expression (Identifier "d")))))) (ParenthesizedExpression (Expression (MemberExpression (PropertyIdentifier "b") (Expression (Identifier "a")))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/import.A.js ================================================ import defaultMember from "foo"; import * as name from "aardvark"; import { member } from "ant"; import { member1 , member2 } from "antelope"; import { member1 , member2 as alias2 } from "ant-eater"; import defaultMember, { member1, member2 as alias2 } from "anaconda"; import defaultMember, * as name from "alligator"; import "arctic-tern"; ================================================ FILE: semantic/test/fixtures/javascript/corpus/import.B.js ================================================ import defaultMember from "babirusa"; import * as otherName from "baboon"; import { element } from "badger"; import { element1 , element2 } from "bald-eagle"; import { element1 , element2 as elementAlias2 } from "bandicoot"; import defaultMember, { element1, element2 as elementAlias2 } from "banteng"; import defaultMember, * as element from "barbet"; import "basilisk"; ================================================ FILE: semantic/test/fixtures/javascript/corpus/import.diffA-B.txt ================================================ (Statements {+(Import)+} {+(QualifiedAliasedImport {+(Identifier)+})+} { (Import) ->(Import) } {+(Import)+} {+(Import)+} {+(Statements {+(Import)+} {+(Import)+})+} {+(Statements {+(Import)+} {+(QualifiedAliasedImport {+(Identifier)+})+})+} {+(SideEffectImport)+} {-(QualifiedAliasedImport {-(Identifier)-})-} {-(Import)-} {-(Import)-} {-(Import)-} {-(Statements {-(Import)-} {-(Import)-})-} {-(Statements {-(Import)-} {-(QualifiedAliasedImport {-(Identifier)-})-})-} {-(SideEffectImport)-}) ================================================ FILE: semantic/test/fixtures/javascript/corpus/import.diffB-A.txt ================================================ (Statements {+(Import)+} {+(QualifiedAliasedImport {+(Identifier)+})+} { (Import) ->(Import) } {+(Import)+} {+(Import)+} {+(Statements {+(Import)+} {+(Import)+})+} {+(Statements {+(Import)+} {+(QualifiedAliasedImport {+(Identifier)+})+})+} {+(SideEffectImport)+} {-(QualifiedAliasedImport {-(Identifier)-})-} {-(Import)-} {-(Import)-} {-(Import)-} {-(Statements {-(Import)-} {-(Import)-})-} {-(Statements {-(Import)-} {-(QualifiedAliasedImport {-(Identifier)-})-})-} {-(SideEffectImport)-}) ================================================ FILE: semantic/test/fixtures/javascript/corpus/import.parseA.txt ================================================ (Program (Statement (ImportStatement (String) (ImportClause (Identifier "defaultMember")))) (Statement (ImportStatement (String) (ImportClause (NamespaceImport (Identifier "name"))))) (Statement (ImportStatement (String) (ImportClause (NamedImports (ImportSpecifier (Identifier "member")))))) (Statement (ImportStatement (String) (ImportClause (NamedImports (ImportSpecifier (Identifier "member1")) (ImportSpecifier (Identifier "member2")))))) (Statement (ImportStatement (String) (ImportClause (NamedImports (ImportSpecifier (Identifier "member1")) (ImportSpecifier (Identifier "alias2") (Identifier "member2")))))) (Statement (ImportStatement (String) (ImportClause (Identifier "defaultMember") (NamedImports (ImportSpecifier (Identifier "member1")) (ImportSpecifier (Identifier "alias2") (Identifier "member2")))))) (Statement (ImportStatement (String) (ImportClause (Identifier "defaultMember") (NamespaceImport (Identifier "name"))))) (Statement (ImportStatement (String)))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/import.parseB.txt ================================================ (Program (Statement (ImportStatement (String) (ImportClause (Identifier "defaultMember")))) (Statement (ImportStatement (String) (ImportClause (NamespaceImport (Identifier "otherName"))))) (Statement (ImportStatement (String) (ImportClause (NamedImports (ImportSpecifier (Identifier "element")))))) (Statement (ImportStatement (String) (ImportClause (NamedImports (ImportSpecifier (Identifier "element1")) (ImportSpecifier (Identifier "element2")))))) (Statement (ImportStatement (String) (ImportClause (NamedImports (ImportSpecifier (Identifier "element1")) (ImportSpecifier (Identifier "elementAlias2") (Identifier "element2")))))) (Statement (ImportStatement (String) (ImportClause (Identifier "defaultMember") (NamedImports (ImportSpecifier (Identifier "element1")) (ImportSpecifier (Identifier "elementAlias2") (Identifier "element2")))))) (Statement (ImportStatement (String) (ImportClause (Identifier "defaultMember") (NamespaceImport (Identifier "element"))))) (Statement (ImportStatement (String)))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/jsx.A.js ================================================ function Something() { return
hello
; } ================================================ FILE: semantic/test/fixtures/javascript/corpus/jsx.B.js ================================================ function Something() { return
>goodbye
; } ================================================ FILE: semantic/test/fixtures/javascript/corpus/jsx.diffA-B.txt ================================================ (Statements (Function (Empty) (Empty) (Identifier) (StatementBlock (Return (JsxElement (JsxOpeningElement (Identifier) (Empty)) (JsxText) (JsxElement (JsxOpeningElement (Identifier) { (Empty) ->(TypeArguments {+(TypeIdentifier)+}) }) { (JsxText) ->(JsxText) } (JsxClosingElement (Identifier))) (JsxText) (JsxClosingElement (Identifier))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/jsx.diffB-A.txt ================================================ (Statements (Function (Empty) (Empty) (Identifier) (StatementBlock (Return (JsxElement (JsxOpeningElement (Identifier) (Empty)) (JsxText) (JsxElement (JsxOpeningElement (Identifier) { (TypeArguments {-(TypeIdentifier)-}) ->(Empty) }) { (JsxText) ->(JsxText) } (JsxClosingElement (Identifier))) (JsxText) (JsxClosingElement (Identifier))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/jsx.parseA.txt ================================================ (Program (Statement (Declaration (FunctionDeclaration (StatementBlock (Statement (ReturnStatement (Expression (JsxElement (JsxClosingElement (Identifier "div")) (JsxOpeningElement (Identifier "div")) (JsxText "\n ") (JsxElement (JsxClosingElement (Identifier "Foo")) (JsxOpeningElement (Identifier "Foo")) (JsxText "hello")) (JsxText "\n ")))))) (Identifier "Something") (FormalParameters))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/jsx.parseB.txt ================================================ (Program (Statement (Declaration (FunctionDeclaration (StatementBlock (Statement (ReturnStatement (Expression (JsxElement (JsxClosingElement (Identifier "div")) (JsxOpeningElement (Identifier "div")) (JsxText "\n ") (JsxElement (JsxClosingElement (Identifier "Foo")) (JsxOpeningElement (Identifier "Foo") (TypeArguments (TypeIdentifier "T"))) (JsxText "goodbye")) (JsxText "\n ")))))) (Identifier "Something") (FormalParameters))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/math-assignment-operator.A.js ================================================ x += 1; ================================================ FILE: semantic/test/fixtures/javascript/corpus/math-assignment-operator.B.js ================================================ x += 2; ================================================ FILE: semantic/test/fixtures/javascript/corpus/math-assignment-operator.diffA-B.txt ================================================ (Statements (AugmentedAssignment (Plus (Identifier) { (Float) ->(Float) }))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/math-assignment-operator.diffB-A.txt ================================================ (Statements (AugmentedAssignment (Plus (Identifier) { (Float) ->(Float) }))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/math-assignment-operator.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (AugmentedAssignmentExpression (Identifier "x") (Expression (Number "1"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/math-assignment-operator.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (AugmentedAssignmentExpression (Identifier "x") (Expression (Number "2"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/math-operator.A.js ================================================ i + j * 3 - j % 5; ================================================ FILE: semantic/test/fixtures/javascript/corpus/math-operator.B.js ================================================ i + j * 2 - j % 4; ================================================ FILE: semantic/test/fixtures/javascript/corpus/math-operator.diffA-B.txt ================================================ (Statements (Minus (Plus (Identifier) (Times (Identifier) { (Float) ->(Float) })) (Modulo (Identifier) { (Float) ->(Float) }))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/math-operator.diffB-A.txt ================================================ (Statements (Minus (Plus (Identifier) (Times (Identifier) { (Float) ->(Float) })) (Modulo (Identifier) { (Float) ->(Float) }))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/math-operator.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (BinaryExpression (Token) (Expression (Identifier "j")) (Expression (Number "3")))))) (Expression (BinaryExpression (Token) (Expression (Identifier "j")) (Expression (Number "5"))))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/math-operator.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (BinaryExpression (Token) (Expression (Identifier "j")) (Expression (Number "2")))))) (Expression (BinaryExpression (Token) (Expression (Identifier "j")) (Expression (Number "4"))))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/member-access-assignment.A.js ================================================ y.x = 0; ================================================ FILE: semantic/test/fixtures/javascript/corpus/member-access-assignment.B.js ================================================ y.x = 1; ================================================ FILE: semantic/test/fixtures/javascript/corpus/member-access-assignment.diffA-B.txt ================================================ (Statements (Assignment (MemberAccess (Identifier) (Identifier)) { (Float) ->(Float) })) ================================================ FILE: semantic/test/fixtures/javascript/corpus/member-access-assignment.diffB-A.txt ================================================ (Statements (Assignment (MemberAccess (Identifier) (Identifier)) { (Float) ->(Float) })) ================================================ FILE: semantic/test/fixtures/javascript/corpus/member-access-assignment.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (AssignmentExpression (MemberExpression (PropertyIdentifier "x") (Expression (Identifier "y"))) (Expression (Number "0"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/member-access-assignment.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (AssignmentExpression (MemberExpression (PropertyIdentifier "x") (Expression (Identifier "y"))) (Expression (Number "1"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/member-access.A.js ================================================ x.someProperty; ================================================ FILE: semantic/test/fixtures/javascript/corpus/member-access.B.js ================================================ x.someOtherProperty ================================================ FILE: semantic/test/fixtures/javascript/corpus/member-access.diffA-B.txt ================================================ (Statements (MemberAccess (Identifier) { (Identifier) ->(Identifier) })) ================================================ FILE: semantic/test/fixtures/javascript/corpus/member-access.diffB-A.txt ================================================ (Statements (MemberAccess (Identifier) { (Identifier) ->(Identifier) })) ================================================ FILE: semantic/test/fixtures/javascript/corpus/member-access.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (MemberExpression (PropertyIdentifier "someProperty") (Expression (Identifier "x"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/member-access.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (MemberExpression (PropertyIdentifier "someOtherProperty") (Expression (Identifier "x"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/method-call.A.js ================================================ object.someMethod(arg1, "arg2"); ================================================ FILE: semantic/test/fixtures/javascript/corpus/method-call.B.js ================================================ object.someMethod(arg1, "arg3"); ================================================ FILE: semantic/test/fixtures/javascript/corpus/method-call.diffA-B.txt ================================================ (Statements (Call (MemberAccess (Identifier) (Identifier)) (Identifier) { (TextElement) ->(TextElement) } (Empty))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/method-call.diffB-A.txt ================================================ (Statements (Call (MemberAccess (Identifier) (Identifier)) (Identifier) { (TextElement) ->(TextElement) } (Empty))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/method-call.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "someMethod") (Expression (Identifier "object")))) (Arguments (Expression (Identifier "arg1")) (Expression (String)))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/method-call.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "someMethod") (Expression (Identifier "object")))) (Arguments (Expression (Identifier "arg1")) (Expression (String)))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/named-function.A.js ================================================ function myFunction(arg1, arg2) { arg2; }; ================================================ FILE: semantic/test/fixtures/javascript/corpus/named-function.B.js ================================================ function anotherFunction() { return false; }; ================================================ FILE: semantic/test/fixtures/javascript/corpus/named-function.diffA-B.txt ================================================ (Statements (Function (Empty) (Empty) { (Identifier) ->(Identifier) } {-(RequiredParameter {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(Empty)-})-} {-(RequiredParameter {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(Empty)-})-} (StatementBlock {+(Return {+(Boolean)+})+} {-(Identifier)-})) (Empty)) ================================================ FILE: semantic/test/fixtures/javascript/corpus/named-function.diffB-A.txt ================================================ (Statements (Function (Empty) (Empty) { (Identifier) ->(Identifier) } {+(RequiredParameter {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(Empty)+})+} {+(RequiredParameter {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(Empty)+})+} (StatementBlock {+(Identifier)+} {-(Return {-(Boolean)-})-})) (Empty)) ================================================ FILE: semantic/test/fixtures/javascript/corpus/named-function.parseA.txt ================================================ (Program (Statement (Declaration (FunctionDeclaration (StatementBlock (Statement (ExpressionStatement (Expression (Identifier "arg2"))))) (Identifier "myFunction") (FormalParameters (RequiredParameter (Identifier "arg1")) (RequiredParameter (Identifier "arg2")))))) (Statement (EmptyStatement ";"))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/named-function.parseB.txt ================================================ (Program (Statement (Declaration (FunctionDeclaration (StatementBlock (Statement (ReturnStatement (Expression (False "false"))))) (Identifier "anotherFunction") (FormalParameters)))) (Statement (EmptyStatement ";"))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/nested-do-while-in-function.A.js ================================================ function f(arg1, arg2) { do { something(arg1); } while (arg2); } ================================================ FILE: semantic/test/fixtures/javascript/corpus/nested-do-while-in-function.B.js ================================================ function f(arg1, arg2) { do { something(arg2); } while (arg1); } ================================================ FILE: semantic/test/fixtures/javascript/corpus/nested-do-while-in-function.diffA-B.txt ================================================ (Statements (Function (Empty) (Empty) (Identifier) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (DoWhile { (Identifier) ->(Identifier) } (Statements (Call (Identifier) { (Identifier) ->(Identifier) } (Empty))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/nested-do-while-in-function.diffB-A.txt ================================================ (Statements (Function (Empty) (Empty) (Identifier) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (DoWhile { (Identifier) ->(Identifier) } (Statements (Call (Identifier) { (Identifier) ->(Identifier) } (Empty))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/nested-do-while-in-function.parseA.txt ================================================ (Program (Statement (Declaration (FunctionDeclaration (StatementBlock (Statement (DoStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "something")) (Arguments (Expression (Identifier "arg1"))))))))) (ParenthesizedExpression (Expression (Identifier "arg2")))))) (Identifier "f") (FormalParameters (RequiredParameter (Identifier "arg1")) (RequiredParameter (Identifier "arg2"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/nested-do-while-in-function.parseB.txt ================================================ (Program (Statement (Declaration (FunctionDeclaration (StatementBlock (Statement (DoStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "something")) (Arguments (Expression (Identifier "arg2"))))))))) (ParenthesizedExpression (Expression (Identifier "arg1")))))) (Identifier "f") (FormalParameters (RequiredParameter (Identifier "arg1")) (RequiredParameter (Identifier "arg2"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/nested-functions.A.js ================================================ function parent (arg1, arg2) { function child (arg3, arg4) { console.log(arg3); console.log(arg4); } } ================================================ FILE: semantic/test/fixtures/javascript/corpus/nested-functions.B.js ================================================ function parent (arg1, arg2) { function child (arg3, arg4) { console.log(arg1); console.log(arg2); } } ================================================ FILE: semantic/test/fixtures/javascript/corpus/nested-functions.diffA-B.txt ================================================ (Statements (Function (Empty) (Empty) (Identifier) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Function (Empty) (Empty) (Identifier) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Call (MemberAccess (Identifier) (Identifier)) { (Identifier) ->(Identifier) } (Empty)) (Call (MemberAccess (Identifier) (Identifier)) { (Identifier) ->(Identifier) } (Empty))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/nested-functions.diffB-A.txt ================================================ (Statements (Function (Empty) (Empty) (Identifier) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Function (Empty) (Empty) (Identifier) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Call (MemberAccess (Identifier) (Identifier)) { (Identifier) ->(Identifier) } (Empty)) (Call (MemberAccess (Identifier) (Identifier)) { (Identifier) ->(Identifier) } (Empty))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/nested-functions.parseA.txt ================================================ (Program (Statement (Declaration (FunctionDeclaration (StatementBlock (Statement (Declaration (FunctionDeclaration (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "log") (Expression (Identifier "console")))) (Arguments (Expression (Identifier "arg3"))))))) (Statement (ExpressionStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "log") (Expression (Identifier "console")))) (Arguments (Expression (Identifier "arg4")))))))) (Identifier "child") (FormalParameters (RequiredParameter (Identifier "arg3")) (RequiredParameter (Identifier "arg4"))))))) (Identifier "parent") (FormalParameters (RequiredParameter (Identifier "arg1")) (RequiredParameter (Identifier "arg2"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/nested-functions.parseB.txt ================================================ (Program (Statement (Declaration (FunctionDeclaration (StatementBlock (Statement (Declaration (FunctionDeclaration (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "log") (Expression (Identifier "console")))) (Arguments (Expression (Identifier "arg1"))))))) (Statement (ExpressionStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "log") (Expression (Identifier "console")))) (Arguments (Expression (Identifier "arg2")))))))) (Identifier "child") (FormalParameters (RequiredParameter (Identifier "arg3")) (RequiredParameter (Identifier "arg4"))))))) (Identifier "parent") (FormalParameters (RequiredParameter (Identifier "arg1")) (RequiredParameter (Identifier "arg2"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/null.A.js ================================================ null; ================================================ FILE: semantic/test/fixtures/javascript/corpus/null.B.js ================================================ return null; ================================================ FILE: semantic/test/fixtures/javascript/corpus/null.diffA-B.txt ================================================ (Statements {+(Return {+(Null)+})+} {-(Null)-}) ================================================ FILE: semantic/test/fixtures/javascript/corpus/null.diffB-A.txt ================================================ (Statements {+(Null)+} {-(Return {-(Null)-})-}) ================================================ FILE: semantic/test/fixtures/javascript/corpus/null.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Null "null"))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/null.parseB.txt ================================================ (Program (Statement (ReturnStatement (Expression (Null "null"))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/number.A.js ================================================ 101 ================================================ FILE: semantic/test/fixtures/javascript/corpus/number.B.js ================================================ 102 ================================================ FILE: semantic/test/fixtures/javascript/corpus/number.diffA-B.txt ================================================ (Statements { (Float) ->(Float) }) ================================================ FILE: semantic/test/fixtures/javascript/corpus/number.diffB-A.txt ================================================ (Statements { (Float) ->(Float) }) ================================================ FILE: semantic/test/fixtures/javascript/corpus/number.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Number "101"))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/number.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Number "102"))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/object.A.js ================================================ { "key1": "value1" }; ================================================ FILE: semantic/test/fixtures/javascript/corpus/object.B.js ================================================ { "key1": "value1", "key2": "value2", "key3": "3.0" }; ================================================ FILE: semantic/test/fixtures/javascript/corpus/object.diffA-B.txt ================================================ (Statements (Hash (KeyValue (TextElement) (TextElement)) {+(KeyValue {+(TextElement)+} {+(TextElement)+})+} {+(KeyValue {+(TextElement)+} {+(TextElement)+})+})) ================================================ FILE: semantic/test/fixtures/javascript/corpus/object.diffB-A.txt ================================================ (Statements (Hash (KeyValue (TextElement) (TextElement)) {-(KeyValue {-(TextElement)-} {-(TextElement)-})-} {-(KeyValue {-(TextElement)-} {-(TextElement)-})-})) ================================================ FILE: semantic/test/fixtures/javascript/corpus/object.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Object (Pair (Expression (String)) (String))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/object.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Object (Pair (Expression (String)) (String)) (Pair (Expression (String)) (String)) (Pair (Expression (String)) (String))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/objects-with-methods.A.js ================================================ { add(a, b) { return a + b; } }; ================================================ FILE: semantic/test/fixtures/javascript/corpus/objects-with-methods.B.js ================================================ { subtract(a, b) { return a - b; } }; ================================================ FILE: semantic/test/fixtures/javascript/corpus/objects-with-methods.diffA-B.txt ================================================ (Statements (Hash (Method (Empty) (Empty) (Empty) (Empty) { (Identifier) ->(Identifier) } (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Return { (Plus {-(Identifier)-} {-(Identifier)-}) ->(Minus {+(Identifier)+} {+(Identifier)+}) }))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/objects-with-methods.diffB-A.txt ================================================ (Statements (Hash (Method (Empty) (Empty) (Empty) (Empty) { (Identifier) ->(Identifier) } (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Return { (Minus {-(Identifier)-} {-(Identifier)-}) ->(Plus {+(Identifier)+} {+(Identifier)+}) }))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/objects-with-methods.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Object (MethodDefinition (StatementBlock (Statement (ReturnStatement (Expression (BinaryExpression (Token) (Expression (Identifier "a")) (Expression (Identifier "b"))))))) (PropertyIdentifier "add") (FormalParameters (RequiredParameter (Identifier "a")) (RequiredParameter (Identifier "b"))))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/objects-with-methods.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Object (MethodDefinition (StatementBlock (Statement (ReturnStatement (Expression (BinaryExpression (Token) (Expression (Identifier "a")) (Expression (Identifier "b"))))))) (PropertyIdentifier "subtract") (FormalParameters (RequiredParameter (Identifier "a")) (RequiredParameter (Identifier "b"))))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/regex.A.js ================================================ /one/g; ================================================ FILE: semantic/test/fixtures/javascript/corpus/regex.B.js ================================================ /on[^/]afe/gim; ================================================ FILE: semantic/test/fixtures/javascript/corpus/regex.diffA-B.txt ================================================ (Statements { (Regex) ->(Regex) }) ================================================ FILE: semantic/test/fixtures/javascript/corpus/regex.diffB-A.txt ================================================ (Statements { (Regex) ->(Regex) }) ================================================ FILE: semantic/test/fixtures/javascript/corpus/regex.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Regex (RegexFlags "g") (RegexPattern "one")))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/regex.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Regex (RegexFlags "gim") (RegexPattern "on[^/]afe")))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/relational-operator.A.js ================================================ x < y; ================================================ FILE: semantic/test/fixtures/javascript/corpus/relational-operator.B.js ================================================ x <= y; ================================================ FILE: semantic/test/fixtures/javascript/corpus/relational-operator.diffA-B.txt ================================================ (Statements {+(LessThanEqual {+(Identifier)+} {+(Identifier)+})+} {-(LessThan {-(Identifier)-} {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/javascript/corpus/relational-operator.diffB-A.txt ================================================ (Statements {+(LessThan {+(Identifier)+} {+(Identifier)+})+} {-(LessThanEqual {-(Identifier)-} {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/javascript/corpus/relational-operator.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "x")) (Expression (Identifier "y"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/relational-operator.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "x")) (Expression (Identifier "y"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/return-statement.A.js ================================================ return 5; ================================================ FILE: semantic/test/fixtures/javascript/corpus/return-statement.B.js ================================================ return; ================================================ FILE: semantic/test/fixtures/javascript/corpus/return-statement.diffA-B.txt ================================================ (Statements (Return { (Float) ->(Empty) })) ================================================ FILE: semantic/test/fixtures/javascript/corpus/return-statement.diffB-A.txt ================================================ (Statements (Return { (Empty) ->(Float) })) ================================================ FILE: semantic/test/fixtures/javascript/corpus/return-statement.parseA.txt ================================================ (Program (Statement (ReturnStatement (Expression (Number "5"))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/return-statement.parseB.txt ================================================ (Program (Statement (ReturnStatement))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/string.A.js ================================================ 'A string with "double" quotes'; ================================================ FILE: semantic/test/fixtures/javascript/corpus/string.B.js ================================================ 'A different string with "double" quotes'; ================================================ FILE: semantic/test/fixtures/javascript/corpus/string.diffA-B.txt ================================================ (Statements { (TextElement) ->(TextElement) }) ================================================ FILE: semantic/test/fixtures/javascript/corpus/string.diffB-A.txt ================================================ (Statements { (TextElement) ->(TextElement) }) ================================================ FILE: semantic/test/fixtures/javascript/corpus/string.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (String))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/string.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (String))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/subscript-access-assignment.A.js ================================================ y["x"] = 0; ================================================ FILE: semantic/test/fixtures/javascript/corpus/subscript-access-assignment.B.js ================================================ y["x"] = 1; ================================================ FILE: semantic/test/fixtures/javascript/corpus/subscript-access-assignment.diffA-B.txt ================================================ (Statements (Assignment (Subscript (Identifier) (TextElement)) { (Float) ->(Float) })) ================================================ FILE: semantic/test/fixtures/javascript/corpus/subscript-access-assignment.diffB-A.txt ================================================ (Statements (Assignment (Subscript (Identifier) (TextElement)) { (Float) ->(Float) })) ================================================ FILE: semantic/test/fixtures/javascript/corpus/subscript-access-assignment.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (AssignmentExpression (SubscriptExpression (Expression (Identifier "y")) (Expression (String))) (Expression (Number "0"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/subscript-access-assignment.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (AssignmentExpression (SubscriptExpression (Expression (Identifier "y")) (Expression (String))) (Expression (Number "1"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/subscript-access-string.A.js ================================================ x["some-string"]; ================================================ FILE: semantic/test/fixtures/javascript/corpus/subscript-access-string.B.js ================================================ x["some-other-string"]; ================================================ FILE: semantic/test/fixtures/javascript/corpus/subscript-access-string.diffA-B.txt ================================================ (Statements (Subscript (Identifier) { (TextElement) ->(TextElement) })) ================================================ FILE: semantic/test/fixtures/javascript/corpus/subscript-access-string.diffB-A.txt ================================================ (Statements (Subscript (Identifier) { (TextElement) ->(TextElement) })) ================================================ FILE: semantic/test/fixtures/javascript/corpus/subscript-access-string.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (SubscriptExpression (Expression (Identifier "x")) (Expression (String))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/subscript-access-string.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (SubscriptExpression (Expression (Identifier "x")) (Expression (String))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/subscript-access-variable.A.js ================================================ x[someVariable]; ================================================ FILE: semantic/test/fixtures/javascript/corpus/subscript-access-variable.B.js ================================================ x[someOtherVariable]; ================================================ FILE: semantic/test/fixtures/javascript/corpus/subscript-access-variable.diffA-B.txt ================================================ (Statements (Subscript (Identifier) { (Identifier) ->(Identifier) })) ================================================ FILE: semantic/test/fixtures/javascript/corpus/subscript-access-variable.diffB-A.txt ================================================ (Statements (Subscript (Identifier) { (Identifier) ->(Identifier) })) ================================================ FILE: semantic/test/fixtures/javascript/corpus/subscript-access-variable.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (SubscriptExpression (Expression (Identifier "x")) (Expression (Identifier "someVariable"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/subscript-access-variable.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (SubscriptExpression (Expression (Identifier "x")) (Expression (Identifier "someOtherVariable"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/switch-statement.A.js ================================================ switch (1) { case 1: 1; case 2: 1; case 3: 3; }; ================================================ FILE: semantic/test/fixtures/javascript/corpus/switch-statement.B.js ================================================ switch (2) { case 1: 1; case 2: 2; case 3: 3; }; ================================================ FILE: semantic/test/fixtures/javascript/corpus/switch-statement.diffA-B.txt ================================================ (Statements (Match { (Float) ->(Float) } (Statements (Pattern (Float) (Statements (Float))) (Pattern (Float) (Statements { (Float) ->(Float) })) (Pattern (Float) (Statements (Float))))) (Empty)) ================================================ FILE: semantic/test/fixtures/javascript/corpus/switch-statement.diffB-A.txt ================================================ (Statements (Match { (Float) ->(Float) } (Statements (Pattern (Float) (Statements (Float))) (Pattern (Float) (Statements { (Float) ->(Float) })) (Pattern (Float) (Statements (Float))))) (Empty)) ================================================ FILE: semantic/test/fixtures/javascript/corpus/switch-statement.parseA.txt ================================================ (Program (Statement (SwitchStatement (SwitchBody (SwitchCase (Expression (Number "1")) (Statement (ExpressionStatement (Expression (Number "1"))))) (SwitchCase (Expression (Number "2")) (Statement (ExpressionStatement (Expression (Number "1"))))) (SwitchCase (Expression (Number "3")) (Statement (ExpressionStatement (Expression (Number "3")))))) (ParenthesizedExpression (Expression (Number "1"))))) (Statement (EmptyStatement ";"))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/switch-statement.parseB.txt ================================================ (Program (Statement (SwitchStatement (SwitchBody (SwitchCase (Expression (Number "1")) (Statement (ExpressionStatement (Expression (Number "1"))))) (SwitchCase (Expression (Number "2")) (Statement (ExpressionStatement (Expression (Number "2"))))) (SwitchCase (Expression (Number "3")) (Statement (ExpressionStatement (Expression (Number "3")))))) (ParenthesizedExpression (Expression (Number "2"))))) (Statement (EmptyStatement ";"))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/template-string.A.js ================================================ `one line` ================================================ FILE: semantic/test/fixtures/javascript/corpus/template-string.B.js ================================================ `multi line` ================================================ FILE: semantic/test/fixtures/javascript/corpus/template-string.diffA-B.txt ================================================ (Statements (String)) ================================================ FILE: semantic/test/fixtures/javascript/corpus/template-string.diffB-A.txt ================================================ (Statements (String)) ================================================ FILE: semantic/test/fixtures/javascript/corpus/template-string.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (TemplateString))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/template-string.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (TemplateString))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/ternary.A.js ================================================ condition ? case1 : case2; ================================================ FILE: semantic/test/fixtures/javascript/corpus/ternary.B.js ================================================ x.y = some.condition ? some.case : some.other.case; ================================================ FILE: semantic/test/fixtures/javascript/corpus/ternary.diffA-B.txt ================================================ (Statements {+(Assignment {+(MemberAccess {+(Identifier)+} {+(Identifier)+})+} {+(If {+(MemberAccess {+(Identifier)+} {+(Identifier)+})+} {+(MemberAccess {+(Identifier)+} {+(Identifier)+})+} {+(MemberAccess {+(MemberAccess {+(Identifier)+} {+(Identifier)+})+} {+(Identifier)+})+})+})+} {-(If {-(Identifier)-} {-(Identifier)-} {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/javascript/corpus/ternary.diffB-A.txt ================================================ (Statements {+(If {+(Identifier)+} {+(Identifier)+} {+(Identifier)+})+} {-(Assignment {-(MemberAccess {-(Identifier)-} {-(Identifier)-})-} {-(If {-(MemberAccess {-(Identifier)-} {-(Identifier)-})-} {-(MemberAccess {-(Identifier)-} {-(Identifier)-})-} {-(MemberAccess {-(MemberAccess {-(Identifier)-} {-(Identifier)-})-} {-(Identifier)-})-})-})-}) ================================================ FILE: semantic/test/fixtures/javascript/corpus/ternary.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (TernaryExpression (Expression (Identifier "case2")) (Expression (Identifier "case1")) (Expression (Identifier "condition"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/ternary.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (AssignmentExpression (MemberExpression (PropertyIdentifier "y") (Expression (Identifier "x"))) (Expression (TernaryExpression (Expression (MemberExpression (PropertyIdentifier "case") (Expression (MemberExpression (PropertyIdentifier "other") (Expression (Identifier "some")))))) (Expression (MemberExpression (PropertyIdentifier "case") (Expression (Identifier "some")))) (Expression (MemberExpression (PropertyIdentifier "condition") (Expression (Identifier "some"))))))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/this-expression.A.js ================================================ this; ================================================ FILE: semantic/test/fixtures/javascript/corpus/this-expression.B.js ================================================ return this; ================================================ FILE: semantic/test/fixtures/javascript/corpus/this-expression.diffA-B.txt ================================================ (Statements {+(Return {+(This)+})+} {-(This)-}) ================================================ FILE: semantic/test/fixtures/javascript/corpus/this-expression.diffB-A.txt ================================================ (Statements {+(This)+} {-(Return {-(This)-})-}) ================================================ FILE: semantic/test/fixtures/javascript/corpus/this-expression.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (This "this"))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/this-expression.parseB.txt ================================================ (Program (Statement (ReturnStatement (Expression (This "this"))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/throw-statement.A.js ================================================ throw new Error("uh oh"); ================================================ FILE: semantic/test/fixtures/javascript/corpus/throw-statement.B.js ================================================ throw new Error("oooooops"); ================================================ FILE: semantic/test/fixtures/javascript/corpus/throw-statement.diffA-B.txt ================================================ (Statements (Throw (New (Identifier) (Empty) { (TextElement) ->(TextElement) }))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/throw-statement.diffB-A.txt ================================================ (Statements (Throw (New (Identifier) (Empty) { (TextElement) ->(TextElement) }))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/throw-statement.parseA.txt ================================================ (Program (Statement (ThrowStatement (Expression (NewExpression (Arguments (Expression (String))) (Identifier "Error")))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/throw-statement.parseB.txt ================================================ (Program (Statement (ThrowStatement (Expression (NewExpression (Arguments (Expression (String))) (Identifier "Error")))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/true.A.js ================================================ true; ================================================ FILE: semantic/test/fixtures/javascript/corpus/true.B.js ================================================ return true; ================================================ FILE: semantic/test/fixtures/javascript/corpus/true.diffA-B.txt ================================================ (Statements {+(Return {+(Boolean)+})+} {-(Boolean)-}) ================================================ FILE: semantic/test/fixtures/javascript/corpus/true.diffB-A.txt ================================================ (Statements {+(Boolean)+} {-(Return {-(Boolean)-})-}) ================================================ FILE: semantic/test/fixtures/javascript/corpus/true.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (True "true"))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/true.parseB.txt ================================================ (Program (Statement (ReturnStatement (Expression (True "true"))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/try-statement.A.js ================================================ try { f; } catch { g; } finally { h; }; ================================================ FILE: semantic/test/fixtures/javascript/corpus/try-statement.B.js ================================================ try { f; } catch { h; } finally { g; }; ================================================ FILE: semantic/test/fixtures/javascript/corpus/try-statement.diffA-B.txt ================================================ (Statements (Try (Statements (Identifier)) (Catch (Empty) (Statements { (Identifier) ->(Identifier) })) (Finally (Statements { (Identifier) ->(Identifier) }))) (Empty)) ================================================ FILE: semantic/test/fixtures/javascript/corpus/try-statement.diffB-A.txt ================================================ (Statements (Try (Statements (Identifier)) (Catch (Empty) (Statements { (Identifier) ->(Identifier) })) (Finally (Statements { (Identifier) ->(Identifier) }))) (Empty)) ================================================ FILE: semantic/test/fixtures/javascript/corpus/try-statement.parseA.txt ================================================ (Program (Statement (TryStatement (StatementBlock (Statement (ExpressionStatement (Expression (Identifier "f"))))) (CatchClause (StatementBlock (Statement (ExpressionStatement (Expression (Identifier "g")))))) (FinallyClause (StatementBlock (Statement (ExpressionStatement (Expression (Identifier "h")))))))) (Statement (EmptyStatement ";"))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/try-statement.parseB.txt ================================================ (Program (Statement (TryStatement (StatementBlock (Statement (ExpressionStatement (Expression (Identifier "f"))))) (CatchClause (StatementBlock (Statement (ExpressionStatement (Expression (Identifier "h")))))) (FinallyClause (StatementBlock (Statement (ExpressionStatement (Expression (Identifier "g")))))))) (Statement (EmptyStatement ";"))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/type-operator.A.js ================================================ typeof x; ================================================ FILE: semantic/test/fixtures/javascript/corpus/type-operator.B.js ================================================ x instanceof String; ================================================ FILE: semantic/test/fixtures/javascript/corpus/type-operator.diffA-B.txt ================================================ (Statements {+(InstanceOf {+(Identifier)+} {+(Identifier)+})+} {-(Typeof {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/javascript/corpus/type-operator.diffB-A.txt ================================================ (Statements {+(Typeof {+(Identifier)+})+} {-(InstanceOf {-(Identifier)-} {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/javascript/corpus/type-operator.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (UnaryExpression (Token) (Expression (Identifier "x"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/type-operator.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "x")) (Expression (Identifier "String"))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/undefined.A.js ================================================ undefined; ================================================ FILE: semantic/test/fixtures/javascript/corpus/undefined.B.js ================================================ return undefined; ================================================ FILE: semantic/test/fixtures/javascript/corpus/undefined.diffA-B.txt ================================================ (Statements {+(Return {+(Undefined)+})+} {-(Undefined)-}) ================================================ FILE: semantic/test/fixtures/javascript/corpus/undefined.diffB-A.txt ================================================ (Statements {+(Undefined)+} {-(Return {-(Undefined)-})-}) ================================================ FILE: semantic/test/fixtures/javascript/corpus/undefined.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Undefined "undefined"))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/undefined.parseB.txt ================================================ (Program (Statement (ReturnStatement (Expression (Undefined "undefined"))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/var-declaration.A.js ================================================ var x = 1; ================================================ FILE: semantic/test/fixtures/javascript/corpus/var-declaration.B.js ================================================ var x, y = {}, z; ================================================ FILE: semantic/test/fixtures/javascript/corpus/var-declaration.diffA-B.txt ================================================ (Statements (VariableDeclaration (Assignment (Empty) (Identifier) { (Float) ->(Empty) }) {+(Assignment {+(Empty)+} {+(Identifier)+} {+(Hash)+})+} {+(Assignment {+(Empty)+} {+(Identifier)+} {+(Empty)+})+})) ================================================ FILE: semantic/test/fixtures/javascript/corpus/var-declaration.diffB-A.txt ================================================ (Statements (VariableDeclaration (Assignment (Empty) (Identifier) { (Empty) ->(Float) }) {-(Assignment {-(Empty)-} {-(Identifier)-} {-(Hash)-})-} {-(Assignment {-(Empty)-} {-(Identifier)-} {-(Empty)-})-})) ================================================ FILE: semantic/test/fixtures/javascript/corpus/var-declaration.parseA.txt ================================================ (Program (Statement (Declaration (VariableDeclaration (VariableDeclarator (Expression (Number "1")) (Identifier "x")))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/var-declaration.parseB.txt ================================================ (Program (Statement (Declaration (VariableDeclaration (VariableDeclarator (Identifier "x")) (VariableDeclarator (Expression (Object)) (Identifier "y")) (VariableDeclarator (Identifier "z")))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/variable.A.js ================================================ theVar; ================================================ FILE: semantic/test/fixtures/javascript/corpus/variable.B.js ================================================ theVar2 ================================================ FILE: semantic/test/fixtures/javascript/corpus/variable.diffA-B.txt ================================================ (Statements { (Identifier) ->(Identifier) }) ================================================ FILE: semantic/test/fixtures/javascript/corpus/variable.diffB-A.txt ================================================ (Statements { (Identifier) ->(Identifier) }) ================================================ FILE: semantic/test/fixtures/javascript/corpus/variable.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Identifier "theVar"))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/variable.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Identifier "theVar2"))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/variadic-function-declarations.parseA.txt ================================================ ================================================ FILE: semantic/test/fixtures/javascript/corpus/void-operator.A.js ================================================ void b() ================================================ FILE: semantic/test/fixtures/javascript/corpus/void-operator.B.js ================================================ void c() ================================================ FILE: semantic/test/fixtures/javascript/corpus/void-operator.diffA-B.txt ================================================ (Statements (Void (Call { (Identifier) ->(Identifier) } (Empty)))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/void-operator.diffB-A.txt ================================================ (Statements (Void (Call { (Identifier) ->(Identifier) } (Empty)))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/void-operator.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (UnaryExpression (Token) (Expression (CallExpression (Expression (Identifier "b")) (Arguments)))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/void-operator.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (UnaryExpression (Token) (Expression (CallExpression (Expression (Identifier "c")) (Arguments)))))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/while-statement.A.js ================================================ while (a) { b(); }; ================================================ FILE: semantic/test/fixtures/javascript/corpus/while-statement.B.js ================================================ while (b) { a(); }; ================================================ FILE: semantic/test/fixtures/javascript/corpus/while-statement.diffA-B.txt ================================================ (Statements (While { (Identifier) ->(Identifier) } (Statements (Call { (Identifier) ->(Identifier) } (Empty)))) (Empty)) ================================================ FILE: semantic/test/fixtures/javascript/corpus/while-statement.diffB-A.txt ================================================ (Statements (While { (Identifier) ->(Identifier) } (Statements (Call { (Identifier) ->(Identifier) } (Empty)))) (Empty)) ================================================ FILE: semantic/test/fixtures/javascript/corpus/while-statement.parseA.txt ================================================ (Program (Statement (WhileStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "b")) (Arguments))))))) (ParenthesizedExpression (Expression (Identifier "a"))))) (Statement (EmptyStatement ";"))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/while-statement.parseB.txt ================================================ (Program (Statement (WhileStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "a")) (Arguments))))))) (ParenthesizedExpression (Expression (Identifier "b"))))) (Statement (EmptyStatement ";"))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/yield.A.js ================================================ function* foo(){ var index = 0; yield i; } ================================================ FILE: semantic/test/fixtures/javascript/corpus/yield.B.js ================================================ function* foo(){ var index = 0; yield i++; } ================================================ FILE: semantic/test/fixtures/javascript/corpus/yield.diffA-B.txt ================================================ (Statements (Function (Empty) (Empty) (Identifier) (StatementBlock (VariableDeclaration (Assignment (Empty) (Identifier) (Float))) (Yield { (Identifier) ->(Update {+(Identifier)+}) })))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/yield.diffB-A.txt ================================================ (Statements (Function (Empty) (Empty) (Identifier) (StatementBlock (VariableDeclaration (Assignment (Empty) (Identifier) (Float))) (Yield { (Update {-(Identifier)-}) ->(Identifier) })))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/yield.parseA.txt ================================================ (Program (Statement (Declaration (GeneratorFunctionDeclaration (StatementBlock (Statement (Declaration (VariableDeclaration (VariableDeclarator (Expression (Number "0")) (Identifier "index"))))) (Statement (ExpressionStatement (Expression (YieldExpression (Expression (Identifier "i"))))))) (Identifier "foo") (FormalParameters))))) ================================================ FILE: semantic/test/fixtures/javascript/corpus/yield.parseB.txt ================================================ (Program (Statement (Declaration (GeneratorFunctionDeclaration (StatementBlock (Statement (Declaration (VariableDeclaration (VariableDeclarator (Expression (Number "0")) (Identifier "index"))))) (Statement (ExpressionStatement (Expression (YieldExpression (Expression (UpdateExpression (Token) (Expression (Identifier "i"))))))))) (Identifier "foo") (FormalParameters))))) ================================================ FILE: semantic/test/fixtures/javascript/reprinting/map.json ================================================ { "foo": 100, "bar": [1, 2, 3], "baz": true } ================================================ FILE: semantic/test/fixtures/javascript/tags/simple_function_with_docs.js ================================================ // This is myFunction function myFunction() { return 0; } ================================================ FILE: semantic/test/fixtures/javascript/toc/duplicate-parent.A.js ================================================ function myFunction() { return 0; } ================================================ FILE: semantic/test/fixtures/javascript/toc/duplicate-parent.B.js ================================================ function myFunction() { if (true) { console.log(); } return 1; } ================================================ FILE: semantic/test/fixtures/javascript/toc/erroneous-duplicate-method.A.js ================================================ /* @flow */ import $ from '../jquery' import cast from '../typecast' import {on} from 'delegated-events' import {submit} from '../form' let allowSubmit = false function performHealthcheck() { const repoName = cast(document.getElementById('showcase_item_name_with_owner'), HTMLInputElement).value const submitButton = cast(document.getElementById('submit'), HTMLButtonElement) const hiddenForm = cast(document.getElementsByClassName('js-submit-health-check')[0], HTMLFormElement) const targetRepoName = cast(document.getElementById('repo_name'), HTMLInputElement) document.getElementById("js-health").innerHTML = "Performing health check..." targetRepoName.value = repoName submitButton.disabled = false allowSubmit = true submit(hiddenForm) } on('submit', '#new_showcase_item', function(e) { if (!allowSubmit) { e.preventDefault() } }) $(document).on('ajaxSuccess', '.js-health', function(event, xhr, settings, data) { this.innerHTML = data }) on('focusout', '#showcase_item_name_with_owner', function() { performHealthcheck() }) on('focusin', '#showcase_item_body', function() { if (cast(document.getElementById('showcase_item_name_with_owner'), HTMLInputElement).type === 'hidden') { performHealthcheck() } }) ================================================ FILE: semantic/test/fixtures/javascript/toc/erroneous-duplicate-method.B.js ================================================ /* @flow */ import cast from '../typecast' import {changeValue} from '../form' import {fetchSafeDocumentFragment} from '../fetch' import {observe} from '../observe' function performHealthCheck(container, repoName) { const formCheck = cast(document.querySelector('.js-repo-health-check'), HTMLFormElement) const nameToCheck = cast(formCheck.querySelector('.js-repo-health-name'), HTMLInputElement) nameToCheck.value = repoName const completedIndicator = cast(container.querySelector('.js-repo-health-check-completed'), HTMLInputElement) changeValue(completedIndicator, '') container.classList.remove('d-none') container.classList.add('is-loading') return fetchSafeDocumentFragment(document, formCheck.action, { method: 'POST', body: new FormData(formCheck), }).then(html => { const results = cast(container.querySelector('.js-repo-health-results'), HTMLElement) results.innerHTML = '' results.appendChild(html) container.classList.remove('is-loading') changeValue(completedIndicator, '1') }) } observe('.js-repo-health', function(container: HTMLElement) { const form = cast(container.closest('form'), HTMLFormElement) const repoInput = cast(form.querySelector('.js-repo-name'), HTMLInputElement) if (repoInput.type === 'hidden') { const description = cast(form.querySelector('.js-comment-field'), HTMLTextAreaElement) description.addEventListener('focus', () => { performHealthCheck(container, repoInput.value) }) } else { repoInput.addEventListener('change', () => { performHealthCheck(container, repoInput.value) }) } }) ================================================ FILE: semantic/test/fixtures/javascript/toc/starts-with-newline.js ================================================ //Выберем файлы по нужному пути ================================================ FILE: semantic/test/fixtures/json/corpus/array.A.json ================================================ [1, 3, 3, 5, 7] ================================================ FILE: semantic/test/fixtures/json/corpus/array.B.json ================================================ [2, 3, 4, 5, 6] ================================================ FILE: semantic/test/fixtures/json/corpus/array.parseA.txt ================================================ (Document (Value (Array (Value (Number "1")) (Value (Number "3")) (Value (Number "3")) (Value (Number "5")) (Value (Number "7"))))) ================================================ FILE: semantic/test/fixtures/json/corpus/array.parseB.txt ================================================ (Document (Value (Array (Value (Number "2")) (Value (Number "3")) (Value (Number "4")) (Value (Number "5")) (Value (Number "6"))))) ================================================ FILE: semantic/test/fixtures/json/corpus/boolean.A.json ================================================ [true] ================================================ FILE: semantic/test/fixtures/json/corpus/boolean.B.json ================================================ [false] ================================================ FILE: semantic/test/fixtures/json/corpus/boolean.parseA.txt ================================================ (Document (Value (Array (Value (True "true"))))) ================================================ FILE: semantic/test/fixtures/json/corpus/boolean.parseB.txt ================================================ (Document (Value (Array (Value (False "false"))))) ================================================ FILE: semantic/test/fixtures/json/corpus/hash.A.json ================================================ {"a": 1, "b": 2, "c": 3, "d": 4} ================================================ FILE: semantic/test/fixtures/json/corpus/hash.B.json ================================================ {"b": 2, "c'": 3, "d": 5, "e": 5} ================================================ FILE: semantic/test/fixtures/json/corpus/hash.parseA.txt ================================================ (Document (Value (Object (Pair (Value (Number "1")) (String (StringContent))) (Pair (Value (Number "2")) (String (StringContent))) (Pair (Value (Number "3")) (String (StringContent))) (Pair (Value (Number "4")) (String (StringContent)))))) ================================================ FILE: semantic/test/fixtures/json/corpus/hash.parseB.txt ================================================ (Document (Value (Object (Pair (Value (Number "2")) (String (StringContent))) (Pair (Value (Number "3")) (String (StringContent))) (Pair (Value (Number "5")) (String (StringContent))) (Pair (Value (Number "5")) (String (StringContent)))))) ================================================ FILE: semantic/test/fixtures/json/corpus/null.A.json ================================================ [null] ================================================ FILE: semantic/test/fixtures/json/corpus/null.B.json ================================================ [null] ================================================ FILE: semantic/test/fixtures/json/corpus/null.parseA.txt ================================================ (Document (Value (Array (Value (Null "null"))))) ================================================ FILE: semantic/test/fixtures/json/corpus/null.parseB.txt ================================================ (Document (Value (Array (Value (Null "null"))))) ================================================ FILE: semantic/test/fixtures/json/corpus/number.A.json ================================================ [1] ================================================ FILE: semantic/test/fixtures/json/corpus/number.B.json ================================================ [-1] ================================================ FILE: semantic/test/fixtures/json/corpus/number.parseA.txt ================================================ (Document (Value (Array (Value (Number "1"))))) ================================================ FILE: semantic/test/fixtures/json/corpus/number.parseB.txt ================================================ (Document (Value (Array (Value (Number "-1"))))) ================================================ FILE: semantic/test/fixtures/json/corpus/string.A.json ================================================ ["hello"] ================================================ FILE: semantic/test/fixtures/json/corpus/string.B.json ================================================ ["world"] ================================================ FILE: semantic/test/fixtures/json/corpus/string.parseA.txt ================================================ (Document (Value (Array (Value (String (StringContent)))))) ================================================ FILE: semantic/test/fixtures/json/corpus/string.parseB.txt ================================================ (Document (Value (Array (Value (String (StringContent)))))) ================================================ FILE: semantic/test/fixtures/json/rewriting/add_keys.json ================================================ { "fore": "aft", "dang": {"dude": "yeah"}, "100": "one hundred", "test": {} } ================================================ FILE: semantic/test/fixtures/json/rewriting/add_keys_expected.json ================================================ { "fore": "aft", "dang": {"dude": "yeah"}, "100": "one hundred", "test": { "hi": "bye" } } ================================================ FILE: semantic/test/fixtures/markdown/corpus/example.A.md ================================================ a b ================================================ FILE: semantic/test/fixtures/markdown/toc/headings.A.md ================================================ # Introduction one, two, three # One Just some text ## Two abc ================================================ FILE: semantic/test/fixtures/markdown/toc/headings.B.md ================================================ # One Just some text ## Two xyz ### This heading is new more text Final === ================================================ FILE: semantic/test/fixtures/php/analysis/bar.php ================================================ (Identifier) } (Empty)) (Context (Comment) { (Call {-(Identifier)-} {-(Identifier)-} {-(Identifier)-} {-(Empty)-}) ->(Empty) })) ================================================ FILE: semantic/test/fixtures/python/corpus/assert-statement.diffB-A.txt ================================================ (Statements {+(Call {+(Identifier)+} {+(Identifier)+} {+(Empty)+})+} {+(Context {+(Comment)+} (Call (Identifier) {+(Identifier)+} (Identifier) {-(Identifier)-} (Empty)))+} {-(Call {-(Identifier)-} {-(Identifier)-} {-(Empty)-})-} {-(Context {-(Comment)-} {-(Empty)-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/assert-statement.parseA.txt ================================================ (Module (SimpleStatement (AssertStatement (Expression (PrimaryExpression (Identifier "a"))))) (SimpleStatement (AssertStatement (Expression (PrimaryExpression (Identifier "b"))) (Expression (PrimaryExpression (Identifier "c")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/assert-statement.parseB.txt ================================================ (Module (SimpleStatement (AssertStatement (Expression (PrimaryExpression (Identifier "c"))) (Expression (PrimaryExpression (Identifier "a"))))) (SimpleStatement (AssertStatement (Expression (PrimaryExpression (Identifier "b")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/assignment.A.py ================================================ a = 1 a, b = 1, 2 a, = 1, 2 ================================================ FILE: semantic/test/fixtures/python/corpus/assignment.B.py ================================================ a, b = 2, 1 c = 1 b, = 1, 2 ================================================ FILE: semantic/test/fixtures/python/corpus/assignment.diffA-B.txt ================================================ (Statements {+(Assignment {+(Statements {+(Identifier)+} {+(Identifier)+})+} {+(Statements {+(Integer)+} {+(Integer)+})+})+} (Assignment { (Identifier) ->(Identifier) } (Integer)) (Assignment { (Statements {-(Identifier)-} {-(Identifier)-}) ->(Identifier) } (Statements (Integer) (Integer))) {-(Assignment {-(Identifier)-} {-(Statements {-(Integer)-} {-(Integer)-})-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/assignment.diffB-A.txt ================================================ (Statements {+(Assignment {+(Identifier)+} {+(Integer)+})+} (Assignment (Statements (Identifier) (Identifier)) (Statements {-(Integer)-} (Integer) {+(Integer)+})) (Assignment { (Identifier) ->(Identifier) } { (Integer) ->(Statements {+(Integer)+} {+(Integer)+}) }) {-(Assignment {-(Identifier)-} {-(Statements {-(Integer)-} {-(Integer)-})-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/assignment.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Assignment (ExpressionList (Expression (PrimaryExpression (Identifier "a")))) (ExpressionList (Expression (PrimaryExpression (Integer "1"))))))) (SimpleStatement (ExpressionStatement (Assignment (ExpressionList (Expression (PrimaryExpression (Identifier "a"))) (Expression (PrimaryExpression (Identifier "b")))) (ExpressionList (Expression (PrimaryExpression (Integer "1"))) (Expression (PrimaryExpression (Integer "2"))))))) (SimpleStatement (ExpressionStatement (Assignment (ExpressionList (Expression (PrimaryExpression (Identifier "a")))) (ExpressionList (Expression (PrimaryExpression (Integer "1"))) (Expression (PrimaryExpression (Integer "2")))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/assignment.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Assignment (ExpressionList (Expression (PrimaryExpression (Identifier "a"))) (Expression (PrimaryExpression (Identifier "b")))) (ExpressionList (Expression (PrimaryExpression (Integer "2"))) (Expression (PrimaryExpression (Integer "1"))))))) (SimpleStatement (ExpressionStatement (Assignment (ExpressionList (Expression (PrimaryExpression (Identifier "c")))) (ExpressionList (Expression (PrimaryExpression (Integer "1"))))))) (SimpleStatement (ExpressionStatement (Assignment (ExpressionList (Expression (PrimaryExpression (Identifier "b")))) (ExpressionList (Expression (PrimaryExpression (Integer "1"))) (Expression (PrimaryExpression (Integer "2")))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/async-function-definition.A.py ================================================ async def a(): b async def b(h, i,): i async def c(d): d ================================================ FILE: semantic/test/fixtures/python/corpus/async-function-definition.B.py ================================================ async def g(i, j,): j async def a(): c async def d(c): e ================================================ FILE: semantic/test/fixtures/python/corpus/async-function-definition.diffA-B.txt ================================================ (Statements {+(Function {+(Identifier)+} {+(RequiredParameter {+(Identifier)+})+} {+(RequiredParameter {+(Identifier)+})+} {+(Statements {+(Identifier)+})+})+} (Function (Identifier) (Statements { (Identifier) ->(Identifier) })) (Function { (Identifier) ->(Identifier) } (RequiredParameter { (Identifier) ->(Identifier) }) {-(RequiredParameter {-(Identifier)-})-} (Statements { (Identifier) ->(Identifier) })) {-(Function {-(Identifier)-} {-(RequiredParameter {-(Identifier)-})-} {-(Statements {-(Identifier)-})-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/async-function-definition.diffB-A.txt ================================================ (Statements {-(Function {-(Identifier)-} {-(RequiredParameter {-(Identifier)-})-} {-(RequiredParameter {-(Identifier)-})-} {-(Statements {-(Identifier)-})-})-} (Function (Identifier) (Statements { (Identifier) ->(Identifier) })) (Function { (Identifier) ->(Identifier) } (RequiredParameter { (Identifier) ->(Identifier) }) {+(RequiredParameter {+(Identifier)+})+} (Statements { (Identifier) ->(Identifier) })) {+(Function {+(Identifier)+} {+(RequiredParameter {+(Identifier)+})+} {+(Statements {+(Identifier)+})+})+}) ================================================ FILE: semantic/test/fixtures/python/corpus/async-function-definition.parseA.txt ================================================ (Module (CompoundStatement (FunctionDefinition (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "b")))))) (Identifier "a") (Parameters))) (CompoundStatement (FunctionDefinition (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "i")))))) (Identifier "b") (Parameters (Parameter (Identifier "h")) (Parameter (Identifier "i"))))) (CompoundStatement (FunctionDefinition (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "d")))))) (Identifier "c") (Parameters (Parameter (Identifier "d")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/async-function-definition.parseB.txt ================================================ (Module (CompoundStatement (FunctionDefinition (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "j")))))) (Identifier "g") (Parameters (Parameter (Identifier "i")) (Parameter (Identifier "j"))))) (CompoundStatement (FunctionDefinition (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "c")))))) (Identifier "a") (Parameters))) (CompoundStatement (FunctionDefinition (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "e")))))) (Identifier "d") (Parameters (Parameter (Identifier "c")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/attribute.A.py ================================================ a.b ================================================ FILE: semantic/test/fixtures/python/corpus/attribute.B.py ================================================ a.b.c ================================================ FILE: semantic/test/fixtures/python/corpus/attribute.diffA-B.txt ================================================ (Statements (MemberAccess { (Identifier) ->(MemberAccess {+(Identifier)+} {+(Identifier)+}) } { (Identifier) ->(Identifier) })) ================================================ FILE: semantic/test/fixtures/python/corpus/attribute.diffB-A.txt ================================================ (Statements (MemberAccess { (MemberAccess {-(Identifier)-} {-(Identifier)-}) ->(Identifier) } { (Identifier) ->(Identifier) })) ================================================ FILE: semantic/test/fixtures/python/corpus/attribute.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Attribute (Identifier "b") (PrimaryExpression (Identifier "a")))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/attribute.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Attribute (Identifier "c") (PrimaryExpression (Attribute (Identifier "b") (PrimaryExpression (Identifier "a")))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/augmented-assignment.A.py ================================================ a += 1 b >>= 2 c //= 1 ================================================ FILE: semantic/test/fixtures/python/corpus/augmented-assignment.B.py ================================================ a >>= 2 d //= 1 b += 1 ================================================ FILE: semantic/test/fixtures/python/corpus/augmented-assignment.diffA-B.txt ================================================ (Statements (AugmentedAssignment { (Plus {-(Identifier)-} {-(Integer)-}) ->(RShift {+(Identifier)+} {+(Integer)+}) }) {+(AugmentedAssignment {+(DividedBy {+(Identifier)+} {+(Integer)+})+})+} (AugmentedAssignment { (RShift {-(Identifier)-} {-(Integer)-}) ->(Plus {+(Identifier)+} {+(Integer)+}) }) {-(AugmentedAssignment {-(DividedBy {-(Identifier)-} {-(Integer)-})-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/augmented-assignment.diffB-A.txt ================================================ (Statements (AugmentedAssignment { (RShift {-(Identifier)-} {-(Integer)-}) ->(Plus {+(Identifier)+} {+(Integer)+}) }) {+(AugmentedAssignment {+(RShift {+(Identifier)+} {+(Integer)+})+})+} {+(AugmentedAssignment {+(DividedBy {+(Identifier)+} {+(Integer)+})+})+} {-(AugmentedAssignment {-(DividedBy {-(Identifier)-} {-(Integer)-})-})-} {-(AugmentedAssignment {-(Plus {-(Identifier)-} {-(Integer)-})-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/augmented-assignment.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (AugmentedAssignment (Token) (ExpressionList (Expression (PrimaryExpression (Identifier "a")))) (ExpressionList (Expression (PrimaryExpression (Integer "1"))))))) (SimpleStatement (ExpressionStatement (AugmentedAssignment (Token) (ExpressionList (Expression (PrimaryExpression (Identifier "b")))) (ExpressionList (Expression (PrimaryExpression (Integer "2"))))))) (SimpleStatement (ExpressionStatement (AugmentedAssignment (Token) (ExpressionList (Expression (PrimaryExpression (Identifier "c")))) (ExpressionList (Expression (PrimaryExpression (Integer "1")))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/augmented-assignment.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (AugmentedAssignment (Token) (ExpressionList (Expression (PrimaryExpression (Identifier "a")))) (ExpressionList (Expression (PrimaryExpression (Integer "2"))))))) (SimpleStatement (ExpressionStatement (AugmentedAssignment (Token) (ExpressionList (Expression (PrimaryExpression (Identifier "d")))) (ExpressionList (Expression (PrimaryExpression (Integer "1"))))))) (SimpleStatement (ExpressionStatement (AugmentedAssignment (Token) (ExpressionList (Expression (PrimaryExpression (Identifier "b")))) (ExpressionList (Expression (PrimaryExpression (Integer "1")))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/await.A.py ================================================ await 1 + 1 await b ================================================ FILE: semantic/test/fixtures/python/corpus/await.B.py ================================================ await 2 + 1 await c ================================================ FILE: semantic/test/fixtures/python/corpus/await.diffA-B.txt ================================================ (Statements (Call (Identifier) (Plus { (Integer) ->(Integer) } (Integer)) (Empty)) (Call (Identifier) { (Identifier) ->(Identifier) } (Empty))) ================================================ FILE: semantic/test/fixtures/python/corpus/await.diffB-A.txt ================================================ (Statements (Call (Identifier) (Plus { (Integer) ->(Integer) } (Integer)) (Empty)) (Call (Identifier) { (Identifier) ->(Identifier) } (Empty))) ================================================ FILE: semantic/test/fixtures/python/corpus/await.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (Await (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Integer "1")) (PrimaryExpression (Integer "1"))))))))) (SimpleStatement (ExpressionStatement (Expression (Await (Expression (PrimaryExpression (Identifier "b")))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/await.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (Await (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Integer "2")) (PrimaryExpression (Integer "1"))))))))) (SimpleStatement (ExpressionStatement (Expression (Await (Expression (PrimaryExpression (Identifier "c")))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/binary-operator.A.py ================================================ a + b c - d e * f g / h i % j k // l m ** n o | p q & r s ^ t u << v w >> x ================================================ FILE: semantic/test/fixtures/python/corpus/binary-operator.B.py ================================================ a >> b c << d e ^ f g & h i % j k ** l m // n o % p q / r s * t u - v w + x ================================================ FILE: semantic/test/fixtures/python/corpus/binary-operator.diffA-B.txt ================================================ (Statements {+(RShift {+(Identifier)+} {+(Identifier)+})+} {+(LShift {+(Identifier)+} {+(Identifier)+})+} {+(BXOr {+(Identifier)+} {+(Identifier)+})+} {+(BAnd {+(Identifier)+} {+(Identifier)+})+} {-(Plus {-(Identifier)-} {-(Identifier)-})-} {-(Minus {-(Identifier)-} {-(Identifier)-})-} {-(Times {-(Identifier)-} {-(Identifier)-})-} {-(DividedBy {-(Identifier)-} {-(Identifier)-})-} (Modulo (Identifier) (Identifier)) {+(Power {+(Identifier)+} {+(Identifier)+})+} {+(FloorDivision {+(Identifier)+} {+(Identifier)+})+} {+(Modulo {+(Identifier)+} {+(Identifier)+})+} {+(DividedBy {+(Identifier)+} {+(Identifier)+})+} {+(Times {+(Identifier)+} {+(Identifier)+})+} {+(Minus {+(Identifier)+} {+(Identifier)+})+} {+(Plus {+(Identifier)+} {+(Identifier)+})+} {-(FloorDivision {-(Identifier)-} {-(Identifier)-})-} {-(Power {-(Identifier)-} {-(Identifier)-})-} {-(BOr {-(Identifier)-} {-(Identifier)-})-} {-(BAnd {-(Identifier)-} {-(Identifier)-})-} {-(BXOr {-(Identifier)-} {-(Identifier)-})-} {-(LShift {-(Identifier)-} {-(Identifier)-})-} {-(RShift {-(Identifier)-} {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/binary-operator.diffB-A.txt ================================================ (Statements {+(Plus {+(Identifier)+} {+(Identifier)+})+} {+(Minus {+(Identifier)+} {+(Identifier)+})+} {+(Times {+(Identifier)+} {+(Identifier)+})+} {+(DividedBy {+(Identifier)+} {+(Identifier)+})+} {-(RShift {-(Identifier)-} {-(Identifier)-})-} {-(LShift {-(Identifier)-} {-(Identifier)-})-} {-(BXOr {-(Identifier)-} {-(Identifier)-})-} {-(BAnd {-(Identifier)-} {-(Identifier)-})-} (Modulo (Identifier) (Identifier)) {+(FloorDivision {+(Identifier)+} {+(Identifier)+})+} {+(Power {+(Identifier)+} {+(Identifier)+})+} {+(BOr {+(Identifier)+} {+(Identifier)+})+} {+(BAnd {+(Identifier)+} {+(Identifier)+})+} {+(BXOr {+(Identifier)+} {+(Identifier)+})+} {+(LShift {+(Identifier)+} {+(Identifier)+})+} {+(RShift {+(Identifier)+} {+(Identifier)+})+} {-(Power {-(Identifier)-} {-(Identifier)-})-} {-(FloorDivision {-(Identifier)-} {-(Identifier)-})-} {-(Modulo {-(Identifier)-} {-(Identifier)-})-} {-(DividedBy {-(Identifier)-} {-(Identifier)-})-} {-(Times {-(Identifier)-} {-(Identifier)-})-} {-(Minus {-(Identifier)-} {-(Identifier)-})-} {-(Plus {-(Identifier)-} {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/binary-operator.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "a")) (PrimaryExpression (Identifier "b"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "c")) (PrimaryExpression (Identifier "d"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "e")) (PrimaryExpression (Identifier "f"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "g")) (PrimaryExpression (Identifier "h"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "i")) (PrimaryExpression (Identifier "j"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "k")) (PrimaryExpression (Identifier "l"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "m")) (PrimaryExpression (Identifier "n"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "o")) (PrimaryExpression (Identifier "p"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "q")) (PrimaryExpression (Identifier "r"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "s")) (PrimaryExpression (Identifier "t"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "u")) (PrimaryExpression (Identifier "v"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "w")) (PrimaryExpression (Identifier "x")))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/binary-operator.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "a")) (PrimaryExpression (Identifier "b"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "c")) (PrimaryExpression (Identifier "d"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "e")) (PrimaryExpression (Identifier "f"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "g")) (PrimaryExpression (Identifier "h"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "i")) (PrimaryExpression (Identifier "j"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "k")) (PrimaryExpression (Identifier "l"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "m")) (PrimaryExpression (Identifier "n"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "o")) (PrimaryExpression (Identifier "p"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "q")) (PrimaryExpression (Identifier "r"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "s")) (PrimaryExpression (Identifier "t"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "u")) (PrimaryExpression (Identifier "v"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "w")) (PrimaryExpression (Identifier "x")))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/boolean-operator.A.py ================================================ foo and bar baz or buzz ================================================ FILE: semantic/test/fixtures/python/corpus/boolean-operator.B.py ================================================ foo or bar baz and buzz ================================================ FILE: semantic/test/fixtures/python/corpus/boolean-operator.diffA-B.txt ================================================ (Statements {+(Or {+(Identifier)+} {+(Identifier)+})+} (And { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) {-(Or {-(Identifier)-} {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/boolean-operator.diffB-A.txt ================================================ (Statements {+(And {+(Identifier)+} {+(Identifier)+})+} (Or { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) {-(And {-(Identifier)-} {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/boolean-operator.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (BooleanOperator (Token) (Expression (PrimaryExpression (Identifier "foo"))) (Expression (PrimaryExpression (Identifier "bar"))))))) (SimpleStatement (ExpressionStatement (Expression (BooleanOperator (Token) (Expression (PrimaryExpression (Identifier "baz"))) (Expression (PrimaryExpression (Identifier "buzz")))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/boolean-operator.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (BooleanOperator (Token) (Expression (PrimaryExpression (Identifier "foo"))) (Expression (PrimaryExpression (Identifier "bar"))))))) (SimpleStatement (ExpressionStatement (Expression (BooleanOperator (Token) (Expression (PrimaryExpression (Identifier "baz"))) (Expression (PrimaryExpression (Identifier "buzz")))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/boolean.A.py ================================================ False True True ================================================ FILE: semantic/test/fixtures/python/corpus/boolean.B.py ================================================ True False False ================================================ FILE: semantic/test/fixtures/python/corpus/boolean.diffA-B.txt ================================================ (Statements {-(Boolean)-} (Boolean) { (Boolean) ->(Boolean) } {+(Boolean)+}) ================================================ FILE: semantic/test/fixtures/python/corpus/boolean.diffB-A.txt ================================================ (Statements {-(Boolean)-} (Boolean) { (Boolean) ->(Boolean) } {+(Boolean)+}) ================================================ FILE: semantic/test/fixtures/python/corpus/boolean.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (False "False"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (True "True"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (True "True")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/boolean.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (True "True"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (False "False"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (False "False")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/break-statement.A.py ================================================ break ================================================ FILE: semantic/test/fixtures/python/corpus/break-statement.B.py ================================================ break break ================================================ FILE: semantic/test/fixtures/python/corpus/break-statement.diffA-B.txt ================================================ (Statements (Break (Empty)) {+(Break {+(Empty)+})+}) ================================================ FILE: semantic/test/fixtures/python/corpus/break-statement.diffB-A.txt ================================================ (Statements (Break (Empty)) {-(Break {-(Empty)-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/break-statement.parseA.txt ================================================ (Module (SimpleStatement (BreakStatement "break"))) ================================================ FILE: semantic/test/fixtures/python/corpus/break-statement.parseB.txt ================================================ (Module (SimpleStatement (BreakStatement "break")) (SimpleStatement (BreakStatement "break"))) ================================================ FILE: semantic/test/fixtures/python/corpus/call.A.py ================================================ foo(a) bar() bazz(c,d) ================================================ FILE: semantic/test/fixtures/python/corpus/call.B.py ================================================ foo() bar(a) bazz(d,c) sys.exit(1) ================================================ FILE: semantic/test/fixtures/python/corpus/call.diffA-B.txt ================================================ (Statements (Call (Identifier) {-(Identifier)-} (Empty)) (Call (Identifier) {+(Identifier)+} (Empty)) (Call (Identifier) {-(Identifier)-} (Identifier) {+(Identifier)+} (Empty)) {+(Call {+(MemberAccess {+(Identifier)+} {+(Identifier)+})+} {+(Integer)+} {+(Empty)+})+}) ================================================ FILE: semantic/test/fixtures/python/corpus/call.diffB-A.txt ================================================ (Statements (Call (Identifier) {+(Identifier)+} (Empty)) (Call (Identifier) {-(Identifier)-} (Empty)) (Call (Identifier) {-(Identifier)-} (Identifier) {+(Identifier)+} (Empty)) {-(Call {-(MemberAccess {-(Identifier)-} {-(Identifier)-})-} {-(Integer)-} {-(Empty)-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/call.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Call (PrimaryExpression (Identifier "foo")) (ArgumentList (Expression (PrimaryExpression (Identifier "a"))))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Call (PrimaryExpression (Identifier "bar")) (ArgumentList)))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Call (PrimaryExpression (Identifier "bazz")) (ArgumentList (Expression (PrimaryExpression (Identifier "c"))) (Expression (PrimaryExpression (Identifier "d")))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/call.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Call (PrimaryExpression (Identifier "foo")) (ArgumentList)))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Call (PrimaryExpression (Identifier "bar")) (ArgumentList (Expression (PrimaryExpression (Identifier "a"))))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Call (PrimaryExpression (Identifier "bazz")) (ArgumentList (Expression (PrimaryExpression (Identifier "d"))) (Expression (PrimaryExpression (Identifier "c"))))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Call (PrimaryExpression (Attribute (Identifier "exit") (PrimaryExpression (Identifier "sys")))) (ArgumentList (Expression (PrimaryExpression (Integer "1")))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/class-definition.A.py ================================================ class A: def b(self): return c class C(): pass class B(method1): def method1(self): return class D(e): f: str g: Optional[int] ================================================ FILE: semantic/test/fixtures/python/corpus/class-definition.B.py ================================================ class D(method1): def method1(self): return class B: def b(self): return c class E(e): g: str h: Optional[int] ================================================ FILE: semantic/test/fixtures/python/corpus/class-definition.diffA-B.txt ================================================ (Statements {-(Class {-(Identifier)-} {-(Statements {-(Function {-(Identifier)-} {-(RequiredParameter {-(Identifier)-})-} {-(Statements {-(Return {-(Identifier)-})-})-})-})-})-} {-(Class {-(Identifier)-} {-(Statements {-(NoOp {-(Empty)-})-})-})-} {-(Class {-(Identifier)-} {-(Identifier)-} {-(Statements {-(Function {-(Identifier)-} {-(RequiredParameter {-(Identifier)-})-} {-(Statements {-(Return {-(Empty)-})-})-})-})-})-} (Class (Identifier) { (Identifier) ->(Identifier) } (Statements {+(Function {+(Identifier)+} {+(RequiredParameter {+(Identifier)+})+} {+(Statements {+(Return {+(Empty)+})+})+})+} {-(Assignment {-(Identifier)-} {-(Identifier)-} {-(Empty)-})-} {-(Assignment {-(Subscript {-(Identifier)-} {-(Identifier)-})-} {-(Identifier)-} {-(Empty)-})-})) {+(Class {+(Identifier)+} {+(Statements {+(Function {+(Identifier)+} {+(RequiredParameter {+(Identifier)+})+} {+(Statements {+(Return {+(Identifier)+})+})+})+})+})+} {+(Class {+(Identifier)+} {+(Identifier)+} {+(Statements {+(Assignment {+(Identifier)+} {+(Identifier)+} {+(Empty)+})+} {+(Assignment {+(Subscript {+(Identifier)+} {+(Identifier)+})+} {+(Identifier)+} {+(Empty)+})+})+})+}) ================================================ FILE: semantic/test/fixtures/python/corpus/class-definition.diffB-A.txt ================================================ (Statements (Class { (Identifier) ->(Identifier) } {-(Identifier)-} (Statements (Function { (Identifier) ->(Identifier) } (RequiredParameter (Identifier)) (Statements (Return { (Empty) ->(Identifier) }))))) {+(Class {+(Identifier)+} {+(Statements {+(NoOp {+(Empty)+})+})+})+} (Class (Identifier) {+(Identifier)+} (Statements (Function { (Identifier) ->(Identifier) } (RequiredParameter (Identifier)) (Statements (Return { (Identifier) ->(Empty) }))))) (Class { (Identifier) ->(Identifier) } (Identifier) (Statements (Assignment (Identifier) { (Identifier) ->(Identifier) } (Empty)) (Assignment (Subscript (Identifier) (Identifier)) { (Identifier) ->(Identifier) } (Empty))))) ================================================ FILE: semantic/test/fixtures/python/corpus/class-definition.parseA.txt ================================================ (Module (CompoundStatement (ClassDefinition (Block (CompoundStatement (FunctionDefinition (Block (SimpleStatement (ReturnStatement (ExpressionList (Expression (PrimaryExpression (Identifier "c"))))))) (Identifier "b") (Parameters (Parameter (Identifier "self")))))) (Identifier "A"))) (CompoundStatement (ClassDefinition (Block (SimpleStatement (PassStatement "pass"))) (ArgumentList) (Identifier "C"))) (CompoundStatement (ClassDefinition (Block (CompoundStatement (FunctionDefinition (Block (SimpleStatement (ReturnStatement))) (Identifier "method1") (Parameters (Parameter (Identifier "self")))))) (ArgumentList (Expression (PrimaryExpression (Identifier "method1")))) (Identifier "B"))) (CompoundStatement (ClassDefinition (Block (SimpleStatement (ExpressionStatement (Assignment (ExpressionList (Expression (PrimaryExpression (Identifier "f")))) (Type (Expression (PrimaryExpression (Identifier "str"))))))) (SimpleStatement (ExpressionStatement (Assignment (ExpressionList (Expression (PrimaryExpression (Identifier "g")))) (Type (Expression (PrimaryExpression (Subscript (Expression (PrimaryExpression (Identifier "int"))) (PrimaryExpression (Identifier "Optional")))))))))) (ArgumentList (Expression (PrimaryExpression (Identifier "e")))) (Identifier "D")))) ================================================ FILE: semantic/test/fixtures/python/corpus/class-definition.parseB.txt ================================================ (Module (CompoundStatement (ClassDefinition (Block (CompoundStatement (FunctionDefinition (Block (SimpleStatement (ReturnStatement))) (Identifier "method1") (Parameters (Parameter (Identifier "self")))))) (ArgumentList (Expression (PrimaryExpression (Identifier "method1")))) (Identifier "D"))) (CompoundStatement (ClassDefinition (Block (CompoundStatement (FunctionDefinition (Block (SimpleStatement (ReturnStatement (ExpressionList (Expression (PrimaryExpression (Identifier "c"))))))) (Identifier "b") (Parameters (Parameter (Identifier "self")))))) (Identifier "B"))) (CompoundStatement (ClassDefinition (Block (SimpleStatement (ExpressionStatement (Assignment (ExpressionList (Expression (PrimaryExpression (Identifier "g")))) (Type (Expression (PrimaryExpression (Identifier "str"))))))) (SimpleStatement (ExpressionStatement (Assignment (ExpressionList (Expression (PrimaryExpression (Identifier "h")))) (Type (Expression (PrimaryExpression (Subscript (Expression (PrimaryExpression (Identifier "int"))) (PrimaryExpression (Identifier "Optional")))))))))) (ArgumentList (Expression (PrimaryExpression (Identifier "e")))) (Identifier "E")))) ================================================ FILE: semantic/test/fixtures/python/corpus/comment.A.py ================================================ # first comment # second comment ================================================ FILE: semantic/test/fixtures/python/corpus/comment.B.py ================================================ # second comment # first comment # hi ================================================ FILE: semantic/test/fixtures/python/corpus/comment.diffA-B.txt ================================================ (Statements (Context {-(Comment)-} (Comment) {+(Comment)+} {+(Comment)+} (Empty))) ================================================ FILE: semantic/test/fixtures/python/corpus/comment.diffB-A.txt ================================================ (Statements (Context {-(Comment)-} (Comment) { (Comment) ->(Comment) } (Empty))) ================================================ FILE: semantic/test/fixtures/python/corpus/comment.parseA.txt ================================================ (Module) ================================================ FILE: semantic/test/fixtures/python/corpus/comment.parseB.txt ================================================ (Module) ================================================ FILE: semantic/test/fixtures/python/corpus/comparison-operator.A.py ================================================ a < b c <= d e != f g >= h i > j k <> l m in n o is p q not in r s is not t ================================================ FILE: semantic/test/fixtures/python/corpus/comparison-operator.B.py ================================================ a is not b c not in d e is f g in h i <> j k > l m >= n o != p q <= r s < t ================================================ FILE: semantic/test/fixtures/python/corpus/comparison-operator.diffA-B.txt ================================================ (Statements {+(Not {+(Equal {+(Identifier)+} {+(Identifier)+})+})+} {+(Not {+(Member {+(Identifier)+} {+(Identifier)+})+})+} {+(Equal {+(Identifier)+} {+(Identifier)+})+} {+(Member {+(Identifier)+} {+(Identifier)+})+} {+(Not {+(Equal {+(Identifier)+} {+(Identifier)+})+})+} {+(GreaterThan {+(Identifier)+} {+(Identifier)+})+} {+(GreaterThanEqual {+(Identifier)+} {+(Identifier)+})+} {+(Not {+(Equal {+(Identifier)+} {+(Identifier)+})+})+} {+(LessThanEqual {+(Identifier)+} {+(Identifier)+})+} {+(LessThan {+(Identifier)+} {+(Identifier)+})+} {-(LessThan {-(Identifier)-} {-(Identifier)-})-} {-(LessThanEqual {-(Identifier)-} {-(Identifier)-})-} {-(Not {-(Equal {-(Identifier)-} {-(Identifier)-})-})-} {-(GreaterThanEqual {-(Identifier)-} {-(Identifier)-})-} {-(GreaterThan {-(Identifier)-} {-(Identifier)-})-} {-(Not {-(Equal {-(Identifier)-} {-(Identifier)-})-})-} {-(Member {-(Identifier)-} {-(Identifier)-})-} {-(Equal {-(Identifier)-} {-(Identifier)-})-} {-(Not {-(Member {-(Identifier)-} {-(Identifier)-})-})-} {-(Not {-(Equal {-(Identifier)-} {-(Identifier)-})-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/comparison-operator.diffB-A.txt ================================================ (Statements {+(LessThan {+(Identifier)+} {+(Identifier)+})+} {+(LessThanEqual {+(Identifier)+} {+(Identifier)+})+} {+(Not {+(Equal {+(Identifier)+} {+(Identifier)+})+})+} {+(GreaterThanEqual {+(Identifier)+} {+(Identifier)+})+} {+(GreaterThan {+(Identifier)+} {+(Identifier)+})+} {+(Not {+(Equal {+(Identifier)+} {+(Identifier)+})+})+} {+(Member {+(Identifier)+} {+(Identifier)+})+} {+(Equal {+(Identifier)+} {+(Identifier)+})+} {+(Not {+(Member {+(Identifier)+} {+(Identifier)+})+})+} (Not (Equal { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })) {-(Not {-(Member {-(Identifier)-} {-(Identifier)-})-})-} {-(Equal {-(Identifier)-} {-(Identifier)-})-} {-(Member {-(Identifier)-} {-(Identifier)-})-} {-(Not {-(Equal {-(Identifier)-} {-(Identifier)-})-})-} {-(GreaterThan {-(Identifier)-} {-(Identifier)-})-} {-(GreaterThanEqual {-(Identifier)-} {-(Identifier)-})-} {-(Not {-(Equal {-(Identifier)-} {-(Identifier)-})-})-} {-(LessThanEqual {-(Identifier)-} {-(Identifier)-})-} {-(LessThan {-(Identifier)-} {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/comparison-operator.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (ComparisonOperator (PrimaryExpression (Identifier "a")) (PrimaryExpression (Identifier "b")))))) (SimpleStatement (ExpressionStatement (Expression (ComparisonOperator (PrimaryExpression (Identifier "c")) (PrimaryExpression (Identifier "d")))))) (SimpleStatement (ExpressionStatement (Expression (ComparisonOperator (PrimaryExpression (Identifier "e")) (PrimaryExpression (Identifier "f")))))) (SimpleStatement (ExpressionStatement (Expression (ComparisonOperator (PrimaryExpression (Identifier "g")) (PrimaryExpression (Identifier "h")))))) (SimpleStatement (ExpressionStatement (Expression (ComparisonOperator (PrimaryExpression (Identifier "i")) (PrimaryExpression (Identifier "j")))))) (SimpleStatement (ExpressionStatement (Expression (ComparisonOperator (PrimaryExpression (Identifier "k")) (PrimaryExpression (Identifier "l")))))) (SimpleStatement (ExpressionStatement (Expression (ComparisonOperator (PrimaryExpression (Identifier "m")) (PrimaryExpression (Identifier "n")))))) (SimpleStatement (ExpressionStatement (Expression (ComparisonOperator (PrimaryExpression (Identifier "o")) (PrimaryExpression (Identifier "p")))))) (SimpleStatement (ExpressionStatement (Expression (ComparisonOperator (PrimaryExpression (Identifier "q")) (PrimaryExpression (Identifier "r")))))) (SimpleStatement (ExpressionStatement (Expression (ComparisonOperator (PrimaryExpression (Identifier "s")) (PrimaryExpression (Identifier "t"))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/comparison-operator.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (ComparisonOperator (PrimaryExpression (Identifier "a")) (PrimaryExpression (Identifier "b")))))) (SimpleStatement (ExpressionStatement (Expression (ComparisonOperator (PrimaryExpression (Identifier "c")) (PrimaryExpression (Identifier "d")))))) (SimpleStatement (ExpressionStatement (Expression (ComparisonOperator (PrimaryExpression (Identifier "e")) (PrimaryExpression (Identifier "f")))))) (SimpleStatement (ExpressionStatement (Expression (ComparisonOperator (PrimaryExpression (Identifier "g")) (PrimaryExpression (Identifier "h")))))) (SimpleStatement (ExpressionStatement (Expression (ComparisonOperator (PrimaryExpression (Identifier "i")) (PrimaryExpression (Identifier "j")))))) (SimpleStatement (ExpressionStatement (Expression (ComparisonOperator (PrimaryExpression (Identifier "k")) (PrimaryExpression (Identifier "l")))))) (SimpleStatement (ExpressionStatement (Expression (ComparisonOperator (PrimaryExpression (Identifier "m")) (PrimaryExpression (Identifier "n")))))) (SimpleStatement (ExpressionStatement (Expression (ComparisonOperator (PrimaryExpression (Identifier "o")) (PrimaryExpression (Identifier "p")))))) (SimpleStatement (ExpressionStatement (Expression (ComparisonOperator (PrimaryExpression (Identifier "q")) (PrimaryExpression (Identifier "r")))))) (SimpleStatement (ExpressionStatement (Expression (ComparisonOperator (PrimaryExpression (Identifier "s")) (PrimaryExpression (Identifier "t"))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/concatenated-string.A.py ================================================ "one" "two" "three" ================================================ FILE: semantic/test/fixtures/python/corpus/concatenated-string.B.py ================================================ "two" "one" "four" "three" ================================================ FILE: semantic/test/fixtures/python/corpus/concatenated-string.diffA-B.txt ================================================ (Statements (Statements {-(TextElement)-} (TextElement) {+(TextElement)+} {+(TextElement)+} (TextElement))) ================================================ FILE: semantic/test/fixtures/python/corpus/concatenated-string.diffB-A.txt ================================================ (Statements (Statements {-(TextElement)-} (TextElement) { (TextElement) ->(TextElement) } (TextElement))) ================================================ FILE: semantic/test/fixtures/python/corpus/concatenated-string.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (ConcatenatedString (String) (String) (String))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/concatenated-string.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (ConcatenatedString (String) (String) (String) (String))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/conditional-expression.A.py ================================================ foo() if a else g b = c if d else e ================================================ FILE: semantic/test/fixtures/python/corpus/conditional-expression.B.py ================================================ e = d if f else g foo() if b else c() ================================================ FILE: semantic/test/fixtures/python/corpus/conditional-expression.diffA-B.txt ================================================ (Statements {+(Assignment {+(Identifier)+} {+(If {+(Identifier)+} {+(Identifier)+} {+(Identifier)+})+})+} (If { (Identifier) ->(Identifier) } (Call (Identifier) (Empty)) { (Identifier) ->(Call {+(Identifier)+} {+(Empty)+}) }) {-(Assignment {-(Identifier)-} {-(If {-(Identifier)-} {-(Identifier)-} {-(Identifier)-})-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/conditional-expression.diffB-A.txt ================================================ (Statements {+(If {+(Identifier)+} {+(Call {+(Identifier)+} {+(Empty)+})+} {+(Identifier)+})+} (Assignment { (Identifier) ->(Identifier) } (If { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })) {-(If {-(Identifier)-} {-(Call {-(Identifier)-} {-(Empty)-})-} {-(Call {-(Identifier)-} {-(Empty)-})-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/conditional-expression.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (ConditionalExpression (Expression (PrimaryExpression (Call (PrimaryExpression (Identifier "foo")) (ArgumentList)))) (Expression (PrimaryExpression (Identifier "a"))) (Expression (PrimaryExpression (Identifier "g"))))))) (SimpleStatement (ExpressionStatement (Assignment (ExpressionList (Expression (PrimaryExpression (Identifier "b")))) (ExpressionList (Expression (ConditionalExpression (Expression (PrimaryExpression (Identifier "c"))) (Expression (PrimaryExpression (Identifier "d"))) (Expression (PrimaryExpression (Identifier "e")))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/conditional-expression.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Assignment (ExpressionList (Expression (PrimaryExpression (Identifier "e")))) (ExpressionList (Expression (ConditionalExpression (Expression (PrimaryExpression (Identifier "d"))) (Expression (PrimaryExpression (Identifier "f"))) (Expression (PrimaryExpression (Identifier "g"))))))))) (SimpleStatement (ExpressionStatement (Expression (ConditionalExpression (Expression (PrimaryExpression (Call (PrimaryExpression (Identifier "foo")) (ArgumentList)))) (Expression (PrimaryExpression (Identifier "b"))) (Expression (PrimaryExpression (Call (PrimaryExpression (Identifier "c")) (ArgumentList))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/continue-statement.A.py ================================================ continue ================================================ FILE: semantic/test/fixtures/python/corpus/continue-statement.B.py ================================================ continue continue ================================================ FILE: semantic/test/fixtures/python/corpus/continue-statement.diffA-B.txt ================================================ (Statements (Continue (Empty)) {+(Continue {+(Empty)+})+}) ================================================ FILE: semantic/test/fixtures/python/corpus/continue-statement.diffB-A.txt ================================================ (Statements (Continue (Empty)) {-(Continue {-(Empty)-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/continue-statement.parseA.txt ================================================ (Module (SimpleStatement (ContinueStatement "continue"))) ================================================ FILE: semantic/test/fixtures/python/corpus/continue-statement.parseB.txt ================================================ (Module (SimpleStatement (ContinueStatement "continue")) (SimpleStatement (ContinueStatement "continue"))) ================================================ FILE: semantic/test/fixtures/python/corpus/decorated-definition.A.py ================================================ @a.b class C: @f() @d(1) @e(2, 3) @a(b=True) @a(*b) @a(**c) @a(1, b=True, *b, **c) def f(): g ================================================ FILE: semantic/test/fixtures/python/corpus/decorated-definition.B.py ================================================ @a.b class D: @f() @b(*b) @c(**c) @a(2, c=True, *a, **d) def f(): g ================================================ FILE: semantic/test/fixtures/python/corpus/decorated-definition.diffA-B.txt ================================================ (Statements (Decorator (Identifier) (Class { (Identifier) ->(Identifier) } (Statements (Decorator (Identifier) (Statements) (Decorator { (Identifier) ->(Identifier) } {+(Statements {+(Identifier)+})+} {-(Integer)-} (Decorator { (Identifier) ->(Identifier) } (Statements {+(Identifier)+} {-(Integer)-} {-(Integer)-}) (Decorator (Identifier) {+(Statements {+(Integer)+} {+(Assignment {+(Identifier)+} {+(Boolean)+})+} {+(Statements {+(Identifier)+})+} {+(Statements {+(Identifier)+})+})+} {-(Assignment {-(Identifier)-} {-(Boolean)-})-} { (Decorator {-(Identifier)-} {-(Statements {-(Identifier)-})-} {-(Decorator {-(Identifier)-} {-(Statements {-(Identifier)-})-} {-(Decorator {-(Identifier)-} {-(Statements {-(Integer)-} {-(Assignment {-(Identifier)-} {-(Boolean)-})-} {-(Statements {-(Identifier)-})-} {-(Statements {-(Identifier)-})-})-} {-(Function {-(Identifier)-} {-(Statements {-(Identifier)-})-})-})-})-}) ->(Function {+(Identifier)+} {+(Statements {+(Identifier)+})+}) })))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/decorated-definition.diffB-A.txt ================================================ (Statements (Decorator (Identifier) (Class { (Identifier) ->(Identifier) } (Statements (Decorator (Identifier) (Statements) (Decorator { (Identifier) ->(Identifier) } {+(Integer)+} {-(Statements {-(Identifier)-})-} (Decorator { (Identifier) ->(Identifier) } (Statements {+(Integer)+} {+(Integer)+} {-(Identifier)-}) (Decorator (Identifier) {+(Assignment {+(Identifier)+} {+(Boolean)+})+} {-(Statements {-(Integer)-} {-(Assignment {-(Identifier)-} {-(Boolean)-})-} {-(Statements {-(Identifier)-})-} {-(Statements {-(Identifier)-})-})-} { (Function {-(Identifier)-} {-(Statements {-(Identifier)-})-}) ->(Decorator {+(Identifier)+} {+(Statements {+(Identifier)+})+} {+(Decorator {+(Identifier)+} {+(Statements {+(Identifier)+})+} {+(Decorator {+(Identifier)+} {+(Statements {+(Integer)+} {+(Assignment {+(Identifier)+} {+(Boolean)+})+} {+(Statements {+(Identifier)+})+} {+(Statements {+(Identifier)+})+})+} {+(Function {+(Identifier)+} {+(Statements {+(Identifier)+})+})+})+})+}) })))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/decorated-definition.parseA.txt ================================================ (Module (CompoundStatement (DecoratedDefinition (ClassDefinition (Block (CompoundStatement (DecoratedDefinition (FunctionDefinition (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "g")))))) (Identifier "f") (Parameters)) (Decorator (ArgumentList) (DottedName (Identifier "f"))) (Decorator (ArgumentList (Expression (PrimaryExpression (Integer "1")))) (DottedName (Identifier "d"))) (Decorator (ArgumentList (Expression (PrimaryExpression (Integer "2"))) (Expression (PrimaryExpression (Integer "3")))) (DottedName (Identifier "e"))) (Decorator (ArgumentList (KeywordArgument (Expression (PrimaryExpression (True "True"))) (Identifier "b"))) (DottedName (Identifier "a"))) (Decorator (ArgumentList (ListSplat (Expression (PrimaryExpression (Identifier "b"))))) (DottedName (Identifier "a"))) (Decorator (ArgumentList (DictionarySplat (Expression (PrimaryExpression (Identifier "c"))))) (DottedName (Identifier "a"))) (Decorator (ArgumentList (Expression (PrimaryExpression (Integer "1"))) (KeywordArgument (Expression (PrimaryExpression (True "True"))) (Identifier "b")) (ListSplat (Expression (PrimaryExpression (Identifier "b")))) (DictionarySplat (Expression (PrimaryExpression (Identifier "c"))))) (DottedName (Identifier "a")))))) (Identifier "C")) (Decorator (DottedName (Identifier "a") (Identifier "b")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/decorated-definition.parseB.txt ================================================ (Module (CompoundStatement (DecoratedDefinition (ClassDefinition (Block (CompoundStatement (DecoratedDefinition (FunctionDefinition (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "g")))))) (Identifier "f") (Parameters)) (Decorator (ArgumentList) (DottedName (Identifier "f"))) (Decorator (ArgumentList (ListSplat (Expression (PrimaryExpression (Identifier "b"))))) (DottedName (Identifier "b"))) (Decorator (ArgumentList (DictionarySplat (Expression (PrimaryExpression (Identifier "c"))))) (DottedName (Identifier "c"))) (Decorator (ArgumentList (Expression (PrimaryExpression (Integer "2"))) (KeywordArgument (Expression (PrimaryExpression (True "True"))) (Identifier "c")) (ListSplat (Expression (PrimaryExpression (Identifier "a")))) (DictionarySplat (Expression (PrimaryExpression (Identifier "d"))))) (DottedName (Identifier "a")))))) (Identifier "D")) (Decorator (DottedName (Identifier "a") (Identifier "b")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/delete-statement.A.py ================================================ del a[1], b[2] ================================================ FILE: semantic/test/fixtures/python/corpus/delete-statement.B.py ================================================ del b[1], a[2] ================================================ FILE: semantic/test/fixtures/python/corpus/delete-statement.diffA-B.txt ================================================ (Statements (Call (Identifier) (Subscript { (Identifier) ->(Identifier) } (Integer)) (Subscript { (Identifier) ->(Identifier) } (Integer)) (Empty))) ================================================ FILE: semantic/test/fixtures/python/corpus/delete-statement.diffB-A.txt ================================================ (Statements (Call (Identifier) (Subscript { (Identifier) ->(Identifier) } (Integer)) (Subscript { (Identifier) ->(Identifier) } (Integer)) (Empty))) ================================================ FILE: semantic/test/fixtures/python/corpus/delete-statement.parseA.txt ================================================ (Module (SimpleStatement (DeleteStatement (ExpressionList (Expression (PrimaryExpression (Subscript (Expression (PrimaryExpression (Integer "1"))) (PrimaryExpression (Identifier "a"))))) (Expression (PrimaryExpression (Subscript (Expression (PrimaryExpression (Integer "2"))) (PrimaryExpression (Identifier "b"))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/delete-statement.parseB.txt ================================================ (Module (SimpleStatement (DeleteStatement (ExpressionList (Expression (PrimaryExpression (Subscript (Expression (PrimaryExpression (Integer "1"))) (PrimaryExpression (Identifier "b"))))) (Expression (PrimaryExpression (Subscript (Expression (PrimaryExpression (Integer "2"))) (PrimaryExpression (Identifier "a"))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/dictionary-comprehension.A.py ================================================ { c : d for b in a } { d : g for e in f if d } ================================================ FILE: semantic/test/fixtures/python/corpus/dictionary-comprehension.B.py ================================================ { f : g for e in d if g } { c : 1 for b in a } ================================================ FILE: semantic/test/fixtures/python/corpus/dictionary-comprehension.diffA-B.txt ================================================ (Statements (Comprehension (KeyValue { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Statements {+(Statements {+(Identifier)+} {+(Identifier)+})+} { (Identifier) ->(Identifier) } {-(Identifier)-})) (Comprehension (KeyValue { (Identifier) ->(Identifier) } { (Identifier) ->(Integer) }) (Statements {+(Identifier)+} {+(Identifier)+} {-(Statements {-(Identifier)-} {-(Identifier)-})-} {-(Identifier)-}))) ================================================ FILE: semantic/test/fixtures/python/corpus/dictionary-comprehension.diffB-A.txt ================================================ (Statements (Comprehension (KeyValue { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }) (Statements {+(Identifier)+} {+(Identifier)+} {-(Statements {-(Identifier)-} {-(Identifier)-})-} {-(Identifier)-})) (Comprehension (KeyValue { (Identifier) ->(Identifier) } { (Integer) ->(Identifier) }) (Statements {+(Statements {+(Identifier)+} {+(Identifier)+})+} { (Identifier) ->(Identifier) } {-(Identifier)-}))) ================================================ FILE: semantic/test/fixtures/python/corpus/dictionary-comprehension.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (DictionaryComprehension (Pair (Expression (PrimaryExpression (Identifier "d"))) (Expression (PrimaryExpression (Identifier "c")))) (ForInClause (Variables (PrimaryExpression (Identifier "b"))) (Expression (PrimaryExpression (Identifier "a"))))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (DictionaryComprehension (Pair (Expression (PrimaryExpression (Identifier "g"))) (Expression (PrimaryExpression (Identifier "d")))) (ForInClause (Variables (PrimaryExpression (Identifier "e"))) (Expression (PrimaryExpression (Identifier "f")))) (IfClause (Expression (PrimaryExpression (Identifier "d")))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/dictionary-comprehension.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (DictionaryComprehension (Pair (Expression (PrimaryExpression (Identifier "g"))) (Expression (PrimaryExpression (Identifier "f")))) (ForInClause (Variables (PrimaryExpression (Identifier "e"))) (Expression (PrimaryExpression (Identifier "d")))) (IfClause (Expression (PrimaryExpression (Identifier "g"))))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (DictionaryComprehension (Pair (Expression (PrimaryExpression (Integer "1"))) (Expression (PrimaryExpression (Identifier "c")))) (ForInClause (Variables (PrimaryExpression (Identifier "b"))) (Expression (PrimaryExpression (Identifier "a")))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/dictionary.A.py ================================================ {} {a: 1} {foo: b, bar: c} ================================================ FILE: semantic/test/fixtures/python/corpus/dictionary.B.py ================================================ {b: 2} {} a = { # a comment can go here bar: d, foo: e } ================================================ FILE: semantic/test/fixtures/python/corpus/dictionary.diffA-B.txt ================================================ (Statements {+(Hash {+(KeyValue {+(Identifier)+} {+(Integer)+})+})+} (Hash) {+(Assignment {+(Identifier)+} {+(Hash {+(Context {+(Comment)+} {+(KeyValue {+(Identifier)+} {+(Identifier)+})+})+} {+(KeyValue {+(Identifier)+} {+(Identifier)+})+})+})+} {-(Hash {-(KeyValue {-(Identifier)-} {-(Integer)-})-})-} {-(Hash {-(KeyValue {-(Identifier)-} {-(Identifier)-})-} {-(KeyValue {-(Identifier)-} {-(Identifier)-})-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/dictionary.diffB-A.txt ================================================ (Statements {-(Hash {-(KeyValue {-(Identifier)-} {-(Integer)-})-})-} (Hash) {+(Hash {+(KeyValue {+(Identifier)+} {+(Integer)+})+})+} {+(Hash {+(KeyValue {+(Identifier)+} {+(Identifier)+})+} {+(KeyValue {+(Identifier)+} {+(Identifier)+})+})+} {-(Assignment {-(Identifier)-} {-(Hash {-(Context {-(Comment)-} {-(KeyValue {-(Identifier)-} {-(Identifier)-})-})-} {-(KeyValue {-(Identifier)-} {-(Identifier)-})-})-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/dictionary.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Dictionary))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Dictionary (Pair (Expression (PrimaryExpression (Integer "1"))) (Expression (PrimaryExpression (Identifier "a"))))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Dictionary (Pair (Expression (PrimaryExpression (Identifier "b"))) (Expression (PrimaryExpression (Identifier "foo")))) (Pair (Expression (PrimaryExpression (Identifier "c"))) (Expression (PrimaryExpression (Identifier "bar")))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/dictionary.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Dictionary (Pair (Expression (PrimaryExpression (Integer "2"))) (Expression (PrimaryExpression (Identifier "b"))))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Dictionary))))) (SimpleStatement (ExpressionStatement (Assignment (ExpressionList (Expression (PrimaryExpression (Identifier "a")))) (ExpressionList (Expression (PrimaryExpression (Dictionary (Pair (Expression (PrimaryExpression (Identifier "d"))) (Expression (PrimaryExpression (Identifier "bar")))) (Pair (Expression (PrimaryExpression (Identifier "e"))) (Expression (PrimaryExpression (Identifier "foo")))))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/dotted-name.A.py ================================================ a.b d.e.f ================================================ FILE: semantic/test/fixtures/python/corpus/dotted-name.B.py ================================================ a.b.c d.e ================================================ FILE: semantic/test/fixtures/python/corpus/dotted-name.diffA-B.txt ================================================ (Statements (MemberAccess { (Identifier) ->(MemberAccess {+(Identifier)+} {+(Identifier)+}) } { (Identifier) ->(Identifier) }) (MemberAccess { (MemberAccess {-(Identifier)-} {-(Identifier)-}) ->(Identifier) } { (Identifier) ->(Identifier) })) ================================================ FILE: semantic/test/fixtures/python/corpus/dotted-name.diffB-A.txt ================================================ (Statements (MemberAccess { (MemberAccess {-(Identifier)-} {-(Identifier)-}) ->(Identifier) } { (Identifier) ->(Identifier) }) (MemberAccess { (Identifier) ->(MemberAccess {+(Identifier)+} {+(Identifier)+}) } { (Identifier) ->(Identifier) })) ================================================ FILE: semantic/test/fixtures/python/corpus/dotted-name.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Attribute (Identifier "b") (PrimaryExpression (Identifier "a"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Attribute (Identifier "f") (PrimaryExpression (Attribute (Identifier "e") (PrimaryExpression (Identifier "d")))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/dotted-name.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Attribute (Identifier "c") (PrimaryExpression (Attribute (Identifier "b") (PrimaryExpression (Identifier "a"))))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Attribute (Identifier "e") (PrimaryExpression (Identifier "d")))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/ellipsis.A.py ================================================ ... ... ================================================ FILE: semantic/test/fixtures/python/corpus/ellipsis.B.py ================================================ ... ================================================ FILE: semantic/test/fixtures/python/corpus/ellipsis.diffA-B.txt ================================================ (Statements (Ellipsis) {-(Ellipsis)-}) ================================================ FILE: semantic/test/fixtures/python/corpus/ellipsis.diffB-A.txt ================================================ (Statements (Ellipsis) {+(Ellipsis)+}) ================================================ FILE: semantic/test/fixtures/python/corpus/ellipsis.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Ellipsis "..."))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Ellipsis "...")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/ellipsis.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Ellipsis "...")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/exec-statement.A.py ================================================ exec '1+1' exec 'x+=1' in None exec 'x+=1' in a, b ================================================ FILE: semantic/test/fixtures/python/corpus/exec-statement.B.py ================================================ exec 'x+=1' in d exec 'x+=1' in b, c exec '2+1' ================================================ FILE: semantic/test/fixtures/python/corpus/exec-statement.diffA-B.txt ================================================ (Statements {+(Call {+(Identifier)+} {+(TextElement)+} {+(Identifier)+} {+(Empty)+})+} {+(Call {+(Identifier)+} {+(TextElement)+} {+(Identifier)+} {+(Identifier)+} {+(Empty)+})+} (Call (Identifier) { (TextElement) ->(TextElement) } (Empty)) {-(Call {-(Identifier)-} {-(TextElement)-} {-(Null)-} {-(Empty)-})-} {-(Call {-(Identifier)-} {-(TextElement)-} {-(Identifier)-} {-(Identifier)-} {-(Empty)-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/exec-statement.diffB-A.txt ================================================ (Statements {+(Call {+(Identifier)+} {+(TextElement)+} {+(Empty)+})+} (Call (Identifier) (TextElement) {+(Null)+} {-(Identifier)-} (Empty)) (Call (Identifier) (TextElement) {+(Identifier)+} (Identifier) {-(Identifier)-} (Empty)) {-(Call {-(Identifier)-} {-(TextElement)-} {-(Empty)-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/exec-statement.parseA.txt ================================================ (Module (SimpleStatement (ExecStatement (String))) (SimpleStatement (ExecStatement (String) (Expression (PrimaryExpression (None "None"))))) (SimpleStatement (ExecStatement (String) (Expression (PrimaryExpression (Identifier "a"))) (Expression (PrimaryExpression (Identifier "b")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/exec-statement.parseB.txt ================================================ (Module (SimpleStatement (ExecStatement (String) (Expression (PrimaryExpression (Identifier "d"))))) (SimpleStatement (ExecStatement (String) (Expression (PrimaryExpression (Identifier "b"))) (Expression (PrimaryExpression (Identifier "c"))))) (SimpleStatement (ExecStatement (String)))) ================================================ FILE: semantic/test/fixtures/python/corpus/expression-statement.A.py ================================================ a b + c 1, 2, 3 1, 2, 3, ================================================ FILE: semantic/test/fixtures/python/corpus/expression-statement.B.py ================================================ 1, 2, 3 b 3, 1, 2, a + c ================================================ FILE: semantic/test/fixtures/python/corpus/expression-statement.diffA-B.txt ================================================ (Statements {-(Identifier)-} {-(Plus {-(Identifier)-} {-(Identifier)-})-} (Statements (Integer) (Integer) (Integer)) {+(Identifier)+} (Statements {+(Integer)+} (Integer) (Integer) {-(Integer)-}) {+(Plus {+(Identifier)+} {+(Identifier)+})+}) ================================================ FILE: semantic/test/fixtures/python/corpus/expression-statement.diffB-A.txt ================================================ (Statements {+(Identifier)+} {+(Plus {+(Identifier)+} {+(Identifier)+})+} (Statements (Integer) (Integer) (Integer)) {+(Statements {+(Integer)+} {+(Integer)+} {+(Integer)+})+} {-(Identifier)-} {-(Statements {-(Integer)-} {-(Integer)-} {-(Integer)-})-} {-(Plus {-(Identifier)-} {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/expression-statement.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "a"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "b")) (PrimaryExpression (Identifier "c"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Integer "1"))) (Expression (PrimaryExpression (Integer "2"))) (Expression (PrimaryExpression (Integer "3"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Integer "1"))) (Expression (PrimaryExpression (Integer "2"))) (Expression (PrimaryExpression (Integer "3")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/expression-statement.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Integer "1"))) (Expression (PrimaryExpression (Integer "2"))) (Expression (PrimaryExpression (Integer "3"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "b"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Integer "3"))) (Expression (PrimaryExpression (Integer "1"))) (Expression (PrimaryExpression (Integer "2"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "a")) (PrimaryExpression (Identifier "c")))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/float.A.py ================================================ -.6_6 +.1_1 123.4123 123.123J 1_1.3_1 1_1. 1e+3_4j .3e1_4 1_0.l .1l ================================================ FILE: semantic/test/fixtures/python/corpus/float.B.py ================================================ -.7_8 +.2_2 123.2345 123.321J 2_4.8_0 2_0. 8e+2_3j .8e2_7 2_1.l .2l ================================================ FILE: semantic/test/fixtures/python/corpus/float.diffA-B.txt ================================================ (Statements (Negate { (Float) ->(Float) }) { (Float) ->(Float) } {+(Float)+} {+(Float)+} {+(Float)+} {+(Float)+} { (Float) ->(Float) } {+(Float)+} {+(Float)+} {+(Float)+} {-(Float)-} {-(Float)-} {-(Float)-} {-(Float)-} {-(Float)-} {-(Float)-} {-(Float)-}) ================================================ FILE: semantic/test/fixtures/python/corpus/float.diffB-A.txt ================================================ (Statements (Negate { (Float) ->(Float) }) { (Float) ->(Float) } {+(Float)+} { (Float) ->(Float) } {+(Float)+} {+(Float)+} {+(Float)+} {+(Float)+} {+(Float)+} { (Float) ->(Float) } {-(Float)-} {-(Float)-} {-(Float)-} {-(Float)-} {-(Float)-} {-(Float)-}) ================================================ FILE: semantic/test/fixtures/python/corpus/float.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (UnaryOperator (Token) (PrimaryExpression (Float ".6_6"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (UnaryOperator (Token) (PrimaryExpression (Float ".1_1"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Float "123.4123"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Float "123.123J"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Float "1_1.3_1"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Float "1_1."))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Float "1e+3_4j"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Float ".3e1_4"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Float "1_0.l"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Float ".1l")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/float.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (UnaryOperator (Token) (PrimaryExpression (Float ".7_8"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (UnaryOperator (Token) (PrimaryExpression (Float ".2_2"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Float "123.2345"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Float "123.321J"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Float "2_4.8_0"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Float "2_0."))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Float "8e+2_3j"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Float ".8e2_7"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Float "2_1.l"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Float ".2l")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/for-statement.A.py ================================================ for line, i in lines: print line for character, j in line: print character else: print x for x, in [(1,), (2,), (3,)]: x ================================================ FILE: semantic/test/fixtures/python/corpus/for-statement.B.py ================================================ for y, in [(1,), (2,), (3,)]: y for line, j in lines: print line for character, i in line: print character else: print y ================================================ FILE: semantic/test/fixtures/python/corpus/for-statement.diffA-B.txt ================================================ (Statements {+(ForEach {+(Identifier)+} {+(Array {+(Tuple {+(Integer)+})+} {+(Tuple {+(Integer)+})+} {+(Tuple {+(Integer)+})+})+} {+(Statements {+(Identifier)+})+})+} (Else (ForEach (Statements (Identifier) { (Identifier) ->(Identifier) }) (Identifier) (Statements (Call (Identifier) (Identifier) (Empty)) (ForEach (Statements (Identifier) { (Identifier) ->(Identifier) }) (Identifier) (Statements (Call (Identifier) (Identifier) (Empty)))))) (Call (Identifier) { (Identifier) ->(Identifier) } (Empty))) {-(ForEach {-(Identifier)-} {-(Array {-(Tuple {-(Integer)-})-} {-(Tuple {-(Integer)-})-} {-(Tuple {-(Integer)-})-})-} {-(Statements {-(Identifier)-})-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/for-statement.diffB-A.txt ================================================ (Statements {+(Else {+(ForEach {+(Statements {+(Identifier)+} {+(Identifier)+})+} {+(Identifier)+} {+(Statements {+(Call {+(Identifier)+} {+(Identifier)+} {+(Empty)+})+} {+(ForEach {+(Statements {+(Identifier)+} {+(Identifier)+})+} {+(Identifier)+} {+(Statements {+(Call {+(Identifier)+} {+(Identifier)+} {+(Empty)+})+})+})+})+})+} {+(Call {+(Identifier)+} {+(Identifier)+} {+(Empty)+})+})+} (ForEach { (Identifier) ->(Identifier) } (Array (Tuple (Integer)) (Tuple (Integer)) (Tuple (Integer))) (Statements { (Identifier) ->(Identifier) })) {-(Else {-(ForEach {-(Statements {-(Identifier)-} {-(Identifier)-})-} {-(Identifier)-} {-(Statements {-(Call {-(Identifier)-} {-(Identifier)-} {-(Empty)-})-} {-(ForEach {-(Statements {-(Identifier)-} {-(Identifier)-})-} {-(Identifier)-} {-(Statements {-(Call {-(Identifier)-} {-(Identifier)-} {-(Empty)-})-})-})-})-})-} {-(Call {-(Identifier)-} {-(Identifier)-} {-(Empty)-})-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/for-statement.parseA.txt ================================================ (Module (CompoundStatement (ForStatement (ElseClause (Block (SimpleStatement (PrintStatement (Expression (PrimaryExpression (Identifier "x"))))))) (Block (SimpleStatement (PrintStatement (Expression (PrimaryExpression (Identifier "line"))))) (CompoundStatement (ForStatement (Block (SimpleStatement (PrintStatement (Expression (PrimaryExpression (Identifier "character")))))) (Variables (PrimaryExpression (Identifier "character")) (PrimaryExpression (Identifier "j"))) (ExpressionList (Expression (PrimaryExpression (Identifier "line"))))))) (Variables (PrimaryExpression (Identifier "line")) (PrimaryExpression (Identifier "i"))) (ExpressionList (Expression (PrimaryExpression (Identifier "lines")))))) (CompoundStatement (ForStatement (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "x")))))) (Variables (PrimaryExpression (Identifier "x"))) (ExpressionList (Expression (PrimaryExpression (List (Expression (PrimaryExpression (Tuple (Expression (PrimaryExpression (Integer "1")))))) (Expression (PrimaryExpression (Tuple (Expression (PrimaryExpression (Integer "2")))))) (Expression (PrimaryExpression (Tuple (Expression (PrimaryExpression (Integer "3"))))))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/for-statement.parseB.txt ================================================ (Module (CompoundStatement (ForStatement (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "y")))))) (Variables (PrimaryExpression (Identifier "y"))) (ExpressionList (Expression (PrimaryExpression (List (Expression (PrimaryExpression (Tuple (Expression (PrimaryExpression (Integer "1")))))) (Expression (PrimaryExpression (Tuple (Expression (PrimaryExpression (Integer "2")))))) (Expression (PrimaryExpression (Tuple (Expression (PrimaryExpression (Integer "3")))))))))))) (CompoundStatement (ForStatement (ElseClause (Block (SimpleStatement (PrintStatement (Expression (PrimaryExpression (Identifier "y"))))))) (Block (SimpleStatement (PrintStatement (Expression (PrimaryExpression (Identifier "line"))))) (CompoundStatement (ForStatement (Block (SimpleStatement (PrintStatement (Expression (PrimaryExpression (Identifier "character")))))) (Variables (PrimaryExpression (Identifier "character")) (PrimaryExpression (Identifier "i"))) (ExpressionList (Expression (PrimaryExpression (Identifier "line"))))))) (Variables (PrimaryExpression (Identifier "line")) (PrimaryExpression (Identifier "j"))) (ExpressionList (Expression (PrimaryExpression (Identifier "lines"))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/function-definition.A.py ================================================ def a(): b def c(d): e def g(g, *h,): i def h(i=j): i def i(j:str="default", **c): j ================================================ FILE: semantic/test/fixtures/python/corpus/function-definition.B.py ================================================ def g(i, *j,): j def c(): b def d(e): a def i(j:int=1, **d): j ================================================ FILE: semantic/test/fixtures/python/corpus/function-definition.diffA-B.txt ================================================ (Statements {-(Function {-(Identifier)-} {-(Statements {-(Identifier)-})-})-} {-(Function {-(Identifier)-} {-(RequiredParameter {-(Identifier)-})-} {-(Statements {-(Identifier)-})-})-} (Function (Identifier) (RequiredParameter { (Identifier) ->(Identifier) }) (Statements { (Identifier) ->(Identifier) }) (Statements { (Identifier) ->(Identifier) })) (Function { (Identifier) ->(Identifier) } {-(Assignment {-(Identifier)-} {-(Identifier)-})-} (Statements { (Identifier) ->(Identifier) })) {+(Function {+(Identifier)+} {+(RequiredParameter {+(Identifier)+})+} {+(Statements {+(Identifier)+})+})+} (Function (Identifier) (Annotation (Assignment (Identifier) { (TextElement) ->(Integer) }) { (Identifier) ->(Identifier) }) (Statements { (Identifier) ->(Identifier) }) (Statements (Identifier)))) ================================================ FILE: semantic/test/fixtures/python/corpus/function-definition.diffB-A.txt ================================================ (Statements (Function { (Identifier) ->(Identifier) } {-(RequiredParameter {-(Identifier)-})-} {-(Statements {-(Identifier)-})-} (Statements { (Identifier) ->(Identifier) })) (Function (Identifier) {+(RequiredParameter {+(Identifier)+})+} (Statements { (Identifier) ->(Identifier) })) (Function { (Identifier) ->(Identifier) } (RequiredParameter { (Identifier) ->(Identifier) }) {+(Statements {+(Identifier)+})+} (Statements { (Identifier) ->(Identifier) })) {+(Function {+(Identifier)+} {+(Assignment {+(Identifier)+} {+(Identifier)+})+} {+(Statements {+(Identifier)+})+})+} (Function (Identifier) (Annotation (Assignment (Identifier) { (Integer) ->(TextElement) }) { (Identifier) ->(Identifier) }) (Statements { (Identifier) ->(Identifier) }) (Statements (Identifier)))) ================================================ FILE: semantic/test/fixtures/python/corpus/function-definition.parseA.txt ================================================ (Module (CompoundStatement (FunctionDefinition (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "b")))))) (Identifier "a") (Parameters))) (CompoundStatement (FunctionDefinition (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "e")))))) (Identifier "c") (Parameters (Parameter (Identifier "d"))))) (CompoundStatement (FunctionDefinition (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "i")))))) (Identifier "g") (Parameters (Parameter (Identifier "g")) (Parameter (ListSplat (Expression (PrimaryExpression (Identifier "h")))))))) (CompoundStatement (FunctionDefinition (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "i")))))) (Identifier "h") (Parameters (Parameter (DefaultParameter (Expression (PrimaryExpression (Identifier "j"))) (Identifier "i")))))) (CompoundStatement (FunctionDefinition (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "j")))))) (Identifier "i") (Parameters (Parameter (TypedDefaultParameter (Expression (PrimaryExpression (String))) (Identifier "j") (Type (Expression (PrimaryExpression (Identifier "str")))))) (Parameter (DictionarySplat (Expression (PrimaryExpression (Identifier "c"))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/function-definition.parseB.txt ================================================ (Module (CompoundStatement (FunctionDefinition (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "j")))))) (Identifier "g") (Parameters (Parameter (Identifier "i")) (Parameter (ListSplat (Expression (PrimaryExpression (Identifier "j")))))))) (CompoundStatement (FunctionDefinition (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "b")))))) (Identifier "c") (Parameters))) (CompoundStatement (FunctionDefinition (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "a")))))) (Identifier "d") (Parameters (Parameter (Identifier "e"))))) (CompoundStatement (FunctionDefinition (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "j")))))) (Identifier "i") (Parameters (Parameter (TypedDefaultParameter (Expression (PrimaryExpression (Integer "1"))) (Identifier "j") (Type (Expression (PrimaryExpression (Identifier "int")))))) (Parameter (DictionarySplat (Expression (PrimaryExpression (Identifier "d"))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/future_import_statement.A.py ================================================ from __future__ import print_function from __future__ import unicode_literals, division from __future__ import print_function as pf ================================================ FILE: semantic/test/fixtures/python/corpus/future_import_statement.B.py ================================================ from __future__ import division from __future__ import unicode_literals, print_function from __future__ import generators as g ================================================ FILE: semantic/test/fixtures/python/corpus/future_import_statement.diffA-B.txt ================================================ (Statements (FutureImport (Alias { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })) (FutureImport (Alias (Identifier) (Identifier)) (Alias { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })) (FutureImport (Alias { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }))) ================================================ FILE: semantic/test/fixtures/python/corpus/future_import_statement.diffB-A.txt ================================================ (Statements (FutureImport (Alias { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })) (FutureImport (Alias (Identifier) (Identifier)) (Alias { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })) (FutureImport (Alias { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }))) ================================================ FILE: semantic/test/fixtures/python/corpus/future_import_statement.parseA.txt ================================================ (Module (SimpleStatement (FutureImportStatement (DottedName (Identifier "print_function")))) (SimpleStatement (FutureImportStatement (DottedName (Identifier "unicode_literals")) (DottedName (Identifier "division")))) (SimpleStatement (FutureImportStatement (AliasedImport (Identifier "pf") (DottedName (Identifier "print_function")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/future_import_statement.parseB.txt ================================================ (Module (SimpleStatement (FutureImportStatement (DottedName (Identifier "division")))) (SimpleStatement (FutureImportStatement (DottedName (Identifier "unicode_literals")) (DottedName (Identifier "print_function")))) (SimpleStatement (FutureImportStatement (AliasedImport (Identifier "g") (DottedName (Identifier "generators")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/generator-expression.A.py ================================================ (c for b in a) (d for e in f) ================================================ FILE: semantic/test/fixtures/python/corpus/generator-expression.B.py ================================================ (f for e in d) (c + 1 for b in a) ================================================ FILE: semantic/test/fixtures/python/corpus/generator-expression.diffA-B.txt ================================================ (Statements (Comprehension { (Identifier) ->(Identifier) } (Statements { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })) (Comprehension { (Identifier) ->(Plus {+(Identifier)+} {+(Integer)+}) } (Statements { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }))) ================================================ FILE: semantic/test/fixtures/python/corpus/generator-expression.diffB-A.txt ================================================ (Statements (Comprehension { (Identifier) ->(Identifier) } (Statements { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })) (Comprehension { (Plus {-(Identifier)-} {-(Integer)-}) ->(Identifier) } (Statements { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }))) ================================================ FILE: semantic/test/fixtures/python/corpus/generator-expression.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (GeneratorExpression (Expression (PrimaryExpression (Identifier "c"))) (ForInClause (Variables (PrimaryExpression (Identifier "b"))) (Expression (PrimaryExpression (Identifier "a"))))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (GeneratorExpression (Expression (PrimaryExpression (Identifier "d"))) (ForInClause (Variables (PrimaryExpression (Identifier "e"))) (Expression (PrimaryExpression (Identifier "f")))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/generator-expression.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (GeneratorExpression (Expression (PrimaryExpression (Identifier "f"))) (ForInClause (Variables (PrimaryExpression (Identifier "e"))) (Expression (PrimaryExpression (Identifier "d"))))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (GeneratorExpression (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "c")) (PrimaryExpression (Integer "1"))))) (ForInClause (Variables (PrimaryExpression (Identifier "b"))) (Expression (PrimaryExpression (Identifier "a")))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/global-statement.A.py ================================================ global a global a, b ================================================ FILE: semantic/test/fixtures/python/corpus/global-statement.B.py ================================================ global b, a global c ================================================ FILE: semantic/test/fixtures/python/corpus/global-statement.diffA-B.txt ================================================ (Statements (Call (Identifier) {+(Identifier)+} (Identifier) (Empty)) (Call (Identifier) { (Identifier) ->(Identifier) } {-(Identifier)-} (Empty))) ================================================ FILE: semantic/test/fixtures/python/corpus/global-statement.diffB-A.txt ================================================ (Statements (Call (Identifier) {-(Identifier)-} (Identifier) (Empty)) (Call (Identifier) { (Identifier) ->(Identifier) } {+(Identifier)+} (Empty))) ================================================ FILE: semantic/test/fixtures/python/corpus/global-statement.parseA.txt ================================================ (Module (SimpleStatement (GlobalStatement (Identifier "a"))) (SimpleStatement (GlobalStatement (Identifier "a") (Identifier "b")))) ================================================ FILE: semantic/test/fixtures/python/corpus/global-statement.parseB.txt ================================================ (Module (SimpleStatement (GlobalStatement (Identifier "b") (Identifier "a"))) (SimpleStatement (GlobalStatement (Identifier "c")))) ================================================ FILE: semantic/test/fixtures/python/corpus/identifier.A.py ================================================ a ================================================ FILE: semantic/test/fixtures/python/corpus/identifier.B.py ================================================ aa print ================================================ FILE: semantic/test/fixtures/python/corpus/identifier.diffA-B.txt ================================================ (Statements { (Identifier) ->(Identifier) } {+(Identifier)+}) ================================================ FILE: semantic/test/fixtures/python/corpus/identifier.diffB-A.txt ================================================ (Statements { (Identifier) ->(Identifier) } {-(Identifier)-}) ================================================ FILE: semantic/test/fixtures/python/corpus/identifier.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "a")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/identifier.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "aa"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "print")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/if-statement.A.py ================================================ if a: b c elif d: a b else: x y ================================================ FILE: semantic/test/fixtures/python/corpus/if-statement.B.py ================================================ if c: a b ================================================ FILE: semantic/test/fixtures/python/corpus/if-statement.diffA-B.txt ================================================ (Statements (If { (Identifier) ->(Identifier) } (Statements {+(Identifier)+} (Identifier) {-(Identifier)-}) (Statements {-(If {-(Identifier)-} {-(Statements {-(Identifier)-} {-(Identifier)-})-} {-(Statements)-})-} {-(Statements {-(Identifier)-} {-(Identifier)-})-}))) ================================================ FILE: semantic/test/fixtures/python/corpus/if-statement.diffB-A.txt ================================================ (Statements (If { (Identifier) ->(Identifier) } (Statements {-(Identifier)-} (Identifier) {+(Identifier)+}) (Statements {+(If {+(Identifier)+} {+(Statements {+(Identifier)+} {+(Identifier)+})+} {+(Statements)+})+} {+(Statements {+(Identifier)+} {+(Identifier)+})+}))) ================================================ FILE: semantic/test/fixtures/python/corpus/if-statement.parseA.txt ================================================ (Module (CompoundStatement (IfStatement (ElifClause (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "a"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "b")))))) (Expression (PrimaryExpression (Identifier "d")))) (ElseClause (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "x"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "y"))))))) (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "b"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "c")))))) (Expression (PrimaryExpression (Identifier "a")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/if-statement.parseB.txt ================================================ (Module (CompoundStatement (IfStatement (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "a"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "b")))))) (Expression (PrimaryExpression (Identifier "c")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/import-from-statement.A.py ================================================ from a import b from a import (b, c) from a import * from a.b import c from . import b ================================================ FILE: semantic/test/fixtures/python/corpus/import-from-statement.B.py ================================================ from b import a from b import (c, a) from b import * from b import a as x, b as y from b.c import d from . import d ================================================ FILE: semantic/test/fixtures/python/corpus/import-from-statement.diffA-B.txt ================================================ (Statements { (Import {-(Alias {-(Identifier)-} {-(Identifier)-})-}) ->(Import {+(Alias {+(Identifier)+} {+(Identifier)+})+}) } { (Import {-(Alias {-(Identifier)-} {-(Identifier)-})-} {-(Alias {-(Identifier)-} {-(Identifier)-})-}) ->(Import {+(Alias {+(Identifier)+} {+(Identifier)+})+} {+(Alias {+(Identifier)+} {+(Identifier)+})+}) } { (Import) ->(Import) } {+(Import {+(Alias {+(Identifier)+} {+(Identifier)+})+} {+(Alias {+(Identifier)+} {+(Identifier)+})+})+} {+(Import {+(Alias {+(Identifier)+} {+(Identifier)+})+})+} {+(Import {+(Alias {+(Identifier)+} {+(Identifier)+})+})+} {-(Import {-(Alias {-(Identifier)-} {-(Identifier)-})-})-} {-(Import {-(Alias {-(Identifier)-} {-(Identifier)-})-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/import-from-statement.diffB-A.txt ================================================ (Statements { (Import {-(Alias {-(Identifier)-} {-(Identifier)-})-}) ->(Import {+(Alias {+(Identifier)+} {+(Identifier)+})+}) } { (Import {-(Alias {-(Identifier)-} {-(Identifier)-})-} {-(Alias {-(Identifier)-} {-(Identifier)-})-}) ->(Import {+(Alias {+(Identifier)+} {+(Identifier)+})+} {+(Alias {+(Identifier)+} {+(Identifier)+})+}) } { (Import) ->(Import) } {+(Import {+(Alias {+(Identifier)+} {+(Identifier)+})+})+} {+(Import {+(Alias {+(Identifier)+} {+(Identifier)+})+})+} {-(Import {-(Alias {-(Identifier)-} {-(Identifier)-})-} {-(Alias {-(Identifier)-} {-(Identifier)-})-})-} {-(Import {-(Alias {-(Identifier)-} {-(Identifier)-})-})-} {-(Import {-(Alias {-(Identifier)-} {-(Identifier)-})-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/import-from-statement.parseA.txt ================================================ (Module (SimpleStatement (ImportFromStatement (DottedName (Identifier "b")) (DottedName (Identifier "a")))) (SimpleStatement (ImportFromStatement (DottedName (Identifier "b")) (DottedName (Identifier "c")) (DottedName (Identifier "a")))) (SimpleStatement (ImportFromStatement (DottedName (Identifier "a")) (WildcardImport "*"))) (SimpleStatement (ImportFromStatement (DottedName (Identifier "c")) (DottedName (Identifier "a") (Identifier "b")))) (SimpleStatement (ImportFromStatement (DottedName (Identifier "b")) (RelativeImport (ImportPrefix "."))))) ================================================ FILE: semantic/test/fixtures/python/corpus/import-from-statement.parseB.txt ================================================ (Module (SimpleStatement (ImportFromStatement (DottedName (Identifier "a")) (DottedName (Identifier "b")))) (SimpleStatement (ImportFromStatement (DottedName (Identifier "c")) (DottedName (Identifier "a")) (DottedName (Identifier "b")))) (SimpleStatement (ImportFromStatement (DottedName (Identifier "b")) (WildcardImport "*"))) (SimpleStatement (ImportFromStatement (AliasedImport (Identifier "x") (DottedName (Identifier "a"))) (AliasedImport (Identifier "y") (DottedName (Identifier "b"))) (DottedName (Identifier "b")))) (SimpleStatement (ImportFromStatement (DottedName (Identifier "d")) (DottedName (Identifier "b") (Identifier "c")))) (SimpleStatement (ImportFromStatement (DottedName (Identifier "d")) (RelativeImport (ImportPrefix "."))))) ================================================ FILE: semantic/test/fixtures/python/corpus/import-statement.A.py ================================================ import a, b as c import b.c as d, e import a.b.c ================================================ FILE: semantic/test/fixtures/python/corpus/import-statement.B.py ================================================ import b, a import a.c as e import b.c.d ================================================ FILE: semantic/test/fixtures/python/corpus/import-statement.diffA-B.txt ================================================ (Statements (Statements {+(QualifiedImport {+(Identifier)+})+} (QualifiedImport (Identifier)) {-(QualifiedAliasedImport {-(Identifier)-})-}) {+(QualifiedAliasedImport {+(Identifier)+})+} {+(QualifiedImport {+(Identifier)+} {+(Identifier)+} {+(Identifier)+})+} {-(Statements {-(QualifiedAliasedImport {-(Identifier)-})-} {-(QualifiedImport {-(Identifier)-})-})-} {-(QualifiedImport {-(Identifier)-} {-(Identifier)-} {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/import-statement.diffB-A.txt ================================================ (Statements (Statements {-(QualifiedImport {-(Identifier)-})-} (QualifiedImport (Identifier)) {+(QualifiedAliasedImport {+(Identifier)+})+}) {+(Statements {+(QualifiedAliasedImport {+(Identifier)+})+} {+(QualifiedImport {+(Identifier)+})+})+} {+(QualifiedImport {+(Identifier)+} {+(Identifier)+} {+(Identifier)+})+} {-(QualifiedAliasedImport {-(Identifier)-})-} {-(QualifiedImport {-(Identifier)-} {-(Identifier)-} {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/import-statement.parseA.txt ================================================ (Module (SimpleStatement (ImportStatement (DottedName (Identifier "a")) (AliasedImport (Identifier "c") (DottedName (Identifier "b"))))) (SimpleStatement (ImportStatement (AliasedImport (Identifier "d") (DottedName (Identifier "b") (Identifier "c"))) (DottedName (Identifier "e")))) (SimpleStatement (ImportStatement (DottedName (Identifier "a") (Identifier "b") (Identifier "c"))))) ================================================ FILE: semantic/test/fixtures/python/corpus/import-statement.parseB.txt ================================================ (Module (SimpleStatement (ImportStatement (DottedName (Identifier "b")) (DottedName (Identifier "a")))) (SimpleStatement (ImportStatement (AliasedImport (Identifier "e") (DottedName (Identifier "a") (Identifier "c"))))) (SimpleStatement (ImportStatement (DottedName (Identifier "b") (Identifier "c") (Identifier "d"))))) ================================================ FILE: semantic/test/fixtures/python/corpus/integer.A.py ================================================ -1 0xDEAD 0XDEAD 1j -1j 0o123 0O123 0b001 0B001 1_1 0B1_1 0O1_1 0L ================================================ FILE: semantic/test/fixtures/python/corpus/integer.B.py ================================================ -2 0xDAD 0XDAD 2j -2j 0o312 0O312 0b101 0B101 2_2 0B1_1_1 0O2_3 1L ================================================ FILE: semantic/test/fixtures/python/corpus/integer.diffA-B.txt ================================================ (Statements (Negate { (Integer) ->(Integer) }) { (Integer) ->(Integer) } {+(Integer)+} {+(Integer)+} {+(Negate {+(Integer)+})+} {+(Integer)+} {+(Integer)+} {+(Integer)+} {+(Integer)+} {+(Integer)+} {+(Integer)+} {+(Integer)+} {+(Integer)+} {-(Integer)-} {-(Integer)-} {-(Negate {-(Integer)-})-} {-(Integer)-} {-(Integer)-} {-(Integer)-} {-(Integer)-} {-(Integer)-} {-(Integer)-} {-(Integer)-} {-(Integer)-}) ================================================ FILE: semantic/test/fixtures/python/corpus/integer.diffB-A.txt ================================================ (Statements (Negate { (Integer) ->(Integer) }) { (Integer) ->(Integer) } {+(Integer)+} {+(Integer)+} {+(Negate {+(Integer)+})+} { (Integer) ->(Integer) } {+(Integer)+} {+(Integer)+} {+(Integer)+} {+(Integer)+} {+(Integer)+} {+(Integer)+} {+(Integer)+} {-(Integer)-} {-(Negate {-(Integer)-})-} {-(Integer)-} {-(Integer)-} {-(Integer)-} {-(Integer)-} {-(Integer)-} {-(Integer)-} {-(Integer)-} {-(Integer)-}) ================================================ FILE: semantic/test/fixtures/python/corpus/integer.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (UnaryOperator (Token) (PrimaryExpression (Integer "1"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Integer "0xDEAD"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Integer "0XDEAD"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Integer "1j"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (UnaryOperator (Token) (PrimaryExpression (Integer "1j"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Integer "0o123"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Integer "0O123"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Integer "0b001"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Integer "0B001"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Integer "1_1"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Integer "0B1_1"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Integer "0O1_1"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Integer "0L")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/integer.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (UnaryOperator (Token) (PrimaryExpression (Integer "2"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Integer "0xDAD"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Integer "0XDAD"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Integer "2j"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (UnaryOperator (Token) (PrimaryExpression (Integer "2j"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Integer "0o312"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Integer "0O312"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Integer "0b101"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Integer "0B101"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Integer "2_2"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Integer "0B1_1_1"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Integer "0O2_3"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Integer "1L")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/keyword-identifier.A.py ================================================ print exec ================================================ FILE: semantic/test/fixtures/python/corpus/keyword-identifier.B.py ================================================ exec print ================================================ FILE: semantic/test/fixtures/python/corpus/keyword-identifier.diffA-B.txt ================================================ (Statements {-(Identifier)-} (Identifier) {+(Identifier)+}) ================================================ FILE: semantic/test/fixtures/python/corpus/keyword-identifier.diffB-A.txt ================================================ (Statements {-(Identifier)-} (Identifier) {+(Identifier)+}) ================================================ FILE: semantic/test/fixtures/python/corpus/keyword-identifier.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "print"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "exec")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/keyword-identifier.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "exec"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "print")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/lambda.A.py ================================================ lambda : 1 + 1 ================================================ FILE: semantic/test/fixtures/python/corpus/lambda.B.py ================================================ lambda a : a + 1 ================================================ FILE: semantic/test/fixtures/python/corpus/lambda.diffA-B.txt ================================================ (Statements (Function (Empty) {+(Identifier)+} (Statements (Plus { (Integer) ->(Identifier) } (Integer))))) ================================================ FILE: semantic/test/fixtures/python/corpus/lambda.diffB-A.txt ================================================ (Statements (Function (Empty) {-(Identifier)-} (Statements (Plus { (Identifier) ->(Integer) } (Integer))))) ================================================ FILE: semantic/test/fixtures/python/corpus/lambda.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (Lambda (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Integer "1")) (PrimaryExpression (Integer "1")))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/lambda.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (Lambda (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "a")) (PrimaryExpression (Integer "1"))))) (LambdaParameters (Parameter (Identifier "a")))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/list-comprehension.A.py ================================================ [ c for b in a ] [ d for e in f if d] ================================================ FILE: semantic/test/fixtures/python/corpus/list-comprehension.B.py ================================================ [ f for e in d if f() for g in h if g() ] [ c + 1 for b in a ] ================================================ FILE: semantic/test/fixtures/python/corpus/list-comprehension.diffA-B.txt ================================================ (Statements (Comprehension { (Identifier) ->(Identifier) } (Statements {+(Statements {+(Identifier)+} {+(Identifier)+})+} {+(Call {+(Identifier)+} {+(Empty)+})+} {+(Statements {+(Identifier)+} {+(Identifier)+})+} {+(Call {+(Identifier)+} {+(Empty)+})+} {-(Identifier)-} {-(Identifier)-})) (Comprehension { (Identifier) ->(Plus {+(Identifier)+} {+(Integer)+}) } (Statements {+(Identifier)+} {+(Identifier)+} {-(Statements {-(Identifier)-} {-(Identifier)-})-} {-(Identifier)-}))) ================================================ FILE: semantic/test/fixtures/python/corpus/list-comprehension.diffB-A.txt ================================================ (Statements (Comprehension { (Identifier) ->(Identifier) } (Statements {+(Identifier)+} {+(Identifier)+} {-(Statements {-(Identifier)-} {-(Identifier)-})-} {-(Call {-(Identifier)-} {-(Empty)-})-} {-(Statements {-(Identifier)-} {-(Identifier)-})-} {-(Call {-(Identifier)-} {-(Empty)-})-})) (Comprehension { (Plus {-(Identifier)-} {-(Integer)-}) ->(Identifier) } (Statements {+(Statements {+(Identifier)+} {+(Identifier)+})+} { (Identifier) ->(Identifier) } {-(Identifier)-}))) ================================================ FILE: semantic/test/fixtures/python/corpus/list-comprehension.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (ListComprehension (Expression (PrimaryExpression (Identifier "c"))) (ForInClause (Variables (PrimaryExpression (Identifier "b"))) (Expression (PrimaryExpression (Identifier "a"))))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (ListComprehension (Expression (PrimaryExpression (Identifier "d"))) (ForInClause (Variables (PrimaryExpression (Identifier "e"))) (Expression (PrimaryExpression (Identifier "f")))) (IfClause (Expression (PrimaryExpression (Identifier "d")))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/list-comprehension.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (ListComprehension (Expression (PrimaryExpression (Identifier "f"))) (ForInClause (Variables (PrimaryExpression (Identifier "e"))) (Expression (PrimaryExpression (Identifier "d")))) (IfClause (Expression (PrimaryExpression (Call (PrimaryExpression (Identifier "f")) (ArgumentList))))) (ForInClause (Variables (PrimaryExpression (Identifier "g"))) (Expression (PrimaryExpression (Identifier "h")))) (IfClause (Expression (PrimaryExpression (Call (PrimaryExpression (Identifier "g")) (ArgumentList)))))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (ListComprehension (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "c")) (PrimaryExpression (Integer "1"))))) (ForInClause (Variables (PrimaryExpression (Identifier "b"))) (Expression (PrimaryExpression (Identifier "a")))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/list.A.py ================================================ [] [1,2,3] [a,b,c,] ================================================ FILE: semantic/test/fixtures/python/corpus/list.B.py ================================================ [print] [1,3] [b,] ================================================ FILE: semantic/test/fixtures/python/corpus/list.diffA-B.txt ================================================ (Statements (Array {+(Identifier)+}) (Array (Integer) {-(Integer)-} (Integer)) (Array {-(Identifier)-} (Identifier) {-(Identifier)-})) ================================================ FILE: semantic/test/fixtures/python/corpus/list.diffB-A.txt ================================================ (Statements (Array {-(Identifier)-}) (Array (Integer) {+(Integer)+} (Integer)) (Array {+(Identifier)+} (Identifier) {+(Identifier)+})) ================================================ FILE: semantic/test/fixtures/python/corpus/list.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (List))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (List (Expression (PrimaryExpression (Integer "1"))) (Expression (PrimaryExpression (Integer "2"))) (Expression (PrimaryExpression (Integer "3")))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (List (Expression (PrimaryExpression (Identifier "a"))) (Expression (PrimaryExpression (Identifier "b"))) (Expression (PrimaryExpression (Identifier "c"))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/list.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (List (Expression (PrimaryExpression (Identifier "print")))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (List (Expression (PrimaryExpression (Integer "1"))) (Expression (PrimaryExpression (Integer "3")))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (List (Expression (PrimaryExpression (Identifier "b"))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/non-local-statement.A.py ================================================ nonlocal a ================================================ FILE: semantic/test/fixtures/python/corpus/non-local-statement.B.py ================================================ nonlocal b ================================================ FILE: semantic/test/fixtures/python/corpus/non-local-statement.diffA-B.txt ================================================ (Statements (Call (Identifier) { (Identifier) ->(Identifier) } (Empty))) ================================================ FILE: semantic/test/fixtures/python/corpus/non-local-statement.diffB-A.txt ================================================ (Statements (Call (Identifier) { (Identifier) ->(Identifier) } (Empty))) ================================================ FILE: semantic/test/fixtures/python/corpus/non-local-statement.parseA.txt ================================================ (Module (SimpleStatement (NonlocalStatement (Identifier "a")))) ================================================ FILE: semantic/test/fixtures/python/corpus/non-local-statement.parseB.txt ================================================ (Module (SimpleStatement (NonlocalStatement (Identifier "b")))) ================================================ FILE: semantic/test/fixtures/python/corpus/none.A.py ================================================ None None ================================================ FILE: semantic/test/fixtures/python/corpus/none.B.py ================================================ None ================================================ FILE: semantic/test/fixtures/python/corpus/none.diffA-B.txt ================================================ (Statements (Null) {-(Null)-}) ================================================ FILE: semantic/test/fixtures/python/corpus/none.diffB-A.txt ================================================ (Statements (Null) {+(Null)+}) ================================================ FILE: semantic/test/fixtures/python/corpus/none.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (None "None"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (None "None")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/none.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (None "None")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/not.A.py ================================================ not a ================================================ FILE: semantic/test/fixtures/python/corpus/not.B.py ================================================ not c not b ================================================ FILE: semantic/test/fixtures/python/corpus/not.diffA-B.txt ================================================ (Statements (Not { (Identifier) ->(Identifier) }) {+(Not {+(Identifier)+})+}) ================================================ FILE: semantic/test/fixtures/python/corpus/not.diffB-A.txt ================================================ (Statements (Not { (Identifier) ->(Identifier) }) {-(Not {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/not.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (NotOperator (Expression (PrimaryExpression (Identifier "a")))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/not.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (NotOperator (Expression (PrimaryExpression (Identifier "c"))))))) (SimpleStatement (ExpressionStatement (Expression (NotOperator (Expression (PrimaryExpression (Identifier "b")))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/pass-statement.A.py ================================================ pass ================================================ FILE: semantic/test/fixtures/python/corpus/pass-statement.B.py ================================================ pass pass ================================================ FILE: semantic/test/fixtures/python/corpus/pass-statement.diffA-B.txt ================================================ (Statements (NoOp (Empty)) {+(NoOp {+(Empty)+})+}) ================================================ FILE: semantic/test/fixtures/python/corpus/pass-statement.diffB-A.txt ================================================ (Statements (NoOp (Empty)) {-(NoOp {-(Empty)-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/pass-statement.parseA.txt ================================================ (Module (SimpleStatement (PassStatement "pass"))) ================================================ FILE: semantic/test/fixtures/python/corpus/pass-statement.parseB.txt ================================================ (Module (SimpleStatement (PassStatement "pass")) (SimpleStatement (PassStatement "pass"))) ================================================ FILE: semantic/test/fixtures/python/corpus/print-statement.A.py ================================================ print a, b print c print 0 or 1 print 0 or 1, 1 or 0, ================================================ FILE: semantic/test/fixtures/python/corpus/print-statement.B.py ================================================ print c, a print b print 0 or 1 print 1 or 0, 0 or 1, ================================================ FILE: semantic/test/fixtures/python/corpus/print-statement.diffA-B.txt ================================================ (Statements (Call (Identifier) {+(Identifier)+} (Identifier) {-(Identifier)-} (Empty)) (Call (Identifier) { (Identifier) ->(Identifier) } (Empty)) (Call (Identifier) (Or (Integer) (Integer)) (Empty)) (Call (Identifier) {-(Or {-(Integer)-} {-(Integer)-})-} (Or (Integer) (Integer)) {+(Or {+(Integer)+} {+(Integer)+})+} (Empty))) ================================================ FILE: semantic/test/fixtures/python/corpus/print-statement.diffB-A.txt ================================================ (Statements (Call (Identifier) {-(Identifier)-} (Identifier) {+(Identifier)+} (Empty)) (Call (Identifier) { (Identifier) ->(Identifier) } (Empty)) (Call (Identifier) (Or (Integer) (Integer)) (Empty)) (Call (Identifier) {-(Or {-(Integer)-} {-(Integer)-})-} (Or (Integer) (Integer)) {+(Or {+(Integer)+} {+(Integer)+})+} (Empty))) ================================================ FILE: semantic/test/fixtures/python/corpus/print-statement.parseA.txt ================================================ (Module (SimpleStatement (PrintStatement (Expression (PrimaryExpression (Identifier "a"))) (Expression (PrimaryExpression (Identifier "b"))))) (SimpleStatement (PrintStatement (Expression (PrimaryExpression (Identifier "c"))))) (SimpleStatement (PrintStatement (Expression (BooleanOperator (Token) (Expression (PrimaryExpression (Integer "0"))) (Expression (PrimaryExpression (Integer "1"))))))) (SimpleStatement (PrintStatement (Expression (BooleanOperator (Token) (Expression (PrimaryExpression (Integer "0"))) (Expression (PrimaryExpression (Integer "1"))))) (Expression (BooleanOperator (Token) (Expression (PrimaryExpression (Integer "1"))) (Expression (PrimaryExpression (Integer "0")))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/print-statement.parseB.txt ================================================ (Module (SimpleStatement (PrintStatement (Expression (PrimaryExpression (Identifier "c"))) (Expression (PrimaryExpression (Identifier "a"))))) (SimpleStatement (PrintStatement (Expression (PrimaryExpression (Identifier "b"))))) (SimpleStatement (PrintStatement (Expression (BooleanOperator (Token) (Expression (PrimaryExpression (Integer "0"))) (Expression (PrimaryExpression (Integer "1"))))))) (SimpleStatement (PrintStatement (Expression (BooleanOperator (Token) (Expression (PrimaryExpression (Integer "1"))) (Expression (PrimaryExpression (Integer "0"))))) (Expression (BooleanOperator (Token) (Expression (PrimaryExpression (Integer "0"))) (Expression (PrimaryExpression (Integer "1")))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/raise-statement.A.py ================================================ raise raise RuntimeError('NO') raise RunTimeError('NO') from e ================================================ FILE: semantic/test/fixtures/python/corpus/raise-statement.B.py ================================================ raise RuntimeError('YES') raise RunTimeError('YES') from f raise ================================================ FILE: semantic/test/fixtures/python/corpus/raise-statement.diffA-B.txt ================================================ (Statements {+(Throw {+(Call {+(Identifier)+} {+(TextElement)+} {+(Empty)+})+})+} {+(Throw {+(Statements {+(Call {+(Identifier)+} {+(TextElement)+} {+(Empty)+})+} {+(Identifier)+})+})+} (Throw (Statements)) {-(Throw {-(Call {-(Identifier)-} {-(TextElement)-} {-(Empty)-})-})-} {-(Throw {-(Statements {-(Call {-(Identifier)-} {-(TextElement)-} {-(Empty)-})-} {-(Identifier)-})-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/raise-statement.diffB-A.txt ================================================ (Statements {-(Throw {-(Call {-(Identifier)-} {-(TextElement)-} {-(Empty)-})-})-} {-(Throw {-(Statements {-(Call {-(Identifier)-} {-(TextElement)-} {-(Empty)-})-} {-(Identifier)-})-})-} (Throw (Statements)) {+(Throw {+(Call {+(Identifier)+} {+(TextElement)+} {+(Empty)+})+})+} {+(Throw {+(Statements {+(Call {+(Identifier)+} {+(TextElement)+} {+(Empty)+})+} {+(Identifier)+})+})+}) ================================================ FILE: semantic/test/fixtures/python/corpus/raise-statement.parseA.txt ================================================ (Module (SimpleStatement (RaiseStatement)) (SimpleStatement (RaiseStatement (ExpressionList (Expression (PrimaryExpression (Call (PrimaryExpression (Identifier "RuntimeError")) (ArgumentList (Expression (PrimaryExpression (String)))))))))) (SimpleStatement (RaiseStatement (Expression (PrimaryExpression (Identifier "e"))) (ExpressionList (Expression (PrimaryExpression (Call (PrimaryExpression (Identifier "RunTimeError")) (ArgumentList (Expression (PrimaryExpression (String))))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/raise-statement.parseB.txt ================================================ (Module (SimpleStatement (RaiseStatement (ExpressionList (Expression (PrimaryExpression (Call (PrimaryExpression (Identifier "RuntimeError")) (ArgumentList (Expression (PrimaryExpression (String)))))))))) (SimpleStatement (RaiseStatement (Expression (PrimaryExpression (Identifier "f"))) (ExpressionList (Expression (PrimaryExpression (Call (PrimaryExpression (Identifier "RunTimeError")) (ArgumentList (Expression (PrimaryExpression (String)))))))))) (SimpleStatement (RaiseStatement))) ================================================ FILE: semantic/test/fixtures/python/corpus/return-statement.A.py ================================================ return return a + b, c return not b ================================================ FILE: semantic/test/fixtures/python/corpus/return-statement.B.py ================================================ return c + a, b return return not a ================================================ FILE: semantic/test/fixtures/python/corpus/return-statement.diffA-B.txt ================================================ (Statements {+(Return {+(Statements {+(Plus {+(Identifier)+} {+(Identifier)+})+} {+(Identifier)+})+})+} (Return (Empty)) (Return { (Statements {-(Plus {-(Identifier)-} {-(Identifier)-})-} {-(Identifier)-}) ->(Not {+(Identifier)+}) }) {-(Return {-(Not {-(Identifier)-})-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/return-statement.diffB-A.txt ================================================ (Statements {-(Return {-(Statements {-(Plus {-(Identifier)-} {-(Identifier)-})-} {-(Identifier)-})-})-} (Return (Empty)) (Return { (Not {-(Identifier)-}) ->(Statements {+(Plus {+(Identifier)+} {+(Identifier)+})+} {+(Identifier)+}) }) {+(Return {+(Not {+(Identifier)+})+})+}) ================================================ FILE: semantic/test/fixtures/python/corpus/return-statement.parseA.txt ================================================ (Module (SimpleStatement (ReturnStatement)) (SimpleStatement (ReturnStatement (ExpressionList (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "a")) (PrimaryExpression (Identifier "b"))))) (Expression (PrimaryExpression (Identifier "c")))))) (SimpleStatement (ReturnStatement (ExpressionList (Expression (NotOperator (Expression (PrimaryExpression (Identifier "b"))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/return-statement.parseB.txt ================================================ (Module (SimpleStatement (ReturnStatement (ExpressionList (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "c")) (PrimaryExpression (Identifier "a"))))) (Expression (PrimaryExpression (Identifier "b")))))) (SimpleStatement (ReturnStatement)) (SimpleStatement (ReturnStatement (ExpressionList (Expression (NotOperator (Expression (PrimaryExpression (Identifier "a"))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/set-comprehension.A.py ================================================ { c for b in a } { d for e in f } ================================================ FILE: semantic/test/fixtures/python/corpus/set-comprehension.B.py ================================================ { f for e in d } { c + 1 for b in a } ================================================ FILE: semantic/test/fixtures/python/corpus/set-comprehension.diffA-B.txt ================================================ (Statements (Comprehension { (Identifier) ->(Identifier) } (Statements { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })) (Comprehension { (Identifier) ->(Plus {+(Identifier)+} {+(Integer)+}) } (Statements { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }))) ================================================ FILE: semantic/test/fixtures/python/corpus/set-comprehension.diffB-A.txt ================================================ (Statements (Comprehension { (Identifier) ->(Identifier) } (Statements { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })) (Comprehension { (Plus {-(Identifier)-} {-(Integer)-}) ->(Identifier) } (Statements { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) }))) ================================================ FILE: semantic/test/fixtures/python/corpus/set-comprehension.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (SetComprehension (Expression (PrimaryExpression (Identifier "c"))) (ForInClause (Variables (PrimaryExpression (Identifier "b"))) (Expression (PrimaryExpression (Identifier "a"))))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (SetComprehension (Expression (PrimaryExpression (Identifier "d"))) (ForInClause (Variables (PrimaryExpression (Identifier "e"))) (Expression (PrimaryExpression (Identifier "f")))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/set-comprehension.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (SetComprehension (Expression (PrimaryExpression (Identifier "f"))) (ForInClause (Variables (PrimaryExpression (Identifier "e"))) (Expression (PrimaryExpression (Identifier "d"))))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (SetComprehension (Expression (PrimaryExpression (BinaryOperator (Token) (PrimaryExpression (Identifier "c")) (PrimaryExpression (Integer "1"))))) (ForInClause (Variables (PrimaryExpression (Identifier "b"))) (Expression (PrimaryExpression (Identifier "a")))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/set.A.py ================================================ {} {1,2,3} ================================================ FILE: semantic/test/fixtures/python/corpus/set.B.py ================================================ {1} {3,2,1} ================================================ FILE: semantic/test/fixtures/python/corpus/set.diffA-B.txt ================================================ (Statements {+(Set {+(Integer)+})+} {+(Set {+(Integer)+} {+(Integer)+} {+(Integer)+})+} {-(Hash)-} {-(Set {-(Integer)-} {-(Integer)-} {-(Integer)-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/set.diffB-A.txt ================================================ (Statements {+(Hash)+} (Set (Integer) {+(Integer)+} {+(Integer)+}) {-(Set {-(Integer)-} {-(Integer)-} {-(Integer)-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/set.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Dictionary))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Set (Expression (PrimaryExpression (Integer "1"))) (Expression (PrimaryExpression (Integer "2"))) (Expression (PrimaryExpression (Integer "3"))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/set.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Set (Expression (PrimaryExpression (Integer "1")))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Set (Expression (PrimaryExpression (Integer "3"))) (Expression (PrimaryExpression (Integer "2"))) (Expression (PrimaryExpression (Integer "1"))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/slice.A.py ================================================ a[:] b[5:] b[5:6, ...] c[::] ================================================ FILE: semantic/test/fixtures/python/corpus/slice.B.py ================================================ c[4:5, ...] a[:] d[3:] e[::] ================================================ FILE: semantic/test/fixtures/python/corpus/slice.diffA-B.txt ================================================ (Statements {+(Subscript {+(Identifier)+} {+(Enumeration {+(Integer)+} {+(Integer)+} {+(Empty)+})+} {+(Ellipsis)+})+} (Subscript (Identifier) (Enumeration (Empty) (Empty) (Empty))) (Subscript { (Identifier) ->(Identifier) } (Enumeration { (Integer) ->(Integer) } (Empty) (Empty))) {+(Subscript {+(Identifier)+} {+(Enumeration {+(Empty)+} {+(Empty)+} {+(Empty)+})+})+} {-(Subscript {-(Identifier)-} {-(Enumeration {-(Integer)-} {-(Integer)-} {-(Empty)-})-} {-(Ellipsis)-})-} {-(Subscript {-(Identifier)-} {-(Enumeration {-(Empty)-} {-(Empty)-} {-(Empty)-})-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/slice.diffB-A.txt ================================================ (Statements {-(Subscript {-(Identifier)-} {-(Enumeration {-(Integer)-} {-(Integer)-} {-(Empty)-})-} {-(Ellipsis)-})-} (Subscript (Identifier) (Enumeration (Empty) (Empty) (Empty))) (Subscript { (Identifier) ->(Identifier) } (Enumeration { (Integer) ->(Integer) } (Empty) (Empty))) {+(Subscript {+(Identifier)+} {+(Enumeration {+(Integer)+} {+(Integer)+} {+(Empty)+})+} {+(Ellipsis)+})+} (Subscript { (Identifier) ->(Identifier) } (Enumeration (Empty) (Empty) (Empty)))) ================================================ FILE: semantic/test/fixtures/python/corpus/slice.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Subscript (Slice) (PrimaryExpression (Identifier "a"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Subscript (Slice (Expression (PrimaryExpression (Integer "5")))) (PrimaryExpression (Identifier "b"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Subscript (Slice (Expression (PrimaryExpression (Integer "5"))) (Expression (PrimaryExpression (Integer "6")))) (Token) (Expression (PrimaryExpression (Ellipsis "..."))) (PrimaryExpression (Identifier "b"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Subscript (Slice) (PrimaryExpression (Identifier "c")))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/slice.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Subscript (Slice (Expression (PrimaryExpression (Integer "4"))) (Expression (PrimaryExpression (Integer "5")))) (Token) (Expression (PrimaryExpression (Ellipsis "..."))) (PrimaryExpression (Identifier "c"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Subscript (Slice) (PrimaryExpression (Identifier "a"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Subscript (Slice (Expression (PrimaryExpression (Integer "3")))) (PrimaryExpression (Identifier "d"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Subscript (Slice) (PrimaryExpression (Identifier "e")))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/string.A.py ================================================ "I'm ok" '"ok"' r'hi' ur"bye" b'sup' `1` "\\" "/" "multiline \ string" ================================================ FILE: semantic/test/fixtures/python/corpus/string.B.py ================================================ "other \ multiline" "I'm ok" '"goodbye"' r'yo' ur"hiii" b'gg' `2` "/" ================================================ FILE: semantic/test/fixtures/python/corpus/string.diffA-B.txt ================================================ (Statements {+(TextElement)+} (TextElement) {+(TextElement)+} {+(TextElement)+} { (TextElement) ->(TextElement) } {+(TextElement)+} {+(TextElement)+} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} (TextElement) {-(TextElement)-}) ================================================ FILE: semantic/test/fixtures/python/corpus/string.diffB-A.txt ================================================ (Statements {-(TextElement)-} (TextElement) {+(TextElement)+} { (TextElement) ->(TextElement) } {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} (TextElement) {+(TextElement)+}) ================================================ FILE: semantic/test/fixtures/python/corpus/string.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (String))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (String))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (String))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (String))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (String))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (String))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (String (EscapeSequence "\\\\")))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (String))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (String (EscapeSequence "\\\n"))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/string.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (String (EscapeSequence "\\\n")))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (String))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (String))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (String))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (String))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (String))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (String))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (String)))))) ================================================ FILE: semantic/test/fixtures/python/corpus/subscript.A.py ================================================ a[b] ================================================ FILE: semantic/test/fixtures/python/corpus/subscript.B.py ================================================ b[a] ================================================ FILE: semantic/test/fixtures/python/corpus/subscript.diffA-B.txt ================================================ (Statements (Subscript { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })) ================================================ FILE: semantic/test/fixtures/python/corpus/subscript.diffB-A.txt ================================================ (Statements (Subscript { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })) ================================================ FILE: semantic/test/fixtures/python/corpus/subscript.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Subscript (Expression (PrimaryExpression (Identifier "b"))) (PrimaryExpression (Identifier "a")))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/subscript.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Subscript (Expression (PrimaryExpression (Identifier "a"))) (PrimaryExpression (Identifier "b")))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/try-statement.A.py ================================================ try: a b except b: c d except d as e: f g except g, h: i j except: j k try: a b finally: a b ================================================ FILE: semantic/test/fixtures/python/corpus/try-statement.B.py ================================================ try: b finally: c try: e except f: d except g as h: a except i, j: k except: l ================================================ FILE: semantic/test/fixtures/python/corpus/try-statement.diffA-B.txt ================================================ (Statements (Try { (Statements {-(Identifier)-} {-(Identifier)-}) ->(Identifier) } {+(Finally {+(Identifier)+})+} {-(Catch {-(Statements {-(Identifier)-} {-(Statements {-(Identifier)-} {-(Identifier)-})-})-} {-(Statements)-})-} {-(Catch {-(Let {-(Identifier)-} {-(Identifier)-} {-(Empty)-})-} {-(Statements {-(Identifier)-} {-(Identifier)-})-})-} {-(Catch {-(Statements {-(Identifier)-} {-(Identifier)-} {-(Statements {-(Identifier)-} {-(Identifier)-})-})-} {-(Statements)-})-} {-(Catch {-(Statements {-(Identifier)-} {-(Identifier)-})-} {-(Statements)-})-}) (Try { (Statements {-(Identifier)-} {-(Identifier)-}) ->(Identifier) } {+(Catch {+(Statements {+(Identifier)+} {+(Identifier)+})+} {+(Statements)+})+} {+(Catch {+(Let {+(Identifier)+} {+(Identifier)+} {+(Empty)+})+} {+(Identifier)+})+} {+(Catch {+(Statements {+(Identifier)+} {+(Identifier)+} {+(Identifier)+})+} {+(Statements)+})+} {+(Catch {+(Identifier)+} {+(Statements)+})+} {-(Finally {-(Statements {-(Identifier)-} {-(Identifier)-})-})-})) ================================================ FILE: semantic/test/fixtures/python/corpus/try-statement.diffB-A.txt ================================================ (Statements (Try { (Identifier) ->(Statements {+(Identifier)+} {+(Identifier)+}) } {+(Catch {+(Statements {+(Identifier)+} {+(Statements {+(Identifier)+} {+(Identifier)+})+})+} {+(Statements)+})+} {+(Catch {+(Let {+(Identifier)+} {+(Identifier)+} {+(Empty)+})+} {+(Statements {+(Identifier)+} {+(Identifier)+})+})+} {+(Catch {+(Statements {+(Identifier)+} {+(Identifier)+} {+(Statements {+(Identifier)+} {+(Identifier)+})+})+} {+(Statements)+})+} {+(Catch {+(Statements {+(Identifier)+} {+(Identifier)+})+} {+(Statements)+})+} {-(Finally {-(Identifier)-})-}) (Try { (Identifier) ->(Statements {+(Identifier)+} {+(Identifier)+}) } {+(Finally {+(Statements {+(Identifier)+} {+(Identifier)+})+})+} {-(Catch {-(Statements {-(Identifier)-} {-(Identifier)-})-} {-(Statements)-})-} {-(Catch {-(Let {-(Identifier)-} {-(Identifier)-} {-(Empty)-})-} {-(Identifier)-})-} {-(Catch {-(Statements {-(Identifier)-} {-(Identifier)-} {-(Identifier)-})-} {-(Statements)-})-} {-(Catch {-(Identifier)-} {-(Statements)-})-})) ================================================ FILE: semantic/test/fixtures/python/corpus/try-statement.parseA.txt ================================================ (Module (CompoundStatement (TryStatement (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "a"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "b")))))) (ExceptClause (Expression (PrimaryExpression (Identifier "b"))) (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "c"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "d"))))))) (ExceptClause (Expression (PrimaryExpression (Identifier "d"))) (Expression (PrimaryExpression (Identifier "e"))) (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "f"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "g"))))))) (ExceptClause (Expression (PrimaryExpression (Identifier "g"))) (Expression (PrimaryExpression (Identifier "h"))) (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "i"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "j"))))))) (ExceptClause (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "j"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "k"))))))))) (CompoundStatement (TryStatement (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "a"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "b")))))) (FinallyClause (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "a"))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "b")))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/try-statement.parseB.txt ================================================ (Module (CompoundStatement (TryStatement (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "b")))))) (FinallyClause (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "c"))))))))) (CompoundStatement (TryStatement (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "e")))))) (ExceptClause (Expression (PrimaryExpression (Identifier "f"))) (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "d"))))))) (ExceptClause (Expression (PrimaryExpression (Identifier "g"))) (Expression (PrimaryExpression (Identifier "h"))) (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "a"))))))) (ExceptClause (Expression (PrimaryExpression (Identifier "i"))) (Expression (PrimaryExpression (Identifier "j"))) (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "k"))))))) (ExceptClause (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "l")))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/tuple.A.py ================================================ (a, b) (a, b, c,) ================================================ FILE: semantic/test/fixtures/python/corpus/tuple.B.py ================================================ (b, c, a,) (b, c) (a) ================================================ FILE: semantic/test/fixtures/python/corpus/tuple.diffA-B.txt ================================================ (Statements (Tuple {-(Identifier)-} (Identifier) {+(Identifier)+} {+(Identifier)+}) (Tuple {-(Identifier)-} (Identifier) (Identifier)) {+(Identifier)+}) ================================================ FILE: semantic/test/fixtures/python/corpus/tuple.diffB-A.txt ================================================ (Statements (Tuple {-(Identifier)-} {-(Identifier)-} (Identifier) {+(Identifier)+}) (Tuple {+(Identifier)+} (Identifier) (Identifier)) {-(Identifier)-}) ================================================ FILE: semantic/test/fixtures/python/corpus/tuple.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Tuple (Expression (PrimaryExpression (Identifier "a"))) (Expression (PrimaryExpression (Identifier "b")))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Tuple (Expression (PrimaryExpression (Identifier "a"))) (Expression (PrimaryExpression (Identifier "b"))) (Expression (PrimaryExpression (Identifier "c"))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/tuple.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Tuple (Expression (PrimaryExpression (Identifier "b"))) (Expression (PrimaryExpression (Identifier "c"))) (Expression (PrimaryExpression (Identifier "a")))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Tuple (Expression (PrimaryExpression (Identifier "b"))) (Expression (PrimaryExpression (Identifier "c")))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (ParenthesizedExpression (Expression (PrimaryExpression (Identifier "a"))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/unary-operator.A.py ================================================ -a +b ~c ================================================ FILE: semantic/test/fixtures/python/corpus/unary-operator.B.py ================================================ ~a -b +c ================================================ FILE: semantic/test/fixtures/python/corpus/unary-operator.diffA-B.txt ================================================ (Statements {+(Complement {+(Identifier)+})+} (Negate { (Identifier) ->(Identifier) }) { (Identifier) ->(Identifier) } {-(Complement {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/unary-operator.diffB-A.txt ================================================ (Statements {+(Negate {+(Identifier)+})+} {+(Identifier)+} {+(Complement {+(Identifier)+})+} {-(Complement {-(Identifier)-})-} {-(Negate {-(Identifier)-})-} {-(Identifier)-}) ================================================ FILE: semantic/test/fixtures/python/corpus/unary-operator.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (UnaryOperator (Token) (PrimaryExpression (Identifier "a"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (UnaryOperator (Token) (PrimaryExpression (Identifier "b"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (UnaryOperator (Token) (PrimaryExpression (Identifier "c")))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/unary-operator.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (UnaryOperator (Token) (PrimaryExpression (Identifier "a"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (UnaryOperator (Token) (PrimaryExpression (Identifier "b"))))))) (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (UnaryOperator (Token) (PrimaryExpression (Identifier "c")))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/while-statement.A.py ================================================ while true: pass break continue ================================================ FILE: semantic/test/fixtures/python/corpus/while-statement.B.py ================================================ while false: break continue pass ================================================ FILE: semantic/test/fixtures/python/corpus/while-statement.diffA-B.txt ================================================ (Statements (While { (Identifier) ->(Identifier) } (Statements {-(NoOp {-(Empty)-})-} (Break (Empty)) (Continue (Empty)) {+(NoOp {+(Empty)+})+}))) ================================================ FILE: semantic/test/fixtures/python/corpus/while-statement.diffB-A.txt ================================================ (Statements (While { (Identifier) ->(Identifier) } (Statements {+(NoOp {+(Empty)+})+} (Break (Empty)) (Continue (Empty)) {-(NoOp {-(Empty)-})-}))) ================================================ FILE: semantic/test/fixtures/python/corpus/while-statement.parseA.txt ================================================ (Module (CompoundStatement (WhileStatement (Block (SimpleStatement (PassStatement "pass")) (SimpleStatement (BreakStatement "break")) (SimpleStatement (ContinueStatement "continue"))) (Expression (PrimaryExpression (Identifier "true")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/while-statement.parseB.txt ================================================ (Module (CompoundStatement (WhileStatement (Block (SimpleStatement (BreakStatement "break")) (SimpleStatement (ContinueStatement "continue")) (SimpleStatement (PassStatement "pass"))) (Expression (PrimaryExpression (Identifier "false")))))) ================================================ FILE: semantic/test/fixtures/python/corpus/with-statement.A.py ================================================ with a as b: c ================================================ FILE: semantic/test/fixtures/python/corpus/with-statement.B.py ================================================ with b as c: a ================================================ FILE: semantic/test/fixtures/python/corpus/with-statement.diffA-B.txt ================================================ (Statements (Let { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) } (Statements { (Identifier) ->(Identifier) }))) ================================================ FILE: semantic/test/fixtures/python/corpus/with-statement.diffB-A.txt ================================================ (Statements (Let { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) } (Statements { (Identifier) ->(Identifier) }))) ================================================ FILE: semantic/test/fixtures/python/corpus/with-statement.parseA.txt ================================================ (Module (CompoundStatement (WithStatement (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "c")))))) (WithItem (Expression (PrimaryExpression (Identifier "a"))) (Expression (PrimaryExpression (Identifier "b"))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/with-statement.parseB.txt ================================================ (Module (CompoundStatement (WithStatement (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "a")))))) (WithItem (Expression (PrimaryExpression (Identifier "b"))) (Expression (PrimaryExpression (Identifier "c"))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/with.A.py ================================================ with open(nsfile, 'w') as f: found = False for line in lines: found = True ================================================ FILE: semantic/test/fixtures/python/corpus/with.B.py ================================================ with cls._lock: found = False with patch.object(sys, 'stdout', stdout), \ patch.object(sys, 'stderr', stderr): x ================================================ FILE: semantic/test/fixtures/python/corpus/with.diffA-B.txt ================================================ (Statements (Let { (Identifier) ->(Empty) } { (Call {-(Identifier)-} {-(Identifier)-} {-(TextElement)-} {-(Empty)-}) ->(MemberAccess {+(Identifier)+} {+(Identifier)+}) } (Statements (Assignment (Identifier) (Boolean)) {-(ForEach {-(Identifier)-} {-(Identifier)-} {-(Statements {-(Assignment {-(Identifier)-} {-(Boolean)-})-})-})-})) {+(Let {+(Empty)+} {+(Call {+(MemberAccess {+(Identifier)+} {+(Identifier)+})+} {+(Identifier)+} {+(TextElement)+} {+(Identifier)+} {+(Empty)+})+} {+(Let {+(Empty)+} {+(Call {+(MemberAccess {+(Identifier)+} {+(Identifier)+})+} {+(Identifier)+} {+(TextElement)+} {+(Identifier)+} {+(Empty)+})+} {+(Statements {+(Identifier)+})+})+})+}) ================================================ FILE: semantic/test/fixtures/python/corpus/with.diffB-A.txt ================================================ (Statements (Let { (Empty) ->(Identifier) } { (MemberAccess {-(Identifier)-} {-(Identifier)-}) ->(Call {+(Identifier)+} {+(Identifier)+} {+(TextElement)+} {+(Empty)+}) } (Statements (Assignment (Identifier) (Boolean)) {+(ForEach {+(Identifier)+} {+(Identifier)+} {+(Statements {+(Assignment {+(Identifier)+} {+(Boolean)+})+})+})+})) {-(Let {-(Empty)-} {-(Call {-(MemberAccess {-(Identifier)-} {-(Identifier)-})-} {-(Identifier)-} {-(TextElement)-} {-(Identifier)-} {-(Empty)-})-} {-(Let {-(Empty)-} {-(Call {-(MemberAccess {-(Identifier)-} {-(Identifier)-})-} {-(Identifier)-} {-(TextElement)-} {-(Identifier)-} {-(Empty)-})-} {-(Statements {-(Identifier)-})-})-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/with.parseA.txt ================================================ (Module (CompoundStatement (WithStatement (Block (SimpleStatement (ExpressionStatement (Assignment (ExpressionList (Expression (PrimaryExpression (Identifier "found")))) (ExpressionList (Expression (PrimaryExpression (False "False"))))))) (CompoundStatement (ForStatement (Block (SimpleStatement (ExpressionStatement (Assignment (ExpressionList (Expression (PrimaryExpression (Identifier "found")))) (ExpressionList (Expression (PrimaryExpression (True "True")))))))) (Variables (PrimaryExpression (Identifier "line"))) (ExpressionList (Expression (PrimaryExpression (Identifier "lines"))))))) (WithItem (Expression (PrimaryExpression (Call (PrimaryExpression (Identifier "open")) (ArgumentList (Expression (PrimaryExpression (Identifier "nsfile"))) (Expression (PrimaryExpression (String))))))) (Expression (PrimaryExpression (Identifier "f"))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/with.parseB.txt ================================================ (Module (CompoundStatement (WithStatement (Block (SimpleStatement (ExpressionStatement (Assignment (ExpressionList (Expression (PrimaryExpression (Identifier "found")))) (ExpressionList (Expression (PrimaryExpression (False "False")))))))) (WithItem (Expression (PrimaryExpression (Attribute (Identifier "_lock") (PrimaryExpression (Identifier "cls")))))))) (CompoundStatement (WithStatement (Block (SimpleStatement (ExpressionStatement (Expression (PrimaryExpression (Identifier "x")))))) (WithItem (Expression (PrimaryExpression (Call (PrimaryExpression (Attribute (Identifier "object") (PrimaryExpression (Identifier "patch")))) (ArgumentList (Expression (PrimaryExpression (Identifier "sys"))) (Expression (PrimaryExpression (String))) (Expression (PrimaryExpression (Identifier "stdout")))))))) (WithItem (Expression (PrimaryExpression (Call (PrimaryExpression (Attribute (Identifier "object") (PrimaryExpression (Identifier "patch")))) (ArgumentList (Expression (PrimaryExpression (Identifier "sys"))) (Expression (PrimaryExpression (String))) (Expression (PrimaryExpression (Identifier "stderr"))))))))))) ================================================ FILE: semantic/test/fixtures/python/corpus/yield.A.py ================================================ yield ================================================ FILE: semantic/test/fixtures/python/corpus/yield.B.py ================================================ yield yield ================================================ FILE: semantic/test/fixtures/python/corpus/yield.diffA-B.txt ================================================ (Statements (Yield (Empty)) {+(Yield {+(Empty)+})+}) ================================================ FILE: semantic/test/fixtures/python/corpus/yield.diffB-A.txt ================================================ (Statements (Yield (Empty)) {-(Yield {-(Empty)-})-}) ================================================ FILE: semantic/test/fixtures/python/corpus/yield.parseA.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Yield)))) ================================================ FILE: semantic/test/fixtures/python/corpus/yield.parseB.txt ================================================ (Module (SimpleStatement (ExpressionStatement (Yield))) (SimpleStatement (ExpressionStatement (Yield)))) ================================================ FILE: semantic/test/fixtures/python/graphing/conditional/conditional.py ================================================ cond = True if cond: def merle(): pass merle() else: def taako(): pass taako() ================================================ FILE: semantic/test/fixtures/python/graphing/simple/simple.py ================================================ def magnus(): return "string" magnus() ================================================ FILE: semantic/test/fixtures/python/graphing/typeerror/typeerror.py ================================================ var = 1 + "thing" def lup(): pass lup() ================================================ FILE: semantic/test/fixtures/python/graphing/unbound/unbound.py ================================================ var = thing + 1 def lucretia(): pass lucretia() ================================================ FILE: semantic/test/fixtures/python/import-graph/main.json ================================================ { "modules": { "main": { "imports": [ { "span": { "start": [ 1, 1 ], "end": [ 1, 10 ] }, "path": "os", "symbols": [], "alias": "os" }, { "span": { "start": [ 2, 8 ], "end": [ 2, 19 ] }, "path": "numpy", "symbols": [], "alias": "np" }, { "span": { "start": [ 3, 1 ], "end": [ 3, 9 ] }, "path": "a", "symbols": [], "alias": "a" }, { "span": { "start": [ 3, 11 ], "end": [ 3, 17 ] }, "path": "b", "symbols": [], "alias": "c" }, { "span": { "start": [ 4, 8 ], "end": [ 4, 16 ] }, "path": "b.c", "symbols": [], "alias": "d" }, { "span": { "start": [ 4, 16 ], "end": [ 4, 19 ] }, "path": "e", "symbols": [], "alias": "e" }, { "span": { "start": [ 6, 1 ], "end": [ 6, 16 ] }, "path": "b", "symbols": [ { "alias": "a", "name": "a" } ], "alias": "" }, { "span": { "start": [ 7, 1 ], "end": [ 7, 21 ] }, "path": "b", "symbols": [ { "alias": "c", "name": "c" }, { "alias": "a", "name": "a" } ], "alias": "" }, { "span": { "start": [ 8, 1 ], "end": [ 8, 16 ] }, "path": "b", "symbols": [], "alias": "" }, { "span": { "start": [ 9, 1 ], "end": [ 9, 29 ] }, "path": "b", "symbols": [ { "alias": "x", "name": "a" }, { "alias": "y", "name": "b" } ], "alias": "" } ], "name": "main", "language": "Python", "declarations": [ { "span": { "start": [ 11, 1 ], "end": [ 13, 1 ] }, "kind": "Function", "name": "print_cwd", "module": "main" }, { "span": { "start": [ 14, 1 ], "end": [ 17, 1 ] }, "kind": "Function", "name": "create_array", "module": "main" }, { "span": { "start": [ 18, 1 ], "end": [ 21, 1 ] }, "kind": "Function", "name": "sum_array", "module": "main" }, { "span": { "start": [ 22, 1 ], "end": [ 24, 1 ] }, "kind": "Function", "name": "sum_array2", "module": "main" } ], "paths": [ "test/fixtures/python/import-graph/main.py" ], "calls": [ { "span": { "start": [ 12, 5 ], "end": [ 12, 23 ] }, "symbol": "print", "targets": [] }, { "span": { "start": [ 12, 11 ], "end": [ 12, 22 ] }, "symbol": "getcwd", "targets": [ "os" ] }, { "span": { "start": [ 15, 9 ], "end": [ 15, 31 ] }, "symbol": "array", "targets": [ "np" ] }, { "span": { "start": [ 19, 13 ], "end": [ 19, 20 ] }, "symbol": "sum", "targets": [ "x" ] }, { "span": { "start": [ 23, 12 ], "end": [ 23, 19 ] }, "symbol": "sum", "targets": [ "x" ] }, { "span": { "start": [ 26, 5 ], "end": [ 26, 45 ] }, "symbol": "print", "targets": [] }, { "span": { "start": [ 27, 5 ], "end": [ 27, 16 ] }, "symbol": "print_cwd", "targets": [] }, { "span": { "start": [ 28, 9 ], "end": [ 28, 23 ] }, "symbol": "create_array", "targets": [] }, { "span": { "start": [ 29, 13 ], "end": [ 29, 25 ] }, "symbol": "sum_array", "targets": [] }, { "span": { "start": [ 30, 14 ], "end": [ 30, 27 ] }, "symbol": "sum_array2", "targets": [] }, { "span": { "start": [ 31, 5 ], "end": [ 31, 55 ] }, "symbol": "print", "targets": [] }, { "span": { "start": [ 31, 11 ], "end": [ 31, 54 ] }, "symbol": "format", "targets": [ "'-' * 60 + '\\nYour sum is {}'" ] }, { "span": { "start": [ 32, 5 ], "end": [ 32, 70 ] }, "symbol": "print", "targets": [] }, { "span": { "start": [ 32, 11 ], "end": [ 32, 58 ] }, "symbol": "format", "targets": [ "'-' * 60 + '\\nYour sum2 is {}\\n'" ] } ] } } } ================================================ FILE: semantic/test/fixtures/python/import-graph/main.py ================================================ import os import numpy as np import a, b as c import b.c as d, e from b import a from b import (c, a) from b import * from b import a as x, b as y def print_cwd(): print(os.getcwd()) def create_array(): x = np.array([1, 2, 3, 4]) return x def sum_array(x): x_sum = x.sum() return x_sum def sum_array2(x): return x.sum() if __name__ == '__main__': print('-' * 60 + '\nCurrent directory:') print_cwd() x = create_array() x_sum = sum_array(x) x_sum2 = sum_array2(x) print('-' * 60 + '\nYour sum is {}'.format(x_sum)) print('-' * 60 + '\nYour sum2 is {}\n'.format(x_sum2) + '-' * 60) ================================================ FILE: semantic/test/fixtures/python/matching/docstrings.py ================================================ def foo(): """here's a docstring""" pass def bar(): """and another""" pass ================================================ FILE: semantic/test/fixtures/python/matching/docstrings_nested.py ================================================ def foo(): """here's a docstring""" pass def bar(): """and another""" def dang(): """and a nested one""" pass ================================================ FILE: semantic/test/fixtures/python/reprinting/function.out.py ================================================ def Foo(x): if True: return x else: return 0 Foo(1) ================================================ FILE: semantic/test/fixtures/python/reprinting/function.py ================================================ def Foo(x): if True: return x else: return 0 Foo(1) ================================================ FILE: semantic/test/fixtures/python/tags/class.py ================================================ class Foo: """The Foo class""" def f(self): """The f method""" return 0 ================================================ FILE: semantic/test/fixtures/python/tags/multiline.py ================================================ def Foo(x, b): return x Foo(1, 2) ================================================ FILE: semantic/test/fixtures/python/tags/simple_function_with_docs.py ================================================ def Foo(x): """This is the foo function""" return x ================================================ FILE: semantic/test/fixtures/python/tags/simple_functions.py ================================================ def Foo(x): if True: return x else: return 0 def Bar(): def local(): return 1 return 0 ================================================ FILE: semantic/test/fixtures/ruby/analysis/break.rb ================================================ ii = 0 while ii < 5 ii = ii + 1 if ii == 3 break end end ii ================================================ FILE: semantic/test/fixtures/ruby/analysis/call.rb ================================================ def foo(x, y) x + y end foo(123, 456) ================================================ FILE: semantic/test/fixtures/ruby/analysis/classes.rb ================================================ class A def self.hi "" end end class A def self.hi "" end class B def self.hi "" end end end A.hi() ================================================ FILE: semantic/test/fixtures/ruby/analysis/early-return.rb ================================================ def foo return 123 456 end foo ================================================ FILE: semantic/test/fixtures/ruby/analysis/foo.rb ================================================ def foo(x) return x end ================================================ FILE: semantic/test/fixtures/ruby/analysis/line.rb ================================================ # pushing us down a couple of lines to confirm def foo __LINE__ end foo() ================================================ FILE: semantic/test/fixtures/ruby/analysis/load-wrap.rb ================================================ load "./foo.rb", true foo(1) ================================================ FILE: semantic/test/fixtures/ruby/analysis/load.rb ================================================ load "./foo.rb" foo(1) ================================================ FILE: semantic/test/fixtures/ruby/analysis/main.rb ================================================ require_relative "foo" foo(1) ================================================ FILE: semantic/test/fixtures/ruby/analysis/modules.rb ================================================ module Bar def self.hi "" end end module Bar def self.hi "" end module Baz def self.baz "" end end end Bar.hi() ================================================ FILE: semantic/test/fixtures/ruby/analysis/next.rb ================================================ ii = 0 jj = 0 while ii < 5 ii = ii + 1 jj = jj + 1 if (ii == 3) && (jj == 3) ii = 0 next end end jj ================================================ FILE: semantic/test/fixtures/ruby/analysis/preluded.rb ================================================ class Foo < Object def inspect "" end end Foo.inspect() ================================================ FILE: semantic/test/fixtures/ruby/analysis/puts.rb ================================================ puts "hello" ================================================ FILE: semantic/test/fixtures/ruby/analysis/src/foo.rb ================================================ def foo() return "in foo" end ================================================ FILE: semantic/test/fixtures/ruby/analysis/src/main.rb ================================================ require File.join(__FILE__, "../foo.rb") require "foo" bar() # def foo # return "in foo" # end foo() ================================================ FILE: semantic/test/fixtures/ruby/analysis/subclass.rb ================================================ class Foo def inspect "" end def foo "the foo method" end end class Bar < Foo def inspect "" end end class Bar def baz end end Bar.inspect() ================================================ FILE: semantic/test/fixtures/ruby/corpus/alias.A.rb ================================================ alias :foo :bar alias foo bar alias $FOO $& alias foo + alias foo= bar= ================================================ FILE: semantic/test/fixtures/ruby/corpus/alias.parseA.txt ================================================ (Program (Statement (Alias (MethodName (Symbol)) (MethodName (Symbol)))) (Statement (Alias (MethodName (Identifier "bar")) (MethodName (Identifier "foo")))) (Statement (Alias (MethodName (GlobalVariable "$&")) (MethodName (GlobalVariable "$FOO")))) (Statement (Alias (MethodName (Operator "+")) (MethodName (Identifier "foo")))) (Statement (Alias (MethodName (Setter (Identifier "bar"))) (MethodName (Setter (Identifier "foo")))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/and-or.A.rb ================================================ foo and bar ================================================ FILE: semantic/test/fixtures/ruby/corpus/and-or.B.rb ================================================ foo or bar a or b and c ================================================ FILE: semantic/test/fixtures/ruby/corpus/and-or.diffA-B.txt ================================================ (Statements {+(LowPrecedenceOr {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+})+} (LowPrecedenceAnd { (Send {-(Identifier)-}) ->(LowPrecedenceOr {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+}) } (Send { (Identifier) ->(Identifier) }))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/and-or.diffB-A.txt ================================================ (Statements {+(LowPrecedenceAnd {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+})+} {-(LowPrecedenceOr {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-})-} {-(LowPrecedenceAnd {-(LowPrecedenceOr {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-})-} {-(Send {-(Identifier)-})-})-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/and-or.parseA.txt ================================================ (Program (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "foo"))))) (Arg (Primary (Lhs (Variable (Identifier "bar")))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/and-or.parseB.txt ================================================ (Program (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "foo"))))) (Arg (Primary (Lhs (Variable (Identifier "bar"))))))) (Statement (Binary (Token) (Arg (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Arg (Primary (Lhs (Variable (Identifier "c")))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/array.A.rb ================================================ [ 1, 2, 3] ================================================ FILE: semantic/test/fixtures/ruby/corpus/array.B.rb ================================================ ['a', 'b', 'c'] ================================================ FILE: semantic/test/fixtures/ruby/corpus/array.diffA-B.txt ================================================ (Statements (Array {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {-(Integer)-} {-(Integer)-} {-(Integer)-})) ================================================ FILE: semantic/test/fixtures/ruby/corpus/array.diffB-A.txt ================================================ (Statements (Array {+(Integer)+} {+(Integer)+} {+(Integer)+} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-})) ================================================ FILE: semantic/test/fixtures/ruby/corpus/array.parseA.txt ================================================ (Program (Statement (Arg (Primary (Array (Arg (Primary (Integer "1"))) (Arg (Primary (Integer "2"))) (Arg (Primary (Integer "3")))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/array.parseB.txt ================================================ (Program (Statement (Arg (Primary (Array (Arg (Primary (String))) (Arg (Primary (String))) (Arg (Primary (String)))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/assignment.A.rb ================================================ x = 0 ================================================ FILE: semantic/test/fixtures/ruby/corpus/assignment.B.rb ================================================ x = 1 ================================================ FILE: semantic/test/fixtures/ruby/corpus/assignment.diffA-B.txt ================================================ (Statements (Assignment (Identifier) { (Integer) ->(Integer) })) ================================================ FILE: semantic/test/fixtures/ruby/corpus/assignment.diffB-A.txt ================================================ (Statements (Assignment (Identifier) { (Integer) ->(Integer) })) ================================================ FILE: semantic/test/fixtures/ruby/corpus/assignment.parseA.txt ================================================ (Program (Statement (Assignment (Lhs (Variable (Identifier "x"))) (Arg (Primary (Integer "0")))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/assignment.parseB.txt ================================================ (Program (Statement (Assignment (Lhs (Variable (Identifier "x"))) (Arg (Primary (Integer "1")))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/begin-block.A.rb ================================================ BEGIN { foo } ================================================ FILE: semantic/test/fixtures/ruby/corpus/begin-block.B.rb ================================================ foo BEGIN { bar } ================================================ FILE: semantic/test/fixtures/ruby/corpus/begin-block.diffA-B.txt ================================================ (Statements {+(Send {+(Identifier)+})+} (ScopeEntry (Send { (Identifier) ->(Identifier) }))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/begin-block.diffB-A.txt ================================================ (Statements {+(ScopeEntry {+(Send {+(Identifier)+})+})+} {-(Send {-(Identifier)-})-} {-(ScopeEntry {-(Send {-(Identifier)-})-})-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/begin-block.parseA.txt ================================================ (Program (Statement (BeginBlock (Statement (Arg (Primary (Lhs (Variable (Identifier "foo"))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/begin-block.parseB.txt ================================================ (Program (Statement (Arg (Primary (Lhs (Variable (Identifier "foo")))))) (Statement (BeginBlock (Statement (Arg (Primary (Lhs (Variable (Identifier "bar"))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/begin.A.rb ================================================ def foo begin end end ================================================ FILE: semantic/test/fixtures/ruby/corpus/begin.B.rb ================================================ def foo begin puts 'hi' end end ================================================ FILE: semantic/test/fixtures/ruby/corpus/begin.diffA-B.txt ================================================ (Statements (Method (Empty) (Identifier) (Statements (Try { (Statements) ->(Send {+(Identifier)+} {+(TextElement)+}) })))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/begin.diffB-A.txt ================================================ (Statements (Method (Empty) (Identifier) (Statements (Try { (Send {-(Identifier)-} {-(TextElement)-}) ->(Statements) })))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/begin.parseA.txt ================================================ (Program (Statement (Arg (Primary (Method (MethodName (Identifier "foo")) (Statement (Arg (Primary (Begin))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/begin.parseB.txt ================================================ (Program (Statement (Arg (Primary (Method (MethodName (Identifier "foo")) (Statement (Arg (Primary (Begin (Statement (MethodCall (ArgumentList (Arg (Primary (String)))) (Variable (Identifier "puts"))))))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/binary.A.rb ================================================ a && b a and b a or b a || b a + b # a - b a << b a >> b a | b a & b a ^ b a == b a != b a === b a <=> b a =~ b a !~ b a < b a <= b a > b a >= b # a * b a / b a % b a ** b ================================================ FILE: semantic/test/fixtures/ruby/corpus/binary.parseA.txt ================================================ (Program (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b")))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/bitwise-operator.A.rb ================================================ a | b a >> b a ^ b ================================================ FILE: semantic/test/fixtures/ruby/corpus/bitwise-operator.B.rb ================================================ a & b a << b ================================================ FILE: semantic/test/fixtures/ruby/corpus/bitwise-operator.diffA-B.txt ================================================ (Statements {+(BAnd {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+})+} {+(LShift {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+})+} {-(BOr {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-})-} {-(RShift {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-})-} {-(BXOr {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-})-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/bitwise-operator.diffB-A.txt ================================================ (Statements {+(BOr {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+})+} {+(RShift {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+})+} {+(BXOr {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+})+} {-(BAnd {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-})-} {-(LShift {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-})-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/bitwise-operator.parseA.txt ================================================ (Program (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b")))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/bitwise-operator.parseB.txt ================================================ (Program (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b")))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/boolean-operator.A.rb ================================================ a || b ================================================ FILE: semantic/test/fixtures/ruby/corpus/boolean-operator.B.rb ================================================ a && b ================================================ FILE: semantic/test/fixtures/ruby/corpus/boolean-operator.diffA-B.txt ================================================ (Statements {+(And {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+})+} {-(Or {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-})-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/boolean-operator.diffB-A.txt ================================================ (Statements {+(Or {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+})+} {-(And {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-})-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/boolean-operator.parseA.txt ================================================ (Program (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b")))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/boolean-operator.parseB.txt ================================================ (Program (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b")))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/break.A.rb ================================================ while b break end ================================================ FILE: semantic/test/fixtures/ruby/corpus/break.B.rb ================================================ until b break end ================================================ FILE: semantic/test/fixtures/ruby/corpus/break.diffA-B.txt ================================================ (Statements (While { (Send {-(Identifier)-}) ->(Not {+(Send {+(Identifier)+})+}) } (Break (Empty)))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/break.diffB-A.txt ================================================ (Statements (While { (Not {-(Send {-(Identifier)-})-}) ->(Send {+(Identifier)+}) } (Break (Empty)))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/break.parseA.txt ================================================ (Program (Statement (Arg (Primary (While (Do (Statement (Break))) (Arg (Primary (Lhs (Variable (Identifier "b")))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/break.parseB.txt ================================================ (Program (Statement (Arg (Primary (Until (Do (Statement (Break))) (Arg (Primary (Lhs (Variable (Identifier "b")))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/calls.A.rb ================================================ foo(a, b, c: 1, :d => true) a.b() foo (b), a foo(&block) foo(*a) foo(**b) ================================================ FILE: semantic/test/fixtures/ruby/corpus/calls.parseA.txt ================================================ (Program (Statement (MethodCall (ArgumentList (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))) (Pair (Arg (Primary (Integer "1"))) (Symbol)) (Pair (Arg (Primary (Lhs (True "true")))) (Symbol))) (Variable (Identifier "foo")))) (Statement (MethodCall (ArgumentList) (Call (Primary (Lhs (Variable (Identifier "a")))) (Identifier "b")))) (Statement (MethodCall (ArgumentList (Arg (Primary (ParenthesizedStatements (Statement (Arg (Primary (Lhs (Variable (Identifier "b"))))))))) (Arg (Primary (Lhs (Variable (Identifier "a")))))) (Variable (Identifier "foo")))) (Statement (MethodCall (ArgumentList (BlockArgument (Arg (Primary (Lhs (Variable (Identifier "block"))))))) (Variable (Identifier "foo")))) (Statement (MethodCall (ArgumentList (SplatArgument (Arg (Primary (Lhs (Variable (Identifier "a"))))))) (Variable (Identifier "foo")))) (Statement (MethodCall (ArgumentList (HashSplatArgument (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Variable (Identifier "foo"))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/chained-string.A.rb ================================================ "a" "b" ================================================ FILE: semantic/test/fixtures/ruby/corpus/chained-string.parseA.txt ================================================ (Program (Statement (Arg (Primary (ChainedString (String) (String)))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/class.A.rb ================================================ class Foo < Super def test; end end class Foo::Bar end ================================================ FILE: semantic/test/fixtures/ruby/corpus/class.B.rb ================================================ class Foo def test; end end ================================================ FILE: semantic/test/fixtures/ruby/corpus/class.diffA-B.txt ================================================ (Statements (Class (Identifier) {-(Identifier)-} (Method (Empty) (Identifier) (Statements))) {-(Class {-(ScopeResolution {-(Identifier)-} {-(Identifier)-})-} {-(Statements)-})-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/class.diffB-A.txt ================================================ (Statements (Class (Identifier) {+(Identifier)+} (Method (Empty) (Identifier) (Statements))) {+(Class {+(ScopeResolution {+(Identifier)+} {+(Identifier)+})+} {+(Statements)+})+}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/class.parseA.txt ================================================ (Program (Statement (Arg (Primary (Class (Constant "Foo") (Superclass (Arg (Primary (Lhs (Variable (Constant "Super")))))) (Statement (Arg (Primary (Method (MethodName (Identifier "test")))))))))) (Statement (Arg (Primary (Class (ScopeResolution (Constant "Bar") (Primary (Lhs (Variable (Constant "Foo")))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/class.parseB.txt ================================================ (Program (Statement (Arg (Primary (Class (Constant "Foo") (Statement (Arg (Primary (Method (MethodName (Identifier "test"))))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/comment.A.rb ================================================ # This is a comment ================================================ FILE: semantic/test/fixtures/ruby/corpus/comment.B.rb ================================================ =begin This is a multiline comment =end ================================================ FILE: semantic/test/fixtures/ruby/corpus/comment.diffA-B.txt ================================================ (Statements (Context { (Comment) ->(Comment) } (Empty))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/comment.diffB-A.txt ================================================ (Statements (Context { (Comment) ->(Comment) } (Empty))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/comment.parseA.txt ================================================ (Program) ================================================ FILE: semantic/test/fixtures/ruby/corpus/comment.parseB.txt ================================================ (Program) ================================================ FILE: semantic/test/fixtures/ruby/corpus/comparision-operator.A.rb ================================================ x < y a > b ================================================ FILE: semantic/test/fixtures/ruby/corpus/comparision-operator.B.rb ================================================ x <= y a >= b ================================================ FILE: semantic/test/fixtures/ruby/corpus/comparision-operator.diffA-B.txt ================================================ (Statements {+(LessThanEqual {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+})+} {+(GreaterThanEqual {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+})+} {-(LessThan {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-})-} {-(GreaterThan {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-})-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/comparision-operator.diffB-A.txt ================================================ (Statements {+(LessThan {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+})+} {+(GreaterThan {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+})+} {-(LessThanEqual {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-})-} {-(GreaterThanEqual {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-})-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/comparision-operator.parseA.txt ================================================ (Program (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "x"))))) (Arg (Primary (Lhs (Variable (Identifier "y"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b")))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/comparision-operator.parseB.txt ================================================ (Program (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "x"))))) (Arg (Primary (Lhs (Variable (Identifier "y"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b")))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/conditional-assignment.A.rb ================================================ x ||= 5 ================================================ FILE: semantic/test/fixtures/ruby/corpus/conditional-assignment.B.rb ================================================ x &&= 7 ================================================ FILE: semantic/test/fixtures/ruby/corpus/conditional-assignment.diffA-B.txt ================================================ (Statements (AugmentedAssignment { (Or {-(Identifier)-} {-(Integer)-}) ->(And {+(Identifier)+} {+(Integer)+}) })) ================================================ FILE: semantic/test/fixtures/ruby/corpus/conditional-assignment.diffB-A.txt ================================================ (Statements (AugmentedAssignment { (And {-(Identifier)-} {-(Integer)-}) ->(Or {+(Identifier)+} {+(Integer)+}) })) ================================================ FILE: semantic/test/fixtures/ruby/corpus/conditional-assignment.parseA.txt ================================================ (Program (Statement (OperatorAssignment (Lhs (Variable (Identifier "x"))) (Arg (Primary (Integer "5")))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/conditional-assignment.parseB.txt ================================================ (Program (Statement (OperatorAssignment (Lhs (Variable (Identifier "x"))) (Arg (Primary (Integer "7")))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/delimiter.A.rb ================================================ %q#a# %qc> %#a# %Q#a# %c> %Qc> ================================================ FILE: semantic/test/fixtures/ruby/corpus/delimiter.B.rb ================================================ %q/b/ %q{d{e}f} %/b/ %Q/b/ %{d{e}f} %Q{d{e}f} ================================================ FILE: semantic/test/fixtures/ruby/corpus/delimiter.diffA-B.txt ================================================ (Statements { (TextElement) ->(TextElement) } {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {+(TextElement)+} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/delimiter.diffB-A.txt ================================================ (Statements { (TextElement) ->(TextElement) } {+(TextElement)+} {+(TextElement)+} { (TextElement) ->(TextElement) } {+(TextElement)+} {+(TextElement)+} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-} {-(TextElement)-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/delimiter.parseA.txt ================================================ (Program (Statement (Arg (Primary (String)))) (Statement (Arg (Primary (String)))) (Statement (Arg (Primary (String)))) (Statement (Arg (Primary (String)))) (Statement (Arg (Primary (String)))) (Statement (Arg (Primary (String))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/delimiter.parseB.txt ================================================ (Program (Statement (Arg (Primary (String)))) (Statement (Arg (Primary (String)))) (Statement (Arg (Primary (String)))) (Statement (Arg (Primary (String)))) (Statement (Arg (Primary (String)))) (Statement (Arg (Primary (String))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/element-reference.A.rb ================================================ foo[bar] foo[:bar] foo[bar] = 1 ================================================ FILE: semantic/test/fixtures/ruby/corpus/element-reference.B.rb ================================================ x["b"] x[:"c"] ================================================ FILE: semantic/test/fixtures/ruby/corpus/element-reference.diffA-B.txt ================================================ (Statements (Subscript (Send { (Identifier) ->(Identifier) }) {+(TextElement)+} {-(Send {-(Identifier)-})-}) (Subscript (Send { (Identifier) ->(Identifier) }) { (SymbolElement) ->(SymbolElement) }) {-(Assignment {-(Subscript {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-})-} {-(Integer)-})-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/element-reference.diffB-A.txt ================================================ (Statements (Subscript (Send { (Identifier) ->(Identifier) }) {+(Send {+(Identifier)+})+} {-(TextElement)-}) (Subscript (Send { (Identifier) ->(Identifier) }) { (SymbolElement) ->(SymbolElement) }) {+(Assignment {+(Subscript {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+})+} {+(Integer)+})+}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/element-reference.parseA.txt ================================================ (Program (Statement (Arg (Primary (Lhs (ElementReference (Primary (Lhs (Variable (Identifier "foo")))) (Arg (Primary (Lhs (Variable (Identifier "bar")))))))))) (Statement (Arg (Primary (Lhs (ElementReference (Primary (Lhs (Variable (Identifier "foo")))) (Arg (Primary (Symbol)))))))) (Statement (Assignment (Lhs (ElementReference (Primary (Lhs (Variable (Identifier "foo")))) (Arg (Primary (Lhs (Variable (Identifier "bar"))))))) (Arg (Primary (Integer "1")))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/element-reference.parseB.txt ================================================ (Program (Statement (Arg (Primary (Lhs (ElementReference (Primary (Lhs (Variable (Identifier "x")))) (Arg (Primary (String)))))))) (Statement (Arg (Primary (Lhs (ElementReference (Primary (Lhs (Variable (Identifier "x")))) (Arg (Primary (Symbol))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/else.A.rb ================================================ begin foo() else end ================================================ FILE: semantic/test/fixtures/ruby/corpus/else.B.rb ================================================ begin foo() else bar() end ================================================ FILE: semantic/test/fixtures/ruby/corpus/else.diffA-B.txt ================================================ (Statements (Try (Statements (Send (Identifier)) (Else (Empty) { (Statements) ->(Send {+(Identifier)+}) })))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/else.diffB-A.txt ================================================ (Statements (Try (Statements (Send (Identifier)) (Else (Empty) { (Send {-(Identifier)-}) ->(Statements) })))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/else.parseA.txt ================================================ (Program (Statement (Arg (Primary (Begin (Statement (MethodCall (ArgumentList) (Variable (Identifier "foo")))) (Else)))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/else.parseB.txt ================================================ (Program (Statement (Arg (Primary (Begin (Statement (MethodCall (ArgumentList) (Variable (Identifier "foo")))) (Else (Statement (MethodCall (ArgumentList) (Variable (Identifier "bar")))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/elsif.A.rb ================================================ if bar foo() elsif baz end ================================================ FILE: semantic/test/fixtures/ruby/corpus/elsif.B.rb ================================================ if bar foo() elsif baz qoz() end ================================================ FILE: semantic/test/fixtures/ruby/corpus/elsif.diffA-B.txt ================================================ (Statements (If (Send (Identifier)) (Statements (Send (Identifier))) (If (Send (Identifier)) (Statements {+(Send {+(Identifier)+})+}) (Empty)))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/elsif.diffB-A.txt ================================================ (Statements (If (Send (Identifier)) (Statements (Send (Identifier))) (If (Send (Identifier)) (Statements {-(Send {-(Identifier)-})-}) (Empty)))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/elsif.parseA.txt ================================================ (Program (Statement (Arg (Primary (If (Elsif (Statement (Arg (Primary (Lhs (Variable (Identifier "baz"))))))) (Then (Statement (MethodCall (ArgumentList) (Variable (Identifier "foo"))))) (Statement (Arg (Primary (Lhs (Variable (Identifier "bar"))))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/elsif.parseB.txt ================================================ (Program (Statement (Arg (Primary (If (Elsif (Then (Statement (MethodCall (ArgumentList) (Variable (Identifier "qoz"))))) (Statement (Arg (Primary (Lhs (Variable (Identifier "baz"))))))) (Then (Statement (MethodCall (ArgumentList) (Variable (Identifier "foo"))))) (Statement (Arg (Primary (Lhs (Variable (Identifier "bar"))))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/empty-statement.A.rb ================================================ ; ================================================ FILE: semantic/test/fixtures/ruby/corpus/empty-statement.parseA.txt ================================================ (Program (EmptyStatement ";")) ================================================ FILE: semantic/test/fixtures/ruby/corpus/end-block.A.rb ================================================ END { foo } ================================================ FILE: semantic/test/fixtures/ruby/corpus/end-block.B.rb ================================================ foo END { bar } ================================================ FILE: semantic/test/fixtures/ruby/corpus/end-block.diffA-B.txt ================================================ (Statements {+(Send {+(Identifier)+})+} (ScopeExit (Send { (Identifier) ->(Identifier) }))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/end-block.diffB-A.txt ================================================ (Statements {+(ScopeExit {+(Send {+(Identifier)+})+})+} {-(Send {-(Identifier)-})-} {-(ScopeExit {-(Send {-(Identifier)-})-})-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/end-block.parseA.txt ================================================ (Program (Statement (EndBlock (Statement (Arg (Primary (Lhs (Variable (Identifier "foo"))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/end-block.parseB.txt ================================================ (Program (Statement (Arg (Primary (Lhs (Variable (Identifier "foo")))))) (Statement (EndBlock (Statement (Arg (Primary (Lhs (Variable (Identifier "bar"))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/ensure.A.rb ================================================ begin foo ensure end ================================================ FILE: semantic/test/fixtures/ruby/corpus/ensure.B.rb ================================================ begin foo ensure bar end ================================================ FILE: semantic/test/fixtures/ruby/corpus/ensure.diffA-B.txt ================================================ (Statements (Try (Statements (Send (Identifier)) (Finally { (Statements) ->(Send {+(Identifier)+}) })))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/ensure.diffB-A.txt ================================================ (Statements (Try (Statements (Send (Identifier)) (Finally { (Send {-(Identifier)-}) ->(Statements) })))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/ensure.parseA.txt ================================================ (Program (Statement (Arg (Primary (Begin (Statement (Arg (Primary (Lhs (Variable (Identifier "foo")))))) (Ensure)))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/ensure.parseB.txt ================================================ (Program (Statement (Arg (Primary (Begin (Statement (Arg (Primary (Lhs (Variable (Identifier "foo")))))) (Ensure (Statement (Arg (Primary (Lhs (Variable (Identifier "bar")))))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/for.A.rb ================================================ for x in y f end for x, y in z do f end for n in 1..3 do true end for n, m in 1..3 do true end ================================================ FILE: semantic/test/fixtures/ruby/corpus/for.B.rb ================================================ for i in [1,2,3] do print i end ================================================ FILE: semantic/test/fixtures/ruby/corpus/for.diffA-B.txt ================================================ (Statements {+(ForEach {+(Statements {+(Send {+(Identifier)+})+})+} {+(Array {+(Integer)+} {+(Integer)+} {+(Integer)+})+} {+(Send {+(Identifier)+} {+(Send {+(Identifier)+})+})+})+} {-(ForEach {-(Statements {-(Send {-(Identifier)-})-})-} {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-})-} {-(ForEach {-(Statements {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-})-} {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-})-} {-(ForEach {-(Statements {-(Send {-(Identifier)-})-})-} {-(Enumeration {-(Integer)-} {-(Integer)-} {-(Empty)-})-} {-(Boolean)-})-} {-(ForEach {-(Statements {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-})-} {-(Enumeration {-(Integer)-} {-(Integer)-} {-(Empty)-})-} {-(Boolean)-})-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/for.diffB-A.txt ================================================ (Statements {+(ForEach {+(Statements {+(Send {+(Identifier)+})+})+} {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+})+} {+(ForEach {+(Statements {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+})+} {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+})+} (ForEach (Statements (Send { (Identifier) ->(Identifier) })) { (Array {-(Integer)-} {-(Integer)-} {-(Integer)-}) ->(Enumeration {+(Integer)+} {+(Integer)+} {+(Empty)+}) } { (Send {-(Identifier)-} {-(Send {-(Identifier)-})-}) ->(Boolean) }) {+(ForEach {+(Statements {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+})+} {+(Enumeration {+(Integer)+} {+(Integer)+} {+(Empty)+})+} {+(Boolean)+})+}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/for.parseA.txt ================================================ (Program (Statement (Arg (Primary (For (Lhs (Variable (Identifier "x"))) (Do (Statement (Arg (Primary (Lhs (Variable (Identifier "f"))))))) (In (Arg (Primary (Lhs (Variable (Identifier "y")))))))))) (Statement (Arg (Primary (For (Lhs (Variable (Identifier "x"))) (Lhs (Variable (Identifier "y"))) (Do (Statement (Arg (Primary (Lhs (Variable (Identifier "f"))))))) (In (Arg (Primary (Lhs (Variable (Identifier "z")))))))))) (Statement (Arg (Primary (For (Lhs (Variable (Identifier "n"))) (Do (Statement (Arg (Primary (Lhs (True "true")))))) (In (Arg (Range (Arg (Primary (Integer "1"))) (Arg (Primary (Integer "3")))))))))) (Statement (Arg (Primary (For (Lhs (Variable (Identifier "n"))) (Lhs (Variable (Identifier "m"))) (Do (Statement (Arg (Primary (Lhs (True "true")))))) (In (Arg (Range (Arg (Primary (Integer "1"))) (Arg (Primary (Integer "3"))))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/for.parseB.txt ================================================ (Program (Statement (Arg (Primary (For (Lhs (Variable (Identifier "i"))) (Do (Statement (MethodCall (ArgumentList (Arg (Primary (Lhs (Variable (Identifier "i")))))) (Variable (Identifier "print"))))) (In (Arg (Primary (Array (Arg (Primary (Integer "1"))) (Arg (Primary (Integer "2"))) (Arg (Primary (Integer "3")))))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/hash.A.rb ================================================ { :key1 => "value", :key2 => 1, "key3" => false, :"symbol_key" => 10 } {} { #comment a: 1, # comment #comment 'a' => 1 #comment } { #foo } ================================================ FILE: semantic/test/fixtures/ruby/corpus/hash.B.rb ================================================ { key1: "changed value", key2: 2, key3: true } ================================================ FILE: semantic/test/fixtures/ruby/corpus/hash.diffA-B.txt ================================================ (Statements (Hash (KeyValue { (SymbolElement) ->(SymbolElement) } { (TextElement) ->(TextElement) }) (KeyValue { (SymbolElement) ->(SymbolElement) } { (Integer) ->(Integer) }) (KeyValue { (TextElement) ->(SymbolElement) } { (Boolean) ->(Boolean) }) {-(KeyValue {-(SymbolElement)-} {-(Integer)-})-}) {-(Hash)-} {-(Hash {-(Context {-(Comment)-} {-(KeyValue {-(SymbolElement)-} {-(Integer)-})-})-} {-(Context {-(Comment)-} {-(Comment)-} {-(KeyValue {-(TextElement)-} {-(Integer)-})-})-} {-(Context {-(Comment)-} {-(Empty)-})-})-} {-(Hash {-(Context {-(Comment)-} {-(Empty)-})-})-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/hash.diffB-A.txt ================================================ (Statements (Hash (KeyValue { (SymbolElement) ->(SymbolElement) } { (TextElement) ->(TextElement) }) (KeyValue { (SymbolElement) ->(SymbolElement) } { (Integer) ->(Integer) }) (KeyValue { (SymbolElement) ->(TextElement) } { (Boolean) ->(Boolean) }) {+(KeyValue {+(SymbolElement)+} {+(Integer)+})+}) {+(Hash)+} {+(Hash {+(Context {+(Comment)+} {+(KeyValue {+(SymbolElement)+} {+(Integer)+})+})+} {+(Context {+(Comment)+} {+(Comment)+} {+(KeyValue {+(TextElement)+} {+(Integer)+})+})+} {+(Context {+(Comment)+} {+(Empty)+})+})+} {+(Hash {+(Context {+(Comment)+} {+(Empty)+})+})+}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/hash.parseA.txt ================================================ (Program (Statement (Arg (Primary (Hash (Pair (Arg (Primary (String))) (Symbol)) (Pair (Arg (Primary (Integer "1"))) (Symbol)) (Pair (Arg (Primary (Lhs (False "false")))) (String)) (Pair (Arg (Primary (Integer "10"))) (Symbol)))))) (Statement (Arg (Primary (Hash)))) (Statement (Arg (Primary (Hash (Pair (Arg (Primary (Integer "1"))) (Symbol)) (Pair (Arg (Primary (Integer "1"))) (String)))))) (Statement (Arg (Primary (Hash))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/hash.parseB.txt ================================================ (Program (Statement (Arg (Primary (Hash (Pair (Arg (Primary (String))) (Symbol)) (Pair (Arg (Primary (Integer "2"))) (Symbol)) (Pair (Arg (Primary (Lhs (True "true")))) (Symbol))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/heredoc.A.rb ================================================ <(Send {+(Identifier)+}) } (Send (Identifier)) (Empty))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/if-unless-modifiers.diffB-A.txt ================================================ (Statements (If { (Send {-(Identifier)-}) ->(Not {+(Send {+(Identifier)+})+}) } (Send (Identifier)) (Empty))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/if-unless-modifiers.parseA.txt ================================================ (Program (Statement (UnlessModifier (Statement (Arg (Primary (Lhs (Variable (Identifier "print")))))) (Arg (Primary (Lhs (Variable (Identifier "foo")))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/if-unless-modifiers.parseB.txt ================================================ (Program (Statement (IfModifier (Statement (Arg (Primary (Lhs (Variable (Identifier "print")))))) (Arg (Primary (Lhs (Variable (Identifier "foo")))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/if.A.rb ================================================ if foo bar elsif quux baz else bat end ================================================ FILE: semantic/test/fixtures/ruby/corpus/if.B.rb ================================================ if x end if y then end ================================================ FILE: semantic/test/fixtures/ruby/corpus/if.diffA-B.txt ================================================ (Statements (If (Send { (Identifier) ->(Identifier) }) (Statements {-(Send {-(Identifier)-})-}) { (If {-(Send {-(Identifier)-})-} {-(Statements {-(Send {-(Identifier)-})-})-} {-(Send {-(Identifier)-})-}) ->(Empty) }) {+(If {+(Send {+(Identifier)+})+} {+(Statements {+(Statements)+})+} {+(Empty)+})+}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/if.diffB-A.txt ================================================ (Statements (If (Send { (Identifier) ->(Identifier) }) (Statements {+(Send {+(Identifier)+})+}) { (Empty) ->(If {+(Send {+(Identifier)+})+} {+(Statements {+(Send {+(Identifier)+})+})+} {+(Send {+(Identifier)+})+}) }) {-(If {-(Send {-(Identifier)-})-} {-(Statements {-(Statements)-})-} {-(Empty)-})-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/if.parseA.txt ================================================ (Program (Statement (Arg (Primary (If (Elsif (Else (Statement (Arg (Primary (Lhs (Variable (Identifier "bat"))))))) (Then (Statement (Arg (Primary (Lhs (Variable (Identifier "baz"))))))) (Statement (Arg (Primary (Lhs (Variable (Identifier "quux"))))))) (Then (Statement (Arg (Primary (Lhs (Variable (Identifier "bar"))))))) (Statement (Arg (Primary (Lhs (Variable (Identifier "foo"))))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/if.parseB.txt ================================================ (Program (Statement (Arg (Primary (If (Statement (Arg (Primary (Lhs (Variable (Identifier "x")))))))))) (Statement (Arg (Primary (If (Then) (Statement (Arg (Primary (Lhs (Variable (Identifier "y"))))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/interpolation.A.rb ================================================ :"foo #{bar}" "foo #{bar}" ================================================ FILE: semantic/test/fixtures/ruby/corpus/interpolation.B.rb ================================================ :"bar #{foo}" "bar #{foo}" ================================================ FILE: semantic/test/fixtures/ruby/corpus/interpolation.diffA-B.txt ================================================ (Statements (Symbol (InterpolationElement (Send { (Identifier) ->(Identifier) }))) (String (InterpolationElement (Send { (Identifier) ->(Identifier) })))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/interpolation.diffB-A.txt ================================================ (Statements (Symbol (InterpolationElement (Send { (Identifier) ->(Identifier) }))) (String (InterpolationElement (Send { (Identifier) ->(Identifier) })))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/interpolation.parseA.txt ================================================ (Program (Statement (Arg (Primary (Symbol (Interpolation (Statement (Arg (Primary (Lhs (Variable (Identifier "bar"))))))))))) (Statement (Arg (Primary (String (Interpolation (Statement (Arg (Primary (Lhs (Variable (Identifier "bar")))))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/interpolation.parseB.txt ================================================ (Program (Statement (Arg (Primary (Symbol (Interpolation (Statement (Arg (Primary (Lhs (Variable (Identifier "foo"))))))))))) (Statement (Arg (Primary (String (Interpolation (Statement (Arg (Primary (Lhs (Variable (Identifier "foo")))))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/keywords.A.rb ================================================ __FILE__ __LINE__ __ENCODING__ ================================================ FILE: semantic/test/fixtures/ruby/corpus/keywords.parseA.txt ================================================ (Program (Statement (Arg (Primary (Lhs (Variable (Identifier "__FILE__")))))) (Statement (Arg (Primary (Lhs (Variable (Identifier "__LINE__")))))) (Statement (Arg (Primary (Lhs (Variable (Identifier "__ENCODING__"))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/lambda-dash-rocket.A.rb ================================================ -> (a, b, c) { 1 2 } ================================================ FILE: semantic/test/fixtures/ruby/corpus/lambda-dash-rocket.B.rb ================================================ -> { foo } ================================================ FILE: semantic/test/fixtures/ruby/corpus/lambda-dash-rocket.diffA-B.txt ================================================ (Statements (Function (Empty) {-(Identifier)-} {-(Identifier)-} {-(Identifier)-} (Function (Empty) { (Statements {-(Integer)-} {-(Integer)-}) ->(Send {+(Identifier)+}) }))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/lambda-dash-rocket.diffB-A.txt ================================================ (Statements (Function (Empty) {+(Identifier)+} {+(Identifier)+} {+(Identifier)+} (Function (Empty) { (Send {-(Identifier)-}) ->(Statements {+(Integer)+} {+(Integer)+}) }))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/lambda-dash-rocket.parseA.txt ================================================ (Program (Statement (Arg (Primary (Lambda (Block (Statement (Arg (Primary (Integer "1")))) (Statement (Arg (Primary (Integer "2"))))) (LambdaParameters (Identifier "a") (Identifier "b") (Identifier "c"))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/lambda-dash-rocket.parseB.txt ================================================ (Program (Statement (Arg (Primary (Lambda (Block (Statement (Arg (Primary (Lhs (Variable (Identifier "foo")))))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/lambda.A.rb ================================================ lambda {} lambda { foo } lambda { |a, b: false, c = nil| 1 } -> {} -> { foo } -> foo { 1 } -> (d, *f, (x, y)) {} ================================================ FILE: semantic/test/fixtures/ruby/corpus/lambda.B.rb ================================================ lambda { |x| x + 1 } ================================================ FILE: semantic/test/fixtures/ruby/corpus/lambda.diffA-B.txt ================================================ (Statements (Send (Identifier) (Function (Empty) {+(Identifier)+} { (Statements) ->(Plus {+(Identifier)+} {+(Integer)+}) })) {-(Send {-(Identifier)-} {-(Function {-(Empty)-} {-(Send {-(Identifier)-})-})-})-} {-(Send {-(Identifier)-} {-(Function {-(Empty)-} {-(Identifier)-} {-(Identifier)-} {-(Identifier)-} {-(Integer)-})-})-} {-(Function {-(Empty)-} {-(Function {-(Empty)-} {-(Statements)-})-})-} {-(Function {-(Empty)-} {-(Function {-(Empty)-} {-(Send {-(Identifier)-})-})-})-} {-(Function {-(Empty)-} {-(Identifier)-} {-(Function {-(Empty)-} {-(Integer)-})-})-} {-(Function {-(Empty)-} {-(Identifier)-} {-(Identifier)-} {-(Statements {-(Identifier)-} {-(Identifier)-})-} {-(Function {-(Empty)-} {-(Statements)-})-})-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/lambda.diffB-A.txt ================================================ (Statements (Send (Identifier) (Function (Empty) {-(Identifier)-} { (Plus {-(Identifier)-} {-(Integer)-}) ->(Statements) })) {+(Send {+(Identifier)+} {+(Function {+(Empty)+} {+(Send {+(Identifier)+})+})+})+} {+(Send {+(Identifier)+} {+(Function {+(Empty)+} {+(Identifier)+} {+(Identifier)+} {+(Identifier)+} {+(Integer)+})+})+} {+(Function {+(Empty)+} {+(Function {+(Empty)+} {+(Statements)+})+})+} {+(Function {+(Empty)+} {+(Function {+(Empty)+} {+(Send {+(Identifier)+})+})+})+} {+(Function {+(Empty)+} {+(Identifier)+} {+(Function {+(Empty)+} {+(Integer)+})+})+} {+(Function {+(Empty)+} {+(Identifier)+} {+(Identifier)+} {+(Statements {+(Identifier)+} {+(Identifier)+})+} {+(Function {+(Empty)+} {+(Statements)+})+})+}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/lambda.parseA.txt ================================================ (Program (Statement (MethodCall (Block) (Variable (Identifier "lambda")))) (Statement (MethodCall (Block (Statement (Arg (Primary (Lhs (Variable (Identifier "foo"))))))) (Variable (Identifier "lambda")))) (Statement (MethodCall (Block (BlockParameters (Identifier "a") (KeywordParameter (Arg (Primary (Lhs (False "false")))) (Identifier "b")) (OptionalParameter (Arg (Primary (Lhs (Nil "nil")))) (Identifier "c"))) (Statement (Arg (Primary (Integer "1"))))) (Variable (Identifier "lambda")))) (Statement (Arg (Primary (Lambda (Block))))) (Statement (Arg (Primary (Lambda (Block (Statement (Arg (Primary (Lhs (Variable (Identifier "foo"))))))))))) (Statement (Arg (Primary (Lambda (Block (Statement (Arg (Primary (Integer "1"))))) (LambdaParameters (Identifier "foo")))))) (Statement (Arg (Primary (Lambda (Block) (LambdaParameters (Identifier "d") (SplatParameter (Identifier "f")) (DestructuredParameter (Identifier "x") (Identifier "y")))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/lambda.parseB.txt ================================================ (Program (Statement (MethodCall (Block (BlockParameters (Identifier "x")) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "x"))))) (Arg (Primary (Integer "1")))))) (Variable (Identifier "lambda"))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/literals.A.rb ================================================ true false nil :foo 1234 self super 1..3 1...5 ================================================ FILE: semantic/test/fixtures/ruby/corpus/literals.parseA.txt ================================================ (Program (Statement (Arg (Primary (Lhs (True "true"))))) (Statement (Arg (Primary (Lhs (False "false"))))) (Statement (Arg (Primary (Lhs (Nil "nil"))))) (Statement (Arg (Primary (Symbol)))) (Statement (Arg (Primary (Integer "1234")))) (Statement (Arg (Primary (Lhs (Variable (Self "self")))))) (Statement (Arg (Primary (Lhs (Variable (Super "super")))))) (Statement (Arg (Range (Arg (Primary (Integer "1"))) (Arg (Primary (Integer "3")))))) (Statement (Arg (Range (Arg (Primary (Integer "1"))) (Arg (Primary (Integer "5"))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/math-assignment.A.rb ================================================ x += 1 x -= 1 x *= 1 x /= 1 x **= 1 ================================================ FILE: semantic/test/fixtures/ruby/corpus/math-assignment.B.rb ================================================ x+= 2 x -= 1 x *= 1 x /= 1 x **= 1 ================================================ FILE: semantic/test/fixtures/ruby/corpus/math-assignment.diffA-B.txt ================================================ (Statements (AugmentedAssignment (Plus (Identifier) { (Integer) ->(Integer) })) (AugmentedAssignment (Minus (Identifier) (Integer))) (AugmentedAssignment (Times (Identifier) (Integer))) (AugmentedAssignment (DividedBy (Identifier) (Integer))) (AugmentedAssignment (Power (Identifier) (Integer)))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/math-assignment.diffB-A.txt ================================================ (Statements (AugmentedAssignment (Plus (Identifier) { (Integer) ->(Integer) })) (AugmentedAssignment (Minus (Identifier) (Integer))) (AugmentedAssignment (Times (Identifier) (Integer))) (AugmentedAssignment (DividedBy (Identifier) (Integer))) (AugmentedAssignment (Power (Identifier) (Integer)))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/math-assignment.parseA.txt ================================================ (Program (Statement (OperatorAssignment (Lhs (Variable (Identifier "x"))) (Arg (Primary (Integer "1"))))) (Statement (OperatorAssignment (Lhs (Variable (Identifier "x"))) (Arg (Primary (Integer "1"))))) (Statement (OperatorAssignment (Lhs (Variable (Identifier "x"))) (Arg (Primary (Integer "1"))))) (Statement (OperatorAssignment (Lhs (Variable (Identifier "x"))) (Arg (Primary (Integer "1"))))) (Statement (OperatorAssignment (Lhs (Variable (Identifier "x"))) (Arg (Primary (Integer "1")))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/math-assignment.parseB.txt ================================================ (Program (Statement (OperatorAssignment (Lhs (Variable (Identifier "x"))) (Arg (Primary (Integer "2"))))) (Statement (OperatorAssignment (Lhs (Variable (Identifier "x"))) (Arg (Primary (Integer "1"))))) (Statement (OperatorAssignment (Lhs (Variable (Identifier "x"))) (Arg (Primary (Integer "1"))))) (Statement (OperatorAssignment (Lhs (Variable (Identifier "x"))) (Arg (Primary (Integer "1"))))) (Statement (OperatorAssignment (Lhs (Variable (Identifier "x"))) (Arg (Primary (Integer "1")))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-calls-hash-args.A.rb ================================================ foo(:bar => true) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-calls-hash-args.B.rb ================================================ foo(:bar => true, :baz => 1) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-calls-hash-args.diffA-B.txt ================================================ (Statements (Send (Identifier) (KeyValue (SymbolElement) (Boolean)) {+(KeyValue {+(SymbolElement)+} {+(Integer)+})+})) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-calls-hash-args.diffB-A.txt ================================================ (Statements (Send (Identifier) (KeyValue (SymbolElement) (Boolean)) {-(KeyValue {-(SymbolElement)-} {-(Integer)-})-})) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-calls-hash-args.parseA.txt ================================================ (Program (Statement (MethodCall (ArgumentList (Pair (Arg (Primary (Lhs (True "true")))) (Symbol))) (Variable (Identifier "foo"))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-calls-hash-args.parseB.txt ================================================ (Program (Statement (MethodCall (ArgumentList (Pair (Arg (Primary (Lhs (True "true")))) (Symbol)) (Pair (Arg (Primary (Integer "1"))) (Symbol))) (Variable (Identifier "foo"))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-calls-keyword-args.A.rb ================================================ foo(bar: true) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-calls-keyword-args.B.rb ================================================ foo(bar: true, baz: 1) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-calls-keyword-args.diffA-B.txt ================================================ (Statements (Send (Identifier) (KeyValue (SymbolElement) (Boolean)) {+(KeyValue {+(SymbolElement)+} {+(Integer)+})+})) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-calls-keyword-args.diffB-A.txt ================================================ (Statements (Send (Identifier) (KeyValue (SymbolElement) (Boolean)) {-(KeyValue {-(SymbolElement)-} {-(Integer)-})-})) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-calls-keyword-args.parseA.txt ================================================ (Program (Statement (MethodCall (ArgumentList (Pair (Arg (Primary (Lhs (True "true")))) (Symbol))) (Variable (Identifier "foo"))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-calls-keyword-args.parseB.txt ================================================ (Program (Statement (MethodCall (ArgumentList (Pair (Arg (Primary (Lhs (True "true")))) (Symbol)) (Pair (Arg (Primary (Integer "1"))) (Symbol))) (Variable (Identifier "foo"))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-calls.A.rb ================================================ x.foo() foo(a, b, :c => 2, d: 3) foo(bar(a),) foo([] => 1, *bar, &blk, -> (a) { 1 }) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-calls.B.rb ================================================ bar() ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-calls.diffA-B.txt ================================================ (Statements (Send {-(Send {-(Identifier)-})-} { (Identifier) ->(Identifier) }) {-(Send {-(Identifier)-} {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-} {-(KeyValue {-(SymbolElement)-} {-(Integer)-})-} {-(KeyValue {-(SymbolElement)-} {-(Integer)-})-})-} {-(Send {-(Identifier)-} {-(Send {-(Identifier)-} {-(Send {-(Identifier)-})-})-})-} {-(Send {-(Identifier)-} {-(KeyValue {-(Array)-} {-(Integer)-})-} {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-} {-(Function {-(Empty)-} {-(Identifier)-} {-(Function {-(Empty)-} {-(Integer)-})-})-})-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-calls.diffB-A.txt ================================================ (Statements (Send {+(Send {+(Identifier)+})+} { (Identifier) ->(Identifier) }) {+(Send {+(Identifier)+} {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+} {+(KeyValue {+(SymbolElement)+} {+(Integer)+})+} {+(KeyValue {+(SymbolElement)+} {+(Integer)+})+})+} {+(Send {+(Identifier)+} {+(Send {+(Identifier)+} {+(Send {+(Identifier)+})+})+})+} {+(Send {+(Identifier)+} {+(KeyValue {+(Array)+} {+(Integer)+})+} {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+} {+(Function {+(Empty)+} {+(Identifier)+} {+(Function {+(Empty)+} {+(Integer)+})+})+})+}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-calls.parseA.txt ================================================ (Program (Statement (MethodCall (ArgumentList) (Call (Primary (Lhs (Variable (Identifier "x")))) (Identifier "foo")))) (Statement (MethodCall (ArgumentList (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "b"))))) (Pair (Arg (Primary (Integer "2"))) (Symbol)) (Pair (Arg (Primary (Integer "3"))) (Symbol))) (Variable (Identifier "foo")))) (Statement (MethodCall (ArgumentList (MethodCall (ArgumentList (Arg (Primary (Lhs (Variable (Identifier "a")))))) (Variable (Identifier "bar")))) (Variable (Identifier "foo")))) (Statement (MethodCall (ArgumentList (Pair (Arg (Primary (Integer "1"))) (Arg (Primary (Array)))) (SplatArgument (Arg (Primary (Lhs (Variable (Identifier "bar")))))) (BlockArgument (Arg (Primary (Lhs (Variable (Identifier "blk")))))) (Arg (Primary (Lambda (Block (Statement (Arg (Primary (Integer "1"))))) (LambdaParameters (Identifier "a")))))) (Variable (Identifier "foo"))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-calls.parseB.txt ================================================ (Program (Statement (MethodCall (ArgumentList) (Variable (Identifier "bar"))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-keyword-param.A.rb ================================================ def foo() end ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-keyword-param.B.rb ================================================ def foo(name: nil) end ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-keyword-param.diffA-B.txt ================================================ (Statements (Method (Empty) (Identifier) {+(Identifier)+} (Statements))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-keyword-param.diffB-A.txt ================================================ (Statements (Method (Empty) (Identifier) {-(Identifier)-} (Statements))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-keyword-param.parseA.txt ================================================ (Program (Statement (Arg (Primary (Method (MethodName (Identifier "foo")) (MethodParameters)))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-keyword-param.parseB.txt ================================================ (Program (Statement (Arg (Primary (Method (MethodName (Identifier "foo")) (MethodParameters (KeywordParameter (Arg (Primary (Lhs (Nil "nil")))) (Identifier "name")))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-param-default.A.rb ================================================ def foo() end ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-param-default.B.rb ================================================ def foo(name = nil) end ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-param-default.diffA-B.txt ================================================ (Statements (Method (Empty) (Identifier) {+(Identifier)+} (Statements))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-param-default.diffB-A.txt ================================================ (Statements (Method (Empty) (Identifier) {-(Identifier)-} (Statements))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-param-default.parseA.txt ================================================ (Program (Statement (Arg (Primary (Method (MethodName (Identifier "foo")) (MethodParameters)))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-param-default.parseB.txt ================================================ (Program (Statement (Arg (Primary (Method (MethodName (Identifier "foo")) (MethodParameters (OptionalParameter (Arg (Primary (Lhs (Nil "nil")))) (Identifier "name")))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-params.A.rb ================================================ def foo(a) end ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-params.B.rb ================================================ def foo(a, b, c) end ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-params.diffA-B.txt ================================================ (Statements (Method (Empty) (Identifier) (Identifier) {+(Identifier)+} {+(Identifier)+} (Statements))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-params.diffB-A.txt ================================================ (Statements (Method (Empty) (Identifier) (Identifier) {-(Identifier)-} {-(Identifier)-} (Statements))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-params.parseA.txt ================================================ (Program (Statement (Arg (Primary (Method (MethodName (Identifier "foo")) (MethodParameters (Identifier "a"))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-params.parseB.txt ================================================ (Program (Statement (Arg (Primary (Method (MethodName (Identifier "foo")) (MethodParameters (Identifier "a") (Identifier "b") (Identifier "c"))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-required-keyword-param.A.rb ================================================ def foo() end ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-required-keyword-param.B.rb ================================================ def foo(name:) end ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-required-keyword-param.diffA-B.txt ================================================ (Statements (Method (Empty) (Identifier) {+(Identifier)+} (Statements))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-required-keyword-param.diffB-A.txt ================================================ (Statements (Method (Empty) (Identifier) {-(Identifier)-} (Statements))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-required-keyword-param.parseA.txt ================================================ (Program (Statement (Arg (Primary (Method (MethodName (Identifier "foo")) (MethodParameters)))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-required-keyword-param.parseB.txt ================================================ (Program (Statement (Arg (Primary (Method (MethodName (Identifier "foo")) (MethodParameters (KeywordParameter (Identifier "name")))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-unnamed-param.A.rb ================================================ def foo(name) end ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-unnamed-param.B.rb ================================================ def foo(name, **) end ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-unnamed-param.diffA-B.txt ================================================ (Statements (Method (Empty) (Identifier) (Identifier) {+(Empty)+} (Statements))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-unnamed-param.diffB-A.txt ================================================ (Statements (Method (Empty) (Identifier) (Identifier) {-(Empty)-} (Statements))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-unnamed-param.parseA.txt ================================================ (Program (Statement (Arg (Primary (Method (MethodName (Identifier "foo")) (MethodParameters (Identifier "name"))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration-unnamed-param.parseB.txt ================================================ (Program (Statement (Arg (Primary (Method (MethodName (Identifier "foo")) (MethodParameters (Identifier "name") (HashSplatParameter))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration.A.rb ================================================ def foo end ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration.B.rb ================================================ def bar(a) baz end ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration.diffA-B.txt ================================================ (Statements (Method (Empty) { (Identifier) ->(Identifier) } {+(Identifier)+} (Statements {+(Send {+(Identifier)+})+}))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration.diffB-A.txt ================================================ (Statements (Method (Empty) { (Identifier) ->(Identifier) } {-(Identifier)-} (Statements {-(Send {-(Identifier)-})-}))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration.parseA.txt ================================================ (Program (Statement (Arg (Primary (Method (MethodName (Identifier "foo"))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-declaration.parseB.txt ================================================ (Program (Statement (Arg (Primary (Method (MethodName (Identifier "bar")) (MethodParameters (Identifier "a")) (Statement (Arg (Primary (Lhs (Variable (Identifier "baz"))))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-invocation.A.rb ================================================ print foo.bar bar ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-invocation.B.rb ================================================ print("hello world") foo.bar() bar 2, 3 bar(2, 3) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-invocation.diffA-B.txt ================================================ (Statements (Send (Identifier) {+(TextElement)+}) (Send (Send (Identifier)) (Identifier)) (Send (Identifier) {+(Integer)+} {+(Integer)+}) {+(Send {+(Identifier)+} {+(Integer)+} {+(Integer)+})+}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-invocation.diffB-A.txt ================================================ (Statements (Send (Identifier) {-(TextElement)-}) (Send (Send (Identifier)) (Identifier)) (Send (Identifier) {-(Integer)-} {-(Integer)-}) {-(Send {-(Identifier)-} {-(Integer)-} {-(Integer)-})-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-invocation.parseA.txt ================================================ (Program (Statement (Arg (Primary (Lhs (Variable (Identifier "print")))))) (Statement (Arg (Primary (Lhs (Call (Primary (Lhs (Variable (Identifier "foo")))) (Identifier "bar")))))) (Statement (Arg (Primary (Lhs (Variable (Identifier "bar"))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/method-invocation.parseB.txt ================================================ (Program (Statement (MethodCall (ArgumentList (Arg (Primary (String)))) (Variable (Identifier "print")))) (Statement (MethodCall (ArgumentList) (Call (Primary (Lhs (Variable (Identifier "foo")))) (Identifier "bar")))) (Statement (MethodCall (ArgumentList (Arg (Primary (Integer "2"))) (Arg (Primary (Integer "3")))) (Variable (Identifier "bar")))) (Statement (MethodCall (ArgumentList (Arg (Primary (Integer "2"))) (Arg (Primary (Integer "3")))) (Variable (Identifier "bar"))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/methods.A.rb ================================================ def foo end def bar= end def -@(a) end def foo(a, b: false, c: nil, **) end def foo(*args) end def foo(&block) end def self.foo end def self.foo(a, b) end ================================================ FILE: semantic/test/fixtures/ruby/corpus/methods.parseA.txt ================================================ (Program (Statement (Arg (Primary (Method (MethodName (Identifier "foo")))))) (Statement (Arg (Primary (Method (MethodName (Setter (Identifier "bar"))))))) (Statement (Arg (Primary (Method (MethodName (Operator "-@")) (MethodParameters (Identifier "a")))))) (Statement (Arg (Primary (Method (MethodName (Identifier "foo")) (MethodParameters (Identifier "a") (KeywordParameter (Arg (Primary (Lhs (False "false")))) (Identifier "b")) (KeywordParameter (Arg (Primary (Lhs (Nil "nil")))) (Identifier "c")) (HashSplatParameter)))))) (Statement (Arg (Primary (Method (MethodName (Identifier "foo")) (MethodParameters (SplatParameter (Identifier "args"))))))) (Statement (Arg (Primary (Method (MethodName (Identifier "foo")) (MethodParameters (BlockParameter (Identifier "block"))))))) (Statement (Arg (Primary (SingletonMethod (MethodName (Identifier "foo")) (Variable (Self "self")))))) (Statement (Arg (Primary (SingletonMethod (MethodName (Identifier "foo")) (MethodParameters (Identifier "a") (Identifier "b")) (Variable (Self "self"))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/misc.A.rb ================================================ foo(a) do end foo.bar do |x, name: i, *args| end foo(a) { |x| } __END__ word x ================================================ FILE: semantic/test/fixtures/ruby/corpus/misc.parseA.txt ================================================ (Program (Statement (MethodCall (ArgumentList (Arg (Primary (Lhs (Variable (Identifier "a")))))) (DoBlock) (Variable (Identifier "foo")))) (Statement (MethodCall (DoBlock (BlockParameters (Identifier "x") (KeywordParameter (Arg (Primary (Lhs (Variable (Identifier "i"))))) (Identifier "name")) (SplatParameter (Identifier "args")))) (Call (Primary (Lhs (Variable (Identifier "foo")))) (Identifier "bar")))) (Statement (MethodCall (ArgumentList (Arg (Primary (Lhs (Variable (Identifier "a")))))) (Block (BlockParameters (Identifier "x"))) (Variable (Identifier "foo")))) (Uninterpreted "\nword\nx\n")) ================================================ FILE: semantic/test/fixtures/ruby/corpus/module.A.rb ================================================ module Foo end module A::B end ================================================ FILE: semantic/test/fixtures/ruby/corpus/module.B.rb ================================================ module Foo def bar end end ================================================ FILE: semantic/test/fixtures/ruby/corpus/module.diffA-B.txt ================================================ (Statements (Module (Identifier) {+(Method {+(Empty)+} {+(Identifier)+} {+(Statements)+})+}) {-(Module {-(ScopeResolution {-(Identifier)-} {-(Identifier)-})-})-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/module.diffB-A.txt ================================================ (Statements (Module (Identifier) {-(Method {-(Empty)-} {-(Identifier)-} {-(Statements)-})-}) {+(Module {+(ScopeResolution {+(Identifier)+} {+(Identifier)+})+})+}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/module.parseA.txt ================================================ (Program (Statement (Arg (Primary (Module (Constant "Foo"))))) (Statement (Arg (Primary (Module (ScopeResolution (Constant "B") (Primary (Lhs (Variable (Constant "A")))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/module.parseB.txt ================================================ (Program (Statement (Arg (Primary (Module (Constant "Foo") (Statement (Arg (Primary (Method (MethodName (Identifier "bar"))))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/multiple-assignments.A.rb ================================================ x, y, z = [10, 20, 30] x, y = [1, 2] x, * = [1, 2] x, *args = [1, 2] x, y = *foo self.foo, self.bar = target.a?, target.b (x, y) = foo ================================================ FILE: semantic/test/fixtures/ruby/corpus/multiple-assignments.B.rb ================================================ x, *y = [10, 20, 30] ================================================ FILE: semantic/test/fixtures/ruby/corpus/multiple-assignments.diffA-B.txt ================================================ (Statements (Assignment (Statements (Identifier) (Identifier) {-(Identifier)-}) (Array (Integer) (Integer) (Integer))) {-(Assignment {-(Statements {-(Identifier)-} {-(Identifier)-})-} {-(Array {-(Integer)-} {-(Integer)-})-})-} {-(Assignment {-(Statements {-(Identifier)-} {-(Identifier)-})-} {-(Array {-(Integer)-} {-(Integer)-})-})-} {-(Assignment {-(Statements {-(Identifier)-} {-(Identifier)-})-} {-(Array {-(Integer)-} {-(Integer)-})-})-} {-(Assignment {-(Statements {-(Identifier)-} {-(Identifier)-})-} {-(Send {-(Identifier)-})-})-} {-(Assignment {-(Statements {-(Send {-(This)-} {-(Identifier)-})-} {-(Send {-(This)-} {-(Identifier)-})-})-} {-(Statements {-(Send {-(Send {-(Identifier)-})-} {-(Identifier)-})-} {-(Send {-(Send {-(Identifier)-})-} {-(Identifier)-})-})-})-} {-(Assignment {-(Statements {-(Statements {-(Identifier)-} {-(Identifier)-})-})-} {-(Send {-(Identifier)-})-})-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/multiple-assignments.diffB-A.txt ================================================ (Statements (Assignment (Statements (Identifier) (Identifier) {+(Identifier)+}) (Array (Integer) (Integer) (Integer))) {+(Assignment {+(Statements {+(Identifier)+} {+(Identifier)+})+} {+(Array {+(Integer)+} {+(Integer)+})+})+} {+(Assignment {+(Statements {+(Identifier)+} {+(Identifier)+})+} {+(Array {+(Integer)+} {+(Integer)+})+})+} {+(Assignment {+(Statements {+(Identifier)+} {+(Identifier)+})+} {+(Array {+(Integer)+} {+(Integer)+})+})+} {+(Assignment {+(Statements {+(Identifier)+} {+(Identifier)+})+} {+(Send {+(Identifier)+})+})+} {+(Assignment {+(Statements {+(Send {+(This)+} {+(Identifier)+})+} {+(Send {+(This)+} {+(Identifier)+})+})+} {+(Statements {+(Send {+(Send {+(Identifier)+})+} {+(Identifier)+})+} {+(Send {+(Send {+(Identifier)+})+} {+(Identifier)+})+})+})+} {+(Assignment {+(Statements {+(Statements {+(Identifier)+} {+(Identifier)+})+})+} {+(Send {+(Identifier)+})+})+}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/multiple-assignments.parseA.txt ================================================ (Program (Statement (Assignment (LeftAssignmentList (Lhs (Variable (Identifier "x"))) (Lhs (Variable (Identifier "y"))) (Lhs (Variable (Identifier "z")))) (Arg (Primary (Array (Arg (Primary (Integer "10"))) (Arg (Primary (Integer "20"))) (Arg (Primary (Integer "30")))))))) (Statement (Assignment (LeftAssignmentList (Lhs (Variable (Identifier "x"))) (Lhs (Variable (Identifier "y")))) (Arg (Primary (Array (Arg (Primary (Integer "1"))) (Arg (Primary (Integer "2")))))))) (Statement (Assignment (LeftAssignmentList (Lhs (Variable (Identifier "x"))) (RestAssignment)) (Arg (Primary (Array (Arg (Primary (Integer "1"))) (Arg (Primary (Integer "2")))))))) (Statement (Assignment (LeftAssignmentList (Lhs (Variable (Identifier "x"))) (RestAssignment (Lhs (Variable (Identifier "args"))))) (Arg (Primary (Array (Arg (Primary (Integer "1"))) (Arg (Primary (Integer "2")))))))) (Statement (Assignment (LeftAssignmentList (Lhs (Variable (Identifier "x"))) (Lhs (Variable (Identifier "y")))) (SplatArgument (Arg (Primary (Lhs (Variable (Identifier "foo")))))))) (Statement (Assignment (LeftAssignmentList (Lhs (Call (Primary (Lhs (Variable (Self "self")))) (Identifier "foo"))) (Lhs (Call (Primary (Lhs (Variable (Self "self")))) (Identifier "bar")))) (RightAssignmentList (Arg (Primary (Lhs (Call (Primary (Lhs (Variable (Identifier "target")))) (Identifier "a?"))))) (Arg (Primary (Lhs (Call (Primary (Lhs (Variable (Identifier "target")))) (Identifier "b")))))))) (Statement (Assignment (LeftAssignmentList (DestructuredLeftAssignment (Lhs (Variable (Identifier "x"))) (Lhs (Variable (Identifier "y"))))) (Arg (Primary (Lhs (Variable (Identifier "foo")))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/multiple-assignments.parseB.txt ================================================ (Program (Statement (Assignment (LeftAssignmentList (Lhs (Variable (Identifier "x"))) (RestAssignment (Lhs (Variable (Identifier "y"))))) (Arg (Primary (Array (Arg (Primary (Integer "10"))) (Arg (Primary (Integer "20"))) (Arg (Primary (Integer "30"))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/next.A.rb ================================================ for x in y next end ================================================ FILE: semantic/test/fixtures/ruby/corpus/next.parseA.txt ================================================ (Program (Statement (Arg (Primary (For (Lhs (Variable (Identifier "x"))) (Do (Statement (Next))) (In (Arg (Primary (Lhs (Variable (Identifier "y"))))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/number.A.rb ================================================ 1234 1_234 0d1_234 0xa_bcd_ef0_123_456_789 0o1234567 0b1_0 1.234_5e678_90 ================================================ FILE: semantic/test/fixtures/ruby/corpus/number.B.rb ================================================ 1235 1_235 0d1_235 0xa_bcd_ef0_123_456_788 0o1234576 0b1_1 1.234_5e678_91 ================================================ FILE: semantic/test/fixtures/ruby/corpus/number.diffA-B.txt ================================================ (Statements {+(Integer)+} {+(Integer)+} { (Integer) ->(Integer) } {+(Integer)+} {+(Integer)+} {+(Integer)+} {+(Float)+} {-(Integer)-} {-(Integer)-} {-(Integer)-} {-(Integer)-} {-(Integer)-} {-(Float)-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/number.diffB-A.txt ================================================ (Statements {+(Integer)+} {+(Integer)+} {+(Integer)+} {+(Integer)+} {+(Integer)+} {+(Integer)+} {+(Float)+} {-(Integer)-} {-(Integer)-} {-(Integer)-} {-(Integer)-} {-(Integer)-} {-(Integer)-} {-(Float)-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/number.parseA.txt ================================================ (Program (Statement (Arg (Primary (Integer "1234")))) (Statement (Arg (Primary (Integer "1_234")))) (Statement (Arg (Primary (Integer "0d1_234")))) (Statement (Arg (Primary (Integer "0xa_bcd_ef0_123_456_789")))) (Statement (Arg (Primary (Integer "0o1234567")))) (Statement (Arg (Primary (Integer "0b1_0")))) (Statement (Arg (Primary (Float "1.234_5e678_90"))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/number.parseB.txt ================================================ (Program (Statement (Arg (Primary (Integer "1235")))) (Statement (Arg (Primary (Integer "1_235")))) (Statement (Arg (Primary (Integer "0d1_235")))) (Statement (Arg (Primary (Integer "0xa_bcd_ef0_123_456_788")))) (Statement (Arg (Primary (Integer "0o1234576")))) (Statement (Arg (Primary (Integer "0b1_1")))) (Statement (Arg (Primary (Float "1.234_5e678_91"))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/percent-array.A.rb ================================================ %w(one two) ================================================ FILE: semantic/test/fixtures/ruby/corpus/percent-array.B.rb ================================================ %W(one #{b} three) ================================================ FILE: semantic/test/fixtures/ruby/corpus/percent-array.diffA-B.txt ================================================ (Statements (Array (TextElement) {+(String {+(InterpolationElement {+(Send {+(Identifier)+})+})+})+} { (TextElement) ->(TextElement) })) ================================================ FILE: semantic/test/fixtures/ruby/corpus/percent-array.diffB-A.txt ================================================ (Statements (Array (TextElement) {+(TextElement)+} {-(String {-(InterpolationElement {-(Send {-(Identifier)-})-})-})-} {-(TextElement)-})) ================================================ FILE: semantic/test/fixtures/ruby/corpus/percent-array.parseA.txt ================================================ (Program (Statement (Arg (Primary (StringArray (BareString) (BareString)))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/percent-array.parseB.txt ================================================ (Program (Statement (Arg (Primary (StringArray (BareString) (BareString (Interpolation (Statement (Arg (Primary (Lhs (Variable (Identifier "b")))))))) (BareString)))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/pseudo-variables.A.rb ================================================ nil self false true ================================================ FILE: semantic/test/fixtures/ruby/corpus/pseudo-variables.B.rb ================================================ self NIL TRUE FALSE ================================================ FILE: semantic/test/fixtures/ruby/corpus/pseudo-variables.diffA-B.txt ================================================ (Statements {-(Null)-} (This) {+(Null)+} {-(Boolean)-} (Boolean) {+(Boolean)+}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/pseudo-variables.diffB-A.txt ================================================ (Statements {-(This)-} (Null) {+(This)+} {-(Boolean)-} (Boolean) {+(Boolean)+}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/pseudo-variables.parseA.txt ================================================ (Program (Statement (Arg (Primary (Lhs (Nil "nil"))))) (Statement (Arg (Primary (Lhs (Variable (Self "self")))))) (Statement (Arg (Primary (Lhs (False "false"))))) (Statement (Arg (Primary (Lhs (True "true")))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/pseudo-variables.parseB.txt ================================================ (Program (Statement (Arg (Primary (Lhs (Variable (Self "self")))))) (Statement (Arg (Primary (Lhs (Nil "NIL"))))) (Statement (Arg (Primary (Lhs (True "TRUE"))))) (Statement (Arg (Primary (Lhs (False "FALSE")))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/regex.A.rb ================================================ /^(foo|bar[^_])$/i ================================================ FILE: semantic/test/fixtures/ruby/corpus/regex.B.rb ================================================ %r/a/ %rc> ================================================ FILE: semantic/test/fixtures/ruby/corpus/regex.diffA-B.txt ================================================ (Statements { (Regex) ->(Regex) } {+(Regex)+}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/regex.diffB-A.txt ================================================ (Statements { (Regex) ->(Regex) } {-(Regex)-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/regex.parseA.txt ================================================ (Program (Statement (Arg (Primary (Regex))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/regex.parseB.txt ================================================ (Program (Statement (Arg (Primary (Regex)))) (Statement (Arg (Primary (Regex))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/relational-operator.A.rb ================================================ x == y x != y x === y ================================================ FILE: semantic/test/fixtures/ruby/corpus/relational-operator.B.rb ================================================ x <=> y x =~ y x =! y ================================================ FILE: semantic/test/fixtures/ruby/corpus/relational-operator.diffA-B.txt ================================================ (Statements {+(Comparison {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+})+} {+(Matches {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+})+} {+(Assignment {+(Identifier)+} {+(Not {+(Send {+(Identifier)+})+})+})+} {-(Equal {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-})-} {-(Not {-(Equal {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-})-})-} {-(Equal {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-})-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/relational-operator.diffB-A.txt ================================================ (Statements {+(Equal {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+})+} {+(Not {+(Equal {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+})+})+} {+(Equal {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+})+} {-(Comparison {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-})-} {-(Matches {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-})-} {-(Assignment {-(Identifier)-} {-(Not {-(Send {-(Identifier)-})-})-})-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/relational-operator.parseA.txt ================================================ (Program (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "x"))))) (Arg (Primary (Lhs (Variable (Identifier "y"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "x"))))) (Arg (Primary (Lhs (Variable (Identifier "y"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "x"))))) (Arg (Primary (Lhs (Variable (Identifier "y")))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/relational-operator.parseB.txt ================================================ (Program (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "x"))))) (Arg (Primary (Lhs (Variable (Identifier "y"))))))) (Statement (Binary (Token) (Arg (Primary (Lhs (Variable (Identifier "x"))))) (Arg (Primary (Lhs (Variable (Identifier "y"))))))) (Statement (Assignment (Lhs (Variable (Identifier "x"))) (Arg (Unary (Arg (Primary (Lhs (Variable (Identifier "y")))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/require.A.rb ================================================ require "json" foo(a) ================================================ FILE: semantic/test/fixtures/ruby/corpus/require.B.rb ================================================ require "nokogiri" autoload(:Bar, "bar.rb") ================================================ FILE: semantic/test/fixtures/ruby/corpus/require.diffA-B.txt ================================================ (Statements (Require { (TextElement) ->(TextElement) }) (Send { (Identifier) ->(Identifier) } {+(SymbolElement)+} {+(TextElement)+} {-(Send {-(Identifier)-})-})) ================================================ FILE: semantic/test/fixtures/ruby/corpus/require.diffB-A.txt ================================================ (Statements (Require { (TextElement) ->(TextElement) }) (Send { (Identifier) ->(Identifier) } {+(Send {+(Identifier)+})+} {-(SymbolElement)-} {-(TextElement)-})) ================================================ FILE: semantic/test/fixtures/ruby/corpus/require.parseA.txt ================================================ (Program (Statement (MethodCall (ArgumentList (Arg (Primary (String)))) (Variable (Identifier "require")))) (Statement (MethodCall (ArgumentList (Arg (Primary (Lhs (Variable (Identifier "a")))))) (Variable (Identifier "foo"))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/require.parseB.txt ================================================ (Program (Statement (MethodCall (ArgumentList (Arg (Primary (String)))) (Variable (Identifier "require")))) (Statement (MethodCall (ArgumentList (Arg (Primary (Symbol))) (Arg (Primary (String)))) (Variable (Identifier "autoload"))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue-empty.A.rb ================================================ begin foo rescue end ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue-empty.B.rb ================================================ begin foo rescue bar end ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue-empty.diffA-B.txt ================================================ (Statements (Try (Statements (Send (Identifier)) (Catch (Statements) { (Statements) ->(Send {+(Identifier)+}) })))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue-empty.diffB-A.txt ================================================ (Statements (Try (Statements (Send (Identifier)) (Catch (Statements) { (Send {-(Identifier)-}) ->(Statements) })))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue-empty.parseA.txt ================================================ (Program (Statement (Arg (Primary (Begin (Statement (Arg (Primary (Lhs (Variable (Identifier "foo")))))) (Rescue)))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue-empty.parseB.txt ================================================ (Program (Statement (Arg (Primary (Begin (Statement (Arg (Primary (Lhs (Variable (Identifier "foo")))))) (Rescue (Then (Statement (Arg (Primary (Lhs (Variable (Identifier "bar"))))))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue-last-ex.A.rb ================================================ begin foo rescue Error => x end ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue-last-ex.B.rb ================================================ begin foo rescue Error => x bar end ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue-last-ex.diffA-B.txt ================================================ (Statements (Try (Statements (Send (Identifier)) (Catch (Statements (Statements (Identifier)) (Statements (Send (Identifier)))) { (Statements) ->(Send {+(Identifier)+}) })))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue-last-ex.diffB-A.txt ================================================ (Statements (Try (Statements (Send (Identifier)) (Catch (Statements (Statements (Identifier)) (Statements (Send (Identifier)))) { (Send {-(Identifier)-}) ->(Statements) })))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue-last-ex.parseA.txt ================================================ (Program (Statement (Arg (Primary (Begin (Statement (Arg (Primary (Lhs (Variable (Identifier "foo")))))) (Rescue (Exceptions (Arg (Primary (Lhs (Variable (Constant "Error")))))) (ExceptionVariable (Lhs (Variable (Identifier "x")))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue-last-ex.parseB.txt ================================================ (Program (Statement (Arg (Primary (Begin (Statement (Arg (Primary (Lhs (Variable (Identifier "foo")))))) (Rescue (Exceptions (Arg (Primary (Lhs (Variable (Constant "Error")))))) (Then (Statement (Arg (Primary (Lhs (Variable (Identifier "bar"))))))) (ExceptionVariable (Lhs (Variable (Identifier "x")))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue-modifier.A.rb ================================================ foo rescue nil ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue-modifier.B.rb ================================================ foo rescue false ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue-modifier.diffA-B.txt ================================================ (Statements (Try (Send (Identifier)) (Catch { (Null) ->(Boolean) } (Empty)))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue-modifier.diffB-A.txt ================================================ (Statements (Try (Send (Identifier)) (Catch { (Boolean) ->(Null) } (Empty)))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue-modifier.parseA.txt ================================================ (Program (Statement (RescueModifier (Statement (Arg (Primary (Lhs (Variable (Identifier "foo")))))) (Arg (Primary (Lhs (Nil "nil"))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue-modifier.parseB.txt ================================================ (Program (Statement (RescueModifier (Statement (Arg (Primary (Lhs (Variable (Identifier "foo")))))) (Arg (Primary (Lhs (False "false"))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue-modifier2.A.rb ================================================ foo rescue nil ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue-modifier2.B.rb ================================================ bar rescue nil ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue-modifier2.diffA-B.txt ================================================ (Statements (Try (Send { (Identifier) ->(Identifier) }) (Catch (Null) (Empty)))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue-modifier2.diffB-A.txt ================================================ (Statements (Try (Send { (Identifier) ->(Identifier) }) (Catch (Null) (Empty)))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue-modifier2.parseA.txt ================================================ (Program (Statement (RescueModifier (Statement (Arg (Primary (Lhs (Variable (Identifier "foo")))))) (Arg (Primary (Lhs (Nil "nil"))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue-modifier2.parseB.txt ================================================ (Program (Statement (RescueModifier (Statement (Arg (Primary (Lhs (Variable (Identifier "bar")))))) (Arg (Primary (Lhs (Nil "nil"))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue.A.rb ================================================ begin foo rescue Error rescue StandardError, TimeoutError => x x else z ensure y end def foo rescue Error rescue StandardError, TimeoutError => x else ensure end bar rescue nil ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue.B.rb ================================================ begin foo rescue x bar end ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue.diffA-B.txt ================================================ (Statements {+(Try {+(Statements {+(Send {+(Identifier)+})+} {+(Catch {+(Statements {+(Statements {+(Send {+(Identifier)+})+})+})+} {+(Send {+(Identifier)+})+})+})+})+} {-(Try {-(Statements {-(Send {-(Identifier)-})-} {-(Catch {-(Statements {-(Statements {-(Identifier)-})-})-} {-(Statements)-})-} {-(Catch {-(Statements {-(Statements {-(Identifier)-} {-(Identifier)-})-} {-(Statements {-(Send {-(Identifier)-})-})-})-} {-(Send {-(Identifier)-})-})-} {-(Else {-(Empty)-} {-(Send {-(Identifier)-})-})-} {-(Finally {-(Send {-(Identifier)-})-})-})-})-} {-(Method {-(Empty)-} {-(Identifier)-} {-(Statements {-(Catch {-(Statements {-(Statements {-(Identifier)-})-})-} {-(Statements)-})-} {-(Catch {-(Statements {-(Statements {-(Identifier)-} {-(Identifier)-})-} {-(Statements {-(Send {-(Identifier)-})-})-})-} {-(Statements)-})-} {-(Else {-(Empty)-} {-(Statements)-})-} {-(Finally {-(Statements)-})-})-})-} {-(Try {-(Send {-(Identifier)-})-} {-(Catch {-(Null)-} {-(Empty)-})-})-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue.diffB-A.txt ================================================ (Statements {+(Try {+(Statements {+(Send {+(Identifier)+})+} {+(Catch {+(Statements {+(Statements {+(Identifier)+})+})+} {+(Statements)+})+} {+(Catch {+(Statements {+(Statements {+(Identifier)+} {+(Identifier)+})+} {+(Statements {+(Send {+(Identifier)+})+})+})+} {+(Send {+(Identifier)+})+})+} {+(Else {+(Empty)+} {+(Send {+(Identifier)+})+})+} {+(Finally {+(Send {+(Identifier)+})+})+})+})+} {+(Method {+(Empty)+} {+(Identifier)+} {+(Statements {+(Catch {+(Statements {+(Statements {+(Identifier)+})+})+} {+(Statements)+})+} {+(Catch {+(Statements {+(Statements {+(Identifier)+} {+(Identifier)+})+} {+(Statements {+(Send {+(Identifier)+})+})+})+} {+(Statements)+})+} {+(Else {+(Empty)+} {+(Statements)+})+} {+(Finally {+(Statements)+})+})+})+} (Try { (Statements {-(Send {-(Identifier)-})-} {-(Catch {-(Statements {-(Statements {-(Send {-(Identifier)-})-})-})-} {-(Send {-(Identifier)-})-})-}) ->(Send {+(Identifier)+}) } {+(Catch {+(Null)+} {+(Empty)+})+})) ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue.parseA.txt ================================================ (Program (Statement (Arg (Primary (Begin (Statement (Arg (Primary (Lhs (Variable (Identifier "foo")))))) (Rescue (Exceptions (Arg (Primary (Lhs (Variable (Constant "Error"))))))) (Rescue (Exceptions (Arg (Primary (Lhs (Variable (Constant "StandardError"))))) (Arg (Primary (Lhs (Variable (Constant "TimeoutError")))))) (Then (Statement (Arg (Primary (Lhs (Variable (Identifier "x"))))))) (ExceptionVariable (Lhs (Variable (Identifier "x"))))) (Else (Statement (Arg (Primary (Lhs (Variable (Identifier "z"))))))) (Ensure (Statement (Arg (Primary (Lhs (Variable (Identifier "y"))))))))))) (Statement (Arg (Primary (Method (MethodName (Identifier "foo")) (Rescue (Exceptions (Arg (Primary (Lhs (Variable (Constant "Error"))))))) (Rescue (Exceptions (Arg (Primary (Lhs (Variable (Constant "StandardError"))))) (Arg (Primary (Lhs (Variable (Constant "TimeoutError")))))) (ExceptionVariable (Lhs (Variable (Identifier "x"))))) (Else) (Ensure))))) (Statement (RescueModifier (Statement (Arg (Primary (Lhs (Variable (Identifier "bar")))))) (Arg (Primary (Lhs (Nil "nil"))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/rescue.parseB.txt ================================================ (Program (Statement (Arg (Primary (Begin (Statement (Arg (Primary (Lhs (Variable (Identifier "foo")))))) (Rescue (Exceptions (Arg (Primary (Lhs (Variable (Identifier "x")))))) (Then (Statement (Arg (Primary (Lhs (Variable (Identifier "bar"))))))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/return.A.rb ================================================ return foo ================================================ FILE: semantic/test/fixtures/ruby/corpus/return.B.rb ================================================ return ================================================ FILE: semantic/test/fixtures/ruby/corpus/return.diffA-B.txt ================================================ (Statements (Return { (Send {-(Identifier)-}) ->(Empty) })) ================================================ FILE: semantic/test/fixtures/ruby/corpus/return.diffB-A.txt ================================================ (Statements (Return { (Empty) ->(Send {+(Identifier)+}) })) ================================================ FILE: semantic/test/fixtures/ruby/corpus/return.parseA.txt ================================================ (Program (Statement (Return (ArgumentList (Arg (Primary (Lhs (Variable (Identifier "foo"))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/return.parseB.txt ================================================ (Program (Statement (Return))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/singleton-class.A.rb ================================================ class << self end class << Foo::Bar att_reader :hi end ================================================ FILE: semantic/test/fixtures/ruby/corpus/singleton-class.parseA.txt ================================================ (Program (Statement (Arg (Primary (SingletonClass (Arg (Primary (Lhs (Variable (Self "self"))))))))) (Statement (Arg (Primary (SingletonClass (Arg (Primary (Lhs (ScopeResolution (Constant "Bar") (Primary (Lhs (Variable (Constant "Foo")))))))) (Statement (MethodCall (ArgumentList (Arg (Primary (Symbol)))) (Variable (Identifier "att_reader"))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/string.A.rb ================================================ '' 'foo with "bar"' ================================================ FILE: semantic/test/fixtures/ruby/corpus/string.B.rb ================================================ "" "bar with 'foo'" ================================================ FILE: semantic/test/fixtures/ruby/corpus/string.diffA-B.txt ================================================ (Statements { (TextElement) ->(TextElement) } { (TextElement) ->(TextElement) }) ================================================ FILE: semantic/test/fixtures/ruby/corpus/string.diffB-A.txt ================================================ (Statements { (TextElement) ->(TextElement) } { (TextElement) ->(TextElement) }) ================================================ FILE: semantic/test/fixtures/ruby/corpus/string.parseA.txt ================================================ (Program (Statement (Arg (Primary (String)))) (Statement (Arg (Primary (String))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/string.parseB.txt ================================================ (Program (Statement (Arg (Primary (String)))) (Statement (Arg (Primary (String))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/subshell.A.rb ================================================ `ls -la` ================================================ FILE: semantic/test/fixtures/ruby/corpus/subshell.B.rb ================================================ `git status` ================================================ FILE: semantic/test/fixtures/ruby/corpus/subshell.diffA-B.txt ================================================ (Statements { (TextElement) ->(TextElement) }) ================================================ FILE: semantic/test/fixtures/ruby/corpus/subshell.diffB-A.txt ================================================ (Statements { (TextElement) ->(TextElement) }) ================================================ FILE: semantic/test/fixtures/ruby/corpus/subshell.parseA.txt ================================================ (Program (Statement (Arg (Primary (Subshell))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/subshell.parseB.txt ================================================ (Program (Statement (Arg (Primary (Subshell))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/symbol.A.rb ================================================ :foo :'foo' :"foo" ================================================ FILE: semantic/test/fixtures/ruby/corpus/symbol.B.rb ================================================ :bar :'bar' :"bar" ================================================ FILE: semantic/test/fixtures/ruby/corpus/symbol.diffA-B.txt ================================================ (Statements {+(SymbolElement)+} {+(SymbolElement)+} { (SymbolElement) ->(SymbolElement) } {-(SymbolElement)-} {-(SymbolElement)-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/symbol.diffB-A.txt ================================================ (Statements {+(SymbolElement)+} { (SymbolElement) ->(SymbolElement) } { (SymbolElement) ->(SymbolElement) } {-(SymbolElement)-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/symbol.parseA.txt ================================================ (Program (Statement (Arg (Primary (Symbol)))) (Statement (Arg (Primary (Symbol)))) (Statement (Arg (Primary (Symbol))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/symbol.parseB.txt ================================================ (Program (Statement (Arg (Primary (Symbol)))) (Statement (Arg (Primary (Symbol)))) (Statement (Arg (Primary (Symbol))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/ternary.A.rb ================================================ foo ? case1 : case2 ================================================ FILE: semantic/test/fixtures/ruby/corpus/ternary.B.rb ================================================ bar ? a : b ================================================ FILE: semantic/test/fixtures/ruby/corpus/ternary.diffA-B.txt ================================================ (Statements (If (Send { (Identifier) ->(Identifier) }) (Send { (Identifier) ->(Identifier) }) (Send { (Identifier) ->(Identifier) }))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/ternary.diffB-A.txt ================================================ (Statements (If (Send { (Identifier) ->(Identifier) }) (Send { (Identifier) ->(Identifier) }) (Send { (Identifier) ->(Identifier) }))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/ternary.parseA.txt ================================================ (Program (Statement (Arg (Conditional (Arg (Primary (Lhs (Variable (Identifier "case2"))))) (Arg (Primary (Lhs (Variable (Identifier "case1"))))) (Arg (Primary (Lhs (Variable (Identifier "foo"))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/ternary.parseB.txt ================================================ (Program (Statement (Arg (Conditional (Arg (Primary (Lhs (Variable (Identifier "b"))))) (Arg (Primary (Lhs (Variable (Identifier "a"))))) (Arg (Primary (Lhs (Variable (Identifier "bar"))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/unary.A.rb ================================================ ~a !a -a +a not foo defined? foo ================================================ FILE: semantic/test/fixtures/ruby/corpus/unary.parseA.txt ================================================ (Program (Statement (Arg (Unary (Arg (Primary (Lhs (Variable (Identifier "a")))))))) (Statement (Arg (Unary (Arg (Primary (Lhs (Variable (Identifier "a")))))))) (Statement (Arg (Unary (Arg (Primary (Lhs (Variable (Identifier "a")))))))) (Statement (Arg (Unary (Arg (Primary (Lhs (Variable (Identifier "a")))))))) (Statement (Arg (Unary (Arg (Primary (Lhs (Variable (Identifier "foo")))))))) (Statement (Arg (Unary (Arg (Primary (Lhs (Variable (Identifier "foo"))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/undef.A.rb ================================================ undef :foo undef foo undef foo= undef + undef $FOO undef :foo, :bar ================================================ FILE: semantic/test/fixtures/ruby/corpus/undef.parseA.txt ================================================ (Program (Statement (Undef (MethodName (Symbol)))) (Statement (Undef (MethodName (Identifier "foo")))) (Statement (Undef (MethodName (Setter (Identifier "foo"))))) (Statement (Undef (MethodName (Operator "+")))) (Statement (Undef (MethodName (GlobalVariable "$FOO")))) (Statement (Undef (MethodName (Symbol)) (MethodName (Symbol))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/unless.A.rb ================================================ unless foo bar else bat end ================================================ FILE: semantic/test/fixtures/ruby/corpus/unless.B.rb ================================================ unless x end unless y then end ================================================ FILE: semantic/test/fixtures/ruby/corpus/unless.diffA-B.txt ================================================ (Statements (If (Not (Send { (Identifier) ->(Identifier) })) (Statements {-(Send {-(Identifier)-})-}) { (Send {-(Identifier)-}) ->(Empty) }) {+(If {+(Not {+(Send {+(Identifier)+})+})+} {+(Statements {+(Statements)+})+} {+(Empty)+})+}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/unless.diffB-A.txt ================================================ (Statements (If (Not (Send { (Identifier) ->(Identifier) })) (Statements {+(Send {+(Identifier)+})+}) { (Empty) ->(Send {+(Identifier)+}) }) {-(If {-(Not {-(Send {-(Identifier)-})-})-} {-(Statements {-(Statements)-})-} {-(Empty)-})-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/unless.parseA.txt ================================================ (Program (Statement (Arg (Primary (Unless (Else (Statement (Arg (Primary (Lhs (Variable (Identifier "bat"))))))) (Then (Statement (Arg (Primary (Lhs (Variable (Identifier "bar"))))))) (Statement (Arg (Primary (Lhs (Variable (Identifier "foo"))))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/unless.parseB.txt ================================================ (Program (Statement (Arg (Primary (Unless (Statement (Arg (Primary (Lhs (Variable (Identifier "x")))))))))) (Statement (Arg (Primary (Unless (Then) (Statement (Arg (Primary (Lhs (Variable (Identifier "y"))))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/until.A.rb ================================================ until foo do end foo until done ================================================ FILE: semantic/test/fixtures/ruby/corpus/until.B.rb ================================================ until foo bar end ================================================ FILE: semantic/test/fixtures/ruby/corpus/until.diffA-B.txt ================================================ (Statements (While (Not (Send (Identifier))) { (Statements) ->(Send {+(Identifier)+}) }) {-(While {-(Not {-(Send {-(Identifier)-})-})-} {-(Send {-(Identifier)-})-})-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/until.diffB-A.txt ================================================ (Statements (While (Not (Send (Identifier))) { (Send {-(Identifier)-}) ->(Statements) }) {+(While {+(Not {+(Send {+(Identifier)+})+})+} {+(Send {+(Identifier)+})+})+}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/until.parseA.txt ================================================ (Program (Statement (Arg (Primary (Until (Do) (Arg (Primary (Lhs (Variable (Identifier "foo"))))))))) (Statement (UntilModifier (Statement (Arg (Primary (Lhs (Variable (Identifier "foo")))))) (Arg (Primary (Lhs (Variable (Identifier "done")))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/until.parseB.txt ================================================ (Program (Statement (Arg (Primary (Until (Do (Statement (Arg (Primary (Lhs (Variable (Identifier "bar"))))))) (Arg (Primary (Lhs (Variable (Identifier "foo")))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/when-else.A.rb ================================================ case foo when qux when bar, *a baz else end ================================================ FILE: semantic/test/fixtures/ruby/corpus/when-else.B.rb ================================================ case foo when bar baz when x when y else qoz end ================================================ FILE: semantic/test/fixtures/ruby/corpus/when-else.diffA-B.txt ================================================ (Statements (Match (Send (Identifier)) (Statements {+(Pattern {+(Statements {+(Send {+(Identifier)+})+})+} {+(Statements {+(Send {+(Identifier)+})+})+})+} (Pattern (Statements (Send { (Identifier) ->(Identifier) })) (Statements)) {+(Pattern {+(Statements {+(Send {+(Identifier)+})+})+} {+(Statements)+})+} {+(Send {+(Identifier)+})+} {-(Pattern {-(Statements {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-})-} {-(Statements {-(Send {-(Identifier)-})-})-})-} {-(Statements)-}))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/when-else.diffB-A.txt ================================================ (Statements (Match (Send (Identifier)) (Statements {+(Pattern {+(Statements {+(Send {+(Identifier)+})+})+} {+(Statements)+})+} (Pattern (Statements (Send (Identifier)) {+(Send {+(Identifier)+})+}) (Statements (Send (Identifier)))) {+(Statements)+} {-(Pattern {-(Statements {-(Send {-(Identifier)-})-})-} {-(Statements)-})-} {-(Pattern {-(Statements {-(Send {-(Identifier)-})-})-} {-(Statements)-})-} {-(Send {-(Identifier)-})-}))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/when-else.parseA.txt ================================================ (Program (Statement (Arg (Primary (Case (Arg (Primary (Lhs (Variable (Identifier "foo"))))) (When (Pattern (Arg (Primary (Lhs (Variable (Identifier "qux"))))))) (When (Pattern (Arg (Primary (Lhs (Variable (Identifier "bar")))))) (Token) (Pattern (SplatArgument (Arg (Primary (Lhs (Variable (Identifier "a"))))))) (Then (Statement (Arg (Primary (Lhs (Variable (Identifier "baz")))))))) (Else)))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/when-else.parseB.txt ================================================ (Program (Statement (Arg (Primary (Case (Arg (Primary (Lhs (Variable (Identifier "foo"))))) (When (Pattern (Arg (Primary (Lhs (Variable (Identifier "bar")))))) (Then (Statement (Arg (Primary (Lhs (Variable (Identifier "baz")))))))) (When (Pattern (Arg (Primary (Lhs (Variable (Identifier "x"))))))) (When (Pattern (Arg (Primary (Lhs (Variable (Identifier "y"))))))) (Else (Statement (Arg (Primary (Lhs (Variable (Identifier "qoz")))))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/when.A.rb ================================================ case foo when bar end case when true; 'foo' end ================================================ FILE: semantic/test/fixtures/ruby/corpus/when.B.rb ================================================ case foo when bar baz when a, b else bat end ================================================ FILE: semantic/test/fixtures/ruby/corpus/when.diffA-B.txt ================================================ (Statements (Match (Send (Identifier)) (Statements (Pattern (Statements (Send (Identifier))) (Statements {+(Send {+(Identifier)+})+})) {+(Pattern {+(Statements {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+})+} {+(Statements)+})+} {+(Send {+(Identifier)+})+})) {-(Match {-(Empty)-} {-(Statements {-(Pattern {-(Statements {-(Boolean)-})-} {-(Statements {-(TextElement)-})-})-})-})-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/when.diffB-A.txt ================================================ (Statements (Match (Send (Identifier)) (Statements (Pattern (Statements (Send (Identifier))) (Statements {-(Send {-(Identifier)-})-})) {-(Pattern {-(Statements {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-})-} {-(Statements)-})-} {-(Send {-(Identifier)-})-})) {+(Match {+(Empty)+} {+(Statements {+(Pattern {+(Statements {+(Boolean)+})+} {+(Statements {+(TextElement)+})+})+})+})+}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/when.parseA.txt ================================================ (Program (Statement (Arg (Primary (Case (Arg (Primary (Lhs (Variable (Identifier "foo"))))) (When (Pattern (Arg (Primary (Lhs (Variable (Identifier "bar"))))))))))) (Statement (Arg (Primary (Case (When (Pattern (Arg (Primary (Lhs (True "true"))))) (Then (Statement (Arg (Primary (String))))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/when.parseB.txt ================================================ (Program (Statement (Arg (Primary (Case (Arg (Primary (Lhs (Variable (Identifier "foo"))))) (When (Pattern (Arg (Primary (Lhs (Variable (Identifier "bar")))))) (Then (Statement (Arg (Primary (Lhs (Variable (Identifier "baz")))))))) (When (Pattern (Arg (Primary (Lhs (Variable (Identifier "a")))))) (Token) (Pattern (Arg (Primary (Lhs (Variable (Identifier "b"))))))) (Else (Statement (Arg (Primary (Lhs (Variable (Identifier "bat")))))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/while.A.rb ================================================ while foo do end foo while run ================================================ FILE: semantic/test/fixtures/ruby/corpus/while.B.rb ================================================ while foo bar end ================================================ FILE: semantic/test/fixtures/ruby/corpus/while.diffA-B.txt ================================================ (Statements (While (Send (Identifier)) { (Statements) ->(Send {+(Identifier)+}) }) {-(While {-(Send {-(Identifier)-})-} {-(Send {-(Identifier)-})-})-}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/while.diffB-A.txt ================================================ (Statements (While (Send (Identifier)) { (Send {-(Identifier)-}) ->(Statements) }) {+(While {+(Send {+(Identifier)+})+} {+(Send {+(Identifier)+})+})+}) ================================================ FILE: semantic/test/fixtures/ruby/corpus/while.parseA.txt ================================================ (Program (Statement (Arg (Primary (While (Do) (Arg (Primary (Lhs (Variable (Identifier "foo"))))))))) (Statement (WhileModifier (Statement (Arg (Primary (Lhs (Variable (Identifier "foo")))))) (Arg (Primary (Lhs (Variable (Identifier "run")))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/while.parseB.txt ================================================ (Program (Statement (Arg (Primary (While (Do (Statement (Arg (Primary (Lhs (Variable (Identifier "bar"))))))) (Arg (Primary (Lhs (Variable (Identifier "foo")))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/yield.A.rb ================================================ yield foo ================================================ FILE: semantic/test/fixtures/ruby/corpus/yield.B.rb ================================================ yield ================================================ FILE: semantic/test/fixtures/ruby/corpus/yield.diffA-B.txt ================================================ (Statements (Yield { (Send {-(Identifier)-}) ->(Empty) })) ================================================ FILE: semantic/test/fixtures/ruby/corpus/yield.diffB-A.txt ================================================ (Statements (Yield { (Empty) ->(Send {+(Identifier)+}) })) ================================================ FILE: semantic/test/fixtures/ruby/corpus/yield.parseA.txt ================================================ (Program (Statement (Yield (ArgumentList (Arg (Primary (Lhs (Variable (Identifier "foo"))))))))) ================================================ FILE: semantic/test/fixtures/ruby/corpus/yield.parseB.txt ================================================ (Program (Statement (Yield))) ================================================ FILE: semantic/test/fixtures/ruby/import-graph/app.json ================================================ { "modules": { "app": { "imports": [ { "span": { "start": [ 1, 1 ], "end": [ 1, 15 ] }, "path": "json", "symbols": [], "alias": "" }, { "span": { "start": [ 2, 1 ], "end": [ 2, 21 ] }, "path": "a", "symbols": [], "alias": "" } ], "name": "app", "language": "Ruby", "declarations": [ { "span": { "start": [ 4, 1 ], "end": [ 6, 4 ] }, "kind": "Method", "name": "foo", "module": "app" } ], "paths": [ "test/fixtures/ruby/import-graph/app.rb" ], "calls": [ { "span": { "start": [ 5, 3 ], "end": [ 5, 9 ] }, "symbol": "puts", "targets": [] }, { "span": { "start": [ 8, 1 ], "end": [ 8, 7 ] }, "symbol": "foo", "targets": [] } ] } } } ================================================ FILE: semantic/test/fixtures/ruby/import-graph/app.rb ================================================ require "json" require_relative "a" def foo(x) puts x end foo(1) ================================================ FILE: semantic/test/fixtures/ruby/reprinting/function.out.rb ================================================ def foo(x) x end 5.times() do |i| puts(i) end ================================================ FILE: semantic/test/fixtures/ruby/reprinting/function.rb ================================================ def foo(x) x end 5.times do |i| puts i end ================================================ FILE: semantic/test/fixtures/ruby/reprinting/infix.rb ================================================ 3 - 4 + 10 1 * 2 + 3 (1 * 2) + 3 1 * (2 + 3) ================================================ FILE: semantic/test/fixtures/ruby/tags/class_module.rb ================================================ # Public: Foo module Foo # Public: Bar class Bar # Public: baz def baz(a) a * 10 end end end class A::B::C def foo puts "hi" end def self.foo end end ================================================ FILE: semantic/test/fixtures/ruby/tags/simple_method.rb ================================================ def foo puts "hi" a.bar end ================================================ FILE: semantic/test/fixtures/ruby/tags/simple_method_with_docs.rb ================================================ # Public: foo def foo end ================================================ FILE: semantic/test/fixtures/ruby/tags/unicode_identifiers.rb ================================================ # coding: utf-8 def 日本語 "hello" end ================================================ FILE: semantic/test/fixtures/ruby/toc/classes.A.rb ================================================ class Baz end class Foo end ================================================ FILE: semantic/test/fixtures/ruby/toc/classes.B.rb ================================================ class Foo FOO = 1 end class Bar end ================================================ FILE: semantic/test/fixtures/ruby/toc/lambda.A.rb ================================================ -> { foo } ================================================ FILE: semantic/test/fixtures/ruby/toc/lambda.B.rb ================================================ lambda { bar } ================================================ FILE: semantic/test/fixtures/ruby/toc/method-starts-with-two-identifiers.A.rb ================================================ def foo bar end ================================================ FILE: semantic/test/fixtures/ruby/toc/method-starts-with-two-identifiers.B.rb ================================================ def foo bar baz end ================================================ FILE: semantic/test/fixtures/ruby/toc/methods.A.rb ================================================ def bar end def baz(x, y, z) end ================================================ FILE: semantic/test/fixtures/ruby/toc/methods.B.rb ================================================ def self.foo(a, *) end def bar puts "hello" end ================================================ FILE: semantic/test/fixtures/ruby/toc/methods.X.rb ================================================ def bar end ================================================ FILE: semantic/test/fixtures/ruby/toc/unicode.A.rb ================================================ # ’ # RIGHT SINGLE QUOTATION MARK # Unicode: U+2019, UTF-8: E2 80 99 "’" ================================================ FILE: semantic/test/fixtures/ruby/toc/unicode.B.rb ================================================ # ’ # RIGHT SINGLE QUOTATION MARK # Unicode: U+2019, UTF-8: E2 80 99 "’" def foo(a, b, c) end ================================================ FILE: semantic/test/fixtures/tsx/corpus/jsx-elements.A.tsx ================================================ var a = {children} var b = var c = ================================================ FILE: semantic/test/fixtures/tsx/corpus/jsx-elements.B.tsx ================================================ var a = {children} ================================================ FILE: semantic/test/fixtures/tsx/corpus/jsx-elements.diffA-B.txt ================================================ (Statements (VariableDeclaration (Assignment (Empty) (Identifier) (JsxElement (JsxOpeningElement (Identifier) (Empty) {+(JsxAttribute {+(Identifier)+} {+(JsxExpression {+(MemberAccess {+(Identifier)+} {+(Identifier)+})+})+})+} {-(JsxExpression {-(Call {-(Identifier)-} {-(MemberAccess {-(Identifier)-} {-(Identifier)-})-} {-(Empty)-})-})-}) (JsxExpression (Identifier)) (JsxClosingElement (Identifier))))) {-(VariableDeclaration {-(Assignment {-(Empty)-} {-(Identifier)-} {-(JsxElement {-(JsxOpeningElement {-(NestedIdentifier {-(Identifier)-} {-(Identifier)-})-} {-(Empty)-})-} {-(JsxClosingElement {-(NestedIdentifier {-(Identifier)-} {-(Identifier)-})-})-})-})-})-} {-(VariableDeclaration {-(Assignment {-(Empty)-} {-(Identifier)-} {-(JsxSelfClosingElement {-(NestedIdentifier {-(Identifier)-} {-(Identifier)-})-} {-(JsxAttribute {-(Identifier)-} {-(Empty)-})-} {-(JsxAttribute {-(Identifier)-} {-(TextElement)-})-})-})-})-}) ================================================ FILE: semantic/test/fixtures/tsx/corpus/jsx-elements.diffB-A.txt ================================================ (Statements (VariableDeclaration (Assignment (Empty) (Identifier) (JsxElement (JsxOpeningElement (Identifier) (Empty) {+(JsxExpression {+(Call {+(Identifier)+} {+(MemberAccess {+(Identifier)+} {+(Identifier)+})+} {+(Empty)+})+})+} {-(JsxAttribute {-(Identifier)-} {-(JsxExpression {-(MemberAccess {-(Identifier)-} {-(Identifier)-})-})-})-}) (JsxExpression (Identifier)) (JsxClosingElement (Identifier))))) {+(VariableDeclaration {+(Assignment {+(Empty)+} {+(Identifier)+} {+(JsxElement {+(JsxOpeningElement {+(NestedIdentifier {+(Identifier)+} {+(Identifier)+})+} {+(Empty)+})+} {+(JsxClosingElement {+(NestedIdentifier {+(Identifier)+} {+(Identifier)+})+})+})+})+})+} {+(VariableDeclaration {+(Assignment {+(Empty)+} {+(Identifier)+} {+(JsxSelfClosingElement {+(NestedIdentifier {+(Identifier)+} {+(Identifier)+})+} {+(JsxAttribute {+(Identifier)+} {+(Empty)+})+} {+(JsxAttribute {+(Identifier)+} {+(TextElement)+})+})+})+})+}) ================================================ FILE: semantic/test/fixtures/tsx/corpus/jsx-elements.parseA.txt ================================================ (Program (Statement (Declaration (VariableDeclaration (VariableDeclarator (Expression (JsxElement (JsxClosingElement (Identifier "Text")) (JsxOpeningElement (JsxExpression (SpreadElement (Expression (CallExpression (Expression (Identifier "css")) (Arguments (Expression (MemberExpression (PropertyIdentifier "titleText") (Expression (Identifier "styles"))))))))) (Identifier "Text")) (JsxExpression (Expression (Identifier "children"))))) (Identifier "a"))))) (Statement (Declaration (VariableDeclaration (VariableDeclarator (Expression (JsxElement (JsxClosingElement (NestedIdentifier (Identifier "Foo") (Identifier "Text"))) (JsxOpeningElement (NestedIdentifier (Identifier "Foo") (Identifier "Text"))))) (Identifier "b"))))) (Statement (Declaration (VariableDeclaration (VariableDeclarator (Expression (JsxSelfClosingElement (JsxAttribute (PropertyIdentifier "foo")) (JsxAttribute (PropertyIdentifier "bar") (String)) (NestedIdentifier (Identifier "Foo") (Identifier "Text")))) (Identifier "c")))))) ================================================ FILE: semantic/test/fixtures/tsx/corpus/jsx-elements.parseB.txt ================================================ (Program (Statement (Declaration (VariableDeclaration (VariableDeclarator (Expression (JsxElement (JsxClosingElement (Identifier "Text")) (JsxOpeningElement (JsxAttribute (PropertyIdentifier "bar") (JsxExpression (Expression (MemberExpression (PropertyIdentifier "titleText") (Expression (Identifier "styles")))))) (Identifier "Text")) (JsxExpression (Expression (Identifier "children"))))) (Identifier "a")))))) ================================================ FILE: semantic/test/fixtures/typescript/analysis/.gitignore ================================================ *.js ================================================ FILE: semantic/test/fixtures/typescript/analysis/a.ts ================================================ function baz() { return "this is the baz function" } export { baz } ================================================ FILE: semantic/test/fixtures/typescript/analysis/access_control/adder.ts ================================================ class Adder { public x: number; private y: number; public static w: number; private static z: number; private private_add() {} constructor(x, y) { this.x = x; this.y = y; } } ================================================ FILE: semantic/test/fixtures/typescript/analysis/access_control/private_field_definition.ts ================================================ import { Adder } from "./adder" var foo = new Adder(1, 2) foo.y; ================================================ FILE: semantic/test/fixtures/typescript/analysis/access_control/private_method.ts ================================================ import { Adder } from "./adder" var foo = new Adder(1, 2) foo.private_add() ================================================ FILE: semantic/test/fixtures/typescript/analysis/access_control/private_static_field_definition.ts ================================================ import { Adder } from "./adder" Adder.z ================================================ FILE: semantic/test/fixtures/typescript/analysis/await.ts ================================================ async function f2() { var y = await 20; return y; } f2(); ================================================ FILE: semantic/test/fixtures/typescript/analysis/bad-export.ts ================================================ export { pip } from "./pip" export { pip } from "./foo" ================================================ FILE: semantic/test/fixtures/typescript/analysis/band.ts ================================================ 1 & 2; ================================================ FILE: semantic/test/fixtures/typescript/analysis/baz.ts ================================================ export { foo } from "./foo" ================================================ FILE: semantic/test/fixtures/typescript/analysis/bor.ts ================================================ 1 | 2; ================================================ FILE: semantic/test/fixtures/typescript/analysis/bxor.ts ================================================ 1 ^ 2; ================================================ FILE: semantic/test/fixtures/typescript/analysis/class1.ts ================================================ import { Adder } from "./class2" var foo = new Adder(5) foo.add() ================================================ FILE: semantic/test/fixtures/typescript/analysis/class2.ts ================================================ class Adder { summand: number; constructor(summand: number) { this.summand = summand; } add() { return 4 + this.summand; } } export { Adder } ================================================ FILE: semantic/test/fixtures/typescript/analysis/complement.ts ================================================ ~1; ================================================ FILE: semantic/test/fixtures/typescript/analysis/delete.ts ================================================ let x = 3; delete x; ================================================ FILE: semantic/test/fixtures/typescript/analysis/early-return.ts ================================================ function foo() { return 123; return 456; } foo() ================================================ FILE: semantic/test/fixtures/typescript/analysis/foo/b.ts ================================================ function quz() { return "this is the quz function" } export { quz } ================================================ FILE: semantic/test/fixtures/typescript/analysis/foo.ts ================================================ function foo() { return "this is the foo function"; } function baz() { return "this is the baz function"; } export { foo, baz } ================================================ FILE: semantic/test/fixtures/typescript/analysis/foo2.ts ================================================ function foo(x) { return x; } export { foo } ================================================ FILE: semantic/test/fixtures/typescript/analysis/lshift.ts ================================================ 1 << 2; ================================================ FILE: semantic/test/fixtures/typescript/analysis/main.ts ================================================ // Use `tsc main.ts && node main.js` to test evaluation import { baz as bar } from "./foo"; import { quz } from "./foo/b"; quz() bar() ================================================ FILE: semantic/test/fixtures/typescript/analysis/main1.ts ================================================ import * as b from "./foo" import z = require("./foo") b.baz() z.foo() ================================================ FILE: semantic/test/fixtures/typescript/analysis/main2.ts ================================================ import "./foo" ================================================ FILE: semantic/test/fixtures/typescript/analysis/main3.ts ================================================ import "./a"; ================================================ FILE: semantic/test/fixtures/typescript/analysis/main4.ts ================================================ import { foo } from "./foo" foo() ================================================ FILE: semantic/test/fixtures/typescript/analysis/main5.ts ================================================ import { foo } from "./foo" foo("hello") ================================================ FILE: semantic/test/fixtures/typescript/analysis/main6.ts ================================================ import { foo } from "./baz" foo() ================================================ FILE: semantic/test/fixtures/typescript/analysis/main7.ts ================================================ import default from "./default" default() ================================================ FILE: semantic/test/fixtures/typescript/analysis/pip.ts ================================================ export { pip } function pip() { return "this is the pip function" } ================================================ FILE: semantic/test/fixtures/typescript/analysis/rshift.ts ================================================ 1 >> 2; ================================================ FILE: semantic/test/fixtures/typescript/analysis/sequence-expression.ts ================================================ let x = (2,3); ================================================ FILE: semantic/test/fixtures/typescript/analysis/unsignedrshift.ts ================================================ 1 >>> 2; ================================================ FILE: semantic/test/fixtures/typescript/analysis/void.ts ================================================ function foo() { return "hi"; } void foo(); ================================================ FILE: semantic/test/fixtures/typescript/corpus/ambient-declarations.A.ts ================================================ declare class Error { constructor: Function } declare var foo: number; declare function greet(greeting: string): void; declare namespace myLib { function makeGreeting(s: string): string; let numberOfGreetings: number; interface LogOptions { verbose?: boolean; } interface AlertOptions { modal: boolean; title?: string; color?: string; } } declare class Greeter { constructor(greeting: string); greeting: string; showGreeting(): void; } ================================================ FILE: semantic/test/fixtures/typescript/corpus/ambient-declarations.B.ts ================================================ declare namespace Erro { } declare class Bar { } declare interface LogOptions { } declare class Greeter { constructor(greeting: string); greeting: string; showGreeting(): void; } declare function foo(): Bar; ================================================ FILE: semantic/test/fixtures/typescript/corpus/ambient-declarations.diffA-B.txt ================================================ (Statements {+(AmbientDeclaration {+(InternalModule {+(Identifier)+})+})+} (AmbientDeclaration (Class { (TypeIdentifier) ->(TypeIdentifier) } { (PublicFieldDefinition {-(Empty)-} {-(Annotation {-(TypeIdentifier)-})-} {-(Identifier)-} {-(Empty)-}) ->(Statements) })) (AmbientDeclaration { (VariableDeclaration {-(Assignment {-(Annotation {-(PredefinedType)-})-} {-(Identifier)-} {-(Empty)-})-}) ->(InterfaceDeclaration {+(Empty)+} {+(TypeIdentifier)+} {+(ObjectType)+}) }) {-(AmbientDeclaration {-(AmbientFunction {-(Empty)-} {-(Annotation {-(PredefinedType)-})-} {-(Identifier)-} {-(RequiredParameter {-(Empty)-} {-(Annotation {-(PredefinedType)-})-} {-(Identifier)-} {-(Empty)-})-})-})-} {-(AmbientDeclaration {-(InternalModule {-(Identifier)-} {-(AmbientFunction {-(Empty)-} {-(Annotation {-(PredefinedType)-})-} {-(Identifier)-} {-(RequiredParameter {-(Empty)-} {-(Annotation {-(PredefinedType)-})-} {-(Identifier)-} {-(Empty)-})-})-} {-(VariableDeclaration {-(Assignment {-(Annotation {-(PredefinedType)-})-} {-(Identifier)-} {-(Empty)-})-})-} {-(InterfaceDeclaration {-(Empty)-} {-(TypeIdentifier)-} {-(ObjectType {-(PropertySignature {-(Empty)-} {-(Annotation {-(PredefinedType)-})-} {-(Identifier)-})-})-})-} {-(InterfaceDeclaration {-(Empty)-} {-(TypeIdentifier)-} {-(ObjectType {-(PropertySignature {-(Empty)-} {-(Annotation {-(PredefinedType)-})-} {-(Identifier)-})-} {-(PropertySignature {-(Empty)-} {-(Annotation {-(PredefinedType)-})-} {-(Identifier)-})-} {-(PropertySignature {-(Empty)-} {-(Annotation {-(PredefinedType)-})-} {-(Identifier)-})-})-})-})-})-} (AmbientDeclaration (Class (TypeIdentifier) (Statements (MethodSignature (Empty) (Empty) (Empty) (Identifier) (RequiredParameter (Empty) (Annotation (PredefinedType)) (Identifier) (Empty))) (PublicFieldDefinition (Empty) (Annotation (PredefinedType)) (Identifier) (Empty)) (MethodSignature (Empty) (Empty) (Annotation (PredefinedType)) (Identifier))))) {+(AmbientDeclaration {+(AmbientFunction {+(Empty)+} {+(Annotation {+(TypeIdentifier)+})+} {+(Identifier)+})+})+}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/ambient-declarations.diffB-A.txt ================================================ (Statements {+(AmbientDeclaration {+(Class {+(TypeIdentifier)+} {+(PublicFieldDefinition {+(Empty)+} {+(Annotation {+(TypeIdentifier)+})+} {+(Identifier)+} {+(Empty)+})+})+})+} {+(AmbientDeclaration {+(VariableDeclaration {+(Assignment {+(Annotation {+(PredefinedType)+})+} {+(Identifier)+} {+(Empty)+})+})+})+} {+(AmbientDeclaration {+(AmbientFunction {+(Empty)+} {+(Annotation {+(PredefinedType)+})+} {+(Identifier)+} {+(RequiredParameter {+(Empty)+} {+(Annotation {+(PredefinedType)+})+} {+(Identifier)+} {+(Empty)+})+})+})+} {+(AmbientDeclaration {+(InternalModule {+(Identifier)+} {+(AmbientFunction {+(Empty)+} {+(Annotation {+(PredefinedType)+})+} {+(Identifier)+} {+(RequiredParameter {+(Empty)+} {+(Annotation {+(PredefinedType)+})+} {+(Identifier)+} {+(Empty)+})+})+} {+(VariableDeclaration {+(Assignment {+(Annotation {+(PredefinedType)+})+} {+(Identifier)+} {+(Empty)+})+})+} {+(InterfaceDeclaration {+(Empty)+} {+(TypeIdentifier)+} {+(ObjectType {+(PropertySignature {+(Empty)+} {+(Annotation {+(PredefinedType)+})+} {+(Identifier)+})+})+})+} {+(InterfaceDeclaration {+(Empty)+} {+(TypeIdentifier)+} {+(ObjectType {+(PropertySignature {+(Empty)+} {+(Annotation {+(PredefinedType)+})+} {+(Identifier)+})+} {+(PropertySignature {+(Empty)+} {+(Annotation {+(PredefinedType)+})+} {+(Identifier)+})+} {+(PropertySignature {+(Empty)+} {+(Annotation {+(PredefinedType)+})+} {+(Identifier)+})+})+})+})+})+} {-(AmbientDeclaration {-(InternalModule {-(Identifier)-})-})-} {-(AmbientDeclaration {-(Class {-(TypeIdentifier)-} {-(Statements)-})-})-} {-(AmbientDeclaration {-(InterfaceDeclaration {-(Empty)-} {-(TypeIdentifier)-} {-(ObjectType)-})-})-} (AmbientDeclaration (Class (TypeIdentifier) (Statements (MethodSignature (Empty) (Empty) (Empty) (Identifier) (RequiredParameter (Empty) (Annotation (PredefinedType)) (Identifier) (Empty))) (PublicFieldDefinition (Empty) (Annotation (PredefinedType)) (Identifier) (Empty)) (MethodSignature (Empty) (Empty) (Annotation (PredefinedType)) (Identifier))))) {-(AmbientDeclaration {-(AmbientFunction {-(Empty)-} {-(Annotation {-(TypeIdentifier)-})-} {-(Identifier)-})-})-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/ambient-declarations.parseA.txt ================================================ (Program (Statement (Declaration (AmbientDeclaration (Declaration (ClassDeclaration (ClassBody (PublicFieldDefinition (PropertyIdentifier "constructor") (TypeAnnotation (TypeIdentifier "Function")))) (TypeIdentifier "Error")))))) (Statement (Declaration (AmbientDeclaration (Declaration (VariableDeclaration (VariableDeclarator (Identifier "foo") (TypeAnnotation (PredefinedType "number")))))))) (Statement (Declaration (AmbientDeclaration (Declaration (FunctionSignature (TypeAnnotation (PredefinedType "void")) (Identifier "greet") (FormalParameters (RequiredParameter (Identifier "greeting") (TypeAnnotation (PredefinedType "string"))))))))) (Statement (Declaration (AmbientDeclaration (Declaration (InternalModule (StatementBlock (Statement (Declaration (FunctionSignature (TypeAnnotation (PredefinedType "string")) (Identifier "makeGreeting") (FormalParameters (RequiredParameter (Identifier "s") (TypeAnnotation (PredefinedType "string"))))))) (Statement (Declaration (LexicalDeclaration (VariableDeclarator (Identifier "numberOfGreetings") (TypeAnnotation (PredefinedType "number")))))) (Statement (Declaration (InterfaceDeclaration (ObjectType (PropertySignature (PropertyIdentifier "verbose") (TypeAnnotation (PredefinedType "boolean")))) (TypeIdentifier "LogOptions")))) (Statement (Declaration (InterfaceDeclaration (ObjectType (PropertySignature (PropertyIdentifier "modal") (TypeAnnotation (PredefinedType "boolean"))) (PropertySignature (PropertyIdentifier "title") (TypeAnnotation (PredefinedType "string"))) (PropertySignature (PropertyIdentifier "color") (TypeAnnotation (PredefinedType "string")))) (TypeIdentifier "AlertOptions"))))) (Identifier "myLib")))))) (Statement (Declaration (AmbientDeclaration (Declaration (ClassDeclaration (ClassBody (MethodSignature (PropertyIdentifier "constructor") (FormalParameters (RequiredParameter (Identifier "greeting") (TypeAnnotation (PredefinedType "string"))))) (PublicFieldDefinition (PropertyIdentifier "greeting") (TypeAnnotation (PredefinedType "string"))) (MethodSignature (TypeAnnotation (PredefinedType "void")) (PropertyIdentifier "showGreeting") (FormalParameters))) (TypeIdentifier "Greeter"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/ambient-declarations.parseB.txt ================================================ (Program (Statement (Declaration (AmbientDeclaration (Declaration (InternalModule (StatementBlock) (Identifier "Erro")))))) (Statement (Declaration (AmbientDeclaration (Declaration (ClassDeclaration (ClassBody) (TypeIdentifier "Bar")))))) (Statement (Declaration (AmbientDeclaration (Declaration (InterfaceDeclaration (ObjectType) (TypeIdentifier "LogOptions")))))) (Statement (Declaration (AmbientDeclaration (Declaration (ClassDeclaration (ClassBody (MethodSignature (PropertyIdentifier "constructor") (FormalParameters (RequiredParameter (Identifier "greeting") (TypeAnnotation (PredefinedType "string"))))) (PublicFieldDefinition (PropertyIdentifier "greeting") (TypeAnnotation (PredefinedType "string"))) (MethodSignature (TypeAnnotation (PredefinedType "void")) (PropertyIdentifier "showGreeting") (FormalParameters))) (TypeIdentifier "Greeter")))))) (Statement (Declaration (AmbientDeclaration (Declaration (FunctionSignature (TypeAnnotation (TypeIdentifier "Bar")) (Identifier "foo") (FormalParameters))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/ambient-exports.A.ts ================================================ export default class Foo{} ================================================ FILE: semantic/test/fixtures/typescript/corpus/ambient-exports.B.ts ================================================ export default function bar(x: number, y: number) { return { x, y }; } ================================================ FILE: semantic/test/fixtures/typescript/corpus/ambient-exports.diffA-B.txt ================================================ (Statements (DefaultExport { (Class {-(TypeIdentifier)-} {-(Statements)-}) ->(Function {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(RequiredParameter {+(Empty)+} {+(Annotation {+(PredefinedType)+})+} {+(Identifier)+} {+(Empty)+})+} {+(RequiredParameter {+(Empty)+} {+(Annotation {+(PredefinedType)+})+} {+(Identifier)+} {+(Empty)+})+} {+(StatementBlock {+(Return {+(Hash {+(ShorthandPropertyIdentifier)+} {+(ShorthandPropertyIdentifier)+})+})+})+}) })) ================================================ FILE: semantic/test/fixtures/typescript/corpus/ambient-exports.diffB-A.txt ================================================ (Statements (DefaultExport { (Function {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(RequiredParameter {-(Empty)-} {-(Annotation {-(PredefinedType)-})-} {-(Identifier)-} {-(Empty)-})-} {-(RequiredParameter {-(Empty)-} {-(Annotation {-(PredefinedType)-})-} {-(Identifier)-} {-(Empty)-})-} {-(StatementBlock {-(Return {-(Hash {-(ShorthandPropertyIdentifier)-} {-(ShorthandPropertyIdentifier)-})-})-})-}) ->(Class {+(TypeIdentifier)+} {+(Statements)+}) })) ================================================ FILE: semantic/test/fixtures/typescript/corpus/ambient-exports.parseA.txt ================================================ (Program (Statement (ExportStatement (Expression (Class (ClassBody) (TypeIdentifier "Foo")))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/ambient-exports.parseB.txt ================================================ (Program (Statement (ExportStatement (Expression (Function (StatementBlock (Statement (ReturnStatement (Expression (Object (ShorthandPropertyIdentifier "x") (ShorthandPropertyIdentifier "y")))))) (Identifier "bar") (FormalParameters (RequiredParameter (Identifier "x") (TypeAnnotation (PredefinedType "number"))) (RequiredParameter (Identifier "y") (TypeAnnotation (PredefinedType "number"))))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/ambient-type-declarations.A.ts ================================================ declare type IndexableType = string | number | Date | Array; ================================================ FILE: semantic/test/fixtures/typescript/corpus/ambient-type-declarations.B.ts ================================================ type IndexableType = string | number | Date | Array; ================================================ FILE: semantic/test/fixtures/typescript/corpus/ambient-type-declarations.diffA-B.txt ================================================ (Statements {+(TypeAlias {+(Empty)+} {+(TypeIdentifier)+} {+(Union {+(Union {+(Union {+(PredefinedType)+} {+(PredefinedType)+})+} {+(TypeIdentifier)+})+} {+(GenericType {+(TypeIdentifier)+} {+(TypeArguments {+(Union {+(Union {+(PredefinedType)+} {+(PredefinedType)+})+} {+(TypeIdentifier)+})+})+})+})+})+} {-(AmbientDeclaration {-(TypeAlias {-(Empty)-} {-(TypeIdentifier)-} {-(Union {-(Union {-(Union {-(PredefinedType)-} {-(PredefinedType)-})-} {-(TypeIdentifier)-})-} {-(GenericType {-(TypeIdentifier)-} {-(TypeArguments {-(Union {-(Union {-(PredefinedType)-} {-(PredefinedType)-})-} {-(TypeIdentifier)-})-})-})-})-})-})-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/ambient-type-declarations.diffB-A.txt ================================================ (Statements {+(AmbientDeclaration {+(TypeAlias {+(Empty)+} {+(TypeIdentifier)+} {+(Union {+(Union {+(Union {+(PredefinedType)+} {+(PredefinedType)+})+} {+(TypeIdentifier)+})+} {+(GenericType {+(TypeIdentifier)+} {+(TypeArguments {+(Union {+(Union {+(PredefinedType)+} {+(PredefinedType)+})+} {+(TypeIdentifier)+})+})+})+})+})+})+} {-(TypeAlias {-(Empty)-} {-(TypeIdentifier)-} {-(Union {-(Union {-(Union {-(PredefinedType)-} {-(PredefinedType)-})-} {-(TypeIdentifier)-})-} {-(GenericType {-(TypeIdentifier)-} {-(TypeArguments {-(Union {-(Union {-(PredefinedType)-} {-(PredefinedType)-})-} {-(TypeIdentifier)-})-})-})-})-})-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/ambient-type-declarations.parseA.txt ================================================ (Program (Statement (Declaration (AmbientDeclaration (Declaration (TypeAliasDeclaration (UnionType (UnionType (UnionType (PredefinedType "string") (PredefinedType "number")) (TypeIdentifier "Date")) (GenericType (TypeIdentifier "Array") (TypeArguments (UnionType (UnionType (PredefinedType "string") (PredefinedType "number")) (TypeIdentifier "Date"))))) (TypeIdentifier "IndexableType"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/ambient-type-declarations.parseB.txt ================================================ (Program (Statement (Declaration (TypeAliasDeclaration (UnionType (UnionType (UnionType (PredefinedType "string") (PredefinedType "number")) (TypeIdentifier "Date")) (GenericType (TypeIdentifier "Array") (TypeArguments (UnionType (UnionType (PredefinedType "string") (PredefinedType "number")) (TypeIdentifier "Date"))))) (TypeIdentifier "IndexableType"))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/anonymous-function.A.ts ================================================ function(a,b) { return a + b; } ================================================ FILE: semantic/test/fixtures/typescript/corpus/anonymous-function.B.ts ================================================ function(b,c) { return b * c; } ================================================ FILE: semantic/test/fixtures/typescript/corpus/anonymous-function.diffA-B.txt ================================================ (Statements (Function (Empty) (Empty) (Empty) {-(RequiredParameter {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(Empty)-})-} (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) {+(RequiredParameter {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(Empty)+})+} (StatementBlock (Return { (Plus {-(Identifier)-} {-(Identifier)-}) ->(Times {+(Identifier)+} {+(Identifier)+}) })))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/anonymous-function.diffB-A.txt ================================================ (Statements (Function (Empty) (Empty) (Empty) {+(RequiredParameter {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(Empty)+})+} (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) {-(RequiredParameter {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(Empty)-})-} (StatementBlock (Return { (Times {-(Identifier)-} {-(Identifier)-}) ->(Plus {+(Identifier)+} {+(Identifier)+}) })))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/anonymous-function.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Function (StatementBlock (Statement (ReturnStatement (Expression (BinaryExpression (Token) (Expression (Identifier "a")) (Expression (Identifier "b"))))))) (FormalParameters (RequiredParameter (Identifier "a")) (RequiredParameter (Identifier "b")))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/anonymous-function.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Function (StatementBlock (Statement (ReturnStatement (Expression (BinaryExpression (Token) (Expression (Identifier "b")) (Expression (Identifier "c"))))))) (FormalParameters (RequiredParameter (Identifier "b")) (RequiredParameter (Identifier "c")))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/anonymous-parameterless-function.A.ts ================================================ function() { return 'hi'; } ================================================ FILE: semantic/test/fixtures/typescript/corpus/anonymous-parameterless-function.B.ts ================================================ function() { return 'hello'; } ================================================ FILE: semantic/test/fixtures/typescript/corpus/anonymous-parameterless-function.diffA-B.txt ================================================ (Statements (Function (Empty) (Empty) (Empty) (StatementBlock (Return { (TextElement) ->(TextElement) })))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/anonymous-parameterless-function.diffB-A.txt ================================================ (Statements (Function (Empty) (Empty) (Empty) (StatementBlock (Return { (TextElement) ->(TextElement) })))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/anonymous-parameterless-function.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Function (StatementBlock (Statement (ReturnStatement (Expression (String))))) (FormalParameters)))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/anonymous-parameterless-function.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Function (StatementBlock (Statement (ReturnStatement (Expression (String))))) (FormalParameters)))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/array-type.A.ts ================================================ let x: A[]; ================================================ FILE: semantic/test/fixtures/typescript/corpus/array-type.B.ts ================================================ let x: [A,B]; ================================================ FILE: semantic/test/fixtures/typescript/corpus/array-type.diffA-B.txt ================================================ (Statements (VariableDeclaration (Assignment (Annotation { (ArrayType {-(TypeIdentifier)-}) ->(Tuple {+(TypeIdentifier)+} {+(TypeIdentifier)+}) }) (Identifier) (Empty)))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/array-type.diffB-A.txt ================================================ (Statements (VariableDeclaration (Assignment (Annotation { (Tuple {-(TypeIdentifier)-} {-(TypeIdentifier)-}) ->(ArrayType {+(TypeIdentifier)+}) }) (Identifier) (Empty)))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/array-type.parseA.txt ================================================ (Program (Statement (Declaration (LexicalDeclaration (VariableDeclarator (Identifier "x") (TypeAnnotation (ArrayType (TypeIdentifier "A")))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/array-type.parseB.txt ================================================ (Program (Statement (Declaration (LexicalDeclaration (VariableDeclarator (Identifier "x") (TypeAnnotation (TupleType (TypeIdentifier "A") (TypeIdentifier "B")))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/array.A.ts ================================================ [ "item1" ]; ================================================ FILE: semantic/test/fixtures/typescript/corpus/array.B.ts ================================================ [ "item1", "item2" ]; ================================================ FILE: semantic/test/fixtures/typescript/corpus/array.diffA-B.txt ================================================ (Statements (Array (TextElement) {+(TextElement)+})) ================================================ FILE: semantic/test/fixtures/typescript/corpus/array.diffB-A.txt ================================================ (Statements (Array (TextElement) {-(TextElement)-})) ================================================ FILE: semantic/test/fixtures/typescript/corpus/array.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Array (Expression (String))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/array.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Array (Expression (String)) (Expression (String))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/arrow-function.A.ts ================================================ (f, g) => { return h; }; ================================================ FILE: semantic/test/fixtures/typescript/corpus/arrow-function.B.ts ================================================ (f, g) => { return g; }; ================================================ FILE: semantic/test/fixtures/typescript/corpus/arrow-function.diffA-B.txt ================================================ (Statements (Function (Empty) (Empty) (Empty) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Return { (Identifier) ->(Identifier) })))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/arrow-function.diffB-A.txt ================================================ (Statements (Function (Empty) (Empty) (Empty) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Return { (Identifier) ->(Identifier) })))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/arrow-function.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (ArrowFunction (StatementBlock (Statement (ReturnStatement (Expression (Identifier "h"))))) (FormalParameters (RequiredParameter (Identifier "f")) (RequiredParameter (Identifier "g")))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/arrow-function.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (ArrowFunction (StatementBlock (Statement (ReturnStatement (Expression (Identifier "g"))))) (FormalParameters (RequiredParameter (Identifier "f")) (RequiredParameter (Identifier "g")))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/assignment-pattern.A.ts ================================================ var { x = 0 } = foo; ================================================ FILE: semantic/test/fixtures/typescript/corpus/assignment-pattern.B.ts ================================================ var { y = 1 } = foo; ================================================ FILE: semantic/test/fixtures/typescript/corpus/assignment-pattern.diffA-B.txt ================================================ (Statements (VariableDeclaration (Assignment (Empty) (Hash (Assignment { (ShorthandPropertyIdentifier) ->(ShorthandPropertyIdentifier) } { (Float) ->(Float) })) (Identifier)))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/assignment-pattern.diffB-A.txt ================================================ (Statements (VariableDeclaration (Assignment (Empty) (Hash (Assignment { (ShorthandPropertyIdentifier) ->(ShorthandPropertyIdentifier) } { (Float) ->(Float) })) (Identifier)))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/assignment-pattern.parseA.txt ================================================ (Program (Statement (Declaration (VariableDeclaration (VariableDeclarator (Expression (Identifier "foo")) (DestructuringPattern (ObjectPattern (AssignmentPattern (ShorthandPropertyIdentifier "x") (Expression (Number "0")))))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/assignment-pattern.parseB.txt ================================================ (Program (Statement (Declaration (VariableDeclaration (VariableDeclarator (Expression (Identifier "foo")) (DestructuringPattern (ObjectPattern (AssignmentPattern (ShorthandPropertyIdentifier "y") (Expression (Number "1")))))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/assignment.A.ts ================================================ x = 0; ================================================ FILE: semantic/test/fixtures/typescript/corpus/assignment.B.ts ================================================ x = 1; ================================================ FILE: semantic/test/fixtures/typescript/corpus/assignment.diffA-B.txt ================================================ (Statements (Assignment (Identifier) { (Float) ->(Float) })) ================================================ FILE: semantic/test/fixtures/typescript/corpus/assignment.diffB-A.txt ================================================ (Statements (Assignment (Identifier) { (Float) ->(Float) })) ================================================ FILE: semantic/test/fixtures/typescript/corpus/assignment.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (AssignmentExpression (Identifier "x") (Expression (Number "0"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/assignment.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (AssignmentExpression (Identifier "x") (Expression (Number "1"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/bitwise-operator.A.ts ================================================ i >> j; ================================================ FILE: semantic/test/fixtures/typescript/corpus/bitwise-operator.B.ts ================================================ i >> k; ================================================ FILE: semantic/test/fixtures/typescript/corpus/bitwise-operator.diffA-B.txt ================================================ (Statements (RShift (Identifier) { (Identifier) ->(Identifier) })) ================================================ FILE: semantic/test/fixtures/typescript/corpus/bitwise-operator.diffB-A.txt ================================================ (Statements (RShift (Identifier) { (Identifier) ->(Identifier) })) ================================================ FILE: semantic/test/fixtures/typescript/corpus/bitwise-operator.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Identifier "j"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/bitwise-operator.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Identifier "k"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/boolean-operator.A.ts ================================================ i || j; ================================================ FILE: semantic/test/fixtures/typescript/corpus/boolean-operator.B.ts ================================================ i && j; ================================================ FILE: semantic/test/fixtures/typescript/corpus/boolean-operator.diffA-B.txt ================================================ (Statements {+(And {+(Identifier)+} {+(Identifier)+})+} {-(Or {-(Identifier)-} {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/boolean-operator.diffB-A.txt ================================================ (Statements {+(Or {+(Identifier)+} {+(Identifier)+})+} {-(And {-(Identifier)-} {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/boolean-operator.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Identifier "j"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/boolean-operator.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Identifier "j"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/break.A.ts ================================================ for (i = 0; i < 10; i++) { if (i === 4) { break; }; i } ================================================ FILE: semantic/test/fixtures/typescript/corpus/break.B.ts ================================================ for (i = 0; i < 10; i++) { if (i === 4) { continue; }; i } ================================================ FILE: semantic/test/fixtures/typescript/corpus/break.diffA-B.txt ================================================ (Statements (For (Assignment (Identifier) (Float)) (LessThan (Identifier) (Float)) (Update (Identifier)) (Statements (If (StrictEqual (Identifier) (Float)) (Statements {+(Continue {+(Empty)+})+} {-(Break {-(Empty)-})-}) (Empty)) (Empty) (Identifier)))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/break.diffB-A.txt ================================================ (Statements (For (Assignment (Identifier) (Float)) (LessThan (Identifier) (Float)) (Update (Identifier)) (Statements (If (StrictEqual (Identifier) (Float)) (Statements {+(Break {+(Empty)+})+} {-(Continue {-(Empty)-})-}) (Empty)) (Empty) (Identifier)))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/break.parseA.txt ================================================ (Program (Statement (ForStatement (Statement (StatementBlock (Statement (IfStatement (Statement (StatementBlock (Statement (BreakStatement)))) (ParenthesizedExpression (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Number "4"))))))) (Statement (EmptyStatement ";")) (Statement (ExpressionStatement (Expression (Identifier "i")))))) (ExpressionStatement (Expression (AssignmentExpression (Identifier "i") (Expression (Number "0"))))) (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Number "10"))))) (Expression (UpdateExpression (Token) (Expression (Identifier "i"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/break.parseB.txt ================================================ (Program (Statement (ForStatement (Statement (StatementBlock (Statement (IfStatement (Statement (StatementBlock (Statement (ContinueStatement)))) (ParenthesizedExpression (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Number "4"))))))) (Statement (EmptyStatement ";")) (Statement (ExpressionStatement (Expression (Identifier "i")))))) (ExpressionStatement (Expression (AssignmentExpression (Identifier "i") (Expression (Number "0"))))) (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Number "10"))))) (Expression (UpdateExpression (Token) (Expression (Identifier "i"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/chained-callbacks.A.ts ================================================ this.map(function (a) { return a.b; }) ================================================ FILE: semantic/test/fixtures/typescript/corpus/chained-callbacks.B.ts ================================================ this.reduce(function (a) { return b.a; }) ================================================ FILE: semantic/test/fixtures/typescript/corpus/chained-callbacks.diffA-B.txt ================================================ (Statements (Call (MemberAccess (This) { (Identifier) ->(Identifier) }) (Function (Empty) (Empty) (Empty) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Return (MemberAccess { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })))) (Empty))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/chained-callbacks.diffB-A.txt ================================================ (Statements (Call (MemberAccess (This) { (Identifier) ->(Identifier) }) (Function (Empty) (Empty) (Empty) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Return (MemberAccess { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) })))) (Empty))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/chained-callbacks.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "map") (Expression (This "this")))) (Arguments (Expression (Function (StatementBlock (Statement (ReturnStatement (Expression (MemberExpression (PropertyIdentifier "b") (Expression (Identifier "a"))))))) (FormalParameters (RequiredParameter (Identifier "a"))))))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/chained-callbacks.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "reduce") (Expression (This "this")))) (Arguments (Expression (Function (StatementBlock (Statement (ReturnStatement (Expression (MemberExpression (PropertyIdentifier "a") (Expression (Identifier "b"))))))) (FormalParameters (RequiredParameter (Identifier "a"))))))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/chained-property-access.A.ts ================================================ return returned.promise().done( newDefer.resolve ).fail( newDefer.reject ) ================================================ FILE: semantic/test/fixtures/typescript/corpus/chained-property-access.B.ts ================================================ return returned.promise().done( otherDefer.resolve ).fail( otherDefer.reject ) ================================================ FILE: semantic/test/fixtures/typescript/corpus/chained-property-access.diffA-B.txt ================================================ (Statements (Return (Call (MemberAccess (Call (MemberAccess (Call (MemberAccess (Identifier) (Identifier)) (Empty)) (Identifier)) (MemberAccess { (Identifier) ->(Identifier) } (Identifier)) (Empty)) (Identifier)) (MemberAccess { (Identifier) ->(Identifier) } (Identifier)) (Empty)))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/chained-property-access.diffB-A.txt ================================================ (Statements (Return (Call (MemberAccess (Call (MemberAccess (Call (MemberAccess (Identifier) (Identifier)) (Empty)) (Identifier)) (MemberAccess { (Identifier) ->(Identifier) } (Identifier)) (Empty)) (Identifier)) (MemberAccess { (Identifier) ->(Identifier) } (Identifier)) (Empty)))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/chained-property-access.parseA.txt ================================================ (Program (Statement (ReturnStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "fail") (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "done") (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "promise") (Expression (Identifier "returned")))) (Arguments))))) (Arguments (Expression (MemberExpression (PropertyIdentifier "resolve") (Expression (Identifier "newDefer"))))))))) (Arguments (Expression (MemberExpression (PropertyIdentifier "reject") (Expression (Identifier "newDefer")))))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/chained-property-access.parseB.txt ================================================ (Program (Statement (ReturnStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "fail") (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "done") (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "promise") (Expression (Identifier "returned")))) (Arguments))))) (Arguments (Expression (MemberExpression (PropertyIdentifier "resolve") (Expression (Identifier "otherDefer"))))))))) (Arguments (Expression (MemberExpression (PropertyIdentifier "reject") (Expression (Identifier "otherDefer")))))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/class.A.ts ================================================ class Foo extends Baz { bar = 5; static one(a) { return a; }; two(b) { return b; } three(c) { return c; } } ================================================ FILE: semantic/test/fixtures/typescript/corpus/class.B.ts ================================================ class Bar extends A { static foo(a) { return a; }; bar(b) { return b; } baz(c) { return c; } } ================================================ FILE: semantic/test/fixtures/typescript/corpus/class.diffA-B.txt ================================================ (Statements (Class (TypeParameter { (TypeIdentifier) ->(TypeIdentifier) } (Empty) (Empty)) { (TypeIdentifier) ->(TypeIdentifier) } (ExtendsClause { (TypeIdentifier) ->(TypeIdentifier) }) (Statements {+(Method {+(Empty)+} {+(Empty)+} {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(RequiredParameter {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(Empty)+})+} {+(StatementBlock {+(Return {+(Identifier)+})+})+})+} {+(Method {+(Empty)+} {+(Empty)+} {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(RequiredParameter {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(Empty)+})+} {+(StatementBlock {+(Return {+(Identifier)+})+})+})+} {+(Method {+(Empty)+} {+(Empty)+} {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(RequiredParameter {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(Empty)+})+} {+(StatementBlock {+(Return {+(Identifier)+})+})+})+} {-(PublicFieldDefinition {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(Float)-})-} {-(Method {-(Empty)-} {-(Empty)-} {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(RequiredParameter {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(Empty)-})-} {-(StatementBlock {-(Return {-(Identifier)-})-})-})-} {-(Method {-(Empty)-} {-(Empty)-} {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(RequiredParameter {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(Empty)-})-} {-(StatementBlock {-(Return {-(Identifier)-})-})-})-} {-(Method {-(Empty)-} {-(Empty)-} {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(RequiredParameter {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(Empty)-})-} {-(StatementBlock {-(Return {-(Identifier)-})-})-})-}))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/class.diffB-A.txt ================================================ (Statements (Class (TypeParameter { (TypeIdentifier) ->(TypeIdentifier) } (Empty) (Empty)) { (TypeIdentifier) ->(TypeIdentifier) } (ExtendsClause { (TypeIdentifier) ->(TypeIdentifier) }) (Statements {+(PublicFieldDefinition {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(Float)+})+} (Method (Empty) (Empty) (Empty) (Empty) { (Identifier) ->(Identifier) } (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Return (Identifier)))) (Method (Empty) (Empty) (Empty) (Empty) { (Identifier) ->(Identifier) } (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Return (Identifier)))) (Method (Empty) (Empty) (Empty) (Empty) { (Identifier) ->(Identifier) } (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Return (Identifier))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/class.parseA.txt ================================================ (Program (Statement (Declaration (ClassDeclaration (ClassBody (PublicFieldDefinition (Expression (Number "5")) (PropertyIdentifier "bar")) (MethodDefinition (StatementBlock (Statement (ReturnStatement (Expression (Identifier "a"))))) (PropertyIdentifier "one") (FormalParameters (RequiredParameter (Identifier "a")))) (MethodDefinition (StatementBlock (Statement (ReturnStatement (Expression (Identifier "b"))))) (PropertyIdentifier "two") (FormalParameters (RequiredParameter (Identifier "b")))) (MethodDefinition (StatementBlock (Statement (ReturnStatement (Expression (Identifier "c"))))) (PropertyIdentifier "three") (FormalParameters (RequiredParameter (Identifier "c"))))) (TypeIdentifier "Foo") (TypeParameters (TypeParameter (TypeIdentifier "Bar"))) (ClassHeritage (ExtendsClause (TypeIdentifier "Baz"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/class.parseB.txt ================================================ (Program (Statement (Declaration (ClassDeclaration (ClassBody (MethodDefinition (StatementBlock (Statement (ReturnStatement (Expression (Identifier "a"))))) (PropertyIdentifier "foo") (FormalParameters (RequiredParameter (Identifier "a")))) (MethodDefinition (StatementBlock (Statement (ReturnStatement (Expression (Identifier "b"))))) (PropertyIdentifier "bar") (FormalParameters (RequiredParameter (Identifier "b")))) (MethodDefinition (StatementBlock (Statement (ReturnStatement (Expression (Identifier "c"))))) (PropertyIdentifier "baz") (FormalParameters (RequiredParameter (Identifier "c"))))) (TypeIdentifier "Bar") (TypeParameters (TypeParameter (TypeIdentifier "Z"))) (ClassHeritage (ExtendsClause (TypeIdentifier "A"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/comma-operator.A.ts ================================================ a = 1, b = 2; ================================================ FILE: semantic/test/fixtures/typescript/corpus/comma-operator.B.ts ================================================ c = {d: (3, 4 + 5, 6)}; ================================================ FILE: semantic/test/fixtures/typescript/corpus/comma-operator.diffA-B.txt ================================================ (Statements {+(Assignment {+(Identifier)+} {+(Hash {+(KeyValue {+(Identifier)+} {+(SequenceExpression {+(Float)+} {+(SequenceExpression {+(Plus {+(Float)+} {+(Float)+})+} {+(Float)+})+})+})+})+})+} {-(SequenceExpression {-(Assignment {-(Identifier)-} {-(Float)-})-} {-(Assignment {-(Identifier)-} {-(Float)-})-})-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/comma-operator.diffB-A.txt ================================================ (Statements {+(SequenceExpression {+(Assignment {+(Identifier)+} {+(Float)+})+} {+(Assignment {+(Identifier)+} {+(Float)+})+})+} {-(Assignment {-(Identifier)-} {-(Hash {-(KeyValue {-(Identifier)-} {-(SequenceExpression {-(Float)-} {-(SequenceExpression {-(Plus {-(Float)-} {-(Float)-})-} {-(Float)-})-})-})-})-})-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/comma-operator.parseA.txt ================================================ (Program (Statement (ExpressionStatement (SequenceExpression (Expression (AssignmentExpression (Identifier "a") (Expression (Number "1")))) (Expression (AssignmentExpression (Identifier "b") (Expression (Number "2")))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/comma-operator.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (AssignmentExpression (Identifier "c") (Expression (Object (Pair (Expression (ParenthesizedExpression (SequenceExpression (Expression (Number "3")) (SequenceExpression (Expression (BinaryExpression (Token) (Expression (Number "4")) (Expression (Number "5")))) (Expression (Number "6")))))) (PropertyIdentifier "d"))))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/comment.A.ts ================================================ // This is a property ================================================ FILE: semantic/test/fixtures/typescript/corpus/comment.B.ts ================================================ /* * This is a method */ ================================================ FILE: semantic/test/fixtures/typescript/corpus/comment.diffA-B.txt ================================================ (Statements (Context { (Comment) ->(Comment) } (Empty))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/comment.diffB-A.txt ================================================ (Statements (Context { (Comment) ->(Comment) } (Empty))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/comment.parseA.txt ================================================ (Program) ================================================ FILE: semantic/test/fixtures/typescript/corpus/comment.parseB.txt ================================================ (Program) ================================================ FILE: semantic/test/fixtures/typescript/corpus/constructor-call.A.ts ================================================ new module.Klass(1, "two"); ================================================ FILE: semantic/test/fixtures/typescript/corpus/constructor-call.B.ts ================================================ new module.Klass(1, "three"); ================================================ FILE: semantic/test/fixtures/typescript/corpus/constructor-call.diffA-B.txt ================================================ (Statements (New (MemberAccess (Identifier) (Identifier)) (Empty) (Float) { (TextElement) ->(TextElement) })) ================================================ FILE: semantic/test/fixtures/typescript/corpus/constructor-call.diffB-A.txt ================================================ (Statements (New (MemberAccess (Identifier) (Identifier)) (Empty) (Float) { (TextElement) ->(TextElement) })) ================================================ FILE: semantic/test/fixtures/typescript/corpus/constructor-call.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (NewExpression (Arguments (Expression (Number "1")) (Expression (String))) (MemberExpression (PropertyIdentifier "Klass") (Expression (Identifier "module")))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/constructor-call.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (NewExpression (Arguments (Expression (Number "1")) (Expression (String))) (MemberExpression (PropertyIdentifier "Klass") (Expression (Identifier "module")))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/continue.A.ts ================================================ for (i = 0; i < 10; i++) { if (i === 4) { continue; }; i } ================================================ FILE: semantic/test/fixtures/typescript/corpus/continue.B.ts ================================================ for (i = 0; i < 10; i++) { if (i === 4) { break; }; i } ================================================ FILE: semantic/test/fixtures/typescript/corpus/continue.diffA-B.txt ================================================ (Statements (For (Assignment (Identifier) (Float)) (LessThan (Identifier) (Float)) (Update (Identifier)) (Statements (If (StrictEqual (Identifier) (Float)) (Statements {+(Break {+(Empty)+})+} {-(Continue {-(Empty)-})-}) (Empty)) (Empty) (Identifier)))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/continue.diffB-A.txt ================================================ (Statements (For (Assignment (Identifier) (Float)) (LessThan (Identifier) (Float)) (Update (Identifier)) (Statements (If (StrictEqual (Identifier) (Float)) (Statements {+(Continue {+(Empty)+})+} {-(Break {-(Empty)-})-}) (Empty)) (Empty) (Identifier)))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/continue.parseA.txt ================================================ (Program (Statement (ForStatement (Statement (StatementBlock (Statement (IfStatement (Statement (StatementBlock (Statement (ContinueStatement)))) (ParenthesizedExpression (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Number "4"))))))) (Statement (EmptyStatement ";")) (Statement (ExpressionStatement (Expression (Identifier "i")))))) (ExpressionStatement (Expression (AssignmentExpression (Identifier "i") (Expression (Number "0"))))) (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Number "10"))))) (Expression (UpdateExpression (Token) (Expression (Identifier "i"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/continue.parseB.txt ================================================ (Program (Statement (ForStatement (Statement (StatementBlock (Statement (IfStatement (Statement (StatementBlock (Statement (BreakStatement)))) (ParenthesizedExpression (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Number "4"))))))) (Statement (EmptyStatement ";")) (Statement (ExpressionStatement (Expression (Identifier "i")))))) (ExpressionStatement (Expression (AssignmentExpression (Identifier "i") (Expression (Number "0"))))) (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Number "10"))))) (Expression (UpdateExpression (Token) (Expression (Identifier "i"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/delete-operator.A.ts ================================================ delete thing['prop']; ================================================ FILE: semantic/test/fixtures/typescript/corpus/delete-operator.B.ts ================================================ delete thing.prop ================================================ FILE: semantic/test/fixtures/typescript/corpus/delete-operator.diffA-B.txt ================================================ (Statements (Delete { (Subscript {-(Identifier)-} {-(TextElement)-}) ->(MemberAccess {+(Identifier)+} {+(Identifier)+}) })) ================================================ FILE: semantic/test/fixtures/typescript/corpus/delete-operator.diffB-A.txt ================================================ (Statements (Delete { (MemberAccess {-(Identifier)-} {-(Identifier)-}) ->(Subscript {+(Identifier)+} {+(TextElement)+}) })) ================================================ FILE: semantic/test/fixtures/typescript/corpus/delete-operator.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (UnaryExpression (Token) (Expression (SubscriptExpression (Expression (Identifier "thing")) (Expression (String))))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/delete-operator.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (UnaryExpression (Token) (Expression (MemberExpression (PropertyIdentifier "prop") (Expression (Identifier "thing"))))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/do-while-statement.A.ts ================================================ do { console.log(insert); } while (true); ================================================ FILE: semantic/test/fixtures/typescript/corpus/do-while-statement.B.ts ================================================ do { console.log(replacement); } while (false); ================================================ FILE: semantic/test/fixtures/typescript/corpus/do-while-statement.diffA-B.txt ================================================ (Statements (DoWhile { (Boolean) ->(Boolean) } (Statements (Call (MemberAccess (Identifier) (Identifier)) { (Identifier) ->(Identifier) } (Empty))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/do-while-statement.diffB-A.txt ================================================ (Statements (DoWhile { (Boolean) ->(Boolean) } (Statements (Call (MemberAccess (Identifier) (Identifier)) { (Identifier) ->(Identifier) } (Empty))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/do-while-statement.parseA.txt ================================================ (Program (Statement (DoStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "log") (Expression (Identifier "console")))) (Arguments (Expression (Identifier "insert"))))))))) (ParenthesizedExpression (Expression (True "true")))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/do-while-statement.parseB.txt ================================================ (Program (Statement (DoStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "log") (Expression (Identifier "console")))) (Arguments (Expression (Identifier "replacement"))))))))) (ParenthesizedExpression (Expression (False "false")))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/export-assignments.A.ts ================================================ export = Linter; ================================================ FILE: semantic/test/fixtures/typescript/corpus/export-assignments.B.ts ================================================ return Foo; ================================================ FILE: semantic/test/fixtures/typescript/corpus/export-assignments.diffA-B.txt ================================================ (Statements {+(Return {+(Identifier)+})+} {-(DefaultExport {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/export-assignments.diffB-A.txt ================================================ (Statements {+(DefaultExport {+(Identifier)+})+} {-(Return {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/export-assignments.parseA.txt ================================================ (Program (Statement (ExportStatement (Identifier "Linter")))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/export-assignments.parseB.txt ================================================ (Program (Statement (ReturnStatement (Expression (Identifier "Foo"))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/export.A.ts ================================================ export { name1, name2, name3, nameN }; export { variable1 as name1, variable2 as name2, nameN }; export let name1, name2, nameN; export let name1 = value1, name2 = value2, name3, nameN; export default namedFunction; export default function () { }; export default function name1() { }; export { name1 as default }; export * from 'foo'; export { name1, name2, nameN } from 'foo'; export { import1 as name1, import2 as name2, nameN } from 'bar'; ================================================ FILE: semantic/test/fixtures/typescript/corpus/export.B.ts ================================================ export { name4, name5, name6, nameZ }; export { variable2 as name2, variable3 as name3, nameY }; export let name3, name4, nameT; export let name2 = value2, name3 = value3, name4, nameO; export default otherNamedFunction; export default function newName1() {}; export default function () {}; export { name2 as statement }; export * from 'baz'; export { name7, name8, nameP } from 'buzz'; export { import6 as name6, import7 as name7, nameB } from 'fizz'; ================================================ FILE: semantic/test/fixtures/typescript/corpus/export.diffA-B.txt ================================================ (Statements { (QualifiedExport) ->(QualifiedExport) } { (QualifiedExport) ->(QualifiedExport) } (DefaultExport (VariableDeclaration (Assignment (Empty) { (Identifier) ->(Identifier) } (Empty)) (Assignment (Empty) { (Identifier) ->(Identifier) } (Empty)) (Assignment (Empty) { (Identifier) ->(Identifier) } (Empty)))) (DefaultExport (VariableDeclaration {-(Assignment {-(Empty)-} {-(Identifier)-} {-(Identifier)-})-} (Assignment (Empty) (Identifier) (Identifier)) (Assignment (Empty) (Identifier) { (Empty) ->(Identifier) }) (Assignment (Empty) { (Identifier) ->(Identifier) } (Empty)) {+(Assignment {+(Empty)+} {+(Identifier)+} {+(Empty)+})+})) (DefaultExport { (Identifier) ->(Identifier) }) {+(DefaultExport {+(Function {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(StatementBlock)+})+})+} (DefaultExport (Function (Empty) (Empty) (Empty) (StatementBlock))) {+(QualifiedExport)+} {+(DefaultExport {+(TextElement)+})+} {+(QualifiedExportFrom)+} {+(QualifiedExportFrom)+} {-(DefaultExport {-(Function {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(StatementBlock)-})-})-} {-(QualifiedExport)-} {-(DefaultExport {-(TextElement)-})-} {-(QualifiedExportFrom)-} {-(QualifiedExportFrom)-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/export.diffB-A.txt ================================================ (Statements { (QualifiedExport) ->(QualifiedExport) } { (QualifiedExport) ->(QualifiedExport) } (DefaultExport (VariableDeclaration (Assignment (Empty) { (Identifier) ->(Identifier) } (Empty)) (Assignment (Empty) { (Identifier) ->(Identifier) } (Empty)) (Assignment (Empty) { (Identifier) ->(Identifier) } (Empty)))) (DefaultExport (VariableDeclaration {+(Assignment {+(Empty)+} {+(Identifier)+} {+(Identifier)+})+} (Assignment (Empty) (Identifier) (Identifier)) (Assignment (Empty) (Identifier) { (Identifier) ->(Empty) }) (Assignment (Empty) { (Identifier) ->(Identifier) } (Empty)) {-(Assignment {-(Empty)-} {-(Identifier)-} {-(Empty)-})-})) (DefaultExport { (Identifier) ->(Identifier) }) {-(DefaultExport {-(Function {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(StatementBlock)-})-})-} (DefaultExport (Function (Empty) (Empty) (Empty) (StatementBlock))) {+(DefaultExport {+(Function {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(StatementBlock)+})+})+} { (QualifiedExport) ->(QualifiedExport) } (DefaultExport { (TextElement) ->(TextElement) }) { (QualifiedExportFrom) ->(QualifiedExportFrom) } { (QualifiedExportFrom) ->(QualifiedExportFrom) }) ================================================ FILE: semantic/test/fixtures/typescript/corpus/export.parseA.txt ================================================ (Program (Statement (ExportStatement (ExportClause (ExportSpecifier (Identifier "name1")) (ExportSpecifier (Identifier "name2")) (ExportSpecifier (Identifier "name3")) (ExportSpecifier (Identifier "nameN"))))) (Statement (ExportStatement (ExportClause (ExportSpecifier (Identifier "name1") (Identifier "variable1")) (ExportSpecifier (Identifier "name2") (Identifier "variable2")) (ExportSpecifier (Identifier "nameN"))))) (Statement (ExportStatement (Declaration (LexicalDeclaration (VariableDeclarator (Identifier "name1")) (VariableDeclarator (Identifier "name2")) (VariableDeclarator (Identifier "nameN")))))) (Statement (ExportStatement (Declaration (LexicalDeclaration (VariableDeclarator (Expression (Identifier "value1")) (Identifier "name1")) (VariableDeclarator (Expression (Identifier "value2")) (Identifier "name2")) (VariableDeclarator (Identifier "name3")) (VariableDeclarator (Identifier "nameN")))))) (Statement (ExportStatement (Expression (Identifier "namedFunction")))) (Statement (ExportStatement (Expression (Function (StatementBlock) (FormalParameters))))) (Statement (ExportStatement (Expression (Function (StatementBlock) (Identifier "name1") (FormalParameters))))) (Statement (ExportStatement (ExportClause (ExportSpecifier (Identifier "default") (Identifier "name1"))))) (Statement (ExportStatement (String))) (Statement (ExportStatement (String) (ExportClause (ExportSpecifier (Identifier "name1")) (ExportSpecifier (Identifier "name2")) (ExportSpecifier (Identifier "nameN"))))) (Statement (ExportStatement (String) (ExportClause (ExportSpecifier (Identifier "name1") (Identifier "import1")) (ExportSpecifier (Identifier "name2") (Identifier "import2")) (ExportSpecifier (Identifier "nameN")))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/export.parseB.txt ================================================ (Program (Statement (ExportStatement (ExportClause (ExportSpecifier (Identifier "name4")) (ExportSpecifier (Identifier "name5")) (ExportSpecifier (Identifier "name6")) (ExportSpecifier (Identifier "nameZ"))))) (Statement (ExportStatement (ExportClause (ExportSpecifier (Identifier "name2") (Identifier "variable2")) (ExportSpecifier (Identifier "name3") (Identifier "variable3")) (ExportSpecifier (Identifier "nameY"))))) (Statement (ExportStatement (Declaration (LexicalDeclaration (VariableDeclarator (Identifier "name3")) (VariableDeclarator (Identifier "name4")) (VariableDeclarator (Identifier "nameT")))))) (Statement (ExportStatement (Declaration (LexicalDeclaration (VariableDeclarator (Expression (Identifier "value2")) (Identifier "name2")) (VariableDeclarator (Expression (Identifier "value3")) (Identifier "name3")) (VariableDeclarator (Identifier "name4")) (VariableDeclarator (Identifier "nameO")))))) (Statement (ExportStatement (Expression (Identifier "otherNamedFunction")))) (Statement (ExportStatement (Expression (Function (StatementBlock) (Identifier "newName1") (FormalParameters))))) (Statement (ExportStatement (Expression (Function (StatementBlock) (FormalParameters))))) (Statement (ExportStatement (ExportClause (ExportSpecifier (Identifier "statement") (Identifier "name2"))))) (Statement (ExportStatement (String))) (Statement (ExportStatement (String) (ExportClause (ExportSpecifier (Identifier "name7")) (ExportSpecifier (Identifier "name8")) (ExportSpecifier (Identifier "nameP"))))) (Statement (ExportStatement (String) (ExportClause (ExportSpecifier (Identifier "name6") (Identifier "import6")) (ExportSpecifier (Identifier "name7") (Identifier "import7")) (ExportSpecifier (Identifier "nameB")))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/false.A.ts ================================================ false; ================================================ FILE: semantic/test/fixtures/typescript/corpus/false.B.ts ================================================ return false; ================================================ FILE: semantic/test/fixtures/typescript/corpus/false.diffA-B.txt ================================================ (Statements {+(Return {+(Boolean)+})+} {-(Boolean)-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/false.diffB-A.txt ================================================ (Statements {+(Boolean)+} {-(Return {-(Boolean)-})-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/false.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (False "false"))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/false.parseB.txt ================================================ (Program (Statement (ReturnStatement (Expression (False "false"))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/for-in-statement.A.ts ================================================ for (thing in things) { thing(); } ================================================ FILE: semantic/test/fixtures/typescript/corpus/for-in-statement.B.ts ================================================ for (item in items) { item(); } ================================================ FILE: semantic/test/fixtures/typescript/corpus/for-in-statement.diffA-B.txt ================================================ (Statements (ForEach { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) } (Statements (Call { (Identifier) ->(Identifier) } (Empty))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/for-in-statement.diffB-A.txt ================================================ (Statements (ForEach { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) } (Statements (Call { (Identifier) ->(Identifier) } (Empty))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/for-in-statement.parseA.txt ================================================ (Program (Statement (ForInStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "thing")) (Arguments))))))) (Identifier "thing") (Expression (Identifier "things"))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/for-in-statement.parseB.txt ================================================ (Program (Statement (ForInStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "item")) (Arguments))))))) (Identifier "item") (Expression (Identifier "items"))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/for-loop-with-in-statement.A.ts ================================================ for (key in something && i = 0; i < n; i++) { doSomething(); } ================================================ FILE: semantic/test/fixtures/typescript/corpus/for-loop-with-in-statement.B.ts ================================================ for (otherKey in something && i = 0; i < n; i++) { doOtherSomething(); } ================================================ FILE: semantic/test/fixtures/typescript/corpus/for-loop-with-in-statement.diffA-B.txt ================================================ (Statements (For (And (Member { (Identifier) ->(Identifier) } (Identifier)) (Assignment (Identifier) (Float))) (LessThan (Identifier) (Identifier)) (Update (Identifier)) (Statements (Call { (Identifier) ->(Identifier) } (Empty))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/for-loop-with-in-statement.diffB-A.txt ================================================ (Statements (For (And (Member { (Identifier) ->(Identifier) } (Identifier)) (Assignment (Identifier) (Float))) (LessThan (Identifier) (Identifier)) (Update (Identifier)) (Statements (Call { (Identifier) ->(Identifier) } (Empty))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/for-loop-with-in-statement.parseA.txt ================================================ (Program (Statement (ForStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "doSomething")) (Arguments))))))) (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (BinaryExpression (Token) (Expression (Identifier "key")) (Expression (Identifier "something")))) (Expression (AssignmentExpression (Identifier "i") (Expression (Number "0"))))))) (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Identifier "n"))))) (Expression (UpdateExpression (Token) (Expression (Identifier "i"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/for-loop-with-in-statement.parseB.txt ================================================ (Program (Statement (ForStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "doOtherSomething")) (Arguments))))))) (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (BinaryExpression (Token) (Expression (Identifier "otherKey")) (Expression (Identifier "something")))) (Expression (AssignmentExpression (Identifier "i") (Expression (Number "0"))))))) (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Identifier "n"))))) (Expression (UpdateExpression (Token) (Expression (Identifier "i"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/for-of-statement.A.ts ================================================ for (let item of items) { process(item); }; ================================================ FILE: semantic/test/fixtures/typescript/corpus/for-of-statement.B.ts ================================================ for (let thing of things) { process(thing); }; ================================================ FILE: semantic/test/fixtures/typescript/corpus/for-of-statement.diffA-B.txt ================================================ (Statements (ForEach { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) } (Statements (Call (Identifier) { (Identifier) ->(Identifier) } (Empty)))) (Empty)) ================================================ FILE: semantic/test/fixtures/typescript/corpus/for-of-statement.diffB-A.txt ================================================ (Statements (ForEach { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) } (Statements (Call (Identifier) { (Identifier) ->(Identifier) } (Empty)))) (Empty)) ================================================ FILE: semantic/test/fixtures/typescript/corpus/for-of-statement.parseA.txt ================================================ (Program (Statement (ForInStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "process")) (Arguments (Expression (Identifier "item"))))))))) (Identifier "item") (Expression (Identifier "items")))) (Statement (EmptyStatement ";"))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/for-of-statement.parseB.txt ================================================ (Program (Statement (ForInStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "process")) (Arguments (Expression (Identifier "thing"))))))))) (Identifier "thing") (Expression (Identifier "things")))) (Statement (EmptyStatement ";"))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/for-statement.A.ts ================================================ for (i = 0, init(); i < 10; i++) { log(i); } ================================================ FILE: semantic/test/fixtures/typescript/corpus/for-statement.B.ts ================================================ for (i = 0, init(); i < 100; i++) { log(i); } ================================================ FILE: semantic/test/fixtures/typescript/corpus/for-statement.diffA-B.txt ================================================ (Statements (For (SequenceExpression (Assignment (Identifier) (Float)) (Call (Identifier) (Empty))) (LessThan (Identifier) { (Float) ->(Float) }) (Update (Identifier)) (Statements (Call (Identifier) (Identifier) (Empty))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/for-statement.diffB-A.txt ================================================ (Statements (For (SequenceExpression (Assignment (Identifier) (Float)) (Call (Identifier) (Empty))) (LessThan (Identifier) { (Float) ->(Float) }) (Update (Identifier)) (Statements (Call (Identifier) (Identifier) (Empty))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/for-statement.parseA.txt ================================================ (Program (Statement (ForStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "log")) (Arguments (Expression (Identifier "i"))))))))) (ExpressionStatement (SequenceExpression (Expression (AssignmentExpression (Identifier "i") (Expression (Number "0")))) (Expression (CallExpression (Expression (Identifier "init")) (Arguments))))) (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Number "10"))))) (Expression (UpdateExpression (Token) (Expression (Identifier "i"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/for-statement.parseB.txt ================================================ (Program (Statement (ForStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "log")) (Arguments (Expression (Identifier "i"))))))))) (ExpressionStatement (SequenceExpression (Expression (AssignmentExpression (Identifier "i") (Expression (Number "0")))) (Expression (CallExpression (Expression (Identifier "init")) (Arguments))))) (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (Number "100"))))) (Expression (UpdateExpression (Token) (Expression (Identifier "i"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/function-call-args.A.ts ================================================ someFunction(1, "string", function(a,b) { console.log(a); return b; }, true) ================================================ FILE: semantic/test/fixtures/typescript/corpus/function-call-args.B.ts ================================================ someFunction(1, "otherString", function(b,c) { console.log(b); return c; }, false) ================================================ FILE: semantic/test/fixtures/typescript/corpus/function-call-args.diffA-B.txt ================================================ (Statements (Call (Identifier) (Float) { (TextElement) ->(TextElement) } (Function (Empty) (Empty) (Empty) {-(RequiredParameter {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(Empty)-})-} (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) {+(RequiredParameter {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(Empty)+})+} (StatementBlock (Call (MemberAccess (Identifier) (Identifier)) { (Identifier) ->(Identifier) } (Empty)) (Return { (Identifier) ->(Identifier) }))) { (Boolean) ->(Boolean) } (Empty))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/function-call-args.diffB-A.txt ================================================ (Statements (Call (Identifier) (Float) { (TextElement) ->(TextElement) } (Function (Empty) (Empty) (Empty) {+(RequiredParameter {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(Empty)+})+} (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) {-(RequiredParameter {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(Empty)-})-} (StatementBlock (Call (MemberAccess (Identifier) (Identifier)) { (Identifier) ->(Identifier) } (Empty)) (Return { (Identifier) ->(Identifier) }))) { (Boolean) ->(Boolean) } (Empty))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/function-call-args.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "someFunction")) (Arguments (Expression (Number "1")) (Expression (String)) (Expression (Function (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "log") (Expression (Identifier "console")))) (Arguments (Expression (Identifier "a"))))))) (Statement (ReturnStatement (Expression (Identifier "b"))))) (FormalParameters (RequiredParameter (Identifier "a")) (RequiredParameter (Identifier "b"))))) (Expression (True "true")))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/function-call-args.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "someFunction")) (Arguments (Expression (Number "1")) (Expression (String)) (Expression (Function (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "log") (Expression (Identifier "console")))) (Arguments (Expression (Identifier "b"))))))) (Statement (ReturnStatement (Expression (Identifier "c"))))) (FormalParameters (RequiredParameter (Identifier "b")) (RequiredParameter (Identifier "c"))))) (Expression (False "false")))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/function-call.A.ts ================================================ someFunction(arg1, "arg2"); ================================================ FILE: semantic/test/fixtures/typescript/corpus/function-call.B.ts ================================================ someFunction(arg1, "arg3"); ================================================ FILE: semantic/test/fixtures/typescript/corpus/function-call.diffA-B.txt ================================================ (Statements (Call { (TypeIdentifier) ->(TypeIdentifier) } (Identifier) (Identifier) { (TextElement) ->(TextElement) } (Empty))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/function-call.diffB-A.txt ================================================ (Statements (Call { (TypeIdentifier) ->(TypeIdentifier) } (Identifier) (Identifier) { (TextElement) ->(TextElement) } (Empty))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/function-call.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "someFunction")) (Arguments (Expression (Identifier "arg1")) (Expression (String))) (TypeArguments (TypeIdentifier "A"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/function-call.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "someFunction")) (Arguments (Expression (Identifier "arg1")) (Expression (String))) (TypeArguments (TypeIdentifier "B"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/function-type.A.ts ================================================ let x: () => A; ================================================ FILE: semantic/test/fixtures/typescript/corpus/function-type.B.ts ================================================ let x: A[]; ================================================ FILE: semantic/test/fixtures/typescript/corpus/function-type.diffA-B.txt ================================================ (Statements (VariableDeclaration (Assignment (Annotation { (FunctionType {-(Empty)-} {-(TypeIdentifier)-}) ->(ArrayType {+(TypeIdentifier)+}) }) (Identifier) (Empty)))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/function-type.diffB-A.txt ================================================ (Statements (VariableDeclaration (Assignment (Annotation { (ArrayType {-(TypeIdentifier)-}) ->(FunctionType {+(Empty)+} {+(TypeIdentifier)+}) }) (Identifier) (Empty)))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/function-type.parseA.txt ================================================ (Program (Statement (Declaration (LexicalDeclaration (VariableDeclarator (Identifier "x") (TypeAnnotation (FunctionType (FormalParameters) (TypeIdentifier "A")))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/function-type.parseB.txt ================================================ (Program (Statement (Declaration (LexicalDeclaration (VariableDeclarator (Identifier "x") (TypeAnnotation (ArrayType (TypeIdentifier "A")))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/function.A.ts ================================================ function(arg1, arg2): string { arg2; }; ================================================ FILE: semantic/test/fixtures/typescript/corpus/function.B.ts ================================================ function(arg1, arg2): int { arg1; }; ================================================ FILE: semantic/test/fixtures/typescript/corpus/function.diffA-B.txt ================================================ (Statements (Function {+(Empty)+} {+(Annotation {+(TypeIdentifier)+})+} {-(TypeParameters {-(TypeParameter {-(TypeIdentifier)-} {-(Empty)-} {-(Empty)-})-})-} {-(Annotation {-(PredefinedType)-})-} (Empty) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock { (Identifier) ->(Identifier) }))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/function.diffB-A.txt ================================================ (Statements (Function {+(TypeParameters {+(TypeParameter {+(TypeIdentifier)+} {+(Empty)+} {+(Empty)+})+})+} {+(Annotation {+(PredefinedType)+})+} {-(Empty)-} {-(Annotation {-(TypeIdentifier)-})-} (Empty) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock { (Identifier) ->(Identifier) }))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/function.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Function (TypeAnnotation (PredefinedType "string")) (StatementBlock (Statement (ExpressionStatement (Expression (Identifier "arg2"))))) (FormalParameters (RequiredParameter (Identifier "arg1")) (RequiredParameter (Identifier "arg2"))) (TypeParameters (TypeParameter (TypeIdentifier "A")))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/function.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Function (TypeAnnotation (TypeIdentifier "int")) (StatementBlock (Statement (ExpressionStatement (Expression (Identifier "arg1"))))) (FormalParameters (RequiredParameter (Identifier "arg1")) (RequiredParameter (Identifier "arg2")))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/generator-function.A.ts ================================================ function *generateStuff(arg1, arg2) { yield; yield arg2; }; ================================================ FILE: semantic/test/fixtures/typescript/corpus/generator-function.B.ts ================================================ function *generateNewStuff(arg1, arg2) { yield; yield arg2; }; ================================================ FILE: semantic/test/fixtures/typescript/corpus/generator-function.diffA-B.txt ================================================ (Statements (Function (Empty) (Empty) { (Identifier) ->(Identifier) } (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Yield (Empty)) (Yield (Identifier)))) (Empty)) ================================================ FILE: semantic/test/fixtures/typescript/corpus/generator-function.diffB-A.txt ================================================ (Statements (Function (Empty) (Empty) { (Identifier) ->(Identifier) } (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Yield (Empty)) (Yield (Identifier)))) (Empty)) ================================================ FILE: semantic/test/fixtures/typescript/corpus/generator-function.parseA.txt ================================================ (Program (Statement (Declaration (GeneratorFunctionDeclaration (StatementBlock (Statement (ExpressionStatement (Expression (YieldExpression)))) (Statement (ExpressionStatement (Expression (YieldExpression (Expression (Identifier "arg2"))))))) (Identifier "generateStuff") (FormalParameters (RequiredParameter (Identifier "arg1")) (RequiredParameter (Identifier "arg2")))))) (Statement (EmptyStatement ";"))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/generator-function.parseB.txt ================================================ (Program (Statement (Declaration (GeneratorFunctionDeclaration (StatementBlock (Statement (ExpressionStatement (Expression (YieldExpression)))) (Statement (ExpressionStatement (Expression (YieldExpression (Expression (Identifier "arg2"))))))) (Identifier "generateNewStuff") (FormalParameters (RequiredParameter (Identifier "arg1")) (RequiredParameter (Identifier "arg2")))))) (Statement (EmptyStatement ";"))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/identifier.A.ts ================================================ theVar; ================================================ FILE: semantic/test/fixtures/typescript/corpus/identifier.B.ts ================================================ theVar2 ================================================ FILE: semantic/test/fixtures/typescript/corpus/identifier.diffA-B.txt ================================================ (Statements { (Identifier) ->(Identifier) }) ================================================ FILE: semantic/test/fixtures/typescript/corpus/identifier.diffB-A.txt ================================================ (Statements { (Identifier) ->(Identifier) }) ================================================ FILE: semantic/test/fixtures/typescript/corpus/identifier.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Identifier "theVar"))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/identifier.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Identifier "theVar2"))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/if-else.A.ts ================================================ if (x) y; else if (a) b; else if (c) d; else if (e) f; else g ================================================ FILE: semantic/test/fixtures/typescript/corpus/if-else.B.ts ================================================ if (g) h; else if (i) { j; } else if (k) l; else if (m) { n; } else o ================================================ FILE: semantic/test/fixtures/typescript/corpus/if-else.diffA-B.txt ================================================ (Statements (If { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) } (If { (Identifier) ->(Identifier) } { (Identifier) ->(Statements {+(Identifier)+}) } (If { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) } (If { (Identifier) ->(Identifier) } { (Identifier) ->(Statements {+(Identifier)+}) } { (Identifier) ->(Identifier) }))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/if-else.diffB-A.txt ================================================ (Statements (If { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) } (If { (Identifier) ->(Identifier) } { (Statements {-(Identifier)-}) ->(Identifier) } (If { (Identifier) ->(Identifier) } { (Identifier) ->(Identifier) } (If { (Identifier) ->(Identifier) } { (Statements {-(Identifier)-}) ->(Identifier) } { (Identifier) ->(Identifier) }))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/if-else.parseA.txt ================================================ (Program (Statement (IfStatement (Statement (IfStatement (Statement (IfStatement (Statement (IfStatement (Statement (ExpressionStatement (Expression (Identifier "g")))) (Statement (ExpressionStatement (Expression (Identifier "f")))) (ParenthesizedExpression (Expression (Identifier "e"))))) (Statement (ExpressionStatement (Expression (Identifier "d")))) (ParenthesizedExpression (Expression (Identifier "c"))))) (Statement (ExpressionStatement (Expression (Identifier "b")))) (ParenthesizedExpression (Expression (Identifier "a"))))) (Statement (ExpressionStatement (Expression (Identifier "y")))) (ParenthesizedExpression (Expression (Identifier "x")))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/if-else.parseB.txt ================================================ (Program (Statement (IfStatement (Statement (IfStatement (Statement (IfStatement (Statement (IfStatement (Statement (ExpressionStatement (Expression (Identifier "o")))) (Statement (StatementBlock (Statement (ExpressionStatement (Expression (Identifier "n")))))) (ParenthesizedExpression (Expression (Identifier "m"))))) (Statement (ExpressionStatement (Expression (Identifier "l")))) (ParenthesizedExpression (Expression (Identifier "k"))))) (Statement (StatementBlock (Statement (ExpressionStatement (Expression (Identifier "j")))))) (ParenthesizedExpression (Expression (Identifier "i"))))) (Statement (ExpressionStatement (Expression (Identifier "h")))) (ParenthesizedExpression (Expression (Identifier "g")))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/if.A.ts ================================================ if (x) { log(y); } ================================================ FILE: semantic/test/fixtures/typescript/corpus/if.B.ts ================================================ if (a.b) { log(c); d; } ================================================ FILE: semantic/test/fixtures/typescript/corpus/if.diffA-B.txt ================================================ (Statements (If { (Identifier) ->(MemberAccess {+(Identifier)+} {+(Identifier)+}) } (Statements (Call (Identifier) { (Identifier) ->(Identifier) } (Empty)) {+(Identifier)+}) (Empty))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/if.diffB-A.txt ================================================ (Statements (If { (MemberAccess {-(Identifier)-} {-(Identifier)-}) ->(Identifier) } (Statements (Call (Identifier) { (Identifier) ->(Identifier) } (Empty)) {-(Identifier)-}) (Empty))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/if.parseA.txt ================================================ (Program (Statement (IfStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "log")) (Arguments (Expression (Identifier "y"))))))))) (ParenthesizedExpression (Expression (Identifier "x")))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/if.parseB.txt ================================================ (Program (Statement (IfStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "log")) (Arguments (Expression (Identifier "c"))))))) (Statement (ExpressionStatement (Expression (Identifier "d")))))) (ParenthesizedExpression (Expression (MemberExpression (PropertyIdentifier "b") (Expression (Identifier "a")))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/import.A.ts ================================================ import defaultMember from "foo"; import * as name from "aardvark"; import { member } from "ant"; import { member1 , member2 } from "antelope"; import { member1 , member2 as alias2 } from "ant-eater"; import defaultMember, { member1, member2 as alias2 } from "anaconda"; import defaultMember, * as name from "alligator"; import "arctic-tern"; import zip = require("../zip"); ================================================ FILE: semantic/test/fixtures/typescript/corpus/import.B.ts ================================================ import defaultMember from "babirusa"; import * as otherName from "baboon"; import { element } from "badger"; import { element1 , element2 } from "bald-eagle"; import { element1 , element2 as elementAlias2 } from "bandicoot"; import defaultMember, { element1, element2 as elementAlias2 } from "banteng"; import defaultMember, * as element from "barbet"; import "basilisk"; ================================================ FILE: semantic/test/fixtures/typescript/corpus/import.diffA-B.txt ================================================ (Statements {+(Import)+} {+(QualifiedAliasedImport {+(Identifier)+})+} {+(Import)+} { (Import) ->(Import) } {+(Import)+} {+(Statements {+(Import)+} {+(Import)+})+} {+(Statements {+(Import)+} {+(QualifiedAliasedImport {+(Identifier)+})+})+} {+(SideEffectImport)+} {-(QualifiedAliasedImport {-(Identifier)-})-} {-(Import)-} {-(Import)-} {-(Import)-} {-(Statements {-(Import)-} {-(Import)-})-} {-(Statements {-(Import)-} {-(QualifiedAliasedImport {-(Identifier)-})-})-} {-(SideEffectImport)-} {-(QualifiedAliasedImport {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/import.diffB-A.txt ================================================ (Statements {+(Import)+} {+(QualifiedAliasedImport {+(Identifier)+})+} {+(Import)+} { (Import) ->(Import) } {+(Import)+} {+(Statements {+(Import)+} {+(Import)+})+} {+(Statements {+(Import)+} {+(QualifiedAliasedImport {+(Identifier)+})+})+} {+(SideEffectImport)+} { (QualifiedAliasedImport {-(Identifier)-}) ->(QualifiedAliasedImport {+(Identifier)+}) } {-(Import)-} {-(Import)-} {-(Import)-} {-(Statements {-(Import)-} {-(Import)-})-} {-(Statements {-(Import)-} {-(QualifiedAliasedImport {-(Identifier)-})-})-} {-(SideEffectImport)-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/import.parseA.txt ================================================ (Program (Statement (ImportStatement (String) (ImportClause (Identifier "defaultMember")))) (Statement (ImportStatement (String) (ImportClause (NamespaceImport (Identifier "name"))))) (Statement (ImportStatement (String) (ImportClause (NamedImports (ImportSpecifier (Identifier "member")))))) (Statement (ImportStatement (String) (ImportClause (NamedImports (ImportSpecifier (Identifier "member1")) (ImportSpecifier (Identifier "member2")))))) (Statement (ImportStatement (String) (ImportClause (NamedImports (ImportSpecifier (Identifier "member1")) (ImportSpecifier (Identifier "alias2") (Identifier "member2")))))) (Statement (ImportStatement (String) (ImportClause (Identifier "defaultMember") (NamedImports (ImportSpecifier (Identifier "member1")) (ImportSpecifier (Identifier "alias2") (Identifier "member2")))))) (Statement (ImportStatement (String) (ImportClause (Identifier "defaultMember") (NamespaceImport (Identifier "name"))))) (Statement (ImportStatement (String))) (Statement (ImportStatement (ImportRequireClause (Identifier "zip") (String))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/import.parseB.txt ================================================ (Program (Statement (ImportStatement (String) (ImportClause (Identifier "defaultMember")))) (Statement (ImportStatement (String) (ImportClause (NamespaceImport (Identifier "otherName"))))) (Statement (ImportStatement (String) (ImportClause (NamedImports (ImportSpecifier (Identifier "element")))))) (Statement (ImportStatement (String) (ImportClause (NamedImports (ImportSpecifier (Identifier "element1")) (ImportSpecifier (Identifier "element2")))))) (Statement (ImportStatement (String) (ImportClause (NamedImports (ImportSpecifier (Identifier "element1")) (ImportSpecifier (Identifier "elementAlias2") (Identifier "element2")))))) (Statement (ImportStatement (String) (ImportClause (Identifier "defaultMember") (NamedImports (ImportSpecifier (Identifier "element1")) (ImportSpecifier (Identifier "elementAlias2") (Identifier "element2")))))) (Statement (ImportStatement (String) (ImportClause (Identifier "defaultMember") (NamespaceImport (Identifier "element"))))) (Statement (ImportStatement (String)))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/interface.A.ts ================================================ interface IResult { type: 'result' readonly result: T } ================================================ FILE: semantic/test/fixtures/typescript/corpus/interface.B.ts ================================================ interface IError { type: 'error' readonly error: Error } ================================================ FILE: semantic/test/fixtures/typescript/corpus/interface.diffA-B.txt ================================================ (Statements (InterfaceDeclaration {+(Empty)+} {-(TypeParameters {-(TypeParameter {-(TypeIdentifier)-} {-(Empty)-} {-(Empty)-})-})-} { (TypeIdentifier) ->(TypeIdentifier) } (ObjectType (PropertySignature (Empty) (Annotation (LiteralType { (TextElement) ->(TextElement) })) (Identifier)) (PropertySignature (Readonly) (Annotation { (TypeIdentifier) ->(TypeIdentifier) }) { (Identifier) ->(Identifier) })))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/interface.diffB-A.txt ================================================ (Statements (InterfaceDeclaration {+(TypeParameters {+(TypeParameter {+(TypeIdentifier)+} {+(Empty)+} {+(Empty)+})+})+} {-(Empty)-} { (TypeIdentifier) ->(TypeIdentifier) } (ObjectType (PropertySignature (Empty) (Annotation (LiteralType { (TextElement) ->(TextElement) })) (Identifier)) (PropertySignature (Readonly) (Annotation { (TypeIdentifier) ->(TypeIdentifier) }) { (Identifier) ->(Identifier) })))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/interface.parseA.txt ================================================ (Program (Statement (Declaration (InterfaceDeclaration (ObjectType (PropertySignature (PropertyIdentifier "type") (TypeAnnotation (LiteralType (String)))) (PropertySignature (PropertyIdentifier "result") (TypeAnnotation (TypeIdentifier "T")) (Readonly "readonly"))) (TypeIdentifier "IResult") (TypeParameters (TypeParameter (TypeIdentifier "T"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/interface.parseB.txt ================================================ (Program (Statement (Declaration (InterfaceDeclaration (ObjectType (PropertySignature (PropertyIdentifier "type") (TypeAnnotation (LiteralType (String)))) (PropertySignature (PropertyIdentifier "error") (TypeAnnotation (TypeIdentifier "Error")) (Readonly "readonly"))) (TypeIdentifier "IError"))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/intersection-type.A.ts ================================================ let x: Foo | Bar; ================================================ FILE: semantic/test/fixtures/typescript/corpus/intersection-type.B.ts ================================================ let x: A & B; ================================================ FILE: semantic/test/fixtures/typescript/corpus/intersection-type.diffA-B.txt ================================================ (Statements (VariableDeclaration (Assignment (Annotation { (Union {-(TypeIdentifier)-} {-(TypeIdentifier)-}) ->(Intersection {+(TypeIdentifier)+} {+(TypeIdentifier)+}) }) (Identifier) (Empty)))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/intersection-type.diffB-A.txt ================================================ (Statements (VariableDeclaration (Assignment (Annotation { (Intersection {-(TypeIdentifier)-} {-(TypeIdentifier)-}) ->(Union {+(TypeIdentifier)+} {+(TypeIdentifier)+}) }) (Identifier) (Empty)))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/intersection-type.parseA.txt ================================================ (Program (Statement (Declaration (LexicalDeclaration (VariableDeclarator (Identifier "x") (TypeAnnotation (UnionType (TypeIdentifier "Foo") (TypeIdentifier "Bar")))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/intersection-type.parseB.txt ================================================ (Program (Statement (Declaration (LexicalDeclaration (VariableDeclarator (Identifier "x") (TypeAnnotation (IntersectionType (TypeIdentifier "A") (TypeIdentifier "B")))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/math-assignment-operator.A.ts ================================================ x += 1; ================================================ FILE: semantic/test/fixtures/typescript/corpus/math-assignment-operator.B.ts ================================================ x += 2; ================================================ FILE: semantic/test/fixtures/typescript/corpus/math-assignment-operator.diffA-B.txt ================================================ (Statements (AugmentedAssignment (Plus (Identifier) { (Float) ->(Float) }))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/math-assignment-operator.diffB-A.txt ================================================ (Statements (AugmentedAssignment (Plus (Identifier) { (Float) ->(Float) }))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/math-assignment-operator.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (AugmentedAssignmentExpression (Identifier "x") (Expression (Number "1"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/math-assignment-operator.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (AugmentedAssignmentExpression (Identifier "x") (Expression (Number "2"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/math-operator.A.ts ================================================ i + j * 3 - j % 5; ================================================ FILE: semantic/test/fixtures/typescript/corpus/math-operator.B.ts ================================================ i + j * 2 - j % 4; ================================================ FILE: semantic/test/fixtures/typescript/corpus/math-operator.diffA-B.txt ================================================ (Statements (Minus (Plus (Identifier) (Times (Identifier) { (Float) ->(Float) })) (Modulo (Identifier) { (Float) ->(Float) }))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/math-operator.diffB-A.txt ================================================ (Statements (Minus (Plus (Identifier) (Times (Identifier) { (Float) ->(Float) })) (Modulo (Identifier) { (Float) ->(Float) }))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/math-operator.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (BinaryExpression (Token) (Expression (Identifier "j")) (Expression (Number "3")))))) (Expression (BinaryExpression (Token) (Expression (Identifier "j")) (Expression (Number "5"))))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/math-operator.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (BinaryExpression (Token) (Expression (Identifier "i")) (Expression (BinaryExpression (Token) (Expression (Identifier "j")) (Expression (Number "2")))))) (Expression (BinaryExpression (Token) (Expression (Identifier "j")) (Expression (Number "4"))))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/member-access-assignment.A.ts ================================================ y.x = 0; ================================================ FILE: semantic/test/fixtures/typescript/corpus/member-access-assignment.B.ts ================================================ y.x = 1; ================================================ FILE: semantic/test/fixtures/typescript/corpus/member-access-assignment.diffA-B.txt ================================================ (Statements (Assignment (MemberAccess (Identifier) (Identifier)) { (Float) ->(Float) })) ================================================ FILE: semantic/test/fixtures/typescript/corpus/member-access-assignment.diffB-A.txt ================================================ (Statements (Assignment (MemberAccess (Identifier) (Identifier)) { (Float) ->(Float) })) ================================================ FILE: semantic/test/fixtures/typescript/corpus/member-access-assignment.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (AssignmentExpression (MemberExpression (PropertyIdentifier "x") (Expression (Identifier "y"))) (Expression (Number "0"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/member-access-assignment.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (AssignmentExpression (MemberExpression (PropertyIdentifier "x") (Expression (Identifier "y"))) (Expression (Number "1"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/member-access.A.ts ================================================ x.someProperty; ================================================ FILE: semantic/test/fixtures/typescript/corpus/member-access.B.ts ================================================ x.someOtherProperty ================================================ FILE: semantic/test/fixtures/typescript/corpus/member-access.diffA-B.txt ================================================ (Statements (MemberAccess (Identifier) { (Identifier) ->(Identifier) })) ================================================ FILE: semantic/test/fixtures/typescript/corpus/member-access.diffB-A.txt ================================================ (Statements (MemberAccess (Identifier) { (Identifier) ->(Identifier) })) ================================================ FILE: semantic/test/fixtures/typescript/corpus/member-access.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (MemberExpression (PropertyIdentifier "someProperty") (Expression (Identifier "x"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/member-access.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (MemberExpression (PropertyIdentifier "someOtherProperty") (Expression (Identifier "x"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/method-call.A.ts ================================================ object.someMethod(arg1, "arg2"); ================================================ FILE: semantic/test/fixtures/typescript/corpus/method-call.B.ts ================================================ object.someMethod(arg1, "arg3"); ================================================ FILE: semantic/test/fixtures/typescript/corpus/method-call.diffA-B.txt ================================================ (Statements (Call (MemberAccess (Identifier) (Identifier)) (Identifier) { (TextElement) ->(TextElement) } (Empty))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/method-call.diffB-A.txt ================================================ (Statements (Call (MemberAccess (Identifier) (Identifier)) (Identifier) { (TextElement) ->(TextElement) } (Empty))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/method-call.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "someMethod") (Expression (Identifier "object")))) (Arguments (Expression (Identifier "arg1")) (Expression (String)))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/method-call.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "someMethod") (Expression (Identifier "object")))) (Arguments (Expression (Identifier "arg1")) (Expression (String)))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/method-definition.A.ts ================================================ class Foo { public foo(): Int {} } ================================================ FILE: semantic/test/fixtures/typescript/corpus/method-definition.B.ts ================================================ class Foo { public static readonly async foo(): string {} } ================================================ FILE: semantic/test/fixtures/typescript/corpus/method-definition.diffA-B.txt ================================================ (Statements (Class (TypeIdentifier) (Method {+(Readonly)+} (Empty) {+(Annotation {+(PredefinedType)+})+} {-(Empty)-} {-(Annotation {-(TypeIdentifier)-})-} (Empty) (Identifier) (StatementBlock)))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/method-definition.diffB-A.txt ================================================ (Statements (Class (TypeIdentifier) (Method {-(Readonly)-} (Empty) {+(Empty)+} (Annotation { (PredefinedType) ->(TypeIdentifier) }) (Empty) (Identifier) (StatementBlock)))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/method-definition.parseA.txt ================================================ (Program (Statement (Declaration (ClassDeclaration (ClassBody (MethodDefinition (TypeAnnotation (TypeIdentifier "Int")) (StatementBlock) (PropertyIdentifier "foo") (FormalParameters) (AccessibilityModifier "public"))) (TypeIdentifier "Foo"))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/method-definition.parseB.txt ================================================ (Program (Statement (Declaration (ClassDeclaration (ClassBody (MethodDefinition (TypeAnnotation (PredefinedType "string")) (StatementBlock) (PropertyIdentifier "foo") (FormalParameters) (AccessibilityModifier "public") (Readonly "readonly"))) (TypeIdentifier "Foo"))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/module-declarations.A.ts ================================================ module Promise { } ================================================ FILE: semantic/test/fixtures/typescript/corpus/module-declarations.B.ts ================================================ declare namespace Promise { } ================================================ FILE: semantic/test/fixtures/typescript/corpus/module-declarations.diffA-B.txt ================================================ (Statements {+(AmbientDeclaration {+(InternalModule {+(Identifier)+})+})+} {-(Module {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/module-declarations.diffB-A.txt ================================================ (Statements {+(Module {+(Identifier)+})+} {-(AmbientDeclaration {-(InternalModule {-(Identifier)-})-})-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/module-declarations.parseA.txt ================================================ (Program (Statement (Declaration (Module (StatementBlock) (Identifier "Promise"))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/module-declarations.parseB.txt ================================================ (Program (Statement (Declaration (AmbientDeclaration (Declaration (InternalModule (StatementBlock) (Identifier "Promise"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/named-function.A.ts ================================================ function myFunction(arg1, arg2) { arg2; }; ================================================ FILE: semantic/test/fixtures/typescript/corpus/named-function.B.ts ================================================ function anotherFunction() { return false; }; ================================================ FILE: semantic/test/fixtures/typescript/corpus/named-function.diffA-B.txt ================================================ (Statements (Function (Empty) (Empty) { (Identifier) ->(Identifier) } {-(RequiredParameter {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(Empty)-})-} {-(RequiredParameter {-(Empty)-} {-(Empty)-} {-(Identifier)-} {-(Empty)-})-} (StatementBlock {+(Return {+(Boolean)+})+} {-(Identifier)-})) (Empty)) ================================================ FILE: semantic/test/fixtures/typescript/corpus/named-function.diffB-A.txt ================================================ (Statements (Function (Empty) (Empty) { (Identifier) ->(Identifier) } {+(RequiredParameter {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(Empty)+})+} {+(RequiredParameter {+(Empty)+} {+(Empty)+} {+(Identifier)+} {+(Empty)+})+} (StatementBlock {+(Identifier)+} {-(Return {-(Boolean)-})-})) (Empty)) ================================================ FILE: semantic/test/fixtures/typescript/corpus/named-function.parseA.txt ================================================ (Program (Statement (Declaration (FunctionDeclaration (StatementBlock (Statement (ExpressionStatement (Expression (Identifier "arg2"))))) (Identifier "myFunction") (FormalParameters (RequiredParameter (Identifier "arg1")) (RequiredParameter (Identifier "arg2")))))) (Statement (EmptyStatement ";"))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/named-function.parseB.txt ================================================ (Program (Statement (Declaration (FunctionDeclaration (StatementBlock (Statement (ReturnStatement (Expression (False "false"))))) (Identifier "anotherFunction") (FormalParameters)))) (Statement (EmptyStatement ";"))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/nested-do-while-in-function.A.ts ================================================ function f(arg1, arg2) { do { something(arg1); } while (arg2); } ================================================ FILE: semantic/test/fixtures/typescript/corpus/nested-do-while-in-function.B.ts ================================================ function f(arg1, arg2) { do { something(arg2); } while (arg1); } ================================================ FILE: semantic/test/fixtures/typescript/corpus/nested-do-while-in-function.diffA-B.txt ================================================ (Statements (Function (Empty) (Empty) (Identifier) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (DoWhile { (Identifier) ->(Identifier) } (Statements (Call (Identifier) { (Identifier) ->(Identifier) } (Empty))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/nested-do-while-in-function.diffB-A.txt ================================================ (Statements (Function (Empty) (Empty) (Identifier) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (DoWhile { (Identifier) ->(Identifier) } (Statements (Call (Identifier) { (Identifier) ->(Identifier) } (Empty))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/nested-do-while-in-function.parseA.txt ================================================ (Program (Statement (Declaration (FunctionDeclaration (StatementBlock (Statement (DoStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "something")) (Arguments (Expression (Identifier "arg1"))))))))) (ParenthesizedExpression (Expression (Identifier "arg2")))))) (Identifier "f") (FormalParameters (RequiredParameter (Identifier "arg1")) (RequiredParameter (Identifier "arg2"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/nested-do-while-in-function.parseB.txt ================================================ (Program (Statement (Declaration (FunctionDeclaration (StatementBlock (Statement (DoStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "something")) (Arguments (Expression (Identifier "arg2"))))))))) (ParenthesizedExpression (Expression (Identifier "arg1")))))) (Identifier "f") (FormalParameters (RequiredParameter (Identifier "arg1")) (RequiredParameter (Identifier "arg2"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/nested-functions.A.ts ================================================ function parent (arg1, arg2) { function child (arg3, arg4) { console.log(arg3); console.log(arg4); } } ================================================ FILE: semantic/test/fixtures/typescript/corpus/nested-functions.B.ts ================================================ function parent (arg1, arg2) { function child (arg3, arg4) { console.log(arg1); console.log(arg2); } } ================================================ FILE: semantic/test/fixtures/typescript/corpus/nested-functions.diffA-B.txt ================================================ (Statements (Function (Empty) (Empty) (Identifier) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Function (Empty) (Empty) (Identifier) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Call (MemberAccess (Identifier) (Identifier)) { (Identifier) ->(Identifier) } (Empty)) (Call (MemberAccess (Identifier) (Identifier)) { (Identifier) ->(Identifier) } (Empty))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/nested-functions.diffB-A.txt ================================================ (Statements (Function (Empty) (Empty) (Identifier) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Function (Empty) (Empty) (Identifier) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Call (MemberAccess (Identifier) (Identifier)) { (Identifier) ->(Identifier) } (Empty)) (Call (MemberAccess (Identifier) (Identifier)) { (Identifier) ->(Identifier) } (Empty))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/nested-functions.parseA.txt ================================================ (Program (Statement (Declaration (FunctionDeclaration (StatementBlock (Statement (Declaration (FunctionDeclaration (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "log") (Expression (Identifier "console")))) (Arguments (Expression (Identifier "arg3"))))))) (Statement (ExpressionStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "log") (Expression (Identifier "console")))) (Arguments (Expression (Identifier "arg4")))))))) (Identifier "child") (FormalParameters (RequiredParameter (Identifier "arg3")) (RequiredParameter (Identifier "arg4"))))))) (Identifier "parent") (FormalParameters (RequiredParameter (Identifier "arg1")) (RequiredParameter (Identifier "arg2"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/nested-functions.parseB.txt ================================================ (Program (Statement (Declaration (FunctionDeclaration (StatementBlock (Statement (Declaration (FunctionDeclaration (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "log") (Expression (Identifier "console")))) (Arguments (Expression (Identifier "arg1"))))))) (Statement (ExpressionStatement (Expression (CallExpression (Expression (MemberExpression (PropertyIdentifier "log") (Expression (Identifier "console")))) (Arguments (Expression (Identifier "arg2")))))))) (Identifier "child") (FormalParameters (RequiredParameter (Identifier "arg3")) (RequiredParameter (Identifier "arg4"))))))) (Identifier "parent") (FormalParameters (RequiredParameter (Identifier "arg1")) (RequiredParameter (Identifier "arg2"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/null.A.ts ================================================ null; ================================================ FILE: semantic/test/fixtures/typescript/corpus/null.B.ts ================================================ return null; ================================================ FILE: semantic/test/fixtures/typescript/corpus/null.diffA-B.txt ================================================ (Statements {+(Return {+(Null)+})+} {-(Null)-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/null.diffB-A.txt ================================================ (Statements {+(Null)+} {-(Return {-(Null)-})-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/null.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Null "null"))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/null.parseB.txt ================================================ (Program (Statement (ReturnStatement (Expression (Null "null"))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/number.A.ts ================================================ 101 ================================================ FILE: semantic/test/fixtures/typescript/corpus/number.B.ts ================================================ 102 ================================================ FILE: semantic/test/fixtures/typescript/corpus/number.diffA-B.txt ================================================ (Statements { (Float) ->(Float) }) ================================================ FILE: semantic/test/fixtures/typescript/corpus/number.diffB-A.txt ================================================ (Statements { (Float) ->(Float) }) ================================================ FILE: semantic/test/fixtures/typescript/corpus/number.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Number "101"))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/number.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Number "102"))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/object.A.ts ================================================ { "key1": "value1" }; ================================================ FILE: semantic/test/fixtures/typescript/corpus/object.B.ts ================================================ { "key1": "value1", "key2": "value2", "key3": "3.0" }; ================================================ FILE: semantic/test/fixtures/typescript/corpus/object.diffA-B.txt ================================================ (Statements (Hash (KeyValue (TextElement) (TextElement)) {+(KeyValue {+(TextElement)+} {+(TextElement)+})+} {+(KeyValue {+(TextElement)+} {+(TextElement)+})+})) ================================================ FILE: semantic/test/fixtures/typescript/corpus/object.diffB-A.txt ================================================ (Statements (Hash (KeyValue (TextElement) (TextElement)) {-(KeyValue {-(TextElement)-} {-(TextElement)-})-} {-(KeyValue {-(TextElement)-} {-(TextElement)-})-})) ================================================ FILE: semantic/test/fixtures/typescript/corpus/object.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Object (Pair (Expression (String)) (String))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/object.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Object (Pair (Expression (String)) (String)) (Pair (Expression (String)) (String)) (Pair (Expression (String)) (String))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/objects-with-methods.A.ts ================================================ { add(a, b) { return a + b; } }; ================================================ FILE: semantic/test/fixtures/typescript/corpus/objects-with-methods.B.ts ================================================ { subtract(a, b) { return a - b; } }; ================================================ FILE: semantic/test/fixtures/typescript/corpus/objects-with-methods.diffA-B.txt ================================================ (Statements (Hash (Method (Empty) (Empty) (Empty) (Empty) { (Identifier) ->(Identifier) } (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Return { (Plus {-(Identifier)-} {-(Identifier)-}) ->(Minus {+(Identifier)+} {+(Identifier)+}) }))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/objects-with-methods.diffB-A.txt ================================================ (Statements (Hash (Method (Empty) (Empty) (Empty) (Empty) { (Identifier) ->(Identifier) } (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (RequiredParameter (Empty) (Empty) (Identifier) (Empty)) (StatementBlock (Return { (Minus {-(Identifier)-} {-(Identifier)-}) ->(Plus {+(Identifier)+} {+(Identifier)+}) }))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/objects-with-methods.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Object (MethodDefinition (StatementBlock (Statement (ReturnStatement (Expression (BinaryExpression (Token) (Expression (Identifier "a")) (Expression (Identifier "b"))))))) (PropertyIdentifier "add") (FormalParameters (RequiredParameter (Identifier "a")) (RequiredParameter (Identifier "b"))))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/objects-with-methods.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Object (MethodDefinition (StatementBlock (Statement (ReturnStatement (Expression (BinaryExpression (Token) (Expression (Identifier "a")) (Expression (Identifier "b"))))))) (PropertyIdentifier "subtract") (FormalParameters (RequiredParameter (Identifier "a")) (RequiredParameter (Identifier "b"))))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/public-field-definition.A.ts ================================================ class Foo { readonly foo; static readonly foo1; public static readonly foo2; public static readonly foo3 = 1; public static readonly foo4?: Number = 1; foo5?: Number = 1; foo6: Number = 1; readonly foo7: Number = 1; static readonly foo8: Number = 1; static foo9: Number = 1; foo10 = 1; } ================================================ FILE: semantic/test/fixtures/typescript/corpus/public-field-definition.B.ts ================================================ class Foo { readonly foo; static readonly foo1; public readonly foo2; public static readonly foo3: Number = 1; private static foo4?: Number = 1; foo5: Number = 1; foo6?: Number = 1; public foo7: Number = 1; protected static readonly foo8: String = "hello"; static foo11: Number = 1; foo10 = 2; } ================================================ FILE: semantic/test/fixtures/typescript/corpus/public-field-definition.diffA-B.txt ================================================ (Statements (Class (TypeIdentifier) (Statements (PublicFieldDefinition (Readonly) (Empty) (Identifier) (Empty)) (PublicFieldDefinition (Readonly) (Empty) (Identifier) (Empty)) (PublicFieldDefinition (Readonly) (Empty) (Identifier) (Empty)) (PublicFieldDefinition (Readonly) {+(Annotation {+(TypeIdentifier)+})+} {-(Empty)-} (Identifier) (Float)) { (PublicFieldDefinition {-(Readonly)-} {-(Annotation {-(TypeIdentifier)-})-} {-(Identifier)-} {-(Float)-}) ->(PublicFieldDefinition {+(Empty)+} {+(Annotation {+(TypeIdentifier)+})+} {+(Identifier)+} {+(Float)+}) } (PublicFieldDefinition (Empty) (Annotation (TypeIdentifier)) (Identifier) (Float)) (PublicFieldDefinition (Empty) (Annotation (TypeIdentifier)) (Identifier) (Float)) (PublicFieldDefinition {+(Empty)+} {-(Readonly)-} (Annotation (TypeIdentifier)) (Identifier) (Float)) { (PublicFieldDefinition {-(Readonly)-} {-(Annotation {-(TypeIdentifier)-})-} {-(Identifier)-} {-(Float)-}) ->(PublicFieldDefinition {+(Readonly)+} {+(Annotation {+(TypeIdentifier)+})+} {+(Identifier)+} {+(TextElement)+}) } (PublicFieldDefinition (Empty) (Annotation (TypeIdentifier)) { (Identifier) ->(Identifier) } (Float)) (PublicFieldDefinition (Empty) (Empty) (Identifier) { (Float) ->(Float) })))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/public-field-definition.diffB-A.txt ================================================ (Statements (Class (TypeIdentifier) (Statements (PublicFieldDefinition (Readonly) (Empty) (Identifier) (Empty)) (PublicFieldDefinition (Readonly) (Empty) (Identifier) (Empty)) (PublicFieldDefinition (Readonly) (Empty) (Identifier) (Empty)) (PublicFieldDefinition (Readonly) {+(Empty)+} {-(Annotation {-(TypeIdentifier)-})-} (Identifier) (Float)) { (PublicFieldDefinition {-(Empty)-} {-(Annotation {-(TypeIdentifier)-})-} {-(Identifier)-} {-(Float)-}) ->(PublicFieldDefinition {+(Readonly)+} {+(Annotation {+(TypeIdentifier)+})+} {+(Identifier)+} {+(Float)+}) } (PublicFieldDefinition (Empty) (Annotation (TypeIdentifier)) (Identifier) (Float)) (PublicFieldDefinition (Empty) (Annotation (TypeIdentifier)) (Identifier) (Float)) (PublicFieldDefinition {+(Readonly)+} {-(Empty)-} (Annotation (TypeIdentifier)) (Identifier) (Float)) { (PublicFieldDefinition {-(Readonly)-} {-(Annotation {-(TypeIdentifier)-})-} {-(Identifier)-} {-(TextElement)-}) ->(PublicFieldDefinition {+(Readonly)+} {+(Annotation {+(TypeIdentifier)+})+} {+(Identifier)+} {+(Float)+}) } (PublicFieldDefinition (Empty) (Annotation (TypeIdentifier)) { (Identifier) ->(Identifier) } (Float)) (PublicFieldDefinition (Empty) (Empty) (Identifier) { (Float) ->(Float) })))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/public-field-definition.parseA.txt ================================================ (Program (Statement (Declaration (ClassDeclaration (ClassBody (PublicFieldDefinition (PropertyIdentifier "foo") (Readonly "readonly")) (PublicFieldDefinition (PropertyIdentifier "foo1") (Readonly "readonly")) (PublicFieldDefinition (PropertyIdentifier "foo2") (AccessibilityModifier "public") (Readonly "readonly")) (PublicFieldDefinition (Expression (Number "1")) (PropertyIdentifier "foo3") (AccessibilityModifier "public") (Readonly "readonly")) (PublicFieldDefinition (Expression (Number "1")) (PropertyIdentifier "foo4") (TypeAnnotation (TypeIdentifier "Number")) (AccessibilityModifier "public") (Readonly "readonly")) (PublicFieldDefinition (Expression (Number "1")) (PropertyIdentifier "foo5") (TypeAnnotation (TypeIdentifier "Number"))) (PublicFieldDefinition (Expression (Number "1")) (PropertyIdentifier "foo6") (TypeAnnotation (TypeIdentifier "Number"))) (PublicFieldDefinition (Expression (Number "1")) (PropertyIdentifier "foo7") (TypeAnnotation (TypeIdentifier "Number")) (Readonly "readonly")) (PublicFieldDefinition (Expression (Number "1")) (PropertyIdentifier "foo8") (TypeAnnotation (TypeIdentifier "Number")) (Readonly "readonly")) (PublicFieldDefinition (Expression (Number "1")) (PropertyIdentifier "foo9") (TypeAnnotation (TypeIdentifier "Number"))) (PublicFieldDefinition (Expression (Number "1")) (PropertyIdentifier "foo10"))) (TypeIdentifier "Foo"))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/public-field-definition.parseB.txt ================================================ (Program (Statement (Declaration (ClassDeclaration (ClassBody (PublicFieldDefinition (PropertyIdentifier "foo") (Readonly "readonly")) (PublicFieldDefinition (PropertyIdentifier "foo1") (Readonly "readonly")) (PublicFieldDefinition (PropertyIdentifier "foo2") (AccessibilityModifier "public") (Readonly "readonly")) (PublicFieldDefinition (Expression (Number "1")) (PropertyIdentifier "foo3") (TypeAnnotation (TypeIdentifier "Number")) (AccessibilityModifier "public") (Readonly "readonly")) (PublicFieldDefinition (Expression (Number "1")) (PropertyIdentifier "foo4") (TypeAnnotation (TypeIdentifier "Number")) (AccessibilityModifier "private")) (PublicFieldDefinition (Expression (Number "1")) (PropertyIdentifier "foo5") (TypeAnnotation (TypeIdentifier "Number"))) (PublicFieldDefinition (Expression (Number "1")) (PropertyIdentifier "foo6") (TypeAnnotation (TypeIdentifier "Number"))) (PublicFieldDefinition (Expression (Number "1")) (PropertyIdentifier "foo7") (TypeAnnotation (TypeIdentifier "Number")) (AccessibilityModifier "public")) (PublicFieldDefinition (Expression (String)) (PropertyIdentifier "foo8") (TypeAnnotation (TypeIdentifier "String")) (AccessibilityModifier "protected") (Readonly "readonly")) (PublicFieldDefinition (Expression (Number "1")) (PropertyIdentifier "foo11") (TypeAnnotation (TypeIdentifier "Number"))) (PublicFieldDefinition (Expression (Number "2")) (PropertyIdentifier "foo10"))) (TypeIdentifier "Foo"))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/regex.A.ts ================================================ /one/g; ================================================ FILE: semantic/test/fixtures/typescript/corpus/regex.B.ts ================================================ /on[^/]afe/gim; ================================================ FILE: semantic/test/fixtures/typescript/corpus/regex.diffA-B.txt ================================================ (Statements { (Regex) ->(Regex) }) ================================================ FILE: semantic/test/fixtures/typescript/corpus/regex.diffB-A.txt ================================================ (Statements { (Regex) ->(Regex) }) ================================================ FILE: semantic/test/fixtures/typescript/corpus/regex.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Regex (RegexFlags "g") (RegexPattern "one")))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/regex.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Regex (RegexFlags "gim") (RegexPattern "on[^/]afe")))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/relational-operator.A.ts ================================================ x < y; ================================================ FILE: semantic/test/fixtures/typescript/corpus/relational-operator.B.ts ================================================ x <= y; ================================================ FILE: semantic/test/fixtures/typescript/corpus/relational-operator.diffA-B.txt ================================================ (Statements {+(LessThanEqual {+(Identifier)+} {+(Identifier)+})+} {-(LessThan {-(Identifier)-} {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/relational-operator.diffB-A.txt ================================================ (Statements {+(LessThan {+(Identifier)+} {+(Identifier)+})+} {-(LessThanEqual {-(Identifier)-} {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/relational-operator.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "x")) (Expression (Identifier "y"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/relational-operator.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "x")) (Expression (Identifier "y"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/return-statement.A.ts ================================================ return 5; ================================================ FILE: semantic/test/fixtures/typescript/corpus/return-statement.B.ts ================================================ return; ================================================ FILE: semantic/test/fixtures/typescript/corpus/return-statement.diffA-B.txt ================================================ (Statements (Return { (Float) ->(Empty) })) ================================================ FILE: semantic/test/fixtures/typescript/corpus/return-statement.diffB-A.txt ================================================ (Statements (Return { (Empty) ->(Float) })) ================================================ FILE: semantic/test/fixtures/typescript/corpus/return-statement.parseA.txt ================================================ (Program (Statement (ReturnStatement (Expression (Number "5"))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/return-statement.parseB.txt ================================================ (Program (Statement (ReturnStatement))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/string.A.ts ================================================ 'A string with "double" quotes'; ================================================ FILE: semantic/test/fixtures/typescript/corpus/string.B.ts ================================================ 'A different string with "double" quotes'; ================================================ FILE: semantic/test/fixtures/typescript/corpus/string.diffA-B.txt ================================================ (Statements { (TextElement) ->(TextElement) }) ================================================ FILE: semantic/test/fixtures/typescript/corpus/string.diffB-A.txt ================================================ (Statements { (TextElement) ->(TextElement) }) ================================================ FILE: semantic/test/fixtures/typescript/corpus/string.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (String))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/string.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (String))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/subscript-access-assignment.A.ts ================================================ y["x"] = 0; ================================================ FILE: semantic/test/fixtures/typescript/corpus/subscript-access-assignment.B.ts ================================================ y["x"] = 1; ================================================ FILE: semantic/test/fixtures/typescript/corpus/subscript-access-assignment.diffA-B.txt ================================================ (Statements (Assignment (Subscript (Identifier) (TextElement)) { (Float) ->(Float) })) ================================================ FILE: semantic/test/fixtures/typescript/corpus/subscript-access-assignment.diffB-A.txt ================================================ (Statements (Assignment (Subscript (Identifier) (TextElement)) { (Float) ->(Float) })) ================================================ FILE: semantic/test/fixtures/typescript/corpus/subscript-access-assignment.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (AssignmentExpression (SubscriptExpression (Expression (Identifier "y")) (Expression (String))) (Expression (Number "0"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/subscript-access-assignment.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (AssignmentExpression (SubscriptExpression (Expression (Identifier "y")) (Expression (String))) (Expression (Number "1"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/subscript-access-string.A.ts ================================================ x["some-string"]; ================================================ FILE: semantic/test/fixtures/typescript/corpus/subscript-access-string.B.ts ================================================ x["some-other-string"]; ================================================ FILE: semantic/test/fixtures/typescript/corpus/subscript-access-string.diffA-B.txt ================================================ (Statements (Subscript (Identifier) { (TextElement) ->(TextElement) })) ================================================ FILE: semantic/test/fixtures/typescript/corpus/subscript-access-string.diffB-A.txt ================================================ (Statements (Subscript (Identifier) { (TextElement) ->(TextElement) })) ================================================ FILE: semantic/test/fixtures/typescript/corpus/subscript-access-string.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (SubscriptExpression (Expression (Identifier "x")) (Expression (String))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/subscript-access-string.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (SubscriptExpression (Expression (Identifier "x")) (Expression (String))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/subscript-access-variable.A.ts ================================================ x[someVariable]; ================================================ FILE: semantic/test/fixtures/typescript/corpus/subscript-access-variable.B.ts ================================================ x[someOtherVariable]; ================================================ FILE: semantic/test/fixtures/typescript/corpus/subscript-access-variable.diffA-B.txt ================================================ (Statements (Subscript (Identifier) { (Identifier) ->(Identifier) })) ================================================ FILE: semantic/test/fixtures/typescript/corpus/subscript-access-variable.diffB-A.txt ================================================ (Statements (Subscript (Identifier) { (Identifier) ->(Identifier) })) ================================================ FILE: semantic/test/fixtures/typescript/corpus/subscript-access-variable.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (SubscriptExpression (Expression (Identifier "x")) (Expression (Identifier "someVariable"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/subscript-access-variable.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (SubscriptExpression (Expression (Identifier "x")) (Expression (Identifier "someOtherVariable"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/switch-statement.A.ts ================================================ switch (1) { case 1: 1; case 2: 1; case 3: 3; }; ================================================ FILE: semantic/test/fixtures/typescript/corpus/switch-statement.B.ts ================================================ switch (2) { case 1: 1; case 2: 2; case 3: 3; }; ================================================ FILE: semantic/test/fixtures/typescript/corpus/switch-statement.diffA-B.txt ================================================ (Statements (Match { (Float) ->(Float) } (Statements (Pattern (Float) (Statements (Float))) (Pattern (Float) (Statements { (Float) ->(Float) })) (Pattern (Float) (Statements (Float))))) (Empty)) ================================================ FILE: semantic/test/fixtures/typescript/corpus/switch-statement.diffB-A.txt ================================================ (Statements (Match { (Float) ->(Float) } (Statements (Pattern (Float) (Statements (Float))) (Pattern (Float) (Statements { (Float) ->(Float) })) (Pattern (Float) (Statements (Float))))) (Empty)) ================================================ FILE: semantic/test/fixtures/typescript/corpus/switch-statement.parseA.txt ================================================ (Program (Statement (SwitchStatement (SwitchBody (SwitchCase (Expression (Number "1")) (Statement (ExpressionStatement (Expression (Number "1"))))) (SwitchCase (Expression (Number "2")) (Statement (ExpressionStatement (Expression (Number "1"))))) (SwitchCase (Expression (Number "3")) (Statement (ExpressionStatement (Expression (Number "3")))))) (ParenthesizedExpression (Expression (Number "1"))))) (Statement (EmptyStatement ";"))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/switch-statement.parseB.txt ================================================ (Program (Statement (SwitchStatement (SwitchBody (SwitchCase (Expression (Number "1")) (Statement (ExpressionStatement (Expression (Number "1"))))) (SwitchCase (Expression (Number "2")) (Statement (ExpressionStatement (Expression (Number "2"))))) (SwitchCase (Expression (Number "3")) (Statement (ExpressionStatement (Expression (Number "3")))))) (ParenthesizedExpression (Expression (Number "2"))))) (Statement (EmptyStatement ";"))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/template-string.A.ts ================================================ `one line` ================================================ FILE: semantic/test/fixtures/typescript/corpus/template-string.B.ts ================================================ `multi line` ================================================ FILE: semantic/test/fixtures/typescript/corpus/template-string.diffA-B.txt ================================================ (Statements (String)) ================================================ FILE: semantic/test/fixtures/typescript/corpus/template-string.diffB-A.txt ================================================ (Statements (String)) ================================================ FILE: semantic/test/fixtures/typescript/corpus/template-string.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (TemplateString))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/template-string.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (TemplateString))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/ternary.A.ts ================================================ condition ? case1 : case2; ================================================ FILE: semantic/test/fixtures/typescript/corpus/ternary.B.ts ================================================ x.y = some.condition ? some.case : some.other.case; ================================================ FILE: semantic/test/fixtures/typescript/corpus/ternary.diffA-B.txt ================================================ (Statements {+(Assignment {+(MemberAccess {+(Identifier)+} {+(Identifier)+})+} {+(If {+(MemberAccess {+(Identifier)+} {+(Identifier)+})+} {+(MemberAccess {+(Identifier)+} {+(Identifier)+})+} {+(MemberAccess {+(MemberAccess {+(Identifier)+} {+(Identifier)+})+} {+(Identifier)+})+})+})+} {-(If {-(Identifier)-} {-(Identifier)-} {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/ternary.diffB-A.txt ================================================ (Statements {+(If {+(Identifier)+} {+(Identifier)+} {+(Identifier)+})+} {-(Assignment {-(MemberAccess {-(Identifier)-} {-(Identifier)-})-} {-(If {-(MemberAccess {-(Identifier)-} {-(Identifier)-})-} {-(MemberAccess {-(Identifier)-} {-(Identifier)-})-} {-(MemberAccess {-(MemberAccess {-(Identifier)-} {-(Identifier)-})-} {-(Identifier)-})-})-})-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/ternary.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (TernaryExpression (Expression (Identifier "case2")) (Expression (Identifier "case1")) (Expression (Identifier "condition"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/ternary.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (AssignmentExpression (MemberExpression (PropertyIdentifier "y") (Expression (Identifier "x"))) (Expression (TernaryExpression (Expression (MemberExpression (PropertyIdentifier "case") (Expression (MemberExpression (PropertyIdentifier "other") (Expression (Identifier "some")))))) (Expression (MemberExpression (PropertyIdentifier "case") (Expression (Identifier "some")))) (Expression (MemberExpression (PropertyIdentifier "condition") (Expression (Identifier "some"))))))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/this-expression.A.ts ================================================ this; ================================================ FILE: semantic/test/fixtures/typescript/corpus/this-expression.B.ts ================================================ return this; ================================================ FILE: semantic/test/fixtures/typescript/corpus/this-expression.diffA-B.txt ================================================ (Statements {+(Return {+(This)+})+} {-(This)-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/this-expression.diffB-A.txt ================================================ (Statements {+(This)+} {-(Return {-(This)-})-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/this-expression.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (This "this"))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/this-expression.parseB.txt ================================================ (Program (Statement (ReturnStatement (Expression (This "this"))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/throw-statement.A.ts ================================================ throw new Error("uh oh"); ================================================ FILE: semantic/test/fixtures/typescript/corpus/throw-statement.B.ts ================================================ throw new Error("oooooops"); ================================================ FILE: semantic/test/fixtures/typescript/corpus/throw-statement.diffA-B.txt ================================================ (Statements (Throw (New (Identifier) (Empty) { (TextElement) ->(TextElement) }))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/throw-statement.diffB-A.txt ================================================ (Statements (Throw (New (Identifier) (Empty) { (TextElement) ->(TextElement) }))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/throw-statement.parseA.txt ================================================ (Program (Statement (ThrowStatement (Expression (NewExpression (Arguments (Expression (String))) (Identifier "Error")))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/throw-statement.parseB.txt ================================================ (Program (Statement (ThrowStatement (Expression (NewExpression (Arguments (Expression (String))) (Identifier "Error")))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/true.A.ts ================================================ true; ================================================ FILE: semantic/test/fixtures/typescript/corpus/true.B.ts ================================================ return true; ================================================ FILE: semantic/test/fixtures/typescript/corpus/true.diffA-B.txt ================================================ (Statements {+(Return {+(Boolean)+})+} {-(Boolean)-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/true.diffB-A.txt ================================================ (Statements {+(Boolean)+} {-(Return {-(Boolean)-})-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/true.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (True "true"))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/true.parseB.txt ================================================ (Program (Statement (ReturnStatement (Expression (True "true"))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/try-statement.A.ts ================================================ try { f; } catch { g; } finally { h; }; ================================================ FILE: semantic/test/fixtures/typescript/corpus/try-statement.B.ts ================================================ try { f; } catch { h; } finally { g; }; ================================================ FILE: semantic/test/fixtures/typescript/corpus/try-statement.diffA-B.txt ================================================ (Statements (Try (Statements (Identifier)) (Catch (Empty) (Statements { (Identifier) ->(Identifier) })) (Finally (Statements { (Identifier) ->(Identifier) }))) (Empty)) ================================================ FILE: semantic/test/fixtures/typescript/corpus/try-statement.diffB-A.txt ================================================ (Statements (Try (Statements (Identifier)) (Catch (Empty) (Statements { (Identifier) ->(Identifier) })) (Finally (Statements { (Identifier) ->(Identifier) }))) (Empty)) ================================================ FILE: semantic/test/fixtures/typescript/corpus/try-statement.parseA.txt ================================================ (Program (Statement (TryStatement (StatementBlock (Statement (ExpressionStatement (Expression (Identifier "f"))))) (CatchClause (StatementBlock (Statement (ExpressionStatement (Expression (Identifier "g")))))) (FinallyClause (StatementBlock (Statement (ExpressionStatement (Expression (Identifier "h")))))))) (Statement (EmptyStatement ";"))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/try-statement.parseB.txt ================================================ (Program (Statement (TryStatement (StatementBlock (Statement (ExpressionStatement (Expression (Identifier "f"))))) (CatchClause (StatementBlock (Statement (ExpressionStatement (Expression (Identifier "h")))))) (FinallyClause (StatementBlock (Statement (ExpressionStatement (Expression (Identifier "g")))))))) (Statement (EmptyStatement ";"))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/tuple-type.A.ts ================================================ let x: [A,B]; ================================================ FILE: semantic/test/fixtures/typescript/corpus/tuple-type.B.ts ================================================ let x: A & B; ================================================ FILE: semantic/test/fixtures/typescript/corpus/tuple-type.diffA-B.txt ================================================ (Statements (VariableDeclaration (Assignment (Annotation { (Tuple {-(TypeIdentifier)-} {-(TypeIdentifier)-}) ->(Intersection {+(TypeIdentifier)+} {+(TypeIdentifier)+}) }) (Identifier) (Empty)))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/tuple-type.diffB-A.txt ================================================ (Statements (VariableDeclaration (Assignment (Annotation { (Intersection {-(TypeIdentifier)-} {-(TypeIdentifier)-}) ->(Tuple {+(TypeIdentifier)+} {+(TypeIdentifier)+}) }) (Identifier) (Empty)))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/tuple-type.parseA.txt ================================================ (Program (Statement (Declaration (LexicalDeclaration (VariableDeclarator (Identifier "x") (TypeAnnotation (TupleType (TypeIdentifier "A") (TypeIdentifier "B")))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/tuple-type.parseB.txt ================================================ (Program (Statement (Declaration (LexicalDeclaration (VariableDeclarator (Identifier "x") (TypeAnnotation (IntersectionType (TypeIdentifier "A") (TypeIdentifier "B")))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/type-assertions.A.ts ================================================ foo; ================================================ FILE: semantic/test/fixtures/typescript/corpus/type-assertions.B.ts ================================================ foo as any; ================================================ FILE: semantic/test/fixtures/typescript/corpus/type-assertions.diffA-B.txt ================================================ (Statements {+(Cast {+(Identifier)+} {+(PredefinedType)+})+} {-(TypeAssertion {-(TypeArguments {-(PredefinedType)-})-} {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/type-assertions.diffB-A.txt ================================================ (Statements {+(TypeAssertion {+(TypeArguments {+(PredefinedType)+})+} {+(Identifier)+})+} {-(Cast {-(Identifier)-} {-(PredefinedType)-})-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/type-assertions.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (TypeAssertion (TypeArguments (PredefinedType "string")) (Expression (Identifier "foo"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/type-assertions.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (AsExpression (Expression (Identifier "foo")) (PredefinedType "any")))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/type-operator.A.ts ================================================ typeof x; ================================================ FILE: semantic/test/fixtures/typescript/corpus/type-operator.B.ts ================================================ x instanceof String; ================================================ FILE: semantic/test/fixtures/typescript/corpus/type-operator.diffA-B.txt ================================================ (Statements {+(InstanceOf {+(Identifier)+} {+(Identifier)+})+} {-(Typeof {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/type-operator.diffB-A.txt ================================================ (Statements {+(Typeof {+(Identifier)+})+} {-(InstanceOf {-(Identifier)-} {-(Identifier)-})-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/type-operator.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (UnaryExpression (Token) (Expression (Identifier "x"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/type-operator.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (BinaryExpression (Token) (Expression (Identifier "x")) (Expression (Identifier "String"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/typeof-types.A.ts ================================================ let foo: Z; let bar: typeof Foo; ================================================ FILE: semantic/test/fixtures/typescript/corpus/typeof-types.B.ts ================================================ let foo: typeof Bar; let bar: G; ================================================ FILE: semantic/test/fixtures/typescript/corpus/typeof-types.diffA-B.txt ================================================ (Statements (VariableDeclaration (Assignment (Annotation { (TypeIdentifier) ->(TypeQuery {+(Identifier)+}) }) (Identifier) (Empty))) (VariableDeclaration (Assignment (Annotation { (TypeQuery {-(Identifier)-}) ->(TypeIdentifier) }) (Identifier) (Empty)))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/typeof-types.diffB-A.txt ================================================ (Statements (VariableDeclaration (Assignment (Annotation { (TypeQuery {-(Identifier)-}) ->(TypeIdentifier) }) (Identifier) (Empty))) (VariableDeclaration (Assignment (Annotation { (TypeIdentifier) ->(TypeQuery {+(Identifier)+}) }) (Identifier) (Empty)))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/typeof-types.parseA.txt ================================================ (Program (Statement (Declaration (LexicalDeclaration (VariableDeclarator (Identifier "foo") (TypeAnnotation (TypeIdentifier "Z")))))) (Statement (Declaration (LexicalDeclaration (VariableDeclarator (Identifier "bar") (TypeAnnotation (TypeQuery (Identifier "Foo")))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/typeof-types.parseB.txt ================================================ (Program (Statement (Declaration (LexicalDeclaration (VariableDeclarator (Identifier "foo") (TypeAnnotation (TypeQuery (Identifier "Bar"))))))) (Statement (Declaration (LexicalDeclaration (VariableDeclarator (Identifier "bar") (TypeAnnotation (TypeIdentifier "G"))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/undefined.A.ts ================================================ undefined; ================================================ FILE: semantic/test/fixtures/typescript/corpus/undefined.B.ts ================================================ return undefined; ================================================ FILE: semantic/test/fixtures/typescript/corpus/undefined.diffA-B.txt ================================================ (Statements {+(Return {+(Undefined)+})+} {-(Undefined)-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/undefined.diffB-A.txt ================================================ (Statements {+(Undefined)+} {-(Return {-(Undefined)-})-}) ================================================ FILE: semantic/test/fixtures/typescript/corpus/undefined.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Undefined "undefined"))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/undefined.parseB.txt ================================================ (Program (Statement (ReturnStatement (Expression (Undefined "undefined"))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/union-type.A.ts ================================================ let x: A & B; ================================================ FILE: semantic/test/fixtures/typescript/corpus/union-type.B.ts ================================================ let x: typeof A; ================================================ FILE: semantic/test/fixtures/typescript/corpus/union-type.diffA-B.txt ================================================ (Statements (VariableDeclaration (Assignment (Annotation { (Intersection {-(TypeIdentifier)-} {-(TypeIdentifier)-}) ->(TypeQuery {+(Identifier)+}) }) (Identifier) (Empty)))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/union-type.diffB-A.txt ================================================ (Statements (VariableDeclaration (Assignment (Annotation { (TypeQuery {-(Identifier)-}) ->(Intersection {+(TypeIdentifier)+} {+(TypeIdentifier)+}) }) (Identifier) (Empty)))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/union-type.parseA.txt ================================================ (Program (Statement (Declaration (LexicalDeclaration (VariableDeclarator (Identifier "x") (TypeAnnotation (IntersectionType (TypeIdentifier "A") (TypeIdentifier "B")))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/union-type.parseB.txt ================================================ (Program (Statement (Declaration (LexicalDeclaration (VariableDeclarator (Identifier "x") (TypeAnnotation (TypeQuery (Identifier "A")))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/var-declaration.A.ts ================================================ var x = 1; ================================================ FILE: semantic/test/fixtures/typescript/corpus/var-declaration.B.ts ================================================ var x, y = {}, z; ================================================ FILE: semantic/test/fixtures/typescript/corpus/var-declaration.diffA-B.txt ================================================ (Statements (VariableDeclaration (Assignment (Empty) (Identifier) { (Float) ->(Empty) }) {+(Assignment {+(Empty)+} {+(Identifier)+} {+(Hash)+})+} {+(Assignment {+(Empty)+} {+(Identifier)+} {+(Empty)+})+})) ================================================ FILE: semantic/test/fixtures/typescript/corpus/var-declaration.diffB-A.txt ================================================ (Statements (VariableDeclaration (Assignment (Empty) (Identifier) { (Empty) ->(Float) }) {-(Assignment {-(Empty)-} {-(Identifier)-} {-(Hash)-})-} {-(Assignment {-(Empty)-} {-(Identifier)-} {-(Empty)-})-})) ================================================ FILE: semantic/test/fixtures/typescript/corpus/var-declaration.parseA.txt ================================================ (Program (Statement (Declaration (VariableDeclaration (VariableDeclarator (Expression (Number "1")) (Identifier "x")))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/var-declaration.parseB.txt ================================================ (Program (Statement (Declaration (VariableDeclaration (VariableDeclarator (Identifier "x")) (VariableDeclarator (Expression (Object)) (Identifier "y")) (VariableDeclarator (Identifier "z")))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/variable.A.ts ================================================ theVar; ================================================ FILE: semantic/test/fixtures/typescript/corpus/variable.B.ts ================================================ theVar2 ================================================ FILE: semantic/test/fixtures/typescript/corpus/variable.diffA-B.txt ================================================ (Statements { (Identifier) ->(Identifier) }) ================================================ FILE: semantic/test/fixtures/typescript/corpus/variable.diffB-A.txt ================================================ (Statements { (Identifier) ->(Identifier) }) ================================================ FILE: semantic/test/fixtures/typescript/corpus/variable.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Identifier "theVar"))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/variable.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (Identifier "theVar2"))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/void-operator.A.ts ================================================ void b() ================================================ FILE: semantic/test/fixtures/typescript/corpus/void-operator.B.ts ================================================ void c() ================================================ FILE: semantic/test/fixtures/typescript/corpus/void-operator.diffA-B.txt ================================================ (Statements (Void (Call { (Identifier) ->(Identifier) } (Empty)))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/void-operator.diffB-A.txt ================================================ (Statements (Void (Call { (Identifier) ->(Identifier) } (Empty)))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/void-operator.parseA.txt ================================================ (Program (Statement (ExpressionStatement (Expression (UnaryExpression (Token) (Expression (CallExpression (Expression (Identifier "b")) (Arguments)))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/void-operator.parseB.txt ================================================ (Program (Statement (ExpressionStatement (Expression (UnaryExpression (Token) (Expression (CallExpression (Expression (Identifier "c")) (Arguments)))))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/while-statement.A.ts ================================================ while (a) { b(); }; ================================================ FILE: semantic/test/fixtures/typescript/corpus/while-statement.B.ts ================================================ while (b) { a(); }; ================================================ FILE: semantic/test/fixtures/typescript/corpus/while-statement.diffA-B.txt ================================================ (Statements (While { (Identifier) ->(Identifier) } (Statements (Call { (Identifier) ->(Identifier) } (Empty)))) (Empty)) ================================================ FILE: semantic/test/fixtures/typescript/corpus/while-statement.diffB-A.txt ================================================ (Statements (While { (Identifier) ->(Identifier) } (Statements (Call { (Identifier) ->(Identifier) } (Empty)))) (Empty)) ================================================ FILE: semantic/test/fixtures/typescript/corpus/while-statement.parseA.txt ================================================ (Program (Statement (WhileStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "b")) (Arguments))))))) (ParenthesizedExpression (Expression (Identifier "a"))))) (Statement (EmptyStatement ";"))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/while-statement.parseB.txt ================================================ (Program (Statement (WhileStatement (Statement (StatementBlock (Statement (ExpressionStatement (Expression (CallExpression (Expression (Identifier "a")) (Arguments))))))) (ParenthesizedExpression (Expression (Identifier "b"))))) (Statement (EmptyStatement ";"))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/yield.A.ts ================================================ function* foo(){ var index = 0; yield i; } ================================================ FILE: semantic/test/fixtures/typescript/corpus/yield.B.ts ================================================ function* foo(){ var index = 0; yield i++; } ================================================ FILE: semantic/test/fixtures/typescript/corpus/yield.diffA-B.txt ================================================ (Statements (Function (Empty) (Empty) (Identifier) (StatementBlock (VariableDeclaration (Assignment (Empty) (Identifier) (Float))) (Yield { (Identifier) ->(Update {+(Identifier)+}) })))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/yield.diffB-A.txt ================================================ (Statements (Function (Empty) (Empty) (Identifier) (StatementBlock (VariableDeclaration (Assignment (Empty) (Identifier) (Float))) (Yield { (Update {-(Identifier)-}) ->(Identifier) })))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/yield.parseA.txt ================================================ (Program (Statement (Declaration (GeneratorFunctionDeclaration (StatementBlock (Statement (Declaration (VariableDeclaration (VariableDeclarator (Expression (Number "0")) (Identifier "index"))))) (Statement (ExpressionStatement (Expression (YieldExpression (Expression (Identifier "i"))))))) (Identifier "foo") (FormalParameters))))) ================================================ FILE: semantic/test/fixtures/typescript/corpus/yield.parseB.txt ================================================ (Program (Statement (Declaration (GeneratorFunctionDeclaration (StatementBlock (Statement (Declaration (VariableDeclaration (VariableDeclarator (Expression (Number "0")) (Identifier "index"))))) (Statement (ExpressionStatement (Expression (YieldExpression (Expression (UpdateExpression (Token) (Expression (Identifier "i"))))))))) (Identifier "foo") (FormalParameters))))) ================================================ FILE: semantic/test/fixtures/typescript/import-graph/app.json ================================================ { "modules": { "app": { "imports": [ { "span": { "start": [ 1, 1 ], "end": [ 1, 33 ] }, "path": "foo", "symbols": [ { "alias": "defaultMember", "name": "defaultMember" } ], "alias": "" }, { "span": { "start": [ 2, 1 ], "end": [ 2, 34 ] }, "path": "aardvark", "symbols": [], "alias": "name" }, { "span": { "start": [ 3, 1 ], "end": [ 3, 30 ] }, "path": "ant", "symbols": [ { "alias": "member", "name": "member" } ], "alias": "" }, { "span": { "start": [ 4, 1 ], "end": [ 4, 46 ] }, "path": "antelope", "symbols": [ { "alias": "member1", "name": "member1" }, { "alias": "member2", "name": "member2" } ], "alias": "" }, { "span": { "start": [ 5, 1 ], "end": [ 5, 57 ] }, "path": "ant-eater", "symbols": [ { "alias": "member1", "name": "member1" }, { "alias": "alias2", "name": "member2" } ], "alias": "" }, { "span": { "start": [ 6, 1 ], "end": [ 6, 70 ] }, "path": "anaconda", "symbols": [ { "alias": "defaultMember", "name": "defaultMember" } ], "alias": "" }, { "span": { "start": [ 6, 1 ], "end": [ 6, 70 ] }, "path": "anaconda", "symbols": [ { "alias": "member1", "name": "member1" }, { "alias": "alias2", "name": "member2" } ], "alias": "" }, { "span": { "start": [ 7, 1 ], "end": [ 7, 50 ] }, "path": "alligator", "symbols": [ { "alias": "defaultMember", "name": "defaultMember" } ], "alias": "" }, { "span": { "start": [ 7, 1 ], "end": [ 7, 50 ] }, "path": "alligator", "symbols": [], "alias": "name" }, { "span": { "start": [ 8, 1 ], "end": [ 8, 22 ] }, "path": "arctic-tern", "symbols": [], "alias": "" }, { "span": { "start": [ 9, 1 ], "end": [ 9, 32 ] }, "path": "../zip", "symbols": [], "alias": "zip" } ], "name": "app", "language": "TypeScript", "declarations": [ { "span": { "start": [ 11, 1 ], "end": [ 11, 52 ] }, "kind": "Function", "name": "someFunction", "module": "app" } ], "paths": [ "test/fixtures/typescript/import-graph/app.ts" ], "calls": [ { "span": { "start": [ 13, 1 ], "end": [ 13, 27 ] }, "symbol": "someFunction", "targets": [] }, { "span": { "start": [ 16, 1 ], "end": [ 16, 16 ] }, "symbol": "defaultMember", "targets": [] }, { "span": { "start": [ 17, 1 ], "end": [ 17, 11 ] }, "symbol": "foo", "targets": [ "name" ] } ] } } } ================================================ FILE: semantic/test/fixtures/typescript/import-graph/app.ts ================================================ import defaultMember from "foo"; import * as name from "aardvark"; import { member } from "ant"; import { member1 , member2 } from "antelope"; import { member1 , member2 as alias2 } from "ant-eater"; import defaultMember, { member1, member2 as alias2 } from "anaconda"; import defaultMember, * as name from "alligator"; import "arctic-tern"; import zip = require("../zip"); function someFunction(arg1, arg2): string { arg2; }; someFunction(arg1, "arg2"); defaultMember() name.foo() ================================================ FILE: semantic/test/fixtures/typescript/tags/class.ts ================================================ class FooBar {} ================================================ FILE: semantic/test/fixtures/typescript/tags/module.ts ================================================ module APromise { } ================================================ FILE: semantic-analysis/.ghci.repl ================================================ -- GHCI settings, collected by running cabal repl -v and checking out the flags cabal passes to ghc. -- These live here instead of script/repl for ease of commenting. -- These live here instead of .ghci so cabal repl remains unaffected. -- These live here instead of script/ghci-flags so ghcide remains unaffected. -- Basic verbosity :set -v1 -- Compile to object code, write interface files. :set -fwrite-interface -fobject-code -- Disable breaking on error since it hangs on uncaught exceptions when the sandbox is disabled: https://gitlab.haskell.org/ghc/ghc/issues/17743 -- 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. :set -fno-break-on-error -- Bonus: silence “add these modules to your .cabal file” warnings for files we :load :set -Wno-missing-home-modules -- Warnings for code written in the repl :seti -Weverything :seti -Wno-all-missed-specialisations :seti -Wno-implicit-prelude :seti -Wno-missed-specialisations :seti -Wno-missing-import-lists :seti -Wno-missing-local-signatures :seti -Wno-monomorphism-restriction :seti -Wno-name-shadowing :seti -Wno-safe :seti -Wno-unsafe -- 8.8+ :seti -Wno-missing-deriving-strategies -- 8.10+ :seti -Wno-missing-safe-haskell-mode :seti -Wno-prepositive-qualified-module -- 9.2+ :seti -Wno-missing-kind-signatures :seti -Wno-missing-signatures -- We have this one on in the project but not in the REPL to reduce noise :seti -Wno-type-defaults :set -Wno-unused-packages :load Analysis.Analysis.Concrete Analysis.Analysis.Exception Analysis.Syntax Analysis.Analysis.Typecheck ================================================ FILE: semantic-analysis/.gitignore ================================================ *.json *.py ================================================ FILE: semantic-analysis/BUILD.bazel ================================================ package(default_visibility = ["//visibility:public"]) load( "@rules_haskell//haskell:defs.bzl", "haskell_binary", "haskell_library", ) load( "@rules_haskell//haskell:cabal.bzl", "haskell_cabal_binary", "haskell_cabal_library", ) load( "//:build/common.bzl", "GHC_FLAGS", ) haskell_library( name = "semantic-analysis", srcs = glob(["src/**/*.hs"]), compiler_flags = GHC_FLAGS, deps = [ "//:base", "//:bytestring", "//:containers", "//:filepath", "//:text", "//:transformers", "//semantic-source", "@stackage//:aeson", "@stackage//:fused-effects", "@stackage//:hashable", "@stackage//:pathtype", "@stackage//:vector", ], ) ================================================ FILE: semantic-analysis/LICENSE ================================================ MIT License Copyright (c) 2019 GitHub Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: semantic-analysis/README.md ================================================ # semantic-analysis Polyglot program analysis by means of abstract definitional interpretation. ## Goals The goal of this package is to provide 1. general facilities for performing program analysis of programs via abstract (definitional) interpretation of an intermediate language, 2. conveniences to aid in translating programs in arbitrary surface languages into said intermediate language, 3. facilities for tailoring and tuning program analyses to vary performance, precision, and sensitivities, and 4. a small variety of specific program analyses to serve both as examples and as useful tools in their own right. ## Non-goals On the other hand, this package will not provide 1. support for specific surface languages, or 2. facilities for dealing with the meta-structure of programs, i.e. where to find modules, how projects and their files are configured, etc. ## Development This project consists of a Haskell package named `semantic-analysis`. The library’s sources are in [`src`][]. Development of `semantic-analysis` is typically done using `cabal v2-build`: ```shell cabal v2-build # build the library cabal v2-repl # load the package into ghci cabal v2-test # build and run the doctests ``` [`src`]: https://github.com/github/semantic/tree/master/semantic-analysis/src ================================================ FILE: semantic-analysis/Setup.hs ================================================ import Distribution.Simple main = defaultMain ================================================ FILE: semantic-analysis/cabal.project ================================================ -- 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. -- Local packages packages: . ../semantic-source ================================================ FILE: semantic-analysis/hie.yaml ================================================ cradle: cabal: - path: "." component: "lib:semantic-analysis" ================================================ FILE: semantic-analysis/python.tsg ================================================ ; tree-sitter-graph definitions mapping Python ASTs to an analyzable IR. (module) @this { node @this.node attr (@this.node) type = "module" attr (@this.node) start-line = (start-row @this) attr (@this.node) start-col = (start-column @this) attr (@this.node) end-line = (end-row @this) attr (@this.node) end-col = (end-column @this) } (identifier) @this { node @this.node attr (@this.node) type = "identifier" var @this.text = (source-text @this) attr (@this.node) text = (source-text @this) } (import_statement) @this { node @this.node attr (@this.node) type = "import" } (import_statement name: (dotted_name (identifier) @id)) @this { edge @this.node -> @id.node attr (@id.node) role = "module-name-fragment" attr (@this.node -> @id.node) index = (named-child-index @id) attr (@this.node -> @id.node) text = @id.text } (string) @this { node @this.node attr (@this.node) type = "string" attr (@this.node) text = (source-text @this) } (true) @this { node @this.node attr (@this.node) type = "true" } (false) @this { node @this.node attr (@this.node) type = "false" } (print_statement argument: (_) @arg) @this { node @this.node attr (@this.node) type = "print" edge @this.node -> @arg.node attr (@this.node) start-line = (start-row @this) attr (@this.node) start-col = (start-column @this) attr (@this.node) end-line = (end-row @this) attr (@this.node) end-col = (end-column @this) } (raise_statement (_) @arg) @this { node @this.node attr (@this.node) type = "throw" edge @this.node -> @arg.node attr (@this.node) start-line = (start-row @this) attr (@this.node) start-col = (start-column @this) attr (@this.node) end-line = (end-row @this) attr (@this.node) end-col = (end-column @this) } (call function: (_) @function arguments: (argument_list (_)* @args)) @this { node @this.node attr (@this.node) function = (source-text @function) attr (@this.node) type = "call" for arg in @args { edge @this.node -> arg.node } attr (@this.node) start-line = (start-row @this) attr (@this.node) start-col = (start-column @this) attr (@this.node) end-line = (end-row @this) attr (@this.node) end-col = (end-column @this) } (expression_statement (_) @child) @this { let @this.node = @child.node } (pass_statement) @this { node @this.node attr (@this.node) type = "noop" } (block (_)* @children) @this { node @this.node attr (@this.node) type = "block" for child in @children { edge @this.node -> child.node attr (@this.node -> child.node) index = (named-child-index child) } attr (@this.node) start-line = (start-row @this) attr (@this.node) start-col = (start-column @this) attr (@this.node) end-line = (end-row @this) attr (@this.node) end-col = (end-column @this) } (else_clause body: (_) @body) @this { let @this.node = @body.node } (if_statement (_)) @this { node @this.node attr (@this.node) type = "if" attr (@this.node) start-line = (start-row @this) attr (@this.node) start-col = (start-column @this) attr (@this.node) end-line = (end-row @this) attr (@this.node) end-col = (end-column @this) } (if_statement condition: (_) @cond consequence: (_) @then) @this { edge @this.node -> @cond.node attr (@this.node -> @cond.node) type = "condition" edge @this.node -> @then.node attr (@this.node -> @then.node) type = "consequence" } (if_statement alternative: (_) @else) @this { edge @this.node -> @else.node attr (@this.node -> @else.node) type = "alternative" } (function_definition name: (_) @name body: (_) @body) @this { node @this.node attr (@this.node) type = "function" attr (@this.node) name = (source-text @name) edge @this.node -> @body.node attr (@this.node -> @body.node) type = "body" attr (@this.node) start-line = (start-row @this) attr (@this.node) start-col = (start-column @this) attr (@this.node) end-line = (end-row @this) attr (@this.node) end-col = (end-column @this) } (module (_) @child) @this { edge @this.node -> @child.node attr (@this.node -> @child.node) index = (named-child-index @child) } ================================================ FILE: semantic-analysis/script/ghci-flags ================================================ #!/bin/bash # 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. set -e cd "$(dirname "$0")/.." ghc_version="$(ghc --numeric-version)" # 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 output_file="${HIE_BIOS_OUTPUT:-/dev/stdout}" build_dir="dist-newstyle/build/x86_64-osx/ghc-$ghc_version" build_products_dir="$build_dir/build-repl" cores=$(sysctl -n machdep.cpu.core_count || echo 4) function flags { # disable optimizations for faster loading echo "-O0" # don’t load .ghci files (for ghcide) echo "-ignore-dot-ghci" # use as many jobs as there are physical cores echo "-j$((cores + 1))" # where to put build products echo "-outputdir $build_products_dir" echo "-odir $build_products_dir" echo "-hidir $build_products_dir" echo "-stubdir $build_products_dir" # preprocessor options, for -XCPP echo "-optP-include" echo "-optP$build_dir/semantic-analysis-0.0.0.0/build/autogen/cabal_macros.h" # autogenerated sources, both .hs and .h (e.g. Foo_paths.hs) echo "-i$build_dir/semantic-analysis-0.0.0.0/build/autogen" echo "-I$build_dir/semantic-analysis-0.0.0.0/build/autogen" # .hs source dirs echo "-isrc" # disable automatic selection of packages echo "-hide-all-packages" # run cabal and emit package flags from the environment file, removing comments & prefixing with - cabal v2-exec -v0 bash -- -c 'cat "$GHC_ENVIRONMENT"' | grep -v '^--' | sed -e 's/^/-/' # default language extensions echo "-XHaskell2010" # treat warnings as warnings echo "-Wwarn" # default warning flags echo "-Weverything" echo "-Wno-all-missed-specialisations" echo "-Wno-implicit-prelude" echo "-Wno-missed-specialisations" echo "-Wno-missing-import-lists" echo "-Wno-missing-local-signatures" echo "-Wno-monomorphism-restriction" echo "-Wno-name-shadowing" echo "-Wno-safe" echo "-Wno-unsafe" [[ "$ghc_version" = 9.4.* ]] || [[ "$ghc_version" = 8.8.* ]] || [[ "$ghc_version" = 8.10.* ]] || [[ "$ghc_version" = 9.2.* ]] && echo "-Wno-missing-deriving-strategies" || true [[ "$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 [[ "$ghc_version" = 9.4.* ]] || [[ "$ghc_version" = 9.2.* ]] && echo "-Wno-missing-kind-signatures" || true } flags > "$output_file" ================================================ FILE: semantic-analysis/script/repl ================================================ #!/bin/bash # Usage: script/repl [ARGS...] # 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. set -e cd "$(dirname "$0")/.." # cabal v2-build all --only-dependencies cores=$(sysctl -n machdep.cpu.core_count || echo 4) cabal v2-exec env -- -u GHC_ENVIRONMENT ghci +RTS -N$((cores + 1)) -RTS -ghci-script=.ghci.repl $(script/ghci-flags) -no-ignore-dot-ghci $@ ================================================ FILE: semantic-analysis/semantic-analysis.cabal ================================================ cabal-version: 2.4 name: semantic-analysis version: 0.0.0.0 synopsis: Program analysis by abstract definitional interpretation. description: Program analysis abstractions and implementations by abstract definitional interpretation. homepage: https://github.com/github/semantic/tree/master/semantic-analysis#readme bug-reports: https://github.com/github/semantic/issues license: MIT license-file: LICENSE author: The Semantic authors maintainer: opensource+semantic@github.com copyright: (c) 2019 GitHub, Inc. category: Language build-type: Simple stability: alpha extra-source-files: README.md tested-with: GHC == 8.6.5 common common default-language: Haskell2010 ghc-options: -Weverything -Wno-missing-local-signatures -Wno-missing-import-lists -Wno-implicit-prelude -Wno-safe -Wno-unsafe -Wno-name-shadowing -Wno-monomorphism-restriction -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-star-is-type if (impl(ghc >= 8.8)) ghc-options: -Wno-missing-deriving-strategies if (impl(ghc >= 8.10)) ghc-options: -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module if (impl(ghc >= 9.2)) ghc-options: -Wno-missing-kind-signatures library import: common hs-source-dirs: src exposed-modules: Analysis.Analysis.Concrete Analysis.Analysis.DeadCode Analysis.Analysis.Exception Analysis.Analysis.Typecheck Analysis.Blob Analysis.Carrier.Fail.WithLoc Analysis.Carrier.Statement.State Analysis.Carrier.Store.Monovariant Analysis.Carrier.Store.Precise Analysis.Data.Snoc Analysis.Effect.Domain Analysis.Effect.Env Analysis.Effect.Statement Analysis.Effect.Store Analysis.File Analysis.FlowInsensitive Analysis.Functor.Named Analysis.Module Analysis.Name Analysis.Project Analysis.Reference Analysis.Syntax Analysis.Syntax.Python Analysis.VM build-depends: , aeson >= 1.4 && < 3 , base >= 4.13 && < 5 , containers ^>= 0.6 , filepath , fused-effects ^>= 1.1 , hashable , language-python , semantic-source ^>= 0.2 , text ^>= 1.2.3.1 , transformers ^>= 0.5 ================================================ FILE: semantic-analysis/src/Analysis/Analysis/Concrete.hs ================================================ {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE DerivingVia #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuantifiedConstraints #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} module Analysis.Analysis.Concrete ( Concrete(..) , concrete ) where import Analysis.Carrier.Fail.WithLoc import qualified Analysis.Carrier.Store.Precise as A import Analysis.Data.Snoc import Analysis.Effect.Domain as A import Analysis.File import Analysis.Functor.Named import Analysis.Reference import Control.Algebra import Control.Carrier.Fresh.Strict import Control.Carrier.Reader hiding (Local) import Control.Effect.Labelled import Control.Monad.Trans.Class (MonadTrans (..)) import Data.Foldable (foldl') import Data.Function (fix, on) import Data.Semigroup (Last (..)) import Data.Text as Text (Text) import Prelude hiding (fail) data Concrete = Closure Reference [Name] ([Concrete] -> Concrete) | Unit | Bool Bool | Int Int | String Text -- | A neutral value, consisting of a variable at the head, followed by a “spine” of eliminations. -- -- 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. -- -- 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. | Neutral Name (Snoc (Elim Concrete)) -- 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. deriving Semigroup via Last Concrete instance Eq Concrete where (==) = (==) `on` quote instance Ord Concrete where compare = compare `on` quote instance Show Concrete where showsPrec p = showsPrec p . quote newtype Elim a = EApp [a] deriving (Eq, Foldable, Functor, Ord, Show, Traversable) vvar :: Name -> Concrete vvar n = Neutral n Nil velim :: Concrete -> Elim Concrete -> Concrete velim (Closure _ _ f) (EApp a) = f a velim (Neutral h as) a = Neutral h (as :> a) velim _ _ = error "velim: cannot eliminate" -- FIXME: fail in the monad instead -- FIXME: so why use HOAS at all then? -- FIXME: construct in de Bruijn-indexed rep & simple eval instead of substituting. vsubst :: Name -> Concrete -> Concrete -> Concrete vsubst n v = go where go = \case Neutral n' as | n == n' -> foldl' velim v as' | otherwise -> Neutral n' as' where as' = fmap go <$> as Closure r n b -> Closure r n (go . b) -- NB: Shadowing can’t happen because n' can’t occur inside b Unit -> Unit Bool b -> Bool b Int i -> Int i String s -> String s data FO = FOVar Name | FOClosure Reference [Name] FO | FOUnit | FOBool Bool | FOInt Int | FOString Text | FOApp FO [FO] deriving (Eq, Ord, Show) quote :: Concrete -> FO quote = \case -- FIXME: should quote take a Level incremented under binders? Closure r n body -> FOClosure r n (quote (body (map vvar n))) Unit -> FOUnit Bool b -> FOBool b Int i -> FOInt i String s -> FOString s Neutral n sp -> foldl' (\ f (EApp a) -> FOApp f (map quote a)) (FOVar n) sp type Eval term m value = (term -> m value) -> (term -> m value) concrete :: (forall sig m . (Has (A.Dom Concrete :+: A.Env A.PAddr :+: Reader Reference) sig m, HasLabelled A.Store (A.Store A.PAddr Concrete) sig m, MonadFail m) => Eval term m Concrete ) -> [File term] -> (A.PStore Concrete, [File (Either (Reference, String) Concrete)]) concrete eval = run . evalFresh 0 . A.runStore . traverse (runFile eval) runFile :: HasLabelled A.Store (A.Store A.PAddr Concrete) sig m => (forall sig m . (Has (A.Dom Concrete :+: A.Env A.PAddr :+: Reader Reference) sig m, HasLabelled A.Store (A.Store A.PAddr Concrete) sig m, MonadFail m) => Eval term m Concrete ) -> File term -> m (File (Either (Reference, String) Concrete)) runFile eval file = traverse run file where run = runReader (fileRef file) . runFail . A.runEnv . runDomain . fix eval newtype DomainC m a = DomainC { runDomain :: m a } deriving (Applicative, Functor, Monad, MonadFail) instance MonadTrans DomainC where lift = DomainC instance ( Has (A.Env A.PAddr) sig m , HasLabelled A.Store (A.Store A.PAddr Concrete) sig m , Has (Reader Reference) sig m , MonadFail m ) => Algebra (A.Dom Concrete :+: sig) (DomainC m) where alg hdl sig ctx = case sig of L (DVar n) -> pure (vvar n <$ ctx) L (DAbs n b) -> do b' <- hdl (b (map vvar n) <$ ctx) ref <- ask let closure body = Closure ref n (\ args -> let substs = zipWith vsubst n args in foldl' (.) id substs body) pure $ closure <$> b' L (DApp f a) -> pure $ velim f (EApp a) <$ ctx L (DInt i) -> pure (Int i <$ ctx) L DUnit -> pure (Unit <$ ctx) L (DBool b) -> pure (Bool b <$ ctx) L (DIf c t e) -> case c of Bool b | b -> hdl (t <$ ctx) | otherwise -> hdl (e <$ ctx) _ -> fail "expected Bool" L (DString s) -> pure (String s <$ ctx) L (_ :>>> t) -> pure (t <$ ctx) L (DDie msg) -> fail (show (quote msg)) R other -> DomainC (alg (runDomain . hdl) other ctx) ================================================ FILE: semantic-analysis/src/Analysis/Analysis/DeadCode.hs ================================================ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} module Analysis.Analysis.DeadCode ( deadCodeFlowInsensitive ) where import Analysis.Carrier.Fail.WithLoc import qualified Analysis.Carrier.Statement.State as A import qualified Analysis.Carrier.Store.Monovariant as A import Analysis.Effect.Domain as A import Analysis.File import Analysis.FlowInsensitive import Analysis.Reference import Control.Applicative (Alternative (..)) import Control.Carrier.Fresh.Church import Control.Carrier.Reader import Control.Carrier.State.Church import Control.Effect.Labelled import Control.Monad (zipWithM_) import Control.Monad.Trans.Class import Data.Function (fix) import qualified Data.Set as Set deadCodeFlowInsensitive :: Ord term => (forall sig m . (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) => (term -> m Unit) -> (term -> m Unit) ) -> (term -> Set.Set term) -> [File term] -> ( Set.Set term , A.MStore Unit , [File (Either (Reference, String) (Set.Set Unit))] ) deadCodeFlowInsensitive eval subterms = run . runState (\ dead (store, files) -> pure (dead, store, files)) Set.empty . evalFresh 0 . A.runStoreState . traverse (runFile eval subterms) runFile :: ( Has Fresh sig m , Has (State (A.MStore Unit)) sig m , Has (State (Set.Set term)) sig m , Ord term ) => (forall sig m . (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) => (term -> m Unit) -> (term -> m Unit) ) -> (term -> Set.Set term) -> File term -> m (File (Either (Reference, String) (Set.Set Unit))) runFile eval subterms file = traverse run file where run term = do modify (<> subterms term) A.runStatement (const pure) . runReader (fileRef file) . A.runEnv @Unit . runFail . convergeTerm (A.runStore @Unit . runDomain . fix (cacheTerm . evalDead)) $ term evalDead eval' subterm = do modify (Set.delete subterm) eval eval' subterm data Unit = Unit deriving (Eq, Ord, Show) newtype DomainC m a = DomainC { runDomain :: m a } deriving (Alternative, Applicative, Functor, Monad, MonadFail) instance MonadTrans DomainC where lift = DomainC instance ( Alternative m , Has (A.Env A.MAddr) sig m , Has Fresh sig m , HasLabelled A.Store (A.Store A.MAddr Unit) sig m , MonadFail m ) => Algebra (A.Dom Unit :+: sig) (DomainC m) where alg hdl sig ctx = case sig of L (DVar _) -> pure (Unit <$ ctx) L (DInt _) -> pure (Unit <$ ctx) L DUnit -> pure (Unit <$ ctx) L (DBool _) -> pure (Unit <$ ctx) L (DIf _ t e) -> hdl (t <$ ctx) <|> hdl (e <$ ctx) L (DString _) -> pure (Unit <$ ctx) L (DAbs n b) -> do addrs <- traverse A.alloc n let args = Unit <$ n zipWithM_ (A..=) addrs args hdl (b args <$ ctx) L (DApp _ _) -> pure (Unit <$ ctx) L (_ :>>> t) -> pure (t <$ ctx) L (DDie msg) -> fail (show msg) R other -> DomainC (alg (runDomain . hdl) other ctx) ================================================ FILE: semantic-analysis/src/Analysis/Analysis/Exception.hs ================================================ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE TupleSections #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} module Analysis.Analysis.Exception ( Exception(..) , ExcSet(..) , exceptionTracing , exceptionTracingIndependent , fromExceptions , var , exc , str , subst , nullExcSet , freeVariablesForLine , exceptionsForLine , printExcSet , refLines -- * Exception tracing analysis , ExcC(..) ) where import qualified Analysis.Carrier.Statement.State as A import qualified Analysis.Carrier.Store.Monovariant as A import Analysis.Effect.Domain import Analysis.Effect.Env (Env) import Analysis.Effect.Store import Analysis.File import Analysis.FlowInsensitive (cacheTerm, convergeTerm) import Analysis.Module import Analysis.Name import Analysis.Reference import Control.Algebra import Control.Applicative (Alternative (..)) import Control.Carrier.Reader import Control.Effect.Labelled import Control.Effect.State import Control.Monad (unless) import Data.Foldable (for_) import qualified Data.Foldable as Foldable import Data.Function (fix) import qualified Data.IntSet as IntSet import qualified Data.Map as Map import qualified Data.Set as Set import qualified Data.Text as Text import qualified Data.Text.IO as Text import qualified Source.Source as Source import Source.Span -- | Names of exceptions thrown in the guest language and recorded by this analysis. -- -- Not to be confused with exceptions thrown in Haskell itself. data Exception = Exception { exceptionName :: Name, exceptionLines :: IntSet.IntSet } deriving (Eq, Ord, Show) data FreeVariable = FreeVariable { freeVariableName :: Name, freeVariableLines :: IntSet.IntSet } deriving (Eq, Ord, Show) -- | Sets whose elements are each a variable or an exception. data ExcSet = ExcSet { freeVariables :: Set.Set FreeVariable, exceptions :: Set.Set Exception, strings :: Set.Set Text.Text } deriving (Eq, Ord, Show) instance Semigroup ExcSet where ExcSet v1 e1 s1 <> ExcSet v2 e2 s2 = ExcSet (v1 <> v2) (e1 <> e2) (s1 <> s2) instance Monoid ExcSet where mempty = ExcSet mempty mempty mempty fromExceptions :: Foldable t => t Exception -> ExcSet fromExceptions es = ExcSet mempty (Set.fromList (Foldable.toList es)) mempty var :: FreeVariable -> ExcSet var v = ExcSet (Set.singleton v) mempty mempty exc :: Exception -> ExcSet exc e = ExcSet mempty (Set.singleton e) mempty str :: Text.Text -> ExcSet str s = ExcSet mempty mempty (Set.singleton s) subst :: Name -> ExcSet -> ExcSet -> ExcSet -- FIXME: this doesn't handle transitivity at all. subst name (ExcSet _ es' _) (ExcSet fvs es ss) = ExcSet fvs'' (es <> es'') ss where (fvs'', es'') = foldMap combine fvs combine fv | freeVariableName fv == name = (mempty, Set.map (\ (Exception n _) -> Exception n (freeVariableLines fv)) es') | otherwise = (Set.singleton fv, mempty) nullExcSet :: ExcSet -> Bool nullExcSet e = null (freeVariables e) && null (exceptions e) freeVariablesForLine :: Int -> ExcSet -> Set.Set FreeVariable freeVariablesForLine l e = Set.filter (\ fv -> IntSet.member l (freeVariableLines fv)) (freeVariables e) exceptionsForLine :: Int -> ExcSet -> Set.Set Exception exceptionsForLine l e = Set.filter (\ ex -> IntSet.member l (exceptionLines ex)) (exceptions e) printExcSet :: Source.Source -> ExcSet -> IO () printExcSet src e = for_ (zip [0..] (Source.lines src)) $ \ (i, line) -> do Text.putStr (keywords (Text.dropWhileEnd (== '\n') (Source.toText line))) let es = exceptionsForLine i e fvs = freeVariablesForLine i e unless (null es && null fvs) $ do Text.putStr " \ESC[30;1m# " Text.putStr ("{" <> union ( formatFreeVariables fvs <> formatExceptions es ) <> "}" <> reset) Text.putStrLn mempty where keyword k s = Text.intercalate ("\ESC[34;1m" <> k <> reset) (Text.splitOn k s) keywords = keyword "raise" . keyword "import" . keyword "def" . keyword "pass" union = Text.intercalate ", " formatFreeVariables fvs = map (\ fv -> "?" <> formatName (freeVariableName fv)) (Set.toList fvs) formatExceptions excs = map (Text.pack . show . formatName . exceptionName) (Set.toList excs) reset = "\ESC[0m" refLines :: Reference -> IntSet.IntSet refLines (Reference _ (Span (Pos startLine _) (Pos endLine _))) = IntSet.fromAscList [startLine..endLine] exceptionTracing :: Ord term => ( forall sig m . (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) => (term -> m ExcSet) -> (term -> m ExcSet) ) -> [File term] -> (A.MStore ExcSet, [File (Module ExcSet)]) exceptionTracing eval = run . A.runFiles (runFile eval) exceptionTracingIndependent :: Ord term => ( forall sig m . (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) => (term -> m ExcSet) -> (term -> m ExcSet) ) -> File term -> (A.MStore ExcSet, File (Module ExcSet)) exceptionTracingIndependent eval = run . A.runStoreState . runFile eval runFile :: ( Has (State (A.MStore ExcSet)) sig m , Ord term ) => ( forall sig m . (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) => (term -> m ExcSet) -> (term -> m ExcSet) ) -> File term -> m (File (Module ExcSet)) runFile eval file = traverse run file where run = A.runStatement result . A.runEnv @ExcSet . runReader (fileRef file) . convergeTerm (A.runStore @ExcSet . runExcC . fix (cacheTerm . eval)) result msgs sets = do exports <- gets @(A.MStore ExcSet) (fmap Foldable.fold . Map.mapKeys A.getMAddr . A.getMStore) let set = Foldable.fold sets imports = Set.fromList (map extractImport msgs) pure (Module (Foldable.foldl' (flip (uncurry subst)) set . Map.toList) imports exports (Set.map freeVariableName (freeVariables set))) extractImport (A.Import components) = name (Text.intercalate "." (Foldable.toList components)) newtype ExcC m a = ExcC { runExcC :: m a } deriving (Alternative, Applicative, Functor, Monad) instance (Has (Reader Reference) sig m, Alternative m) => Algebra (Dom ExcSet :+: sig) (ExcC m) where alg hdl sig ctx = ExcC $ case sig of L dom -> case dom of DVar n -> do lines <- asks refLines pure $ var (FreeVariable n lines) <$ ctx DAbs _ b -> runExcC (hdl (b mempty <$ ctx)) DApp f a -> pure $ f <> Foldable.fold a <$ ctx DInt _ -> pure nil DUnit -> pure nil DBool _ -> pure nil DIf c t e -> fmap (mappend c) <$> runExcC (hdl (t <$ ctx) <|> hdl (e <$ ctx)) DString s -> pure (str (Text.dropAround (== '"') s) <$ ctx) t :>>> u -> pure (t <> u <$ ctx) DDie e -> do lines <- asks refLines pure $ e{ strings = mempty } <> fromExceptions [Exception (name n) lines | n <- Set.toList (strings e)] <$ ctx where nil = (mempty :: ExcSet) <$ ctx R other -> alg (runExcC . hdl) other ctx ================================================ FILE: semantic-analysis/src/Analysis/Analysis/Typecheck.hs ================================================ {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE DerivingVia #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE FunctionalDependencies #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE QuantifiedConstraints #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} module Analysis.Analysis.Typecheck ( Monotype (..) , Meta , Polytype (..) , typecheckingFlowInsensitive ) where import Analysis.Carrier.Fail.WithLoc import qualified Analysis.Carrier.Store.Monovariant as A import Analysis.Effect.Domain as A import Analysis.File import Analysis.FlowInsensitive import Analysis.Functor.Named import Analysis.Reference import Control.Algebra import Control.Applicative (Alternative (..)) import Control.Carrier.Fresh.Strict as Fresh import Control.Carrier.Reader hiding (Local) import Control.Carrier.State.Strict import Control.Effect.Labelled import Control.Monad (ap, guard, unless) import Control.Monad.Trans.Class import Data.Foldable (for_, sequenceA_) import Data.Function (fix) import qualified Data.IntMap as IM import qualified Data.IntSet as IS import Data.Maybe (fromJust, fromMaybe) import Data.Semigroup (Last (..)) import qualified Data.Set as Set import Data.Void import GHC.Generics (Generic1) import Prelude hiding (fail) data Monotype a = Var a | Unit | Bool | Int | String | [Monotype a] :-> Monotype a -- | (Locally) undefined names whose types are unknown. May not be eliminated by unification. | TypeOf Name deriving (Eq, Foldable, Functor, Generic1, Ord, Show, Traversable) infixr 0 :-> -- FIXME: Union the effects/annotations on the operands. -- | 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. deriving via (Last (Monotype a)) instance Semigroup (Monotype a) instance Applicative Monotype where pure = Var (<*>) = ap instance Monad Monotype where m >>= f = case m of Var a -> f a Unit -> Unit Bool -> Bool Int -> Int String -> String TypeOf n -> TypeOf n a :-> b -> (map (>>= f) a) :-> (b >>= f) type Type = Monotype Meta type Meta = Int data Polytype a = PForAll (Polytype (Maybe a)) | PType (Monotype a) deriving (Eq, Foldable, Functor, Generic1, Ord, Show, Traversable) closed :: Traversable f => f a -> Maybe (f b) closed = traverse (const Nothing) abstract :: Eq a => a -> Polytype a -> Polytype (Maybe a) abstract n = fmap (\ a -> a <$ guard (a == n)) forAll :: Eq a => a -> Polytype a -> Polytype a forAll n body = PForAll (abstract n body) forAlls :: (Eq a, Foldable t) => t a -> Polytype a -> Polytype a forAlls ns body = foldr forAll body ns generalize :: Monotype Meta -> Polytype Void generalize ty = fromJust (closed (forAlls (IS.toList (mvs ty)) (PType ty))) typecheckingFlowInsensitive :: Ord term => (forall sig m . (Has (A.Dom Type :+: A.Env A.MAddr :+: Reader Reference) sig m, HasLabelled A.Store (A.Store A.MAddr Type) sig m, MonadFail m) => (term -> m Type) -> (term -> m Type) ) -> [File term] -> ( A.MStore Type , [File (Either (Reference, String) (Polytype Void))] ) typecheckingFlowInsensitive eval = run . evalFresh 0 . A.runStoreState . fmap (fmap (fmap (fmap generalize))) . traverse (runFile eval) runFile :: ( Has Fresh sig m , Has (State (A.MStore Type)) sig m , Ord term ) => (forall sig m . (Has (A.Dom Type :+: A.Env A.MAddr :+: Reader Reference) sig m, HasLabelled A.Store (A.Store A.MAddr Type) sig m, MonadFail m) => (term -> m Type) -> (term -> m Type) ) -> File term -> m (File (Either (Reference, String) Type)) runFile eval file = traverse run file where run = (\ m -> do (subst, t) <- m modify @(A.MStore Type) (A.MStore . fmap (Set.map (substAll subst)) . A.getMStore) pure (substAll subst <$> t)) . runState @Substitution mempty . runReader (fileRef file) . A.runEnv @Type . runFail . (\ m -> do (cs, t) <- m t <$ solve cs) . runState @(Set.Set (Type, Type)) mempty . (\ m -> do v <- meta bs <- m v <$ for_ bs (unify v)) . convergeTerm (A.runStore @Type . runDomain . fix (cacheTerm . eval)) data Solution = Int := Type deriving (Eq, Ord, Show) infix 5 := meta :: Has Fresh sig m => m Type meta = pure <$> Fresh.fresh unify :: Has (State (Set.Set (Type, Type))) sig m => Type -> Type -> m () unify t1 t2 | t1 == t2 = pure () | otherwise = modify (<> Set.singleton (t1, t2)) type Substitution = IM.IntMap Type solve :: (Has (State Substitution) sig m, MonadFail m) => Set.Set (Type, Type) -> m () solve cs = for_ cs (uncurry solve) where solve = curry $ \case (a1 :-> b1, a2 :-> b2) -> sequenceA_ (zipWith solve a1 a2) *> solve b1 b2 (Var m1 , Var m2) | m1 == m2 -> pure () (Var m1 , t2) -> do sol <- solution m1 case sol of Just (_ := t1) -> solve t1 t2 Nothing | m1 `IS.member` mvs t2 -> fail ("Occurs check failure: " <> show m1 <> " :===: " <> show t2) | otherwise -> modify (IM.insert m1 t2 . fmap (substAll (IM.singleton m1 t2))) (t1 , Var m2) -> solve (Var m2) t1 (t1 , t2) -> unless (t1 == t2) $ fail ("Type mismatch:\nexpected: " <> show t1 <> "\n actual: " <> show t2) solution m = fmap (m :=) <$> gets (IM.lookup m) mvs :: Foldable t => t Meta -> IS.IntSet mvs = foldMap IS.singleton substAll :: Monad t => IM.IntMap (t Meta) -> t Meta -> t Meta substAll s a = a >>= \ i -> fromMaybe (pure i) (IM.lookup i s) newtype DomainC m a = DomainC { runDomain :: m a } deriving (Alternative, Applicative, Functor, Monad, MonadFail) instance MonadTrans DomainC where lift = DomainC instance ( Alternative m , Has (A.Env A.MAddr) sig m , Has Fresh sig m , HasLabelled A.Store (A.Store A.MAddr Type) sig m , Has (State (Set.Set (Type, Type))) sig m , MonadFail m ) => Algebra (A.Dom Type :+: sig) (DomainC m) where alg hdl sig ctx = case sig of L (DVar n) -> pure (TypeOf n <$ ctx) L (DInt _) -> pure (Int <$ ctx) L DUnit -> pure (Unit <$ ctx) L (DBool _) -> pure (Bool <$ ctx) L (DIf c t e) -> do unify c Bool hdl (t <$ ctx) <|> hdl (e <$ ctx) L (DString _) -> pure (String <$ ctx) L (DAbs n b) -> do addrs <- traverse A.alloc n args <- traverse (const meta) n sequenceA_ (zipWith (A..=) addrs args) ty <- hdl (b args <$ ctx) pure ((args :->) <$> ty) L (DApp f a) -> do args <- traverse (const meta) a ret <- meta unify f (args :-> ret) sequenceA_ (zipWith unify a args) pure (ret <$ ctx) L (_ :>>> t) -> pure (t <$ ctx) L (DDie msg) -> fail (show msg) R other -> DomainC (alg (runDomain . hdl) other ctx) ================================================ FILE: semantic-analysis/src/Analysis/Blob.hs ================================================ {-# LANGUAGE OverloadedStrings #-} module Analysis.Blob ( Blob (..) , fromSource , blobLanguage , blobPath , blobFilePath , nullBlob ) where import Analysis.File as A import Analysis.Reference as A import Data.Aeson import Source.Language as Language import Source.Source as Source -- | The source, path information, and language of a file read from disk. data Blob = Blob { blobSource :: Source -- ^ The UTF-8 encoded source text of the blob. , blobFile :: File Language -- ^ Path/language information for this blob. } deriving (Show, Eq) instance FromJSON Blob where parseJSON = withObject "Blob" $ \b -> do src <- b .: "content" pth <- b .: "path" lang <- b .: "language" let lang' = if knownLanguage lang then lang else Language.forPath pth pure (fromSource pth lang' src) -- | Create a Blob from a provided path, language, and UTF-8 source. -- The resulting Blob's span is taken from the 'totalSpan' of the source. fromSource :: FilePath -> Language -> Source -> Blob fromSource filepath language source = Blob source (A.File (A.Reference filepath (totalSpan source)) language) blobLanguage :: Blob -> Language blobLanguage = A.fileBody . blobFile blobPath :: Blob -> FilePath blobPath = A.refPath . A.fileRef . blobFile -- | Show FilePath for error or json outputs. blobFilePath :: Blob -> String blobFilePath = blobPath nullBlob :: Blob -> Bool nullBlob = Source.null . blobSource ================================================ FILE: semantic-analysis/src/Analysis/Carrier/Env/Monovariant.hs ================================================ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} module Analysis.Carrier.Env.Monovariant ( -- * Env carrier EnvC(..) -- * Env effect , module Analysis.Effect.Env ) where import Analysis.Effect.Env import Analysis.Name import Control.Algebra import qualified Control.Monad.Fail as Fail newtype EnvC m a = EnvC { runEnv :: m a } deriving (Applicative, Functor, Monad, Fail.MonadFail) instance Algebra sig m => Algebra (Env Name :+: sig) (EnvC m) where alg hdl sig ctx = case sig of L (Bind _ _ m) -> hdl (m <$ ctx) L (Lookup name) -> pure (Just name <$ ctx) R other -> EnvC (alg (runEnv . hdl) other ctx) ================================================ FILE: semantic-analysis/src/Analysis/Carrier/Env/Precise.hs ================================================ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} module Analysis.Carrier.Env.Precise ( -- * Env carrier EnvC(..) -- * Env effect , module Analysis.Effect.Env ) where import Analysis.Effect.Env import Analysis.Name import Control.Algebra import Control.Effect.Reader import qualified Control.Monad.Fail as Fail import qualified Data.Map as Map type Precise = Int type PreciseEnv = Map.Map Name Precise newtype EnvC m a = EnvC { runEnv :: m a } deriving (Applicative, Functor, Monad, Fail.MonadFail) instance Has (Reader PreciseEnv) sig m => Algebra (Env Precise :+: sig) (EnvC m) where alg hdl sig ctx = case sig of L (Bind name addr m) -> local (Map.insert name addr) (hdl (m <$ ctx)) L (Lookup name) -> (<$ ctx) <$> asks (Map.lookup name) R other -> EnvC (alg (runEnv . hdl) other ctx) ================================================ FILE: semantic-analysis/src/Analysis/Carrier/Fail/WithLoc.hs ================================================ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} module Analysis.Carrier.Fail.WithLoc ( -- * Fail carrier runFail , FailC(..) -- * Fail effect , module Control.Effect.Fail ) where import Analysis.Reference import Control.Algebra import Control.Applicative import Control.Carrier.Error.Either import Control.Effect.Fail import Control.Effect.Reader import Prelude hiding (fail) -- Fail carrier runFail :: FailC m a -> m (Either (Reference, String) a) runFail = runError . runFailC newtype FailC m a = FailC { runFailC :: ErrorC (Reference, String) m a } deriving (Alternative, Applicative, Functor, Monad) instance Has (Reader Reference) sig m => MonadFail (FailC m) where fail s = do ref <- ask FailC (throwError (ref :: Reference, s)) instance Has (Reader Reference) sig m => Algebra (Fail :+: sig) (FailC m) where alg _ (L (Fail s)) _ = fail s alg hdl (R other) ctx = FailC (alg (runFailC . hdl) (R other) ctx) ================================================ FILE: semantic-analysis/src/Analysis/Carrier/Statement/State.hs ================================================ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} module Analysis.Carrier.Statement.State ( -- * Messages Message(..) -- * Statement carrier , runStatement , StatementC(..) -- * Statement effect , module Analysis.Effect.Statement ) where import Analysis.Effect.Statement hiding (Import) import qualified Analysis.Effect.Statement as S import Control.Algebra import Control.Carrier.State.Church import Control.Monad.Fail as Fail import Data.List.NonEmpty (NonEmpty) import Data.Text (Text) -- Messages newtype Message = Import (NonEmpty Text) deriving (Eq, Ord, Show) -- Statement carrier runStatement :: ([Message] -> a -> m r) -> StatementC m a -> m r runStatement k (StatementC m) = runState (k . reverse) [] m newtype StatementC m a = StatementC { runStatementC :: StateC [Message] m a } deriving (Applicative, Functor, Monad, Fail.MonadFail) instance Algebra sig m => Algebra (S.Statement :+: sig) (StatementC m) where alg hdl sig ctx = case sig of L (S.Import ns) -> StatementC ((<$ ctx) <$> modify (Import ns:)) R other -> StatementC (alg (runStatementC . hdl) (R other) ctx) ================================================ FILE: semantic-analysis/src/Analysis/Carrier/Store/Monovariant.hs ================================================ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} module Analysis.Carrier.Store.Monovariant ( -- * Store carrier MAddr(..) , MStore(..) , runStoreState , runStore , StoreC(..) -- * Store effect , module Analysis.Effect.Store -- * Env carrier , EnvC(..) -- * Env effect , module Analysis.Effect.Env -- * Running , runFiles , runFilesIndependent ) where import Analysis.Effect.Env import Analysis.Effect.Store import Analysis.File (File) import Analysis.Name import Control.Algebra import Control.Carrier.State.Church import Control.Effect.Labelled import Control.Effect.NonDet import Control.Monad.Fail as Fail import Data.Map as Map import Data.Set as Set newtype MAddr = MAddr { getMAddr :: Name } deriving (Eq, Ord, Show) newtype MStore value = MStore { getMStore :: Map.Map MAddr (Set.Set value) } deriving (Eq, Ord, Show) instance Ord value => Semigroup (MStore value) where MStore s1 <> MStore s2 = MStore (Map.unionWith Set.union s1 s2) instance Ord value => Monoid (MStore value) where mempty = MStore Map.empty -- Store carrier runStoreState :: Applicative m => StateC (MStore value) m a -> m (MStore value, a) runStoreState = runState (curry pure) (MStore Map.empty) runStore :: Labelled Store (StoreC value) m a -> m a runStore = runStoreC . runLabelled newtype StoreC value m a = StoreC { runStoreC :: m a } deriving (Alternative, Applicative, Functor, Monad, Fail.MonadFail) instance (Has (State (MStore value)) sig m, Alternative m, Ord value) => Algebra (Store MAddr value :+: sig) (StoreC value m) where alg hdl sig ctx = StoreC $ do MStore store <- get @(MStore value) case sig of L op -> case op of Alloc name -> let addr = MAddr name in addr <$ ctx <$ put (MStore (Map.insertWith Set.union addr Set.empty store)) Assign addr value -> ctx <$ put (MStore (Map.insertWith Set.union addr (Set.singleton value) store)) Fetch addr -> foldMapA ((<$ put (MStore store)) . (<$ ctx)) (Map.findWithDefault Set.empty addr store) R other -> alg (runStoreC . hdl) other ctx -- Env carrier newtype EnvC value m a = EnvC { runEnv :: m a } deriving (Applicative, Functor, Monad, Fail.MonadFail) instance Has (State (MStore value)) sig m => Algebra (Env MAddr :+: sig) (EnvC value m) where alg hdl sig ctx = case sig of L op -> case op of Bind _ _ m -> hdl (m <$ ctx) Lookup n -> do MStore store <- get @(MStore value) pure (MAddr n <$ Map.lookup (MAddr n) store <$ ctx) R other -> EnvC (alg (runEnv . hdl) other ctx) -- Running runFiles :: Algebra sig m => (forall sig m . Has (State (MStore value)) sig m => File term -> m (File result)) -> [File term] -> m (MStore value, [File result]) runFiles runFile = runStoreState . traverse runFile runFilesIndependent :: Algebra sig m => (forall sig m . Has (State (MStore value)) sig m => File term -> m (File result)) -> [File term] -> m [(MStore value, File result)] runFilesIndependent runFile = traverse (runStoreState . runFile) ================================================ FILE: semantic-analysis/src/Analysis/Carrier/Store/Precise.hs ================================================ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} module Analysis.Carrier.Store.Precise ( -- * Store carrier PAddr(..) , PStore(..) , PEnv , runStore , StoreC(StoreC) -- * Store effect , module Analysis.Effect.Store -- * Env carrier , runEnv , EnvC(..) -- * Env effect , module Analysis.Effect.Env ) where import Analysis.Effect.Env import Analysis.Effect.Store import Analysis.Name import Control.Algebra import Control.Carrier.Reader import Control.Carrier.State.Church import Control.Effect.Labelled import Control.Monad.Fail as Fail import Data.IntMap as IntMap import Data.Map as Map newtype PAddr = PAddr Int newtype PStore a = PStore (IntMap.IntMap (Maybe a)) deriving (Eq, Ord, Monoid, Semigroup, Show) type PEnv = Map.Map Name PAddr -- Store carrier runStore :: Applicative m => Labelled Store (StoreC val) m a -> m (PStore val, a) runStore = runState (curry pure) mempty . runStoreC . runLabelled newtype StoreC val m a = StoreC { runStoreC :: StateC (PStore val) m a } deriving (Applicative, Functor, Monad) instance Algebra sig m => Algebra (Store PAddr val :+: sig) (StoreC val m) where alg hdl sig ctx = StoreC $ case sig of L op -> case op of Alloc _ -> StateC $ \ k (PStore heap) -> do let a = maybe 0 ((+ 1) . fst) (IntMap.lookupMax heap) k (PStore (IntMap.insert a Nothing heap)) (PAddr a <$ ctx) Assign (PAddr a) v -> ctx <$ modify (\ (PStore heap) -> PStore (IntMap.insert a (Just v) heap)) Fetch (PAddr a) -> gets (\ (PStore heap) -> maybe (error "unallocated addr") (maybe (error "uninitialized addr") (<$ ctx)) (IntMap.lookup a heap)) R other -> alg (runStoreC . hdl) (R other) ctx -- Env carrier runEnv :: EnvC m a -> m a runEnv = runReader Map.empty . runEnvC newtype EnvC m a = EnvC { runEnvC :: ReaderC PEnv m a } deriving (Applicative, Functor, Monad, Fail.MonadFail) instance Algebra sig m => Algebra (Env PAddr :+: sig) (EnvC m) where alg hdl sig ctx = EnvC $ case sig of L (Bind name addr m) -> local (Map.insert name addr) (runEnvC (hdl (m <$ ctx))) L (Lookup name) -> asks ((<$ ctx) . Map.lookup name) R other -> alg (runEnvC . hdl) (R other) ctx ================================================ FILE: semantic-analysis/src/Analysis/Data/Snoc.hs ================================================ {-# LANGUAGE DeriveTraversable #-} module Analysis.Data.Snoc ( Snoc(..) ) where data Snoc a = Nil | Snoc a :> a deriving (Foldable, Functor, Traversable) ================================================ FILE: semantic-analysis/src/Analysis/Effect/Domain.hs ================================================ {-# LANGUAGE GADTs #-} {- TODO - machine integer sizes -} module Analysis.Effect.Domain ( -- * Variables dvar -- * Functions , dabs , dapp -- * Integers , dint -- * Unit , dunit -- * Booleans , dtrue , dfalse , dbool , dif -- * Strings , dstring -- * Statements , (>>>) -- * Exceptions , ddie -- * Domain effect , Dom(..) ) where import Analysis.Functor.Named import Control.Algebra import Data.Text (Text) -- Variables dvar :: Has (Dom val) sig m => Name -> m val dvar = send . DVar -- Functions dabs :: Has (Dom val) sig m => [Name] -> ([val] -> m val) -> m val dabs n = send . DAbs n dapp :: Has (Dom val) sig m => val -> [val] -> m val dapp f a = send $ DApp f a -- Integers dint :: Has (Dom val) sig m => Int -> m val dint = send . DInt -- Unit dunit :: Has (Dom val) sig m => m val dunit = send DUnit -- Booleans dtrue :: Has (Dom val) sig m => m val dtrue = dbool True dfalse :: Has (Dom val) sig m => m val dfalse = dbool False dbool :: Has (Dom val) sig m => Bool -> m val dbool = send . DBool dif :: Has (Dom val) sig m => val -> m val -> m val -> m val dif c t e = send $ DIf c t e -- Strings dstring :: Has (Dom val) sig m => Text -> m val dstring = send . DString -- Statements -- | Combine the results of adjacent statements. -- -- 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. (>>>) :: Has (Dom val) sig m => val -> val -> m val t >>> u = send (t :>>> u) -- Exceptions ddie :: Has (Dom val) sig m => val -> m val ddie = send . DDie -- Domain effect data Dom val m k where DVar :: Name -> Dom val m val DAbs :: [Name] -> ([val] -> m val) -> Dom val m val DApp :: val -> [val] -> Dom val m val DInt :: Int -> Dom val m val DUnit :: Dom val m val DBool :: Bool -> Dom val m val DIf :: val -> m val -> m val -> Dom val m val DString :: Text -> Dom val m val (:>>>) :: val -> val -> Dom val m val DDie :: val -> Dom val m val ================================================ FILE: semantic-analysis/src/Analysis/Effect/Env.hs ================================================ {-# LANGUAGE GADTs #-} module Analysis.Effect.Env ( -- * Env effect bind , lookupEnv , Env(..) -- * Re-exports , Algebra , Has , run ) where import Analysis.Name import Control.Algebra bind :: Has (Env addr) sig m => Name -> addr -> m a -> m a bind name addr m = send (Bind name addr m) lookupEnv :: Has (Env addr) sig m => Name -> m (Maybe addr) lookupEnv name = send (Lookup name) data Env addr m k where Bind :: Name -> addr -> m a -> Env addr m a Lookup :: Name -> Env addr m (Maybe addr) ================================================ FILE: semantic-analysis/src/Analysis/Effect/Statement.hs ================================================ {-# LANGUAGE GADTs #-} {-# LANGUAGE KindSignatures #-} {- | The @'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. Currently 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. -} module Analysis.Effect.Statement ( -- * Statement effect simport , Statement(..) ) where import Control.Algebra import Data.Kind as K import Data.List.NonEmpty (NonEmpty) import Data.Text -- Statement effect simport :: Has Statement sig m => NonEmpty Text -> m () simport ns = send (Import ns) data Statement (m :: K.Type -> K.Type) k where Import :: NonEmpty Text -> Statement m () ================================================ FILE: semantic-analysis/src/Analysis/Effect/Store.hs ================================================ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE TypeApplications #-} module Analysis.Effect.Store ( -- * Store effect alloc , (.=) , fetch , Store(..) -- * Re-exports , Algebra , Has , run ) where import Analysis.Name import Control.Effect.Labelled import Data.Kind as K -- Store effect alloc :: HasLabelled Store (Store addr val) sig m => Name -> m addr alloc = sendLabelled @Store . Alloc (.=) :: HasLabelled Store (Store addr val) sig m => addr -> val -> m () addr .= val = sendLabelled @Store $ Assign addr val infix 2 .= fetch :: HasLabelled Store (Store addr val) sig m => addr -> m val fetch = sendLabelled @Store . Fetch data Store addr val (m :: K.Type -> K.Type) k where Alloc :: Name -> Store addr val m addr Assign :: addr -> val -> Store addr val m () Fetch :: addr -> Store addr val m val ================================================ FILE: semantic-analysis/src/Analysis/File.hs ================================================ {-# LANGUAGE DeriveTraversable #-} module Analysis.File ( -- * Files File(..) -- * Constructors , fromBody , fromPath -- * Eliminators , fileLanguage ) where import qualified Analysis.Reference as A import Data.Maybe (fromJust, listToMaybe) import GHC.Stack import Source.Language as Language import Source.Span -- Files data File a = File { fileRef :: !A.Reference , fileBody :: !a } deriving (Eq, Foldable, Functor, Ord, Show, Traversable) -- Constructors fromBody :: HasCallStack => a -> File a fromBody body = File (A.Reference (srcLocFile srcLoc) (spanFromSrcLoc srcLoc)) body where srcLoc = snd (fromJust (listToMaybe (getCallStack callStack))) fromPath :: FilePath -> File Language fromPath p = File (A.fromPath p) (Language.forPath p) -- Eliminators -- | The language of the provided file, as inferred by 'Language.forPath'. fileLanguage :: File a -> Language fileLanguage = Language.forPath . A.refPath . fileRef ================================================ FILE: semantic-analysis/src/Analysis/FlowInsensitive.hs ================================================ {-# LANGUAGE GeneralisedNewtypeDeriving #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} module Analysis.FlowInsensitive ( -- * Flow-insensitive convergence convergeTerm , cacheTerm , CacheC(..) , runCache -- * Kleene least fixed-point theorem , converge , convergeBy , convergeMaybe , convergeEither -- * Caches , Cache(..) , emptyCache , lookupCache , insertCache , insertsCache ) where import Analysis.Carrier.Store.Monovariant import Control.Algebra import Control.Carrier.NonDet.Church import Control.Carrier.Reader import Control.Carrier.State.Church import Control.Monad ((<=<)) import Control.Monad.Fail as Fail import qualified Data.Map as Map import Data.Maybe (fromMaybe) import qualified Data.Set as Set convergeTerm :: forall term value m sig . ( Has (State (MStore value)) sig m , Ord term , Ord value ) => (term -> CacheC term value m value) -> term -> m (Set.Set value) convergeTerm eval term = do heap <- get @(MStore value) lookupCache term . fst <$> converge (\ (prevCache, _) -> runCache prevCache (eval term)) (emptyCache, heap) cacheTerm :: ( Alternative m , Has (Reader (Cache term value)) sig m , Has (State (Cache term value)) sig m , Ord term , Ord value ) => (term -> m value) -> (term -> m value) cacheTerm eval term = do cached <- gets (lookupCache term) if Set.null cached then do results <- asks (lookupCache term) modify (insertsCache term (results `asTypeOf` cached)) result <- eval term result <$ modify (insertCache term result) else foldMapA pure cached newtype CacheC term value m a = CacheC (NonDetC (ReaderC (Cache term value) (StateC (Cache term value) m)) a) deriving (Algebra (NonDet :+: Reader (Cache term value) :+: State (Cache term value) :+: sig), Alternative, Applicative, Functor, Monad, Fail.MonadFail) runCache :: (Has (State (MStore value)) sig m, Ord a) => Cache term value -> CacheC term value m a -> m (Cache term value, MStore value) runCache prevCache (CacheC m) = runState (curry pure) emptyCache (runReader prevCache (runNonDetM Set.singleton m *> get)) -- Kleene least fixed-point theorem -- | Iterate a monadic action starting from some initial seed until the results converge. -- -- This applies the Kleene fixed-point theorem to finitize a monotone action. cf https://en.wikipedia.org/wiki/Kleene_fixed-point_theorem converge :: (Eq a, Monad m) => (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. -> a -- ^ An initial seed value to iterate from. -> m a -- ^ A computation producing the least fixed point (the first value at which the actions converge). converge = convergeBy (==) -- | Iterate a monadic action starting from some initial seed until the results converge according to the passed test. -- -- This applies the Kleene fixed-point theorem to finitize a monotone action. cf https://en.wikipedia.org/wiki/Kleene_fixed-point_theorem convergeBy :: Monad m => (a -> a -> Bool) -- ^ A function to use as the equality test to determine convergence. -> (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. -> a -- ^ An initial seed value to iterate from. -> m a -- ^ A computation producing the least fixed point (the first value at which the actions converge). convergeBy (==) f = convergeMaybe (\ x -> qualify x <$> f x) where qualify x x' | x == x' = Nothing | otherwise = Just x' -- | Iterate a monadic action starting from some initial seed until the results converge. -- -- This applies the Kleene fixed-point theorem to finitize a monotone action. cf https://en.wikipedia.org/wiki/Kleene_fixed-point_theorem convergeMaybe :: Monad m => (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. -> a -- ^ An initial seed value to iterate from. -> m a -- ^ A computation producing the least fixed point (the first value at which the actions converge). convergeMaybe f = convergeEither (\ x -> maybe (Left x) Right <$> f x) -- | Iterate a monadic action starting from some initial seed until the results converge. -- -- This applies the Kleene fixed-point theorem to finitize a monotone action. cf https://en.wikipedia.org/wiki/Kleene_fixed-point_theorem convergeEither :: Monad m => (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. -> a -- ^ An initial seed value to iterate from. -> m b -- ^ A computation producing the least fixed point (the first value at which the actions converge). convergeEither f = loop where loop = either pure loop <=< f -- Caches newtype Cache term value = Cache { getCache :: Map.Map term (Set.Set value) } deriving (Eq, Ord, Show) instance (Ord term, Ord value) => Semigroup (Cache term value) where Cache a <> Cache b = Cache (Map.unionWith (<>) a b) instance (Ord term, Ord value) => Monoid (Cache term value) where mempty = emptyCache emptyCache :: Cache term value emptyCache = Cache Map.empty lookupCache :: Ord term => term -> Cache term value -> Set.Set value lookupCache k (Cache m) = fromMaybe Set.empty (Map.lookup k m) insertCache :: (Ord term, Ord value) => term -> value -> Cache term value -> Cache term value insertCache term value (Cache m) = Cache (Map.insertWith (<>) term (Set.singleton value) m) insertsCache :: (Ord term, Ord value) => term -> Set.Set value -> Cache term value -> Cache term value insertsCache term values (Cache m) = Cache (Map.insertWith (<>) term values m) ================================================ FILE: semantic-analysis/src/Analysis/Functor/Named.hs ================================================ {-# LANGUAGE DeriveFoldable #-} {-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE DeriveTraversable #-} module Analysis.Functor.Named ( module Analysis.Name , Named (..) , named , named' , namedName , namedValue ) where import Analysis.Name import Data.Function (on) -- | Annotates an @a@ with a 'Name'-provided name, which is ignored for '==' and 'compare'. data Named a = Named Name a deriving (Foldable, Functor, Show, Traversable) named :: Name -> a -> Named a named = Named named' :: Name -> Named Name named' u = Named u u namedName :: Named a -> Name namedName (Named n _) = n namedValue :: Named a -> a namedValue (Named _ a) = a instance Eq a => Eq (Named a) where (==) = (==) `on` namedValue instance Ord a => Ord (Named a) where compare = compare `on` namedValue ================================================ FILE: semantic-analysis/src/Analysis/Module.hs ================================================ module Analysis.Module ( Module(..) , moduleBody , ModuleSet(..) , fromList , link ) where import Analysis.File import Analysis.Name import Analysis.Reference import Data.Foldable (foldl') import qualified Data.Map as Map import qualified Data.Set as Set import qualified Data.Text as Text import System.FilePath as Path data Module a = Module { body :: Map.Map Name a -> a , imports :: Set.Set Name , exports :: Map.Map Name a , unknown :: Set.Set Name } instance Show a => Show (Module a) where showsPrec p (Module b i e u) = showParen (p > 10) (showString "Module" . sp . braces ( field "body" (b mempty) . comma . sp . field "imports" i . comma . sp . field "exports" e . comma . sp . field "unknown" u)) where braces b = showChar '{' . sp . b . sp . showChar '}' comma = showChar ',' field n b = showString n . sp . showChar '=' . sp . showsPrec 0 b sp = showChar ' ' moduleBody :: Module a -> a moduleBody m = body m mempty newtype ModuleSet a = ModuleSet { getModuleSet :: Map.Map Name (Module a) } deriving (Show) instance Semigroup (ModuleSet a) where m1 <> m2 = ModuleSet ((link m2 <$> getModuleSet m1) <> (link m1 <$> getModuleSet m2)) instance Monoid (ModuleSet a) where mempty = ModuleSet mempty fromList :: [File (Module a)] -> ModuleSet a fromList = ModuleSet . Map.fromList . map (\ (File ref mod) -> (refName ref, mod)) where refName (Reference path _) = name (Text.pack (Path.takeBaseName path)) link :: ModuleSet a -> Module a -> Module a link (ModuleSet ms) m = Module body' (imports m Set.\\ Map.keysSet ms) (exports m) unknown' where (unknown', body') = foldl' (uncurry resolveSymbolsInModule) (unknown m, body m) (Map.restrictKeys ms (imports m)) resolveSymbolsInModule unknown body m = (unknown Set.\\ Map.keysSet (exports m), body . mappend (Map.restrictKeys (exports m) unknown)) ================================================ FILE: semantic-analysis/src/Analysis/Name.hs ================================================ {-# LANGUAGE FlexibleContexts #-} module Analysis.Name ( Name -- * Constructors , gensym , name , nameI , formatName , isGenerated -- * De Bruijn indices & levels , Level(..) , Index(..) -- ** Conversions , levelToIndex , indexToLevel ) where import Control.Effect.Fresh import Data.Aeson import qualified Data.Char as Char import Data.Hashable import Data.String import Data.Text (Text) import qualified Data.Text as Text -- | The type of variable names. data Name = Name Text | I Int deriving (Eq, Ord) instance IsString Name where fromString = Name . fromString -- | Generate a fresh (unused) name for use in synthesized variables/closures/etc. gensym :: Has Fresh sig m => m Name gensym = I <$> fresh -- | Construct a 'Name' from a 'Text'. name :: Text -> Name name = Name isGenerated :: Name -> Bool isGenerated (I _) = True isGenerated _ = False -- | 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. nameI :: Int -> Name nameI = I -- | Extract a human-readable 'Text' from a 'Name'. -- Sample outputs can be found in @Data.Abstract.Name.Spec@. formatName :: Name -> Text formatName (Name name) = name formatName (I i) = Text.pack $ '_' : (alphabet !! a) : replicate n 'ʹ' where alphabet = ['a'..'z'] (n, a) = i `divMod` length alphabet instance Show Name where showsPrec _ = prettyShowString . Text.unpack . formatName where prettyShowString str = showChar '"' . foldr ((.) . prettyChar) id str . showChar '"' prettyChar c | c `elem` ['\\', '\"'] = Char.showLitChar c | Char.isPrint c = showChar c | otherwise = Char.showLitChar c instance Hashable Name where hashWithSalt salt (Name name) = hashWithSalt salt name hashWithSalt salt (I i) = salt `hashWithSalt` (1 :: Int) `hashWithSalt` i instance ToJSON Name where toJSON = toJSON . formatName toEncoding = toEncoding . formatName -- De Bruijn indices & levels -- | De Bruijn levels. newtype Level = Level { getLevel :: Int } deriving (Eq, Ord, Show) -- | De Bruijn indicex. newtype Index = Index { getIndex :: Int } deriving (Eq, Ord, Show) -- Conversions levelToIndex :: Level -> Level -> Index levelToIndex (Level d) (Level level) = Index (d - level - 1) indexToLevel :: Level -> Index -> Level indexToLevel (Level d) (Index index) = Level (d - index - 1) ================================================ FILE: semantic-analysis/src/Analysis/Project.hs ================================================ module Analysis.Project ( Project (..) , projectExtensions , projectName , projectFiles ) where import Prelude hiding (readFile) import Analysis.Blob import Analysis.File import Data.Text (Text) import qualified Data.Text as T import Source.Language import System.FilePath (takeFileName) -- | A 'Project' contains all the information that semantic needs -- to execute an analysis, diffing, or graphing pass. data Project = Project { projectRootDir :: FilePath , projectBlobs :: [Blob] , projectLanguage :: Language , projectExcludeDirs :: [FilePath] } deriving (Eq, Show) projectName :: Project -> Text projectName = T.pack . takeFileName . projectRootDir projectExtensions :: Project -> [String] projectExtensions = extensionsForLanguage . projectLanguage projectFiles :: Project -> [File Language] projectFiles = fmap blobFile . projectBlobs ================================================ FILE: semantic-analysis/src/Analysis/Reference.hs ================================================ module Analysis.Reference ( -- * Reference Reference(..) -- * Constructors , fromPath ) where import Source.Span -- Reference data Reference = Reference { refPath :: FilePath , refSpan :: Span } deriving (Eq, Ord, Show) -- Constructors fromPath :: FilePath -> Reference fromPath p = Reference p (point (Pos 0 0)) ================================================ FILE: semantic-analysis/src/Analysis/Syntax/Python.hs ================================================ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE LambdaCase #-} -- | This belongs in @semantic-python@ instead of @semantic-analysis@, but for the sake of expedience… module Analysis.Syntax.Python ( -- * Syntax Term(..) , subterms -- * Abstract interpretation , eval0 , eval -- * Parsing , parse ) where import Analysis.Effect.Domain hiding ((:>>>)) import qualified Analysis.Effect.Statement as S import Analysis.Name import Analysis.Reference import Analysis.VM import Control.Effect.Labelled import Control.Effect.Reader import Control.Monad (foldM) import Data.Foldable (for_) import Data.Function (fix) import Data.List.NonEmpty (nonEmpty) import Data.Maybe (mapMaybe) import qualified Data.Set as Set import Data.Text (pack) import qualified Language.Python.Common as Py import Language.Python.Version3.Parser import Source.Span (Pos (..), Span (..), point) import System.FilePath (takeBaseName) -- Syntax data Term = Module (Py.Module Py.SrcSpan) | Statement (Py.Statement Py.SrcSpan) | Expr (Py.Expr Py.SrcSpan) deriving (Eq, Ord, Show) -- | Non-generic production of the recursive set of subterms. -- -- This should be exactly the set of nodes which 'eval' can visit, i.e. it excludes comments, etc. subterms :: Term -> Set.Set Term subterms t = Set.insert t $ case t of Module (Py.Module ss) -> suite ss Statement (Py.Conditional cts e _) -> foldMap (\ (c, t) -> subterms (Expr c) <> suite t) cts <> suite e Statement (Py.Raise (Py.RaiseV3 e) _) -> maybe Set.empty (subterms . Expr . fst) e -- FIXME: Py.RaiseV2 -- FIXME: whatever the second field is Statement (Py.StmtExpr e _) -> subterms (Expr e) Statement (Py.Fun _ _ _ ss _) -> suite ss -- FIXME: include 'subterms' of any default values Expr (Py.Call f as _) -> subterms (Expr f) <> foldMap (\case { Py.ArgExpr e _ -> subterms (Expr e) ; _ -> Set.empty }) as -- FIXME: support keyword args &c. _ -> Set.empty -- TBD, and terminals where suite = foldMap (subterms . Statement) -- Abstract interpretation eval0 :: (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 eval0 = fix eval eval :: (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) -> (Term -> m val) eval eval = \case Module (Py.Module ss) -> suite ss Statement (Py.Import is sp) -> setSpan sp $ do for_ is $ \ Py.ImportItem{ Py.import_item_name = ns } -> case nonEmpty ns of Nothing -> pure () Just ss -> S.simport (pack . Py.ident_string <$> ss) dunit Statement (Py.Pass sp) -> setSpan sp dunit Statement (Py.Conditional cts e sp) -> setSpan sp $ foldr (\ (c, t) e -> do c' <- eval (Expr c) dif c' (suite t) e) (suite e) cts Statement (Py.Raise (Py.RaiseV3 e) sp) -> setSpan sp $ case e of Just (e, _) -> eval (Expr e) >>= ddie -- FIXME: from clause Nothing -> dunit >>= ddie -- FIXME: RaiseV2 -- FIXME: whatever the second field is Statement (Py.StmtExpr e sp) -> setSpan sp (eval (Expr e)) 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')) Expr (Py.Var n sp) -> setSpan sp $ let n' = ident n in lookupEnv n' >>= maybe (dvar n') fetch Expr (Py.Bool b sp) -> setSpan sp $ dbool b Expr (Py.Strings ss sp) -> setSpan sp $ dstring (pack (mconcat ss)) Expr (Py.Call f as sp) -> setSpan sp $ do f' <- eval (Expr f) as' <- traverse eval (mapMaybe (\case { Py.ArgExpr e _ -> Just (Expr e) ; _ -> Nothing }) as) -- FIXME: support keyword args &c. dapp f' as' _ -> fail "TBD" where setSpan s = case fromSpan s of Just s -> local (\ r -> r{ refSpan = s }) _ -> id fromSpan Py.SpanEmpty = Nothing fromSpan (Py.SpanPoint _ l c) = Just (point (Pos l c)) fromSpan (Py.SpanCoLinear _ l c1 c2) = Just (Span (Pos l c1) (Pos l c2)) fromSpan (Py.SpanMultiLine _ l1 l2 c1 c2) = Just (Span (Pos l1 c1) (Pos l2 c2)) suite [] = dunit suite (s:ss) = do s' <- eval (Statement s) foldM (\ into each -> do each' <- eval (Statement each) into >>> each') s' ss ident = name . pack . Py.ident_string -- Parsing parse :: FilePath -> IO Term parse path = do src <- readFile path case parseModule src (takeBaseName path) of Left err -> fail (show err) Right (Py.Module ss, _) -> pure (Module (Py.Module ss)) ================================================ FILE: semantic-analysis/src/Analysis/Syntax.hs ================================================ {-# LANGUAGE RankNTypes #-} {-# LANGUAGE UndecidableInstances #-} module Analysis.Syntax ( -- * Syntax Term(..) , subterms , foldTerm , paraTerm , mendlerTerm , mendlerParaTerm ) where import qualified Data.Set as Set -- Syntax -- | (Currently) untyped term representations. data Term sig v = Var v | Term (sig (Term sig v)) instance (Eq (sig (Term sig v)), Eq v) => Eq (Term sig v) where Var v1 == Var v2 = v1 == v2 Term s1 == Term s2 = s1 == s2 _ == _ = False instance (Ord (sig (Term sig v)), Ord v) => Ord (Term sig v) where compare (Var v1) (Var v2) = compare v1 v2 compare (Var _) _ = LT compare (Term s1) (Term s2) = compare s1 s2 compare _ _ = GT subterms :: (Ord (sig (Term sig v)), Ord v, Foldable sig) => Term sig v -> Set.Set (Term sig v) subterms = mendlerParaTerm (Set.singleton . Var) (\ k -> foldMap (uncurry Set.insert . k)) foldTerm :: Functor sig => (v -> r) -> (sig r -> r) -> (Term sig v -> r) foldTerm var sig = mendlerTerm var (\ k -> sig . fmap k) paraTerm :: Functor sig => (v -> r) -> (sig (Term sig v, r) -> r) -> (Term sig v -> r) paraTerm var sig = mendlerParaTerm var (\ k -> sig . fmap k) mendlerTerm :: (v -> r) -> (forall r' . (r' -> r) -> sig r'-> r) -> (Term sig v -> r) mendlerTerm var sig = go where go (Var v) = var v go (Term s) = sig go s mendlerParaTerm :: (v -> r) -> (forall r' . (r' -> (Term sig v, r)) -> sig r'-> r) -> (Term sig v -> r) mendlerParaTerm var sig = go where go (Var v) = var v go (Term s) = sig ((,) <*> go) s ================================================ FILE: semantic-analysis/src/Analysis/VM.hs ================================================ {-# LANGUAGE FlexibleContexts #-} module Analysis.VM ( -- * Macro-expressible syntax let' , letrec -- * Re-exports , module Analysis.Effect.Env , module Analysis.Effect.Store ) where import Analysis.Effect.Env import Analysis.Effect.Store import Analysis.Name import Control.Effect.Labelled -- Macro-expressible syntax let' :: (Has (Env addr) sig m, HasLabelled Store (Store addr val) sig m) => Name -> val -> m a -> m a let' n v m = do addr <- alloc n addr .= v bind n addr m letrec :: (Has (Env addr) sig m, HasLabelled Store (Store addr val) sig m) => Name -> m val -> m val letrec n m = do addr <- alloc n v <- bind n addr m addr .= v pure v ================================================ FILE: semantic-ast/BUILD.bazel ================================================ package(default_visibility = ["//visibility:public"]) load( "@rules_haskell//haskell:defs.bzl", "haskell_binary", "haskell_library", ) load( "@rules_haskell//haskell:cabal.bzl", "haskell_cabal_binary", "haskell_cabal_library", ) load( "//:build/common.bzl", "EXECUTABLE_FLAGS", "GHC_FLAGS", ) haskell_library( name = "semantic-ast", srcs = glob(["src/**/*.hs"]), compiler_flags = GHC_FLAGS + ["-XOverloadedStrings"], deps = [ "//:base", "//:bytestring", "//:containers", "//:filepath", "//:template-haskell", "//:text", "//semantic-source", "@stackage//:Glob", "@stackage//:aeson", "@stackage//:aeson-pretty", "@stackage//:attoparsec", "@stackage//:bazel-runfiles", "@stackage//:directory", "@stackage//:fused-effects", "@stackage//:hedgehog", "@stackage//:optparse-applicative", "@stackage//:pathtype", "@stackage//:pretty-simple", "@stackage//:tasty", "@stackage//:tasty-hedgehog", "@stackage//:tasty-hunit", "@stackage//:tree-sitter", "@stackage//:tree-sitter-python", "@stackage//:unordered-containers", ], ) all_ts_deps = ["@tree-sitter-{name}".format(name = name) for name in [ "go", "java", "json", "php", "python", "ql", "ruby", "rust", "tsx", "typescript", ]] all_file_deps = ["@tree-sitter-{name}//:src/node-types.json".format(name = name) for name in [ "go", "java", "json", "php", "python", "ql", "ruby", "rust", "tsx", "typescript", ]] haskell_binary( name = "generate-ast", srcs = glob(["app/**/*.hs"]), compiler_flags = GHC_FLAGS + EXECUTABLE_FLAGS + ["-XStrictData"], data = all_file_deps, deps = [ ":semantic-ast", "//:base", "//:filepath", "//:process", "//:template-haskell", "//:text", "//semantic-source", "@stackage//:bazel-runfiles", "@stackage//:directory", "@stackage//:generic-lens", "@stackage//:lens", "@stackage//:neat-interpolation", "@stackage//:optparse-generic", "@stackage//:tree-sitter", ] + all_ts_deps, ) ================================================ FILE: semantic-ast/CHANGELOG.md ================================================ # Revision history for semantic-ast ## 0.1.0.0 -- YYYY-mm-dd * First version. Released on an unsuspecting world. ================================================ FILE: semantic-ast/LICENSE ================================================ MIT License Copyright (c) 2019 GitHub Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: semantic-ast/README.md ================================================ # semantic-ast This package is concerned with the CodeGen generation of strongly-typed ASTs. The provided `semantic-ast` executable is responsible for generating ASTs from language definitions. You can run it like so: ``` cabal run semantic-ast -- --language=JSON ``` You can also pass `all` to regenerate every language definition: ``` cabal run semantic-ast -- --language=all ``` [Documentation](https://github.com/github/semantic/blob/master/docs/codegen.md) ================================================ FILE: semantic-ast/Setup.hs ================================================ import Distribution.Simple main = defaultMain ================================================ FILE: semantic-ast/app/Main.hs ================================================ {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeSynonymInstances #-} {-# OPTIONS_GHC -fno-warn-orphans #-} module Main (main) where import AST.GenerateSyntax import qualified Bazel.Runfiles as Bazel import Control.Lens (Traversal', mapped, (%~)) import Control.Monad import Data.Foldable import Data.Generics.Product.Typed (typed) import Data.Maybe import Data.Text (Text) import qualified Data.Text as T import qualified Data.Text.IO as T import Foreign import GHC.Generics (Generic) import Language.Haskell.TH hiding (JavaScript) import Language.Haskell.TH.Lens import NeatInterpolation import qualified Options.Generic as Opt import Source.Language import System.FilePath import System.Directory import System.Exit import System.IO import System.Process import Text.Printf import qualified TreeSitter.Go as Go (tree_sitter_go) import qualified TreeSitter.JSON as JSON (tree_sitter_json) import qualified TreeSitter.Java as Java (tree_sitter_java) import qualified TreeSitter.Language import qualified TreeSitter.PHP as PHP (tree_sitter_php) import qualified TreeSitter.Python as Python (tree_sitter_python) import qualified TreeSitter.QL as CodeQL (tree_sitter_ql) import qualified TreeSitter.Ruby as Ruby (tree_sitter_ruby) import qualified TreeSitter.TSX as TSX (tree_sitter_tsx) import qualified TreeSitter.TypeScript as TypeScript (tree_sitter_typescript) -- As a special case, you can pass data Config = Config {language :: Text, rootdir :: FilePath} deriving stock (Show, Generic) deriving anyclass (Opt.ParseRecord) -- There are a few cases where the output emitted by TH's 'pprint' doesn't -- create entirely valid Haskell syntax, because sometimes we get -- a qualified name on the LHS of a typeclass declaration, which Haskell -- doesn't like at all. I haven't figured out quite why we get this qualified -- name, but for now the easiest thing to do is some nested updates with lens. adjust :: Dec -> Dec adjust = _InstanceD . typed . mapped %~ (values %~ truncate) . (functions %~ truncate) where -- Need to handle functions with no arguments, which are parsed as ValD entities, -- as well as those with arguments, which are FunD. values, functions :: Traversal' Dec Name values = _ValD . typed . _VarP functions = _FunD . typed truncate :: Name -> Name truncate = mkName . nameBase pathForLanguage :: Bazel.Runfiles -> Language -> FilePath pathForLanguage rf = let loc = Bazel.rlocation rf in \case CodeQL -> loc "tree-sitter-ql/vendor/tree-sitter-ql/src/node-types.json" Go -> loc "tree-sitter-go/vendor/tree-sitter-go/src/node-types.json" PHP -> loc "tree-sitter-php/vendor/tree-sitter-php/src/node-types.json" Python -> loc "tree-sitter-python/vendor/tree-sitter-python/src/node-types.json" Ruby -> loc "tree-sitter-ruby/vendor/tree-sitter-ruby/src/node-types.json" TypeScript -> loc "tree-sitter-typescript/vendor/tree-sitter-typescript/typescript/src/node-types.json" TSX -> loc "tree-sitter-tsx/vendor/tree-sitter-typescript/tsx/src/node-types.json" JavaScript -> loc "tree-sitter-typescript/vendor/tree-sitter-typescript/typescript/src/node-types.json" JSX -> loc "tree-sitter-typescript/vendor/tree-sitter-typescript/src/tsx/node-types.json" Java -> loc "tree-sitter-java/vendor/tree-sitter-java/src/node-types.json" other -> error ("Couldn't find path for " <> show other) targetForLanguage :: Language -> FilePath targetForLanguage x = let go lc = printf "semantic-%s/src/Language/%s/AST.hs" (lc :: String) (show x) in case x of CodeQL -> go "codeql" Go -> go "go" PHP -> go "php" Python -> go "python" Ruby -> go "ruby" TypeScript -> go "typescript" TSX -> go "tsx" JavaScript -> go "javascript" Java -> go "java" other -> error ("Couldn't find path for " <> show other) parserForLanguage :: Language -> Ptr TreeSitter.Language.Language parserForLanguage = \case Unknown -> error "Unknown language encountered" CodeQL -> (CodeQL.tree_sitter_ql) Go -> Go.tree_sitter_go Haskell -> error "Haskell backend not implemented yet" Java -> Java.tree_sitter_java JavaScript -> TypeScript.tree_sitter_typescript JSON -> JSON.tree_sitter_json JSX -> TSX.tree_sitter_tsx Markdown -> error "Markdown backend deprecated" PHP -> PHP.tree_sitter_php Python -> Python.tree_sitter_python Ruby -> Ruby.tree_sitter_ruby TypeScript -> TypeScript.tree_sitter_typescript TSX -> TSX.tree_sitter_tsx -- nodeTypesPathForLanguage :: Bazel.Runfiles -> Language -> FilePath -- nodeTypesPathForLanguage rf = \case -- CodeQL -> r validLanguages :: [Language] validLanguages = [CodeQL, Go, Java, PHP, Python, Ruby, TypeScript, TSX] emit :: FilePath -> Language -> IO () emit root lang = do rf <- Bazel.create let language = languageToText lang let languageHack = case lang of CodeQL -> "QL" _ -> language let path = pathForLanguage rf lang decls <- T.pack . pprint . fmap adjust <$> astDeclarationsIO (parserForLanguage lang) path let programText = [trimming| -- Language definition for $language, generated by ast-generate. Do not edit! {-# LANGUAGE CPP #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE QuantifiedConstraints #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} module Language.$language.AST (module Language.$language.AST, getTestCorpusDir) where import qualified AST.Parse import qualified AST.Token import qualified AST.Traversable1.Class import qualified AST.Unmarshal import qualified Data.Foldable import qualified Data.List as Data.OldList import qualified Data.Maybe as GHC.Maybe import qualified Data.Text.Internal import qualified Data.Traversable import qualified GHC.Base import qualified GHC.Generics import qualified GHC.Records import qualified GHC.Show import qualified Prelude as GHC.Classes import qualified TreeSitter.Node import TreeSitter.$languageHack (getTestCorpusDir) debugSymbolNames :: [GHC.Base.String] debugSymbolNames = debugSymbolNames_0 $decls |] hasOrmolu <- findExecutable "ormolu" if isNothing hasOrmolu then do T.putStrLn programText hPutStrLn stderr "generate-ast: No `ormolu` executable found, output will look janky." else do (path, tf) <- openTempFile "/tmp" "generated.hs" T.hPutStrLn tf programText hClose tf callProcess "ormolu" ["--mode", "inplace", path] callProcess "cp" [path, root targetForLanguage lang] main :: IO () main = do Config language root <- Opt.getRecord "generate-ast" if language == "all" then traverse_ (emit root) validLanguages else do let lang = textToLanguage language when (lang == Unknown) (die ("Couldn't determine language for " <> T.unpack language)) emit root lang ================================================ FILE: semantic-ast/semantic-ast.cabal ================================================ cabal-version: 2.4 -- Initial package description 'semantic-ast.cabal' generated by 'cabal -- init'. For further documentation, see -- http://haskell.org/cabal/users-guide/ name: semantic-ast version: 0.1.0.0 -- synopsis: -- description: -- bug-reports: license: MIT license-file: LICENSE author: The Semantic Authors maintainer: opensource+semantic@github.com copyright: (c) 2019 GitHub, Inc. category: Language extra-source-files: CHANGELOG.md tested-with: GHC == 8.6.5 common haskell default-language: Haskell2010 ghc-options: -Weverything -Wno-missing-local-signatures -Wno-missing-import-lists -Wno-implicit-prelude -Wno-safe -Wno-unsafe -Wno-name-shadowing -Wno-monomorphism-restriction -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-star-is-type if (impl(ghc >= 8.8)) ghc-options: -Wno-missing-deriving-strategies if (impl(ghc >= 8.10)) ghc-options: -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module if (impl(ghc >= 9.2)) ghc-options: -Wno-missing-kind-signatures cpp-options: -DBAZEL_BUILD=0 library import: haskell exposed-modules: AST.Deserialize AST.Element AST.GenerateSyntax AST.Grammar.TH AST.Marshal.JSON AST.Parse AST.Token AST.Traversable1 AST.Traversable1.Class AST.Unmarshal AST.TestHelpers System.Path.Fixture -- other-modules: -- other-extensions: build-depends: , aeson >= 1.4.2.0 && < 3 , attoparsec >= 0.13.2.2 && < 0.15 , base >= 4.13 && < 5 , bytestring >= 0.10.8.2 && < 0.13 , containers ^>= 0.6.2 , directory ^>= 1.3.3.2 , filepath ^>= 1.4.1 , fused-effects ^>= 1.1 , Glob ^>= 0.10.0 , semantic-source ^>= 0.2 , tasty ^>= 1.2.3 , tasty-hunit ^>= 0.10.0.2 , template-haskell >= 2.15 && < 2.22 , text ^>= 1.2.3.1 , tree-sitter ^>= 0.9.0.0 , unordered-containers ^>= 0.2.10 hs-source-dirs: src ================================================ FILE: semantic-ast/src/AST/Deserialize.hs ================================================ {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE DeriveLift #-} -- Turn off partial field warnings for Datatype. {-# OPTIONS_GHC -Wno-partial-fields #-} module AST.Deserialize ( Datatype (..) , Field (..) , Children(..) , Required (..) , Type (..) , DatatypeName (..) , Named (..) , Multiple (..) ) where import Data.Aeson as Aeson import Data.Aeson.Types import Data.Char import GHC.Generics hiding (Constructor, Datatype) import Language.Haskell.TH.Syntax (Lift) import Data.Text (Text, unpack) import Data.List.NonEmpty (NonEmpty (..)) import qualified Data.HashMap.Strict as HM import Data.Maybe (fromMaybe) -- Types to deserialize into: data Datatype = SumType { datatypeName :: DatatypeName , datatypeNameStatus :: Named , datatypeSubtypes :: NonEmpty Type } | ProductType { datatypeName :: DatatypeName , datatypeNameStatus :: Named , datatypeChildren :: Maybe Children , datatypeFields :: [(String, Field)] } | LeafType { datatypeName :: DatatypeName , datatypeNameStatus :: Named } deriving (Eq, Ord, Show, Generic, ToJSON) instance FromJSON Datatype where parseJSON = withObject "Datatype" $ \v -> do type' <- v .: "type" named <- v .: "named" subtypes <- v .:? "subtypes" case subtypes of Nothing -> do fields <- fmap (fromMaybe HM.empty) (v .:? "fields") children <- v .:? "children" if null fields && null children then pure (LeafType type' named) else ProductType type' named children <$> parseKVPairs (HM.toList fields) Just subtypes -> pure (SumType type' named subtypes) -- | Transforms list of key-value pairs to a Parser parseKVPairs :: [(Text, Value)] -> Parser [(String, Field)] parseKVPairs = traverse go where go :: (Text, Value) -> Parser (String, Field) go (t,v) = do v' <- parseJSON v pure (unpack t, v') data Field = MkField { fieldRequired :: Required , fieldTypes :: NonEmpty Type , fieldMultiple :: Multiple } deriving (Eq, Ord, Show, Generic, ToJSON) instance FromJSON Field where parseJSON = genericParseJSON customOptions newtype Children = MkChildren Field deriving (Eq, Ord, Show, Generic) deriving newtype (ToJSON, FromJSON) data Required = Optional | Required deriving (Eq, Ord, Show, Generic, ToJSON) instance FromJSON Required where parseJSON = withBool "Required" (\p -> pure (if p then Required else Optional)) data Type = MkType { fieldType :: DatatypeName , isNamed :: Named } deriving (Eq, Ord, Show, Generic, ToJSON) instance FromJSON Type where parseJSON = genericParseJSON customOptions newtype DatatypeName = DatatypeName { getDatatypeName :: String } deriving (Eq, Ord, Show, Generic) deriving newtype (FromJSON, ToJSON) data Named = Anonymous | Named deriving (Eq, Ord, Show, Generic, ToJSON, Lift) instance FromJSON Named where parseJSON = withBool "Named" (\p -> pure (if p then Named else Anonymous)) data Multiple = Single | Multiple deriving (Eq, Ord, Show, Generic, ToJSON) instance FromJSON Multiple where parseJSON = withBool "Multiple" (\p -> pure (if p then Multiple else Single)) customOptions :: Aeson.Options customOptions = Aeson.defaultOptions { fieldLabelModifier = initLower . dropPrefix , constructorTagModifier = initLower } dropPrefix :: String -> String dropPrefix = Prelude.dropWhile isLower initLower :: String -> String initLower (c:cs) = toLower c : cs initLower "" = "" ================================================ FILE: semantic-ast/src/AST/Element.hs ================================================ {-# LANGUAGE AllowAmbiguousTypes, DataKinds, FlexibleInstances, MultiParamTypeClasses, PatternSynonyms, ScopedTypeVariables, TypeApplications, TypeFamilies, TypeOperators, UndecidableInstances, ViewPatterns #-} module AST.Element ( Element(..) , pattern Prj , pattern EPrj , (:+:)(..) ) where import qualified AST.Parse as Parse import GHC.Generics ((:+:)(..)) import GHC.TypeLits (ErrorMessage(..), TypeError) -- | 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. class Element sub sup where -- | Project one element out of a sum type. prj :: sup a -> Maybe (sub a) instance (Element' side sub sup, side ~ Find sub sup) => Element sub sup where prj = prj' @side -- | A pattern synonym to conveniently project out matching elements. pattern Prj :: Element sub sup => sub a -> sup a pattern Prj sub <- (prj -> Just sub) -- A pattern synonym that combines matching on @Success@ and @Prj@ eprj :: Element sub sup => Parse.Err (sup a) -> Maybe (sub a) eprj (Parse.Success x) = prj x eprj _ = Nothing pattern EPrj :: Element sub sup => sub a -> Parse.Err (sup a) pattern EPrj sub <- (eprj -> Just sub) -- | Where does the element occur in the tree? data Side = None | Here | L | R -- | Find where in a tree an element occurs. type family Find sub sup :: Side where Find t t = 'Here Find t (l :+: r) = Find' 'L t l <> Find' 'R t r Find _ _ = 'None -- | Helper to compute the side an element occurs on. type family Find' (side :: Side) sub sup :: Side where Find' s t t = s Find' s t (l :+: r) = Find' s t l <> Find' s t r Find' _ _ _ = 'None -- | Return the leftmost non-'None' side, or 'None'. type family (a :: Side) <> (b :: Side) :: Side where 'None <> b = b a <> _ = a -- | Helper to project elements out of the matching portion of a tree. class Element' (side :: Side) sub sup where prj' :: sup a -> Maybe (sub a) -- | Membership is reflexive. instance Element' 'Here t t where prj' = Just -- | Membershp on the left. instance Element t l => Element' 'L t (l :+: r) where prj' (L1 l) = prj l prj' _ = Nothing -- | Membership on the right. instance Element t r => Element' 'R t (l :+: r) where prj' (R1 r) = prj r prj' _ = Nothing -- | Error cases, with custom type errors. instance TypeError ( 'ShowType t ':<>: 'Text " is not in" ':$$: ShowSum u) => Element' 'None t u where prj' _ = Nothing -- | Show a sum tree as a set (for use in type errors). type family ShowSum t where ShowSum (l :+: r) = ShowSum' ('Text "{ ") (l :+: r) ':$$: 'Text "}" ShowSum t = 'Text "{ " ':<>: 'ShowType t ':<>: 'Text " }" -- | Helper for formatting & aligning sums nicely with a prefix. type family ShowSum' p t where ShowSum' p (l :+: r) = ShowSum' p l ':$$: ShowSum' ('Text ", ") r ShowSum' p t = p ':<>: 'ShowType t ================================================ FILE: semantic-ast/src/AST/GenerateSyntax.hs ================================================ {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeApplications #-} module AST.GenerateSyntax ( syntaxDatatype , astDeclarationsForLanguage , astDeclarationsIO ) where import AST.Deserialize (Children (..), Datatype (..), DatatypeName (..), Field (..), Multiple (..), Named (..), Required (..), Type (..)) import qualified AST.Parse as Parse import AST.Token import AST.Traversable1.Class import qualified AST.Unmarshal as TS import Data.Aeson hiding (String) import Data.Foldable import Data.List (elemIndices, genericIndex, intercalate) import Data.List.NonEmpty (NonEmpty (..)) import Data.Text (Text) import Foreign.C.String import Foreign.Ptr import GHC.Generics hiding (Constructor, Datatype) import GHC.Records import Language.Haskell.TH as TH import Language.Haskell.TH.Syntax as TH import System.Directory import System.FilePath.Posix import qualified TreeSitter.Language as TS import TreeSitter.Node import TreeSitter.Symbol (TSSymbol, toHaskellCamelCaseIdentifier, toHaskellPascalCaseIdentifier) -- | Derive Haskell datatypes from a language and its @node-types.json@ file. -- -- 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. -- -- 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. astDeclarationsForLanguage :: Ptr TS.Language -> FilePath -> Q [Dec] astDeclarationsForLanguage language filePath = do _ <- TS.addDependentFileRelative filePath currentFilename <- loc_filename <$> location pwd <- runIO getCurrentDirectory let invocationRelativePath = takeDirectory (pwd currentFilename) filePath astDeclarationsRelative lookupTypeName language invocationRelativePath astDeclarationsIO :: Ptr TS.Language -> FilePath -> IO [Dec] astDeclarationsIO lang p = runQ (astDeclarationsRelative (const (pure Nothing)) lang p) astDeclarationsRelative :: (String -> Q (Maybe Name)) -> Ptr TS.Language -> FilePath -> Q [Dec] astDeclarationsRelative lookupName language invocationRelativePath = do input <- runIO (eitherDecodeFileStrict' invocationRelativePath) >>= either fail pure allSymbols <- runIO (getAllSymbols language) debugSymbolNames <- [d| debugSymbolNames :: [String] debugSymbolNames = $(listE (map (litE . stringL . debugPrefix) allSymbols)) |] mappend debugSymbolNames . concat @[] <$> traverse (syntaxDatatype lookupName language allSymbols) input -- Build a list of all symbols getAllSymbols :: Ptr TS.Language -> IO [(String, Named)] getAllSymbols language = do count <- TS.ts_language_symbol_count language traverse getSymbol [(0 :: TSSymbol) .. fromIntegral (pred count)] where getSymbol i = do cname <- TS.ts_language_symbol_name language i n <- peekCString cname t <- TS.ts_language_symbol_type language i let named = if t == 0 then Named else Anonymous pure (n, named) annParameterName :: Name annParameterName = mkName "a" -- Auto-generate Haskell datatypes for sums, products and leaf types syntaxDatatype :: (String -> Q (Maybe Name)) -> Ptr TS.Language -> [(String, Named)] -> Datatype -> Q [Dec] syntaxDatatype lookupType language allSymbols datatype = skipDefined $ do let traversalInstances = mappend <$> makeStandaloneDerivings (conT name) <*> makeTraversalInstances (conT name) glue a b c = a : b <> c name = mkName nameStr generatedDatatype cons = dataD (cxt []) name [plainTV annParameterName] Nothing cons [deriveStockClause, deriveAnyClassClause] deriveStockClause = derivClause (Just StockStrategy) [conT ''Generic, conT ''Generic1] deriveAnyClassClause = derivClause (Just AnyclassStrategy) [ [t| (forall a. Traversable1 a) |] ] deriveGN = derivClause (Just NewtypeStrategy) [conT ''TS.SymbolMatching] case datatype of SumType (DatatypeName _) _ subtypes -> let types' = fieldTypesToNestedSum subtypes fieldName = mkName ("get" <> nameStr) con = recC name [varBangType fieldName (bangType strictness (types' `appT` varT annParameterName))] hasFieldInstance = makeHasFieldInstance (conT name) (varE fieldName) newType = newtypeD (cxt []) name [plainTV annParameterName] Nothing con [deriveGN, deriveStockClause, deriveAnyClassClause] in glue <$> newType <*> hasFieldInstance <*> traversalInstances ProductType datatypeName named children fields -> let con = ctorForProductType datatypeName children fields symbols = symbolMatchingInstance allSymbols name named datatypeName in glue <$> generatedDatatype [con] <*> symbols <*> traversalInstances -- Anonymous leaf types are defined as synonyms for the `Token` datatype LeafType (DatatypeName datatypeName) Anonymous -> do let tsSymbol = runIO $ withCStringLen datatypeName (\(s, len) -> TS.ts_language_symbol_for_name language s len False) fmap (pure @[]) (tySynD name [] (conT ''Token `appT` litT (strTyLit datatypeName) `appT` litT (tsSymbol >>= numTyLit . fromIntegral))) LeafType datatypeName Named -> let con = ctorForLeafType datatypeName annParameterName symbols = symbolMatchingInstance allSymbols name Named datatypeName in glue <$> generatedDatatype [con] <*> symbols <*> traversalInstances where -- Skip generating datatypes that have already been defined (overridden) in the module where the splice is running. skipDefined m = do isLocal <- lookupType nameStr >>= maybe (pure False) isLocalName if isLocal then pure [] else m nameStr = toNameString (datatypeNameStatus datatype) (getDatatypeName (AST.Deserialize.datatypeName datatype)) makeStandaloneDerivings :: TypeQ -> Q [Dec] makeStandaloneDerivings ty = [d| deriving instance (Eq a) => Eq ($ty a) deriving instance (Ord a) => Ord ($ty a) deriving instance (Show a) => Show ($ty a) instance TS.Unmarshal ($ty) |] makeTraversalInstances :: TypeQ -> Q [Dec] makeTraversalInstances ty = [d| instance Foldable $ty where foldMap = foldMapDefault1 instance Functor $ty where fmap = fmapDefault1 instance Traversable $ty where traverse = traverseDefault1 |] makeHasFieldInstance :: TypeQ -> ExpQ -> Q [Dec] makeHasFieldInstance ty elim = [d|instance HasField "ann" ($ty a) a where getField = TS.gann . $elim |] -- | Create TH-generated SymbolMatching instances for sums, products, leaves symbolMatchingInstance :: [(String, Named)] -> Name -> Named -> DatatypeName -> Q [Dec] symbolMatchingInstance allSymbols name named (DatatypeName str) = do let tsSymbols = elemIndices (str, named) allSymbols names = intercalate ", " $ fmap (debugPrefix . (!!) allSymbols) tsSymbols [d|instance TS.SymbolMatching $(conT name) where matchedSymbols _ = $(lift tsSymbols) showFailure _ node = "expected " <> $(litE (stringL names)) <> " but got " <> if nodeSymbol node == 65535 then "ERROR" else genericIndex debugSymbolNames (nodeSymbol node) <> " [" <> show r1 <> ", " <> show c1 <> "] -" <> " [" <> show r2 <> ", " <> show c2 <> "]" where TSPoint r1 c1 = nodeStartPoint node TSPoint r2 c2 = nodeEndPoint node|] -- | Prefix symbol names for debugging to disambiguate between Named and Anonymous nodes. debugPrefix :: (String, Named) -> String debugPrefix (name, Named) = name debugPrefix (name, Anonymous) = "_" <> name -- | Build Q Constructor for product types (nodes with fields) ctorForProductType :: DatatypeName -> Maybe Children -> [(String, Field)] -> Q Con ctorForProductType constructorName children fields = ctorForTypes constructorName lists where lists = annotation : fieldList <> childList annotation = ("ann", varT annParameterName) fieldList = map (fmap (toType)) fields childList = toList $ fmap toTypeChild children inject t = conT ''Parse.Err `appT` t toType :: Field -> TypeQ toType (MkField required fieldTypes mult) = let ftypes = inject (fieldTypesToNestedSum fieldTypes `appT` varT annParameterName) in case (required, mult) of (Required, Multiple) -> appT (conT ''NonEmpty) ftypes (Required, Single) -> ftypes (Optional, Multiple) -> appT listT ftypes (Optional, Single) -> appT (conT ''Maybe) ftypes toTypeChild (MkChildren field) = ("extra_children", toType field) -- | Build Q Constructor for leaf types (nodes with no fields or subtypes) ctorForLeafType :: DatatypeName -> Name -> Q Con ctorForLeafType name annParameterName = ctorForTypes name [ ("ann", varT annParameterName) -- ann :: a , ("text", conT ''Text) -- text :: Text ] -- TODO: clarify the paths in ctorForProductType, ctorForLeafType, and ctorForTypes, -- inserting an appropriate (''f `appT`) thing -- | Build Q Constructor for records ctorForTypes :: DatatypeName -> [(String, Q TH.Type)] -> Q Con ctorForTypes (DatatypeName constructorName) types = recC (toName Named constructorName) recordFields where recordFields = map (uncurry toVarBangType) types toVarBangType str type' = TH.varBangType (mkName . toHaskellCamelCaseIdentifier $ str) (TH.bangType strictness type') -- | Convert field types to Q types fieldTypesToNestedSum :: NonEmpty AST.Deserialize.Type -> Q TH.Type fieldTypesToNestedSum xs = go (toList xs) where combine lhs rhs = uInfixT lhs ''(:+:) rhs -- (((((a :+: b) :+: c) :+: d)) :+: e) ((a :+: b) :+: (c :+: d)) convertToQType (MkType (DatatypeName n) named) = conT (toName named n) go [x] = convertToQType x go xs = let (l,r) = splitAt (length xs `div` 2) xs in combine (go l) (go r) -- | Create bang required to build records strictness :: BangQ strictness = TH.bang noSourceUnpackedness noSourceStrictness -- | Prepend "Anonymous" to named node when false, otherwise use regular toName toName :: Named -> String -> Name toName named str = mkName (toNameString named str) toNameString :: Named -> String -> String toNameString named str = prefix named <> toHaskellPascalCaseIdentifier str where prefix Anonymous = "Anonymous" prefix Named = "" -- | Get the 'Module', if any, for a given 'Name'. moduleForName :: Name -> Maybe Module moduleForName n = Module . PkgName <$> namePackage n <*> (ModName <$> nameModule n) -- | Test whether the name is defined in the module where the splice is executed. isLocalName :: Name -> Q Bool isLocalName n = (moduleForName n ==) . Just <$> thisModule ================================================ FILE: semantic-ast/src/AST/Grammar/Examples.hs ================================================ {-# LANGUAGE DataKinds, DeriveAnyClass, DeriveGeneric, DuplicateRecordFields, TypeOperators #-} module AST.Grammar.Examples () where import Control.Effect.Reader import Control.Monad.Fail import qualified Data.ByteString as B import qualified Data.Text as Text import qualified Data.Text.Encoding as Text import GHC.Generics ((:+:), Generic1) import Numeric (readDec) import Prelude hiding (fail) import Source.Range import AST.Token import AST.Unmarshal -- | An example of a sum-of-products datatype. newtype Expr a = Expr ((If :+: Block :+: Var :+: Lit :+: Bin) a) deriving (Generic1, Unmarshal) instance SymbolMatching Expr where matchedSymbols _ = [] showFailure _ _ = "" -- | Product with multiple fields. data If a = If { ann :: a, condition :: Expr a, consequence :: Expr a, alternative :: Maybe (Expr a) } deriving (Generic1, Unmarshal) instance SymbolMatching If where matchedSymbols _ = [] showFailure _ _ = "" -- | Single-field product. data Block a = Block { ann :: a, body :: [Expr a] } deriving (Generic1, Unmarshal) instance SymbolMatching Block where matchedSymbols _ = [] showFailure _ _ = "" -- | Leaf node. data Var a = Var { ann :: a, text :: Text.Text } deriving (Generic1, Unmarshal) instance SymbolMatching Var where matchedSymbols _ = [] showFailure _ _ = "" -- | Custom leaf node. data Lit a = Lit { ann :: a, lit :: IntegerLit } deriving (Generic1, Unmarshal) instance SymbolMatching Lit where matchedSymbols _ = [] showFailure _ _ = "" -- | Product with anonymous sum field. data Bin a = Bin { ann :: a, lhs :: Expr a, op :: (AnonPlus :+: AnonTimes) a, rhs :: Expr a } deriving (Generic1, Unmarshal) instance SymbolMatching Bin where matchedSymbols _ = [] showFailure _ _ = "" -- | Anonymous leaf node. type AnonPlus = Token "+" 0 -- | Anonymous leaf node. type AnonTimes = Token "*" 1 newtype IntegerLit = IntegerLit Integer instance UnmarshalAnn IntegerLit where unmarshalAnn node = do Range start end <- unmarshalAnn node bytestring <- asks source let drop = B.drop start take = B.take (end - start) slice = take . drop str = Text.unpack (Text.decodeUtf8 (slice bytestring)) case readDec str of (i, _):_ -> pure (IntegerLit i) _ -> fail ("could not parse '" <> str <> "'") ================================================ FILE: semantic-ast/src/AST/Grammar/TH.hs ================================================ {-# LANGUAGE TemplateHaskell #-} module AST.Grammar.TH ( mkStaticallyKnownRuleGrammarData ) where import Data.Ix (Ix) import Data.List (mapAccumL) import qualified Data.Set as Set import Foreign.Ptr import Language.Haskell.TH import Language.Haskell.TH.Syntax import TreeSitter.Language (Language, languageSymbols) import TreeSitter.Symbol -- | TemplateHaskell construction of a datatype for the referenced Language. -- | Statically-known rules corresponding to symbols in the grammar. mkStaticallyKnownRuleGrammarData :: Name -> Ptr Language -> Q [Dec] mkStaticallyKnownRuleGrammarData name language = do symbols <- renameDups . map ((,) . fst <*> uncurry symbolToName) . (++ [(Regular, "ParseError")]) <$> runIO (languageSymbols language) Module _ modName <- thisModule let mkMatch symbolType str = match (conP (Name (OccName str) (NameQ modName)) []) (normalB (lift symbolType)) [] datatype <- dataD (pure []) name [] Nothing (flip normalC [] . mkName . snd <$> symbols) [ derivClause Nothing (map conT [ ''Bounded, ''Enum, ''Eq, ''Ix, ''Ord, ''Show ]) ] symbolInstance <- [d| instance Symbol $(conT name) where symbolType = $(lamCaseE (uncurry mkMatch <$> symbols)) |] pure (datatype : symbolInstance) renameDups :: [(a, String)] -> [(a, String)] renameDups = snd . mapAccumL go mempty where go done (ty, name) = let name' = rename name in (Set.insert name' done, (ty, name')) where rename name | name `Set.member` done = rename (name ++ "'") | otherwise = name ================================================ FILE: semantic-ast/src/AST/Marshal/JSON.hs ================================================ {-# LANGUAGE DataKinds #-} {-# LANGUAGE DefaultSignatures #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE ExistentialQuantification #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE TypeSynonymInstances #-} {-# LANGUAGE UndecidableInstances #-} module AST.Marshal.JSON ( MarshalJSON(..) ) where import AST.Parse import Data.Aeson as Aeson hiding (Success) import Data.Bifunctor (first) import Data.List.NonEmpty (NonEmpty) import Data.String (fromString) import Data.Text (Text, unpack) import qualified Data.Text as Text import GHC.Generics -- TODO: use toEncoding -- direct serialization to ByteString -- Serialize unmarshaled ASTs into JSON representation by auto-deriving Aeson instances generically class MarshalJSON t where marshal :: (ToJSON a) => t a -> Value marshal = object . map (first (fromString . unpack)) . fields [] fields :: (ToJSON a) => [(Text, Value)] -> t a -> [(Text, Value)] default fields :: ( Generic1 t, GFields (Rep1 t), ToJSON a) => [(Text, Value)] -> t a -> [(Text, Value)] fields acc = gfields acc . from1 -- Implement the sum case instance {-# OVERLAPPING #-} (MarshalJSON f, MarshalJSON g) => MarshalJSON (f :+: g) where fields acc (L1 f) = fields acc f fields acc (R1 g) = fields acc g -- Create MarshalJSON instances for each type constructor instance (GFields (Rep1 t), Generic1 t) => MarshalJSON t -- Stores meta-data for datatypes instance (GFields f, Datatype c) => GFields (M1 D c f) where gfields acc x = gfields ((Text.pack "type", String (Text.pack (datatypeName x))): acc) $ unM1 x -- Fold over S1 product types and pass the result to Aeson objects instance GFields fields => GFields (C1 c fields) where gfields acc x = gfields acc (unM1 x) -- Implement base case for products -- To get a value out of this datum, we define another typeclass: @GValue@ with the method @gvalue@. instance (GValue p, Selector s) => GFields (S1 s p) where gfields acc x = (Text.pack (selName x), gvalue (unM1 x)) : acc -- Implement inductive case for product case -- 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. instance (GFields f, GFields g) => GFields (f :*: g) where gfields acc (f :*: g) = gfields (gfields acc g) f -- GValue for leaves instance ToJSON a => GValue (K1 i a) where gvalue = toJSON . unK1 -- Par1 instance instance GValue Par1 where gvalue = toJSON . unPar1 instance (MarshalJSON t) => GValue (Rec1 t) where gvalue (Rec1 f) = marshal f instance (GValue t) => GValue (Maybe :.: t) where gvalue (Comp1 (Just t)) = gvalue t gvalue (Comp1 Nothing) = Null instance (GValue t) => GValue ([] :.: t) where gvalue (Comp1 ts) = toJSON $ map gvalue ts instance (GValue t) => GValue (NonEmpty :.: t) where gvalue (Comp1 ts) = toJSON $ fmap gvalue ts instance (GValue t) => GValue (Err :.: t) where gvalue (Comp1 (Success t)) = gvalue t gvalue (Comp1 (Fail _)) = Null -- GFields operates on product field types: it takes an accumulator, a datatype, and returns a new accumulator value. class GFields f where gfields :: ToJSON a => [(Text, Value)] -> f a -> [(Text, Value)] -- gvalue is a wrapper that calls to @toJSON@ (for leaf nodes such as @Text@) or recurses via @marshal@ class GValue f where gvalue :: (ToJSON a) => f a -> Value ================================================ FILE: semantic-ast/src/AST/Parse.hs ================================================ {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE KindSignatures #-} module AST.Parse ( Err(..) ) where import GHC.Generics (Generic, Generic1) -- | An AST node representing an Error, showing a parse that's succeeded or failed. -- -- Error types are isomorphic to Either String. -- -- For example, consider the following: -- @ -- data If f a = If { ann :: a, condition :: f (Expr f a), consequence :: f (Stmt f a), alternative :: f (Stmt f a) } -- @ -- When the parse fails, the f will be substituted with Err -- TODO: this could work with AST.Element Prj given the kindedness was adjusted from (*) to (* -> *). data Err a = Fail String | Success a deriving (Eq, Foldable, Functor, Generic, Generic1, Ord, Traversable) instance Applicative Err where pure = Success Fail e <*> _ = Fail e Success a <*> r = fmap a r instance Show a => Show (Err a) where show (Fail msg) = msg show (Success a) = show a ================================================ FILE: semantic-ast/src/AST/TestHelpers.hs ================================================ {-# LANGUAGE OverloadedStrings #-} module AST.TestHelpers ( CorpusExample(..) , readCorpusFiles , readCorpusFiles' , parseCorpusFile , testCorpus ) where import Control.Applicative import Control.Monad import Data.Attoparsec.ByteString.Char8 import Data.Attoparsec.ByteString.Char8 as Attoparsec import Data.ByteString (ByteString, readFile) import Data.ByteString.Char8 (pack, unpack) import Data.Either import Data.Functor import Prelude hiding (takeWhile) import System.Directory import System.Exit (exitFailure) import System.FilePath import System.FilePath.Glob import Test.Tasty import Test.Tasty.HUnit testCorpus :: (ByteString -> IO (Either String (t a))) -> FilePath -> IO TestTree testCorpus parse path = do xs <- parseCorpusFile path case xs of Left e -> print ("Failed to parse corpus: " <> show path <> " " <> "Error: " <> show e) *> exitFailure Right xs -> testGroup path <$> traverse corpusTestCase xs where corpusTestCase (CorpusExample name code) = testCase name . either (errMsg code) pass <$> parse code pass = const (pure ()) errMsg code e = assertFailure (e <> "\n``` \n" <> unpack code <> "```") -- Depending on whether these tests are invoked via cabal run or cabal test, -- we might be in a project subdirectory or not, so let's make sure we're -- in project subdirectories as needed. findCorpus :: FilePath -> IO FilePath findCorpus p = do cwd <- getCurrentDirectory if takeFileName cwd == "haskell-tree-sitter" then pure p else pure (".." p) -- The path is expected to be relative to the language project. readCorpusFiles :: FilePath -> IO [FilePath] readCorpusFiles parent = do dir <- findCorpus parent globDir1 (compile "**/*.txt") dir readCorpusFiles' :: FilePath -> IO [FilePath] readCorpusFiles' = globDir1 (compile "**/*.txt") data CorpusExample = CorpusExample { name :: String, code :: ByteString } deriving (Eq, Show) parseCorpusFile :: FilePath -> IO (Either String [CorpusExample]) parseCorpusFile path = do c <- Data.ByteString.readFile path pure $ parseOnly corpusParser c corpusParser :: Parser [CorpusExample] corpusParser = do xs <- many' exampleParser void endOfInput pure xs exampleParser :: Parser CorpusExample exampleParser = do name <- exampleNameParser code <- manyTill anyChar outputSepParser _out <- manyTill anyChar (choice [endOfInput, char '=' $> ()]) pure (CorpusExample name (pack code)) where outputSepParser = (Attoparsec.take 3) *> (Attoparsec.char '-') *> endOfLine exampleNameParser :: Parser String exampleNameParser = do _ <- skipWhile (== '=') *> skipSpace name <- takeWhile (/= '\n') _ <- skipSpace *> skipWhile (== '=') *> skipSpace pure (unpack name) ================================================ FILE: semantic-ast/src/AST/Token.hs ================================================ {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE KindSignatures #-} module AST.Token ( Token(..) ) where import GHC.Generics (Generic, Generic1) import GHC.TypeLits (Symbol, Nat) -- | An AST node representing a token, indexed by its name and numeric value. -- -- For convenience, token types are typically used via type synonyms, e.g.: -- -- @ -- type AnonymousPlus = Token "+" 123 -- @ newtype Token (symName :: Symbol) (symVal :: Nat) a = Token { ann :: a } deriving (Eq, Foldable, Functor, Generic, Generic1, Ord, Show, Traversable) ================================================ FILE: semantic-ast/src/AST/Traversable1/Class.hs ================================================ {-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE DefaultSignatures #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} -- | 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. module AST.Traversable1.Class ( Traversable1(..) , foldMapDefault1 , fmapDefault1 , traverseDefault1 , GTraversable1(..) ) where import Data.Functor.Const import Data.Functor.Identity import GHC.Generics -- | Simultaneous traversal of subterms of kind @*@ and @* -> *@ in an 'Applicative' context. -- -- 'Traversable1' can express any combination of first- and second-order mapping, folding, and traversal. -- -- 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. class Traversable1 c t where -- | 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. -- -- 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': -- -- @ -- 'traverse1' \@'Data.Functor.Classes.Show1' 'pure' (\ t -> t '<$' 'putStrLn' ('Data.Functor.Classes.showsPrec1' 0 t "")) -- @ -- -- Note that this traversal is non-recursive: any recursion through subterms must be performed by the second function argument. traverse1 :: Applicative f => (a -> f b) -> (forall t' . c t' => t' a -> f (t' b)) -> t a -> f (t b) default traverse1 :: (Applicative f, Generic1 t, GTraversable1 c (Rep1 t)) => (a -> f b) -> (forall t' . c t' => t' a -> f (t' b)) -> t a -> f (t b) traverse1 f g = fmap to1 . gtraverse1 @c f g . from1 -- | This function may be used as a value for 'foldMap' in a 'Foldable' instance. foldMapDefault1 :: (Traversable1 Foldable t, Monoid b) => (a -> b) -> t a -> b foldMapDefault1 f = getConst . traverse1 @Foldable (Const . f) (Const . foldMap f) -- | This function may be used as a value for 'fmap' in a 'Functor' instance. fmapDefault1 :: Traversable1 Functor t => (a -> b) -> t a -> t b fmapDefault1 f = runIdentity . traverse1 @Functor (Identity . f) (Identity . fmap f) -- | This function may be used as a value for 'traverse' in a 'Traversable' instance. traverseDefault1 :: (Traversable1 Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b) traverseDefault1 f = traverse1 @Traversable f (traverse f) class GTraversable1 c t where -- | Generically map annotations and subterms of kind @* -> *@ into an 'Applicative' context. gtraverse1 :: Applicative f => (a -> f b) -> (forall t' . c t' => t' a -> f (t' b)) -> t a -> f (t b) instance GTraversable1 c f => GTraversable1 c (M1 i c' f) where gtraverse1 f g = fmap M1 . gtraverse1 @c f g . unM1 instance (GTraversable1 c f, GTraversable1 c g) => GTraversable1 c (f :*: g) where gtraverse1 f g (l :*: r) = (:*:) <$> gtraverse1 @c f g l <*> gtraverse1 @c f g r instance (GTraversable1 c f, GTraversable1 c g) => GTraversable1 c (f :+: g) where gtraverse1 f g (L1 l) = L1 <$> gtraverse1 @c f g l gtraverse1 f g (R1 r) = R1 <$> gtraverse1 @c f g r instance GTraversable1 c (K1 R t) where gtraverse1 _ _ (K1 k) = pure (K1 k) instance GTraversable1 c Par1 where gtraverse1 f _ (Par1 a) = Par1 <$> f a instance c t => GTraversable1 c (Rec1 t) where gtraverse1 _ g (Rec1 t) = Rec1 <$> g t instance (Traversable f, GTraversable1 c g) => GTraversable1 c (f :.: g) where gtraverse1 f g = fmap Comp1 . traverse (gtraverse1 @c f g) . unComp1 instance GTraversable1 c U1 where gtraverse1 _ _ _ = pure U1 ================================================ FILE: semantic-ast/src/AST/Traversable1.hs ================================================ {-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} module AST.Traversable1 ( module AST.Traversable1.Class , for1 , traverse1_ , for1_ , foldMap1 , Generics(..) ) where import AST.Traversable1.Class import Data.Functor (void) import Data.Functor.Const import Data.Monoid (Ap (..)) import GHC.Generics for1 :: forall c t f a b . (Traversable1 c t, Applicative f) => t a -> (a -> f b) -> (forall t' . c t' => t' a -> f (t' b)) -> f (t b) for1 t f g = traverse1 @c f g t traverse1_ :: forall c t f a a' a'' . (Traversable1 c t, Applicative f) => (a -> f a') -> (forall t' . c t' => t' a -> f a'') -> t a -> f () traverse1_ f g = getAp . foldMap1 @c (Ap . void . f) (Ap . void . g) for1_ :: forall c t f a a' a'' . (Traversable1 c t, Applicative f) => t a -> (a -> f a') -> (forall t' . c t' => t' a -> f a'') -> f () for1_ t f g = getAp $ foldMap1 @c (Ap . void . f) (Ap . void . g) t foldMap1 :: forall c t b a . (Traversable1 c t, Monoid b) => (a -> b) -> (forall t' . c t' => t' a -> b) -> t a -> b foldMap1 f g = getConst . traverse1 @c (Const . f) (Const . g) -- | @'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: -- -- @ -- 'getGenerics' '<$>' 'traverse1' f g ('Generics' t) = 'to1' '<$>' 'gtraverse1' f g ('from1' t) -- @ -- -- It further defines its 'Foldable', 'Functor', and 'Traversable' instances using 'Traversable1', making it suitable for deriving with @-XDerivingVia@. newtype Generics t a = Generics { getGenerics :: t a } instance (Generic1 t, GTraversable1 Foldable (Rep1 t)) => Foldable (Generics t) where foldMap = foldMapDefault1 instance (Generic1 t, GTraversable1 Functor (Rep1 t)) => Functor (Generics t) where fmap = fmapDefault1 instance (Generic1 t, GTraversable1 Foldable (Rep1 t), GTraversable1 Functor (Rep1 t), GTraversable1 Traversable (Rep1 t)) => Traversable (Generics t) where traverse = traverseDefault1 instance (Generic1 t, GTraversable1 c (Rep1 t)) => Traversable1 c (Generics t) where traverse1 f g = fmap (Generics . to1) . gtraverse1 @c f g . from1 . getGenerics ================================================ FILE: semantic-ast/src/AST/Unmarshal.hs ================================================ {-# LANGUAGE DataKinds #-} {-# LANGUAGE DefaultSignatures #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TupleSections #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} module AST.Unmarshal ( parseByteString , UnmarshalState(..) , UnmarshalError(..) , FieldName(..) , Unmarshal(..) , UnmarshalAnn(..) , UnmarshalField(..) , SymbolMatching(..) , Match(..) , hoist , lookupSymbol , unmarshalNode , GHasAnn(..) ) where import AST.Token as TS import AST.Parse import Control.Carrier.Reader import Control.Exception import Control.Monad.IO.Class import Data.ByteString (ByteString) import qualified Data.ByteString as B import Data.Coerce import Data.Foldable (toList) import Data.Functor.Identity import qualified Data.IntMap as IntMap import Data.List.NonEmpty (NonEmpty (..)) import Data.Proxy import qualified Data.Text as Text import Data.Text.Encoding import Data.Text.Encoding.Error (lenientDecode) import Foreign.C.String import Foreign.Marshal.Array import Foreign.Marshal.Utils import Foreign.Ptr import Foreign.Storable import GHC.Generics import GHC.Records import GHC.TypeLits import Source.Loc import Source.Span import TreeSitter.Cursor as TS import TreeSitter.Language as TS import TreeSitter.Node as TS import TreeSitter.Parser as TS import TreeSitter.Tree as TS -- Parse source code and produce AST parseByteString :: (Unmarshal t, UnmarshalAnn a) => Ptr TS.Language -> ByteString -> IO (Either String (t a)) parseByteString language bytestring = withParser language $ \ parser -> withParseTree parser bytestring $ \ treePtr -> if treePtr == nullPtr then pure (Left "error: didn't get a root node") else withRootNode treePtr $ \ rootPtr -> withCursor (castPtr rootPtr) $ \ cursor -> (Right <$> runReader (UnmarshalState bytestring cursor) (liftIO (peek rootPtr) >>= unmarshalNode)) `catch` (pure . Left . getUnmarshalError) newtype UnmarshalError = UnmarshalError { getUnmarshalError :: String } deriving (Show) instance Exception UnmarshalError data UnmarshalState = UnmarshalState { source :: {-# UNPACK #-} !ByteString , cursor :: {-# UNPACK #-} !(Ptr Cursor) } type MatchM = ReaderC UnmarshalState IO newtype Match t = Match { runMatch :: forall a . UnmarshalAnn a => Node -> MatchM (t a) } -- | A church-encoded binary tree with constant-time 'singleton', 'mempty', '<>', and 'fmap', and linear-time 'foldMap'. newtype B a = B (forall r . (r -> r -> r) -> (a -> r) -> r -> r) instance Functor B where fmap f (B run) = B (\ fork leaf -> run fork (leaf . f)) {-# INLINE fmap #-} a <$ B run = B (\ fork leaf -> run fork (leaf . const a)) {-# INLINE (<$) #-} instance Semigroup (B a) where B l <> B r = B (\ fork leaf nil -> fork (l fork leaf nil) (r fork leaf nil)) {-# INLINE (<>) #-} instance Monoid (B a) where mempty = B (\ _ _ nil -> nil) {-# INLINE mempty #-} instance Foldable B where foldMap f (B run) = run (<>) f mempty {-# INLINE foldMap #-} singleton :: a -> B a singleton a = B (\ _ leaf _ -> leaf a) {-# INLINE singleton #-} hoist :: (forall x . t x -> t' x) -> Match t -> Match t' hoist f (Match run) = Match (fmap f . run) {-# INLINE hoist #-} lookupSymbol :: TSSymbol -> IntMap.IntMap a -> Maybe a lookupSymbol sym map = IntMap.lookup (fromIntegral sym) map {-# INLINE lookupSymbol #-} -- | Unmarshal a node unmarshalNode :: forall t a . ( UnmarshalAnn a , Unmarshal t ) => Node -> MatchM (t a) unmarshalNode node = case lookupSymbol (nodeSymbol node) matchers' of Just t -> runMatch t node Nothing -> liftIO . throwIO . UnmarshalError $ showFailure (Proxy @t) node {-# INLINE unmarshalNode #-} -- | 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. -- -- 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. class SymbolMatching t => Unmarshal t where matchers' :: IntMap.IntMap (Match t) matchers' = IntMap.fromList (toList matchers) matchers :: B (Int, Match t) default matchers :: (Generic1 t, GUnmarshal (Rep1 t)) => B (Int, Match t) matchers = foldMap (singleton . (, match)) (matchedSymbols (Proxy @t)) where match = Match $ \ node -> do cursor <- asks cursor goto cursor (nodeTSNode node) fmap to1 (gunmarshalNode node) instance (Unmarshal f, Unmarshal g) => Unmarshal (f :+: g) where matchers = fmap (fmap (hoist L1)) matchers <> fmap (fmap (hoist R1)) matchers instance (Applicative shape, Unmarshal f) => Unmarshal (shape :.: f) where matchers = let base = matchers @f in fmap (fmap promote) base where promote (Match f) = Match (fmap (fmap (Comp1 . pure)) f) instance Unmarshal t => Unmarshal (Rec1 t) where matchers = coerce (matchers @t) instance (KnownNat n, KnownSymbol sym) => Unmarshal (Token sym n) where matchers = singleton (fromIntegral (natVal (Proxy @n)), Match (fmap Token . unmarshalAnn)) -- | Unmarshal an annotation field. -- -- 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. class UnmarshalAnn a where unmarshalAnn :: Node -> MatchM a instance UnmarshalAnn () where unmarshalAnn _ = pure () instance UnmarshalAnn Text.Text where unmarshalAnn node = do range <- unmarshalAnn node asks (decodeUtf8With lenientDecode . slice range . source) -- | Instance for pairs of annotations instance (UnmarshalAnn a, UnmarshalAnn b) => UnmarshalAnn (a,b) where unmarshalAnn node = (,) <$> unmarshalAnn @a node <*> unmarshalAnn @b node instance UnmarshalAnn Loc where unmarshalAnn node = Loc <$> unmarshalAnn @Range node <*> unmarshalAnn @Span node instance UnmarshalAnn Range where unmarshalAnn node = do let start = fromIntegral (nodeStartByte node) end = fromIntegral (nodeEndByte node) pure (Range start end) instance UnmarshalAnn Span where unmarshalAnn node = do let spanStart = pointToPos (nodeStartPoint node) spanEnd = pointToPos (nodeEndPoint node) pure (Span spanStart spanEnd) pointToPos :: TSPoint -> Pos pointToPos (TSPoint line column) = Pos (fromIntegral line) (fromIntegral column) -- | 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. class UnmarshalField t where unmarshalField :: ( Unmarshal f , UnmarshalAnn ann ) => String -- ^ datatype name -> String -- ^ field name -> [Node] -- ^ nodes -> MatchM (t (f ann)) instance UnmarshalField Err where unmarshalField _ _ [] = pure $ Fail "No items provided to unmarshalField." unmarshalField _ _ [x] = Success <$> unmarshalNode x unmarshalField d f _ = pure $ Fail ("type '" <> d <> "' expected zero or one nodes in field '" <> f <> "' but got multiple") instance UnmarshalField Maybe where unmarshalField _ _ [] = pure Nothing unmarshalField _ _ [x] = Just <$> unmarshalNode x unmarshalField d f _ = liftIO . throwIO . UnmarshalError $ "type '" <> d <> "' expected zero or one nodes in field '" <> f <> "' but got multiple" instance UnmarshalField Identity where unmarshalField _ _ [x] = Identity <$> unmarshalNode x unmarshalField d f _ = liftIO . throwIO . UnmarshalError $ "type '" <> d <> "' expected zero or one nodes in field '" <> f <> "' but got multiple" instance UnmarshalField [] where unmarshalField d f (x:xs) = do head' <- unmarshalNode x tail' <- unmarshalField d f xs pure $ head' : tail' unmarshalField _ _ [] = pure [] instance UnmarshalField NonEmpty where unmarshalField d f (x:xs) = do head' <- unmarshalNode x tail' <- unmarshalField d f xs pure $ head' :| tail' unmarshalField d f [] = liftIO . throwIO . UnmarshalError $ "type '" <> d <> "' expected one or more nodes in field '" <> f <> "' but got zero" class SymbolMatching (sym :: * -> *) where matchedSymbols :: Proxy sym -> [Int] -- | Provide error message describing the node symbol vs. the symbols this can match showFailure :: Proxy sym -> Node -> String instance SymbolMatching f => SymbolMatching (M1 i c f) where matchedSymbols _ = matchedSymbols (Proxy @f) showFailure _ = showFailure (Proxy @f) instance SymbolMatching f => SymbolMatching (Rec1 f) where matchedSymbols _ = matchedSymbols (Proxy @f) showFailure _ = showFailure (Proxy @f) instance (KnownNat n, KnownSymbol sym) => SymbolMatching (Token sym n) where matchedSymbols _ = [fromIntegral (natVal (Proxy @n))] showFailure _ _ = "expected " ++ symbolVal (Proxy @sym) instance (SymbolMatching f, SymbolMatching g) => SymbolMatching (f :+: g) where matchedSymbols _ = matchedSymbols (Proxy @f) <> matchedSymbols (Proxy @g) showFailure _ = sep <$> showFailure (Proxy @f) <*> showFailure (Proxy @g) instance SymbolMatching f => SymbolMatching (shape :.: f) where matchedSymbols _ = matchedSymbols (Proxy @f) showFailure _ = showFailure (Proxy @f) sep :: String -> String -> String sep a b = a ++ ". " ++ b -- | Move the cursor to point at the passed 'TSNode'. goto :: Ptr Cursor -> TSNode -> MatchM () goto cursor node = liftIO (with node (ts_tree_cursor_reset_p cursor)) type Fields = [(FieldName, Node)] -- | Return the fields remaining in the current branch, represented as 'Map.Map' of 'FieldName's to their corresponding 'Node's. getFields :: Ptr Cursor -> Node -> MatchM Fields getFields cursor node | maxCount == 0 = pure [] | otherwise = do nodes <- liftIO . allocaArray maxCount $ \ ptr -> do actualCount <- ts_tree_cursor_copy_child_nodes cursor ptr peekArray (fromIntegral actualCount) ptr traverse (\ node -> (, node) <$> getFieldName node) nodes where maxCount = fromIntegral (nodeChildCount node) getFieldName node | nodeFieldName node == nullPtr = pure (FieldName "extraChildren") | otherwise = FieldName . toHaskellCamelCaseIdentifier <$> liftIO (peekCString (nodeFieldName node)) lookupField :: FieldName -> Fields -> [Node] lookupField k = map snd . filter ((== k) . fst) -- | Return a 'ByteString' that contains a slice of the given 'ByteString'. slice :: Range -> ByteString -> ByteString slice (Range start end) = take . drop where drop = B.drop start take = B.take (end - start) newtype FieldName = FieldName { getFieldName :: String } deriving (Eq, Ord, Show) -- | Generic construction of ASTs from a 'Map.Map' of named fields. -- -- 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. -- -- Sum types are constructed by using the current node’s symbol to select the corresponding constructor deterministically. class GUnmarshal f where gunmarshalNode :: UnmarshalAnn ann => Node -> MatchM (f ann) instance (Datatype d, GUnmarshalData f) => GUnmarshal (M1 D d f) where gunmarshalNode = go (gunmarshalNode' (datatypeName @d undefined)) where go :: (Node -> MatchM (f ann)) -> Node -> MatchM (M1 i c f ann) go = coerce instance (GUnmarshal f, Applicative shape) => GUnmarshal (shape :.: f) where gunmarshalNode = fmap (Comp1 . pure) . gunmarshalNode @f class GUnmarshalData f where gunmarshalNode' :: UnmarshalAnn ann => String -> Node -> MatchM (f ann) instance GUnmarshalData f => GUnmarshalData (M1 i c f) where gunmarshalNode' = go gunmarshalNode' where go :: (String -> Node -> MatchM (f a)) -> String -> Node -> MatchM (M1 i c f a) go = coerce -- For anonymous leaf nodes: instance GUnmarshalData U1 where gunmarshalNode' _ _ = pure U1 -- For unary products: instance UnmarshalAnn k => GUnmarshalData (K1 c k) where gunmarshalNode' _ = go unmarshalAnn where go :: (Node -> MatchM k) -> Node -> MatchM (K1 c k a) go = coerce -- For anonymous leaf nodes instance GUnmarshalData Par1 where gunmarshalNode' _ = go unmarshalAnn where go :: (Node -> MatchM a) -> Node -> MatchM (Par1 a) go = coerce instance Unmarshal t => GUnmarshalData (Rec1 t) where gunmarshalNode' _ = go unmarshalNode where go :: (Node -> MatchM (t a)) -> Node -> MatchM (Rec1 t a) go = coerce -- For product datatypes: instance (GUnmarshalProduct f, GUnmarshalProduct g) => GUnmarshalData (f :*: g) where gunmarshalNode' datatypeName node = asks cursor >>= flip getFields node >>= gunmarshalProductNode @(f :*: g) datatypeName node -- | Generically unmarshal products class GUnmarshalProduct f where gunmarshalProductNode :: UnmarshalAnn ann => String -> Node -> Fields -> MatchM (f ann) -- Product structure instance (GUnmarshalProduct f, GUnmarshalProduct g) => GUnmarshalProduct (f :*: g) where gunmarshalProductNode datatypeName node fields = (:*:) <$> gunmarshalProductNode @f datatypeName node fields <*> gunmarshalProductNode @g datatypeName node fields -- Contents of product types (ie., the leaves of the product tree) instance UnmarshalAnn k => GUnmarshalProduct (M1 S c (K1 i k)) where gunmarshalProductNode _ node _ = go unmarshalAnn node where go :: (Node -> MatchM k) -> Node -> MatchM (M1 S c (K1 i k) a) go = coerce instance GUnmarshalProduct (M1 S c Par1) where gunmarshalProductNode _ node _ = go unmarshalAnn node where go :: (Node -> MatchM a) -> Node -> MatchM (M1 S c Par1 a) go = coerce instance (UnmarshalField f, Unmarshal g, Selector c) => GUnmarshalProduct (M1 S c (f :.: g)) where gunmarshalProductNode datatypeName _ = go (unmarshalField datatypeName fieldName . lookupField (FieldName fieldName)) where go :: (Fields -> MatchM (f (g a))) -> Fields -> MatchM (M1 S c (f :.: g) a) go = coerce fieldName = selName @c undefined instance (Unmarshal t, Selector c) => GUnmarshalProduct (M1 S c (Rec1 t)) where gunmarshalProductNode datatypeName _ fields = case lookupField (FieldName fieldName) fields of [] -> liftIO . throwIO . UnmarshalError $ "type '" <> datatypeName <> "' expected a node '" <> fieldName <> "' but didn't get one" [x] -> go unmarshalNode x where go :: (Node -> MatchM (t a)) -> Node -> MatchM (M1 S c (Rec1 t) a) go = coerce _ -> liftIO . throwIO . UnmarshalError $ "type '" <> datatypeName <> "' expected a node but got multiple" where fieldName = selName @c undefined class GHasAnn ann t where gann :: t ann -> ann instance GHasAnn ann f => GHasAnn ann (M1 i c f) where gann = gann . unM1 instance (GHasAnn ann l, GHasAnn ann r) => GHasAnn ann (l :+: r) where gann (L1 l) = gann l gann (R1 r) = gann r instance {-# OVERLAPPABLE #-} HasField "ann" (t ann) ann => GHasAnn ann t where gann = getField @"ann" ================================================ FILE: semantic-ast/src/System/Path/Fixture.hs ================================================ {-# LANGUAGE CPP #-} {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE ImplicitParams #-} module System.Path.Fixture ( absRelFile, HasFixture, absRelDir, delay, create, ) where import Control.Concurrent import GHC.Stack import System.FilePath import System.IO #if BAZEL_BUILD import qualified Bazel.Runfiles as Bazel type HasFixture = ( ?runfiles :: Bazel.Runfiles, ?project :: FilePath, HasCallStack ) create :: IO Bazel.Runfiles create = Bazel.create root :: HasFixture => FilePath root = Bazel.rlocation ?runfiles "." absRelFile :: HasFixture => String -> FilePath absRelFile x = root "semantic" ?project x absRelDir :: HasFixture => String -> FilePath absRelDir x = root "semantic" ?project x #else -- building under Cabal type HasFixture = HasCallStack create :: IO () create = pure () absRelFile :: String -> FilePath absRelFile x = "semantic" x absRelDir :: String -> FilePath absRelDir x = "semantic" x #endif delay :: String -> IO () delay s = do putStrLn s hFlush stdout threadDelay 100000000 ================================================ FILE: semantic-codeql/BUILD.bazel ================================================ package(default_visibility = ["//visibility:public"]) load( "//:build/common.bzl", "semantic_language_library", "semantic_language_parsing_test", ) semantic_language_library( name = "semantic-codeql", srcs = glob(["src/**/*.hs"]), language = "ql", ) semantic_language_parsing_test( language = "codeql", semantic_package = "ql", ts_package = "ql", ) ================================================ FILE: semantic-codeql/LICENSE ================================================ MIT License Copyright (c) 2019 GitHub Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: semantic-codeql/README.md ================================================ # Semantic support for CodeQL This package implements `semantic` support for CodeQL. ================================================ FILE: semantic-codeql/Setup.hs ================================================ import Distribution.Simple main = defaultMain ================================================ FILE: semantic-codeql/semantic-codeql.cabal ================================================ cabal-version: 2.4 name: semantic-codeql version: 0.0.0.0 synopsis: Semantic support for CodeQL. description: Semantic support for CodeQL. homepage: https://github.com/github/semantic/tree/master/semantic-codeql#readme bug-reports: https://github.com/github/semantic/issues license: MIT license-file: LICENSE author: The Semantic authors maintainer: opensource+semantic@github.com copyright: (c) 2019 GitHub, Inc. category: Language build-type: Simple stability: alpha extra-source-files: README.md tested-with: GHC == 8.6.5 common haskell default-language: Haskell2010 ghc-options: -Weverything -Wno-missing-local-signatures -Wno-missing-import-lists -Wno-implicit-prelude -Wno-safe -Wno-unsafe -Wno-name-shadowing -Wno-monomorphism-restriction -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-star-is-type if (impl(ghc >= 8.8)) ghc-options: -Wno-missing-deriving-strategies if (impl(ghc >= 8.10)) ghc-options: -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module if (impl(ghc >= 9.2)) ghc-options: -Wno-missing-kind-signatures cpp-options: -DBAZEL_BUILD=0 library import: haskell exposed-modules: Language.CodeQL Language.CodeQL.AST Language.CodeQL.Grammar Language.CodeQL.Tags hs-source-dirs: src build-depends: , base >= 4.13 && < 5 , fused-effects ^>= 1.1 , semantic-ast , semantic-proto ^>= 0 , semantic-source ^>= 0.2 , semantic-tags ^>= 0.0 , template-haskell >= 2.15 && < 2.22 , text ^>= 1.2.3 , tree-sitter ^>= 0.9 , tree-sitter-ql ^>= 0.1.0.2 test-suite test import: haskell type: exitcode-stdio-1.0 hs-source-dirs: test main-is: PreciseTest.hs build-depends: , base , semantic-ast , semantic-codeql , tasty ================================================ FILE: semantic-codeql/src/Language/CodeQL/AST.hs ================================================ -- Language definition for CodeQL, generated by ast-generate. Do not edit! {-# LANGUAGE CPP #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE QuantifiedConstraints #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} module Language.CodeQL.AST (module Language.CodeQL.AST, getTestCorpusDir) where import qualified AST.Parse import qualified AST.Token import qualified AST.Traversable1.Class import qualified AST.Unmarshal import qualified Data.Foldable import qualified Data.List as Data.OldList import qualified Data.Maybe as GHC.Maybe import qualified Data.Text.Internal import qualified Data.Traversable import qualified GHC.Base import qualified GHC.Generics import qualified GHC.Records import qualified GHC.Show import qualified TreeSitter.Node import TreeSitter.QL (getTestCorpusDir) import qualified Prelude as GHC.Classes debugSymbolNames :: [GHC.Base.String] debugSymbolNames = debugSymbolNames_0 debugSymbolNames_0 :: [GHC.Base.String] debugSymbolNames_0 = [ "end", "_lower_id", "_module", "_{", "_}", "_;", "_(", "_,", "_)", "_or", "_from", "_where", "_select", "_if", "_then", "_else", "_and", "_implies", "_|", "_.", "_[", "_]", "_..", "_order", "_by", "qldoc", "_::", "_float", "_int", "_string", "_upper_id", "_at_lower_id", "integer", "float", "string", "line_comment", "block_comment", "any", "as", "asc", "avg", "boolean", "class", "newtype", "count", "date", "desc", "exists", "extends", "false", "forall", "forex", "import", "in", "instanceof", "max", "min", "not", "none", "predicate", "rank", "result", "strictcount", "strictsum", "strictconcat", "concat", "sum", "super", "this", "true", "lt", "le", "eq", "gt", "ge", "underscore", "minus", "ne", "slash", "star", "mod", "plus", "ql", "module", "moduleMember", "imprt", "moduleAliasBody", "predicateAliasBody", "typeAliasBody", "classlessPredicate", "datatype", "datatypeBranches", "datatypeBranch", "select", "dataclass", "classMember", "charpred", "memberPredicate", "field", "_optbody", "empty", "body", "higherOrderTerm", "special_call", "prefix_cast", "unary_expr", "mul_expr", "add_expr", "in_expr", "comp_term", "instance_of", "negation", "if_term", "conjunction", "disjunction", "implication", "quantified", "specialId", "quantifier", "_call_arg", "qualifiedRhs", "classless_predicate_call", "qualified_expr", "super_ref", "full_aggregate_body", "expr_aggregate_body", "aggregate", "range", "par_expr", "_exprOrTerm", "_primary", "literal", "bool", "variable", "compop", "unop", "mulop", "addop", "closure", "direction", "varDecl", "asExprs", "asExpr", "orderBys", "orderBy", "literalId", "annotation", "annotName", "annotArg", "moduleName", "qualModuleExpr", "importModuleExpr", "moduleExpr", "typeLiteral", "simpleId", "className", "dbtype", "returnType", "typeExpr", "predicateName", "aritylessPredicateExpr", "predicateExpr", "varName", "aggId", "_ql_repeat1", "_moduleMember_repeat1", "_classlessPredicate_repeat1", "_datatypeBranches_repeat1", "_dataclass_repeat1", "_dataclass_repeat2", "_higherOrderTerm_repeat1", "_higherOrderTerm_repeat2", "_aggregate_repeat1", "_asExprs_repeat1", "_orderBys_repeat1", "_annotation_repeat1", "_qualModuleExpr_repeat1", "_importModuleExpr_repeat1" ] data AddExpr a = AddExpr { ann :: a, 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)), 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)), extraChildren :: (AST.Parse.Err (Addop a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1. AST.Traversable1.Class.Traversable1 a_1 ) instance AST.Unmarshal.SymbolMatching AddExpr where matchedSymbols _ = [107] showFailure _ node_2 = "expected " GHC.Base.<> ( "add_expr" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_2 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_3 c1_4 = TreeSitter.Node.nodeStartPoint node_2 TreeSitter.Node.TSPoint r2_5 c2_6 = TreeSitter.Node.nodeEndPoint node_2 deriving instance GHC.Classes.Eq a_7 => GHC.Classes.Eq (AddExpr a_7) deriving instance GHC.Classes.Ord a_8 => GHC.Classes.Ord (AddExpr a_8) deriving instance GHC.Show.Show a_9 => GHC.Show.Show (AddExpr a_9) instance AST.Unmarshal.Unmarshal AddExpr instance Data.Foldable.Foldable AddExpr where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AddExpr where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AddExpr where traverse = AST.Traversable1.Class.traverseDefault1 data Addop a = Addop { ann :: a, extraChildren :: (AST.Parse.Err ((Minus GHC.Generics.:+: Plus) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_10. AST.Traversable1.Class.Traversable1 a_10 ) instance AST.Unmarshal.SymbolMatching Addop where matchedSymbols _ = [137] showFailure _ node_11 = "expected " GHC.Base.<> ( "addop" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_11 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_12 c1_13 = TreeSitter.Node.nodeStartPoint node_11 TreeSitter.Node.TSPoint r2_14 c2_15 = TreeSitter.Node.nodeEndPoint node_11 deriving instance GHC.Classes.Eq a_16 => GHC.Classes.Eq (Addop a_16) deriving instance GHC.Classes.Ord a_17 => GHC.Classes.Ord (Addop a_17) deriving instance GHC.Show.Show a_18 => GHC.Show.Show (Addop a_18) instance AST.Unmarshal.Unmarshal Addop instance Data.Foldable.Foldable Addop where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Addop where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Addop where traverse = AST.Traversable1.Class.traverseDefault1 data AggId a = AggId { ann :: a, 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_19. AST.Traversable1.Class.Traversable1 a_19 ) instance AST.Unmarshal.SymbolMatching AggId where matchedSymbols _ = [163] showFailure _ node_20 = "expected " GHC.Base.<> ( "aggId" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_20 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_21 c1_22 = TreeSitter.Node.nodeStartPoint node_20 TreeSitter.Node.TSPoint r2_23 c2_24 = TreeSitter.Node.nodeEndPoint node_20 deriving instance GHC.Classes.Eq a_25 => GHC.Classes.Eq (AggId a_25) deriving instance GHC.Classes.Ord a_26 => GHC.Classes.Ord (AggId a_26) deriving instance GHC.Show.Show a_27 => GHC.Show.Show (AggId a_27) instance AST.Unmarshal.Unmarshal AggId instance Data.Foldable.Foldable AggId where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AggId where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AggId where traverse = AST.Traversable1.Class.traverseDefault1 data Aggregate a = Aggregate { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_28. AST.Traversable1.Class.Traversable1 a_28 ) instance AST.Unmarshal.SymbolMatching Aggregate where matchedSymbols _ = [126] showFailure _ node_29 = "expected " GHC.Base.<> ( "aggregate" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_29 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_30 c1_31 = TreeSitter.Node.nodeStartPoint node_29 TreeSitter.Node.TSPoint r2_32 c2_33 = TreeSitter.Node.nodeEndPoint node_29 deriving instance GHC.Classes.Eq a_34 => GHC.Classes.Eq (Aggregate a_34) deriving instance GHC.Classes.Ord a_35 => GHC.Classes.Ord (Aggregate a_35) deriving instance GHC.Show.Show a_36 => GHC.Show.Show (Aggregate a_36) instance AST.Unmarshal.Unmarshal Aggregate instance Data.Foldable.Foldable Aggregate where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Aggregate where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Aggregate where traverse = AST.Traversable1.Class.traverseDefault1 data AnnotArg a = AnnotArg { ann :: a, extraChildren :: (AST.Parse.Err ((Result GHC.Generics.:+: SimpleId GHC.Generics.:+: This) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_37. AST.Traversable1.Class.Traversable1 a_37 ) instance AST.Unmarshal.SymbolMatching AnnotArg where matchedSymbols _ = [148] showFailure _ node_38 = "expected " GHC.Base.<> ( "annotArg" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_38 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_39 c1_40 = TreeSitter.Node.nodeStartPoint node_38 TreeSitter.Node.TSPoint r2_41 c2_42 = TreeSitter.Node.nodeEndPoint node_38 deriving instance GHC.Classes.Eq a_43 => GHC.Classes.Eq (AnnotArg a_43) deriving instance GHC.Classes.Ord a_44 => GHC.Classes.Ord (AnnotArg a_44) deriving instance GHC.Show.Show a_45 => GHC.Show.Show (AnnotArg a_45) instance AST.Unmarshal.Unmarshal AnnotArg instance Data.Foldable.Foldable AnnotArg where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AnnotArg where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AnnotArg where traverse = AST.Traversable1.Class.traverseDefault1 data AnnotName a = AnnotName {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_46. AST.Traversable1.Class.Traversable1 a_46 ) instance AST.Unmarshal.SymbolMatching AnnotName where matchedSymbols _ = [147] showFailure _ node_47 = "expected " GHC.Base.<> ( "annotName" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_47 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_48 c1_49 = TreeSitter.Node.nodeStartPoint node_47 TreeSitter.Node.TSPoint r2_50 c2_51 = TreeSitter.Node.nodeEndPoint node_47 deriving instance GHC.Classes.Eq a_52 => GHC.Classes.Eq (AnnotName a_52) deriving instance GHC.Classes.Ord a_53 => GHC.Classes.Ord (AnnotName a_53) deriving instance GHC.Show.Show a_54 => GHC.Show.Show (AnnotName a_54) instance AST.Unmarshal.Unmarshal AnnotName instance Data.Foldable.Foldable AnnotName where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AnnotName where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AnnotName where traverse = AST.Traversable1.Class.traverseDefault1 data Annotation a = Annotation { ann :: a, args :: ([AST.Parse.Err ((AnonymousComma GHC.Generics.:+: AnnotArg) a)]), name :: (AST.Parse.Err (AnnotName a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_55. AST.Traversable1.Class.Traversable1 a_55 ) instance AST.Unmarshal.SymbolMatching Annotation where matchedSymbols _ = [146] showFailure _ node_56 = "expected " GHC.Base.<> ( "annotation" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_56 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_57 c1_58 = TreeSitter.Node.nodeStartPoint node_56 TreeSitter.Node.TSPoint r2_59 c2_60 = TreeSitter.Node.nodeEndPoint node_56 deriving instance GHC.Classes.Eq a_61 => GHC.Classes.Eq (Annotation a_61) deriving instance GHC.Classes.Ord a_62 => GHC.Classes.Ord (Annotation a_62) deriving instance GHC.Show.Show a_63 => GHC.Show.Show (Annotation a_63) instance AST.Unmarshal.Unmarshal Annotation instance Data.Foldable.Foldable Annotation where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Annotation where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Annotation where traverse = AST.Traversable1.Class.traverseDefault1 data AritylessPredicateExpr a = AritylessPredicateExpr { ann :: a, name :: (AST.Parse.Err (LiteralId a)), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ModuleExpr a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_64. AST.Traversable1.Class.Traversable1 a_64 ) instance AST.Unmarshal.SymbolMatching AritylessPredicateExpr where matchedSymbols _ = [160] showFailure _ node_65 = "expected " GHC.Base.<> ( "aritylessPredicateExpr" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_65 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_66 c1_67 = TreeSitter.Node.nodeStartPoint node_65 TreeSitter.Node.TSPoint r2_68 c2_69 = TreeSitter.Node.nodeEndPoint node_65 deriving instance GHC.Classes.Eq a_70 => GHC.Classes.Eq (AritylessPredicateExpr a_70) deriving instance GHC.Classes.Ord a_71 => GHC.Classes.Ord (AritylessPredicateExpr a_71) deriving instance GHC.Show.Show a_72 => GHC.Show.Show (AritylessPredicateExpr a_72) instance AST.Unmarshal.Unmarshal AritylessPredicateExpr instance Data.Foldable.Foldable AritylessPredicateExpr where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AritylessPredicateExpr where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AritylessPredicateExpr where traverse = AST.Traversable1.Class.traverseDefault1 data AsExpr a = AsExpr { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_73. AST.Traversable1.Class.Traversable1 a_73 ) instance AST.Unmarshal.SymbolMatching AsExpr where matchedSymbols _ = [142] showFailure _ node_74 = "expected " GHC.Base.<> ( "asExpr" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_74 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_75 c1_76 = TreeSitter.Node.nodeStartPoint node_74 TreeSitter.Node.TSPoint r2_77 c2_78 = TreeSitter.Node.nodeEndPoint node_74 deriving instance GHC.Classes.Eq a_79 => GHC.Classes.Eq (AsExpr a_79) deriving instance GHC.Classes.Ord a_80 => GHC.Classes.Ord (AsExpr a_80) deriving instance GHC.Show.Show a_81 => GHC.Show.Show (AsExpr a_81) instance AST.Unmarshal.Unmarshal AsExpr instance Data.Foldable.Foldable AsExpr where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AsExpr where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AsExpr where traverse = AST.Traversable1.Class.traverseDefault1 data AsExprs a = AsExprs { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (AsExpr a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_82. AST.Traversable1.Class.Traversable1 a_82 ) instance AST.Unmarshal.SymbolMatching AsExprs where matchedSymbols _ = [141] showFailure _ node_83 = "expected " GHC.Base.<> ( "asExprs" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_83 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_84 c1_85 = TreeSitter.Node.nodeStartPoint node_83 TreeSitter.Node.TSPoint r2_86 c2_87 = TreeSitter.Node.nodeEndPoint node_83 deriving instance GHC.Classes.Eq a_88 => GHC.Classes.Eq (AsExprs a_88) deriving instance GHC.Classes.Ord a_89 => GHC.Classes.Ord (AsExprs a_89) deriving instance GHC.Show.Show a_90 => GHC.Show.Show (AsExprs a_90) instance AST.Unmarshal.Unmarshal AsExprs instance Data.Foldable.Foldable AsExprs where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AsExprs where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AsExprs where traverse = AST.Traversable1.Class.traverseDefault1 data Body a = Body { ann :: a, 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_91. AST.Traversable1.Class.Traversable1 a_91 ) instance AST.Unmarshal.SymbolMatching Body where matchedSymbols _ = [101] showFailure _ node_92 = "expected " GHC.Base.<> ( "body" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_92 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_93 c1_94 = TreeSitter.Node.nodeStartPoint node_92 TreeSitter.Node.TSPoint r2_95 c2_96 = TreeSitter.Node.nodeEndPoint node_92 deriving instance GHC.Classes.Eq a_97 => GHC.Classes.Eq (Body a_97) deriving instance GHC.Classes.Ord a_98 => GHC.Classes.Ord (Body a_98) deriving instance GHC.Show.Show a_99 => GHC.Show.Show (Body a_99) instance AST.Unmarshal.Unmarshal Body instance Data.Foldable.Foldable Body where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Body where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Body where traverse = AST.Traversable1.Class.traverseDefault1 data Bool a = Bool { ann :: a, extraChildren :: (AST.Parse.Err ((False GHC.Generics.:+: True) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_100. AST.Traversable1.Class.Traversable1 a_100 ) instance AST.Unmarshal.SymbolMatching Bool where matchedSymbols _ = [132] showFailure _ node_101 = "expected " GHC.Base.<> ( "bool" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_101 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_102 c1_103 = TreeSitter.Node.nodeStartPoint node_101 TreeSitter.Node.TSPoint r2_104 c2_105 = TreeSitter.Node.nodeEndPoint node_101 deriving instance GHC.Classes.Eq a_106 => GHC.Classes.Eq (Bool a_106) deriving instance GHC.Classes.Ord a_107 => GHC.Classes.Ord (Bool a_107) deriving instance GHC.Show.Show a_108 => GHC.Show.Show (Bool a_108) instance AST.Unmarshal.Unmarshal Bool instance Data.Foldable.Foldable Bool where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Bool where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Bool where traverse = AST.Traversable1.Class.traverseDefault1 data Charpred a = Charpred { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_109. AST.Traversable1.Class.Traversable1 a_109 ) instance AST.Unmarshal.SymbolMatching Charpred where matchedSymbols _ = [96] showFailure _ node_110 = "expected " GHC.Base.<> ( "charpred" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_110 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_111 c1_112 = TreeSitter.Node.nodeStartPoint node_110 TreeSitter.Node.TSPoint r2_113 c2_114 = TreeSitter.Node.nodeEndPoint node_110 deriving instance GHC.Classes.Eq a_115 => GHC.Classes.Eq (Charpred a_115) deriving instance GHC.Classes.Ord a_116 => GHC.Classes.Ord (Charpred a_116) deriving instance GHC.Show.Show a_117 => GHC.Show.Show (Charpred a_117) instance AST.Unmarshal.Unmarshal Charpred instance Data.Foldable.Foldable Charpred where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Charpred where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Charpred where traverse = AST.Traversable1.Class.traverseDefault1 data ClassMember a = ClassMember { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Annotation GHC.Generics.:+: Charpred GHC.Generics.:+: Field GHC.Generics.:+: MemberPredicate GHC.Generics.:+: Qldoc) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_118. AST.Traversable1.Class.Traversable1 a_118 ) instance AST.Unmarshal.SymbolMatching ClassMember where matchedSymbols _ = [95] showFailure _ node_119 = "expected " GHC.Base.<> ( "classMember" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_119 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_120 c1_121 = TreeSitter.Node.nodeStartPoint node_119 TreeSitter.Node.TSPoint r2_122 c2_123 = TreeSitter.Node.nodeEndPoint node_119 deriving instance GHC.Classes.Eq a_124 => GHC.Classes.Eq (ClassMember a_124) deriving instance GHC.Classes.Ord a_125 => GHC.Classes.Ord (ClassMember a_125) deriving instance GHC.Show.Show a_126 => GHC.Show.Show (ClassMember a_126) instance AST.Unmarshal.Unmarshal ClassMember instance Data.Foldable.Foldable ClassMember where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ClassMember where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ClassMember where traverse = AST.Traversable1.Class.traverseDefault1 data ClassName a = ClassName {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_127. AST.Traversable1.Class.Traversable1 a_127 ) instance AST.Unmarshal.SymbolMatching ClassName where matchedSymbols _ = [155] showFailure _ node_128 = "expected " GHC.Base.<> ( "className" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_128 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_129 c1_130 = TreeSitter.Node.nodeStartPoint node_128 TreeSitter.Node.TSPoint r2_131 c2_132 = TreeSitter.Node.nodeEndPoint node_128 deriving instance GHC.Classes.Eq a_133 => GHC.Classes.Eq (ClassName a_133) deriving instance GHC.Classes.Ord a_134 => GHC.Classes.Ord (ClassName a_134) deriving instance GHC.Show.Show a_135 => GHC.Show.Show (ClassName a_135) instance AST.Unmarshal.Unmarshal ClassName instance Data.Foldable.Foldable ClassName where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ClassName where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ClassName where traverse = AST.Traversable1.Class.traverseDefault1 data ClasslessPredicate a = ClasslessPredicate { ann :: a, name :: (AST.Parse.Err (PredicateName a)), extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Body GHC.Generics.:+: Empty GHC.Generics.:+: HigherOrderTerm GHC.Generics.:+: PredicateAliasBody GHC.Generics.:+: ReturnType GHC.Generics.:+: VarDecl) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_136. AST.Traversable1.Class.Traversable1 a_136 ) instance AST.Unmarshal.SymbolMatching ClasslessPredicate where matchedSymbols _ = [89] showFailure _ node_137 = "expected " GHC.Base.<> ( "classlessPredicate" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_137 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_138 c1_139 = TreeSitter.Node.nodeStartPoint node_137 TreeSitter.Node.TSPoint r2_140 c2_141 = TreeSitter.Node.nodeEndPoint node_137 deriving instance GHC.Classes.Eq a_142 => GHC.Classes.Eq (ClasslessPredicate a_142) deriving instance GHC.Classes.Ord a_143 => GHC.Classes.Ord (ClasslessPredicate a_143) deriving instance GHC.Show.Show a_144 => GHC.Show.Show (ClasslessPredicate a_144) instance AST.Unmarshal.Unmarshal ClasslessPredicate instance Data.Foldable.Foldable ClasslessPredicate where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ClasslessPredicate where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ClasslessPredicate where traverse = AST.Traversable1.Class.traverseDefault1 data ClasslessPredicateCall a = ClasslessPredicateCall { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_145. AST.Traversable1.Class.Traversable1 a_145 ) instance AST.Unmarshal.SymbolMatching ClasslessPredicateCall where matchedSymbols _ = [121] showFailure _ node_146 = "expected " GHC.Base.<> ( "classless_predicate_call" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_146 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_147 c1_148 = TreeSitter.Node.nodeStartPoint node_146 TreeSitter.Node.TSPoint r2_149 c2_150 = TreeSitter.Node.nodeEndPoint node_146 deriving instance GHC.Classes.Eq a_151 => GHC.Classes.Eq (ClasslessPredicateCall a_151) deriving instance GHC.Classes.Ord a_152 => GHC.Classes.Ord (ClasslessPredicateCall a_152) deriving instance GHC.Show.Show a_153 => GHC.Show.Show (ClasslessPredicateCall a_153) instance AST.Unmarshal.Unmarshal ClasslessPredicateCall instance Data.Foldable.Foldable ClasslessPredicateCall where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ClasslessPredicateCall where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ClasslessPredicateCall where traverse = AST.Traversable1.Class.traverseDefault1 data Closure a = Closure { ann :: a, extraChildren :: (AST.Parse.Err ((Plus GHC.Generics.:+: Star) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_154. AST.Traversable1.Class.Traversable1 a_154 ) instance AST.Unmarshal.SymbolMatching Closure where matchedSymbols _ = [138] showFailure _ node_155 = "expected " GHC.Base.<> ( "closure" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_155 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_156 c1_157 = TreeSitter.Node.nodeStartPoint node_155 TreeSitter.Node.TSPoint r2_158 c2_159 = TreeSitter.Node.nodeEndPoint node_155 deriving instance GHC.Classes.Eq a_160 => GHC.Classes.Eq (Closure a_160) deriving instance GHC.Classes.Ord a_161 => GHC.Classes.Ord (Closure a_161) deriving instance GHC.Show.Show a_162 => GHC.Show.Show (Closure a_162) instance AST.Unmarshal.Unmarshal Closure instance Data.Foldable.Foldable Closure where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Closure where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Closure where traverse = AST.Traversable1.Class.traverseDefault1 data CompTerm a = CompTerm { ann :: a, 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)), 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)), extraChildren :: (AST.Parse.Err (Compop a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_163. AST.Traversable1.Class.Traversable1 a_163 ) instance AST.Unmarshal.SymbolMatching CompTerm where matchedSymbols _ = [109] showFailure _ node_164 = "expected " GHC.Base.<> ( "comp_term" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_164 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_165 c1_166 = TreeSitter.Node.nodeStartPoint node_164 TreeSitter.Node.TSPoint r2_167 c2_168 = TreeSitter.Node.nodeEndPoint node_164 deriving instance GHC.Classes.Eq a_169 => GHC.Classes.Eq (CompTerm a_169) deriving instance GHC.Classes.Ord a_170 => GHC.Classes.Ord (CompTerm a_170) deriving instance GHC.Show.Show a_171 => GHC.Show.Show (CompTerm a_171) instance AST.Unmarshal.Unmarshal CompTerm instance Data.Foldable.Foldable CompTerm where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor CompTerm where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable CompTerm where traverse = AST.Traversable1.Class.traverseDefault1 data Compop a = Compop { ann :: a, extraChildren :: (AST.Parse.Err ((Eq GHC.Generics.:+: Ge GHC.Generics.:+: Gt GHC.Generics.:+: Le GHC.Generics.:+: Lt GHC.Generics.:+: Ne) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_172. AST.Traversable1.Class.Traversable1 a_172 ) instance AST.Unmarshal.SymbolMatching Compop where matchedSymbols _ = [134] showFailure _ node_173 = "expected " GHC.Base.<> ( "compop" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_173 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_174 c1_175 = TreeSitter.Node.nodeStartPoint node_173 TreeSitter.Node.TSPoint r2_176 c2_177 = TreeSitter.Node.nodeEndPoint node_173 deriving instance GHC.Classes.Eq a_178 => GHC.Classes.Eq (Compop a_178) deriving instance GHC.Classes.Ord a_179 => GHC.Classes.Ord (Compop a_179) deriving instance GHC.Show.Show a_180 => GHC.Show.Show (Compop a_180) instance AST.Unmarshal.Unmarshal Compop instance Data.Foldable.Foldable Compop where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Compop where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Compop where traverse = AST.Traversable1.Class.traverseDefault1 data Conjunction a = Conjunction { ann :: a, 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)), 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_181. AST.Traversable1.Class.Traversable1 a_181 ) instance AST.Unmarshal.SymbolMatching Conjunction where matchedSymbols _ = [113] showFailure _ node_182 = "expected " GHC.Base.<> ( "conjunction" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_182 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_183 c1_184 = TreeSitter.Node.nodeStartPoint node_182 TreeSitter.Node.TSPoint r2_185 c2_186 = TreeSitter.Node.nodeEndPoint node_182 deriving instance GHC.Classes.Eq a_187 => GHC.Classes.Eq (Conjunction a_187) deriving instance GHC.Classes.Ord a_188 => GHC.Classes.Ord (Conjunction a_188) deriving instance GHC.Show.Show a_189 => GHC.Show.Show (Conjunction a_189) instance AST.Unmarshal.Unmarshal Conjunction instance Data.Foldable.Foldable Conjunction where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Conjunction where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Conjunction where traverse = AST.Traversable1.Class.traverseDefault1 data Dataclass a = Dataclass { ann :: a, name :: (AST.Parse.Err (ClassName a)), extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Class GHC.Generics.:+: ClassMember GHC.Generics.:+: Extends GHC.Generics.:+: TypeAliasBody GHC.Generics.:+: TypeExpr) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_190. AST.Traversable1.Class.Traversable1 a_190 ) instance AST.Unmarshal.SymbolMatching Dataclass where matchedSymbols _ = [94] showFailure _ node_191 = "expected " GHC.Base.<> ( "dataclass" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_191 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_192 c1_193 = TreeSitter.Node.nodeStartPoint node_191 TreeSitter.Node.TSPoint r2_194 c2_195 = TreeSitter.Node.nodeEndPoint node_191 deriving instance GHC.Classes.Eq a_196 => GHC.Classes.Eq (Dataclass a_196) deriving instance GHC.Classes.Ord a_197 => GHC.Classes.Ord (Dataclass a_197) deriving instance GHC.Show.Show a_198 => GHC.Show.Show (Dataclass a_198) instance AST.Unmarshal.Unmarshal Dataclass instance Data.Foldable.Foldable Dataclass where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Dataclass where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Dataclass where traverse = AST.Traversable1.Class.traverseDefault1 data Datatype a = Datatype { ann :: a, name :: (AST.Parse.Err (ClassName a)), extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((DatatypeBranches GHC.Generics.:+: Eq GHC.Generics.:+: Newtype) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_199. AST.Traversable1.Class.Traversable1 a_199 ) instance AST.Unmarshal.SymbolMatching Datatype where matchedSymbols _ = [90] showFailure _ node_200 = "expected " GHC.Base.<> ( "datatype" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_200 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_201 c1_202 = TreeSitter.Node.nodeStartPoint node_200 TreeSitter.Node.TSPoint r2_203 c2_204 = TreeSitter.Node.nodeEndPoint node_200 deriving instance GHC.Classes.Eq a_205 => GHC.Classes.Eq (Datatype a_205) deriving instance GHC.Classes.Ord a_206 => GHC.Classes.Ord (Datatype a_206) deriving instance GHC.Show.Show a_207 => GHC.Show.Show (Datatype a_207) instance AST.Unmarshal.Unmarshal Datatype instance Data.Foldable.Foldable Datatype where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Datatype where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Datatype where traverse = AST.Traversable1.Class.traverseDefault1 data DatatypeBranch a = DatatypeBranch { ann :: a, name :: (AST.Parse.Err (ClassName a)), extraChildren :: ([AST.Parse.Err ((Annotation GHC.Generics.:+: Body GHC.Generics.:+: Qldoc GHC.Generics.:+: VarDecl) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_208. AST.Traversable1.Class.Traversable1 a_208 ) instance AST.Unmarshal.SymbolMatching DatatypeBranch where matchedSymbols _ = [92] showFailure _ node_209 = "expected " GHC.Base.<> ( "datatypeBranch" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_209 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_210 c1_211 = TreeSitter.Node.nodeStartPoint node_209 TreeSitter.Node.TSPoint r2_212 c2_213 = TreeSitter.Node.nodeEndPoint node_209 deriving instance GHC.Classes.Eq a_214 => GHC.Classes.Eq (DatatypeBranch a_214) deriving instance GHC.Classes.Ord a_215 => GHC.Classes.Ord (DatatypeBranch a_215) deriving instance GHC.Show.Show a_216 => GHC.Show.Show (DatatypeBranch a_216) instance AST.Unmarshal.Unmarshal DatatypeBranch instance Data.Foldable.Foldable DatatypeBranch where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DatatypeBranch where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DatatypeBranch where traverse = AST.Traversable1.Class.traverseDefault1 data DatatypeBranches a = DatatypeBranches { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (DatatypeBranch a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_217. AST.Traversable1.Class.Traversable1 a_217 ) instance AST.Unmarshal.SymbolMatching DatatypeBranches where matchedSymbols _ = [91] showFailure _ node_218 = "expected " GHC.Base.<> ( "datatypeBranches" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_218 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_219 c1_220 = TreeSitter.Node.nodeStartPoint node_218 TreeSitter.Node.TSPoint r2_221 c2_222 = TreeSitter.Node.nodeEndPoint node_218 deriving instance GHC.Classes.Eq a_223 => GHC.Classes.Eq (DatatypeBranches a_223) deriving instance GHC.Classes.Ord a_224 => GHC.Classes.Ord (DatatypeBranches a_224) deriving instance GHC.Show.Show a_225 => GHC.Show.Show (DatatypeBranches a_225) instance AST.Unmarshal.Unmarshal DatatypeBranches instance Data.Foldable.Foldable DatatypeBranches where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DatatypeBranches where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DatatypeBranches where traverse = AST.Traversable1.Class.traverseDefault1 data Dbtype a = Dbtype {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_226. AST.Traversable1.Class.Traversable1 a_226 ) instance AST.Unmarshal.SymbolMatching Dbtype where matchedSymbols _ = [156] showFailure _ node_227 = "expected " GHC.Base.<> ( "dbtype" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_227 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_228 c1_229 = TreeSitter.Node.nodeStartPoint node_227 TreeSitter.Node.TSPoint r2_230 c2_231 = TreeSitter.Node.nodeEndPoint node_227 deriving instance GHC.Classes.Eq a_232 => GHC.Classes.Eq (Dbtype a_232) deriving instance GHC.Classes.Ord a_233 => GHC.Classes.Ord (Dbtype a_233) deriving instance GHC.Show.Show a_234 => GHC.Show.Show (Dbtype a_234) instance AST.Unmarshal.Unmarshal Dbtype instance Data.Foldable.Foldable Dbtype where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Dbtype where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Dbtype where traverse = AST.Traversable1.Class.traverseDefault1 data Direction a = Direction { ann :: a, extraChildren :: (AST.Parse.Err ((Asc GHC.Generics.:+: Desc) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_235. AST.Traversable1.Class.Traversable1 a_235 ) instance AST.Unmarshal.SymbolMatching Direction where matchedSymbols _ = [139] showFailure _ node_236 = "expected " GHC.Base.<> ( "direction" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_236 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_237 c1_238 = TreeSitter.Node.nodeStartPoint node_236 TreeSitter.Node.TSPoint r2_239 c2_240 = TreeSitter.Node.nodeEndPoint node_236 deriving instance GHC.Classes.Eq a_241 => GHC.Classes.Eq (Direction a_241) deriving instance GHC.Classes.Ord a_242 => GHC.Classes.Ord (Direction a_242) deriving instance GHC.Show.Show a_243 => GHC.Show.Show (Direction a_243) instance AST.Unmarshal.Unmarshal Direction instance Data.Foldable.Foldable Direction where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Direction where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Direction where traverse = AST.Traversable1.Class.traverseDefault1 data Disjunction a = Disjunction { ann :: a, 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)), 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_244. AST.Traversable1.Class.Traversable1 a_244 ) instance AST.Unmarshal.SymbolMatching Disjunction where matchedSymbols _ = [114] showFailure _ node_245 = "expected " GHC.Base.<> ( "disjunction" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_245 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_246 c1_247 = TreeSitter.Node.nodeStartPoint node_245 TreeSitter.Node.TSPoint r2_248 c2_249 = TreeSitter.Node.nodeEndPoint node_245 deriving instance GHC.Classes.Eq a_250 => GHC.Classes.Eq (Disjunction a_250) deriving instance GHC.Classes.Ord a_251 => GHC.Classes.Ord (Disjunction a_251) deriving instance GHC.Show.Show a_252 => GHC.Show.Show (Disjunction a_252) instance AST.Unmarshal.Unmarshal Disjunction instance Data.Foldable.Foldable Disjunction where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Disjunction where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Disjunction where traverse = AST.Traversable1.Class.traverseDefault1 data Empty a = Empty {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_253. AST.Traversable1.Class.Traversable1 a_253 ) instance AST.Unmarshal.SymbolMatching Empty where matchedSymbols _ = [100] showFailure _ node_254 = "expected " GHC.Base.<> ( "empty" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_254 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_255 c1_256 = TreeSitter.Node.nodeStartPoint node_254 TreeSitter.Node.TSPoint r2_257 c2_258 = TreeSitter.Node.nodeEndPoint node_254 deriving instance GHC.Classes.Eq a_259 => GHC.Classes.Eq (Empty a_259) deriving instance GHC.Classes.Ord a_260 => GHC.Classes.Ord (Empty a_260) deriving instance GHC.Show.Show a_261 => GHC.Show.Show (Empty a_261) instance AST.Unmarshal.Unmarshal Empty instance Data.Foldable.Foldable Empty where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Empty where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Empty where traverse = AST.Traversable1.Class.traverseDefault1 data ExprAggregateBody a = ExprAggregateBody { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((AsExprs GHC.Generics.:+: OrderBys) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_262. AST.Traversable1.Class.Traversable1 a_262 ) instance AST.Unmarshal.SymbolMatching ExprAggregateBody where matchedSymbols _ = [125] showFailure _ node_263 = "expected " GHC.Base.<> ( "expr_aggregate_body" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_263 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_264 c1_265 = TreeSitter.Node.nodeStartPoint node_263 TreeSitter.Node.TSPoint r2_266 c2_267 = TreeSitter.Node.nodeEndPoint node_263 deriving instance GHC.Classes.Eq a_268 => GHC.Classes.Eq (ExprAggregateBody a_268) deriving instance GHC.Classes.Ord a_269 => GHC.Classes.Ord (ExprAggregateBody a_269) deriving instance GHC.Show.Show a_270 => GHC.Show.Show (ExprAggregateBody a_270) instance AST.Unmarshal.Unmarshal ExprAggregateBody instance Data.Foldable.Foldable ExprAggregateBody where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ExprAggregateBody where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ExprAggregateBody where traverse = AST.Traversable1.Class.traverseDefault1 data Field a = Field {ann :: a, extraChildren :: (AST.Parse.Err (VarDecl a))} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_271. AST.Traversable1.Class.Traversable1 a_271 ) instance AST.Unmarshal.SymbolMatching Field where matchedSymbols _ = [98] showFailure _ node_272 = "expected " GHC.Base.<> ( "field" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_272 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_273 c1_274 = TreeSitter.Node.nodeStartPoint node_272 TreeSitter.Node.TSPoint r2_275 c2_276 = TreeSitter.Node.nodeEndPoint node_272 deriving instance GHC.Classes.Eq a_277 => GHC.Classes.Eq (Field a_277) deriving instance GHC.Classes.Ord a_278 => GHC.Classes.Ord (Field a_278) deriving instance GHC.Show.Show a_279 => GHC.Show.Show (Field a_279) instance AST.Unmarshal.Unmarshal Field instance Data.Foldable.Foldable Field where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Field where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Field where traverse = AST.Traversable1.Class.traverseDefault1 data FullAggregateBody a = FullAggregateBody { ann :: a, 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)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_280. AST.Traversable1.Class.Traversable1 a_280 ) instance AST.Unmarshal.SymbolMatching FullAggregateBody where matchedSymbols _ = [124] showFailure _ node_281 = "expected " GHC.Base.<> ( "full_aggregate_body" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_281 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_282 c1_283 = TreeSitter.Node.nodeStartPoint node_281 TreeSitter.Node.TSPoint r2_284 c2_285 = TreeSitter.Node.nodeEndPoint node_281 deriving instance GHC.Classes.Eq a_286 => GHC.Classes.Eq (FullAggregateBody a_286) deriving instance GHC.Classes.Ord a_287 => GHC.Classes.Ord (FullAggregateBody a_287) deriving instance GHC.Show.Show a_288 => GHC.Show.Show (FullAggregateBody a_288) instance AST.Unmarshal.Unmarshal FullAggregateBody instance Data.Foldable.Foldable FullAggregateBody where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FullAggregateBody where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FullAggregateBody where traverse = AST.Traversable1.Class.traverseDefault1 data HigherOrderTerm a = HigherOrderTerm { ann :: a, name :: (AST.Parse.Err (LiteralId a)), 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_289. AST.Traversable1.Class.Traversable1 a_289 ) instance AST.Unmarshal.SymbolMatching HigherOrderTerm where matchedSymbols _ = [102] showFailure _ node_290 = "expected " GHC.Base.<> ( "higherOrderTerm" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_290 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_291 c1_292 = TreeSitter.Node.nodeStartPoint node_290 TreeSitter.Node.TSPoint r2_293 c2_294 = TreeSitter.Node.nodeEndPoint node_290 deriving instance GHC.Classes.Eq a_295 => GHC.Classes.Eq (HigherOrderTerm a_295) deriving instance GHC.Classes.Ord a_296 => GHC.Classes.Ord (HigherOrderTerm a_296) deriving instance GHC.Show.Show a_297 => GHC.Show.Show (HigherOrderTerm a_297) instance AST.Unmarshal.Unmarshal HigherOrderTerm instance Data.Foldable.Foldable HigherOrderTerm where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor HigherOrderTerm where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable HigherOrderTerm where traverse = AST.Traversable1.Class.traverseDefault1 data IfTerm a = IfTerm { ann :: a, 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)), 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)), 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_298. AST.Traversable1.Class.Traversable1 a_298 ) instance AST.Unmarshal.SymbolMatching IfTerm where matchedSymbols _ = [112] showFailure _ node_299 = "expected " GHC.Base.<> ( "if_term" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_299 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_300 c1_301 = TreeSitter.Node.nodeStartPoint node_299 TreeSitter.Node.TSPoint r2_302 c2_303 = TreeSitter.Node.nodeEndPoint node_299 deriving instance GHC.Classes.Eq a_304 => GHC.Classes.Eq (IfTerm a_304) deriving instance GHC.Classes.Ord a_305 => GHC.Classes.Ord (IfTerm a_305) deriving instance GHC.Show.Show a_306 => GHC.Show.Show (IfTerm a_306) instance AST.Unmarshal.Unmarshal IfTerm instance Data.Foldable.Foldable IfTerm where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor IfTerm where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable IfTerm where traverse = AST.Traversable1.Class.traverseDefault1 data Implication a = Implication { ann :: a, 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)), 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_307. AST.Traversable1.Class.Traversable1 a_307 ) instance AST.Unmarshal.SymbolMatching Implication where matchedSymbols _ = [115] showFailure _ node_308 = "expected " GHC.Base.<> ( "implication" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_308 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_309 c1_310 = TreeSitter.Node.nodeStartPoint node_308 TreeSitter.Node.TSPoint r2_311 c2_312 = TreeSitter.Node.nodeEndPoint node_308 deriving instance GHC.Classes.Eq a_313 => GHC.Classes.Eq (Implication a_313) deriving instance GHC.Classes.Ord a_314 => GHC.Classes.Ord (Implication a_314) deriving instance GHC.Show.Show a_315 => GHC.Show.Show (Implication a_315) instance AST.Unmarshal.Unmarshal Implication instance Data.Foldable.Foldable Implication where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Implication where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Implication where traverse = AST.Traversable1.Class.traverseDefault1 data ImportModuleExpr a = ImportModuleExpr { ann :: a, name :: ([AST.Parse.Err (SimpleId a)]), extraChildren :: (AST.Parse.Err (QualModuleExpr a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_316. AST.Traversable1.Class.Traversable1 a_316 ) instance AST.Unmarshal.SymbolMatching ImportModuleExpr where matchedSymbols _ = [151] showFailure _ node_317 = "expected " GHC.Base.<> ( "importModuleExpr" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_317 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_318 c1_319 = TreeSitter.Node.nodeStartPoint node_317 TreeSitter.Node.TSPoint r2_320 c2_321 = TreeSitter.Node.nodeEndPoint node_317 deriving instance GHC.Classes.Eq a_322 => GHC.Classes.Eq (ImportModuleExpr a_322) deriving instance GHC.Classes.Ord a_323 => GHC.Classes.Ord (ImportModuleExpr a_323) deriving instance GHC.Show.Show a_324 => GHC.Show.Show (ImportModuleExpr a_324) instance AST.Unmarshal.Unmarshal ImportModuleExpr instance Data.Foldable.Foldable ImportModuleExpr where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ImportModuleExpr where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ImportModuleExpr where traverse = AST.Traversable1.Class.traverseDefault1 data Imprt a = Imprt { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((As GHC.Generics.:+: Import GHC.Generics.:+: ImportModuleExpr GHC.Generics.:+: ModuleName) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_325. AST.Traversable1.Class.Traversable1 a_325 ) instance AST.Unmarshal.SymbolMatching Imprt where matchedSymbols _ = [85] showFailure _ node_326 = "expected " GHC.Base.<> ( "imprt" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_326 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_327 c1_328 = TreeSitter.Node.nodeStartPoint node_326 TreeSitter.Node.TSPoint r2_329 c2_330 = TreeSitter.Node.nodeEndPoint node_326 deriving instance GHC.Classes.Eq a_331 => GHC.Classes.Eq (Imprt a_331) deriving instance GHC.Classes.Ord a_332 => GHC.Classes.Ord (Imprt a_332) deriving instance GHC.Show.Show a_333 => GHC.Show.Show (Imprt a_333) instance AST.Unmarshal.Unmarshal Imprt instance Data.Foldable.Foldable Imprt where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Imprt where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Imprt where traverse = AST.Traversable1.Class.traverseDefault1 data InExpr a = InExpr { ann :: a, 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)), right :: (AST.Parse.Err (Range a)), extraChildren :: (AST.Parse.Err (In a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_334. AST.Traversable1.Class.Traversable1 a_334 ) instance AST.Unmarshal.SymbolMatching InExpr where matchedSymbols _ = [108] showFailure _ node_335 = "expected " GHC.Base.<> ( "in_expr" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_335 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_336 c1_337 = TreeSitter.Node.nodeStartPoint node_335 TreeSitter.Node.TSPoint r2_338 c2_339 = TreeSitter.Node.nodeEndPoint node_335 deriving instance GHC.Classes.Eq a_340 => GHC.Classes.Eq (InExpr a_340) deriving instance GHC.Classes.Ord a_341 => GHC.Classes.Ord (InExpr a_341) deriving instance GHC.Show.Show a_342 => GHC.Show.Show (InExpr a_342) instance AST.Unmarshal.Unmarshal InExpr instance Data.Foldable.Foldable InExpr where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor InExpr where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable InExpr where traverse = AST.Traversable1.Class.traverseDefault1 data InstanceOf a = InstanceOf { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_343. AST.Traversable1.Class.Traversable1 a_343 ) instance AST.Unmarshal.SymbolMatching InstanceOf where matchedSymbols _ = [110] showFailure _ node_344 = "expected " GHC.Base.<> ( "instance_of" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_344 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_345 c1_346 = TreeSitter.Node.nodeStartPoint node_344 TreeSitter.Node.TSPoint r2_347 c2_348 = TreeSitter.Node.nodeEndPoint node_344 deriving instance GHC.Classes.Eq a_349 => GHC.Classes.Eq (InstanceOf a_349) deriving instance GHC.Classes.Ord a_350 => GHC.Classes.Ord (InstanceOf a_350) deriving instance GHC.Show.Show a_351 => GHC.Show.Show (InstanceOf a_351) instance AST.Unmarshal.Unmarshal InstanceOf instance Data.Foldable.Foldable InstanceOf where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor InstanceOf where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable InstanceOf where traverse = AST.Traversable1.Class.traverseDefault1 data Literal a = Literal { ann :: a, extraChildren :: (AST.Parse.Err ((Bool GHC.Generics.:+: Float GHC.Generics.:+: Integer GHC.Generics.:+: String) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_352. AST.Traversable1.Class.Traversable1 a_352 ) instance AST.Unmarshal.SymbolMatching Literal where matchedSymbols _ = [131] showFailure _ node_353 = "expected " GHC.Base.<> ( "literal" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_353 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_354 c1_355 = TreeSitter.Node.nodeStartPoint node_353 TreeSitter.Node.TSPoint r2_356 c2_357 = TreeSitter.Node.nodeEndPoint node_353 deriving instance GHC.Classes.Eq a_358 => GHC.Classes.Eq (Literal a_358) deriving instance GHC.Classes.Ord a_359 => GHC.Classes.Ord (Literal a_359) deriving instance GHC.Show.Show a_360 => GHC.Show.Show (Literal a_360) instance AST.Unmarshal.Unmarshal Literal instance Data.Foldable.Foldable Literal where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Literal where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Literal where traverse = AST.Traversable1.Class.traverseDefault1 data LiteralId a = LiteralId {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_361. AST.Traversable1.Class.Traversable1 a_361 ) instance AST.Unmarshal.SymbolMatching LiteralId where matchedSymbols _ = [145] showFailure _ node_362 = "expected " GHC.Base.<> ( "literalId" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_362 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_363 c1_364 = TreeSitter.Node.nodeStartPoint node_362 TreeSitter.Node.TSPoint r2_365 c2_366 = TreeSitter.Node.nodeEndPoint node_362 deriving instance GHC.Classes.Eq a_367 => GHC.Classes.Eq (LiteralId a_367) deriving instance GHC.Classes.Ord a_368 => GHC.Classes.Ord (LiteralId a_368) deriving instance GHC.Show.Show a_369 => GHC.Show.Show (LiteralId a_369) instance AST.Unmarshal.Unmarshal LiteralId instance Data.Foldable.Foldable LiteralId where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor LiteralId where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable LiteralId where traverse = AST.Traversable1.Class.traverseDefault1 data MemberPredicate a = MemberPredicate { ann :: a, name :: (AST.Parse.Err (PredicateName a)), extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Body GHC.Generics.:+: Empty GHC.Generics.:+: HigherOrderTerm GHC.Generics.:+: ReturnType GHC.Generics.:+: VarDecl) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_370. AST.Traversable1.Class.Traversable1 a_370 ) instance AST.Unmarshal.SymbolMatching MemberPredicate where matchedSymbols _ = [97] showFailure _ node_371 = "expected " GHC.Base.<> ( "memberPredicate" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_371 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_372 c1_373 = TreeSitter.Node.nodeStartPoint node_371 TreeSitter.Node.TSPoint r2_374 c2_375 = TreeSitter.Node.nodeEndPoint node_371 deriving instance GHC.Classes.Eq a_376 => GHC.Classes.Eq (MemberPredicate a_376) deriving instance GHC.Classes.Ord a_377 => GHC.Classes.Ord (MemberPredicate a_377) deriving instance GHC.Show.Show a_378 => GHC.Show.Show (MemberPredicate a_378) instance AST.Unmarshal.Unmarshal MemberPredicate instance Data.Foldable.Foldable MemberPredicate where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor MemberPredicate where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable MemberPredicate where traverse = AST.Traversable1.Class.traverseDefault1 data Module a = Module { ann :: a, name :: (AST.Parse.Err (ModuleName a)), extraChildren :: ([AST.Parse.Err ((ModuleAliasBody GHC.Generics.:+: ModuleMember) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_379. AST.Traversable1.Class.Traversable1 a_379 ) instance AST.Unmarshal.SymbolMatching Module where matchedSymbols _ = [83] showFailure _ node_380 = "expected " GHC.Base.<> ( "module" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_380 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_381 c1_382 = TreeSitter.Node.nodeStartPoint node_380 TreeSitter.Node.TSPoint r2_383 c2_384 = TreeSitter.Node.nodeEndPoint node_380 deriving instance GHC.Classes.Eq a_385 => GHC.Classes.Eq (Module a_385) deriving instance GHC.Classes.Ord a_386 => GHC.Classes.Ord (Module a_386) deriving instance GHC.Show.Show a_387 => GHC.Show.Show (Module a_387) instance AST.Unmarshal.Unmarshal Module instance Data.Foldable.Foldable Module where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Module where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Module where traverse = AST.Traversable1.Class.traverseDefault1 data ModuleAliasBody a = ModuleAliasBody { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Eq GHC.Generics.:+: ModuleExpr) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_388. AST.Traversable1.Class.Traversable1 a_388 ) instance AST.Unmarshal.SymbolMatching ModuleAliasBody where matchedSymbols _ = [86] showFailure _ node_389 = "expected " GHC.Base.<> ( "moduleAliasBody" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_389 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_390 c1_391 = TreeSitter.Node.nodeStartPoint node_389 TreeSitter.Node.TSPoint r2_392 c2_393 = TreeSitter.Node.nodeEndPoint node_389 deriving instance GHC.Classes.Eq a_394 => GHC.Classes.Eq (ModuleAliasBody a_394) deriving instance GHC.Classes.Ord a_395 => GHC.Classes.Ord (ModuleAliasBody a_395) deriving instance GHC.Show.Show a_396 => GHC.Show.Show (ModuleAliasBody a_396) instance AST.Unmarshal.Unmarshal ModuleAliasBody instance Data.Foldable.Foldable ModuleAliasBody where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ModuleAliasBody where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ModuleAliasBody where traverse = AST.Traversable1.Class.traverseDefault1 data ModuleExpr a = ModuleExpr { ann :: a, name :: (GHC.Maybe.Maybe (AST.Parse.Err (SimpleId a))), extraChildren :: (AST.Parse.Err ((ModuleExpr GHC.Generics.:+: SimpleId) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_397. AST.Traversable1.Class.Traversable1 a_397 ) instance AST.Unmarshal.SymbolMatching ModuleExpr where matchedSymbols _ = [152] showFailure _ node_398 = "expected " GHC.Base.<> ( "moduleExpr" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_398 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_399 c1_400 = TreeSitter.Node.nodeStartPoint node_398 TreeSitter.Node.TSPoint r2_401 c2_402 = TreeSitter.Node.nodeEndPoint node_398 deriving instance GHC.Classes.Eq a_403 => GHC.Classes.Eq (ModuleExpr a_403) deriving instance GHC.Classes.Ord a_404 => GHC.Classes.Ord (ModuleExpr a_404) deriving instance GHC.Show.Show a_405 => GHC.Show.Show (ModuleExpr a_405) instance AST.Unmarshal.Unmarshal ModuleExpr instance Data.Foldable.Foldable ModuleExpr where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ModuleExpr where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ModuleExpr where traverse = AST.Traversable1.Class.traverseDefault1 data ModuleMember a = ModuleMember { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_406. AST.Traversable1.Class.Traversable1 a_406 ) instance AST.Unmarshal.SymbolMatching ModuleMember where matchedSymbols _ = [84] showFailure _ node_407 = "expected " GHC.Base.<> ( "moduleMember" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_407 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_408 c1_409 = TreeSitter.Node.nodeStartPoint node_407 TreeSitter.Node.TSPoint r2_410 c2_411 = TreeSitter.Node.nodeEndPoint node_407 deriving instance GHC.Classes.Eq a_412 => GHC.Classes.Eq (ModuleMember a_412) deriving instance GHC.Classes.Ord a_413 => GHC.Classes.Ord (ModuleMember a_413) deriving instance GHC.Show.Show a_414 => GHC.Show.Show (ModuleMember a_414) instance AST.Unmarshal.Unmarshal ModuleMember instance Data.Foldable.Foldable ModuleMember where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ModuleMember where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ModuleMember where traverse = AST.Traversable1.Class.traverseDefault1 data ModuleName a = ModuleName { ann :: a, extraChildren :: (AST.Parse.Err (SimpleId a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_415. AST.Traversable1.Class.Traversable1 a_415 ) instance AST.Unmarshal.SymbolMatching ModuleName where matchedSymbols _ = [149] showFailure _ node_416 = "expected " GHC.Base.<> ( "moduleName" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_416 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_417 c1_418 = TreeSitter.Node.nodeStartPoint node_416 TreeSitter.Node.TSPoint r2_419 c2_420 = TreeSitter.Node.nodeEndPoint node_416 deriving instance GHC.Classes.Eq a_421 => GHC.Classes.Eq (ModuleName a_421) deriving instance GHC.Classes.Ord a_422 => GHC.Classes.Ord (ModuleName a_422) deriving instance GHC.Show.Show a_423 => GHC.Show.Show (ModuleName a_423) instance AST.Unmarshal.Unmarshal ModuleName instance Data.Foldable.Foldable ModuleName where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ModuleName where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ModuleName where traverse = AST.Traversable1.Class.traverseDefault1 data MulExpr a = MulExpr { ann :: a, 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)), 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)), extraChildren :: (AST.Parse.Err (Mulop a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_424. AST.Traversable1.Class.Traversable1 a_424 ) instance AST.Unmarshal.SymbolMatching MulExpr where matchedSymbols _ = [106] showFailure _ node_425 = "expected " GHC.Base.<> ( "mul_expr" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_425 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_426 c1_427 = TreeSitter.Node.nodeStartPoint node_425 TreeSitter.Node.TSPoint r2_428 c2_429 = TreeSitter.Node.nodeEndPoint node_425 deriving instance GHC.Classes.Eq a_430 => GHC.Classes.Eq (MulExpr a_430) deriving instance GHC.Classes.Ord a_431 => GHC.Classes.Ord (MulExpr a_431) deriving instance GHC.Show.Show a_432 => GHC.Show.Show (MulExpr a_432) instance AST.Unmarshal.Unmarshal MulExpr instance Data.Foldable.Foldable MulExpr where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor MulExpr where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable MulExpr where traverse = AST.Traversable1.Class.traverseDefault1 data Mulop a = Mulop { ann :: a, extraChildren :: (AST.Parse.Err ((Mod GHC.Generics.:+: Slash GHC.Generics.:+: Star) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_433. AST.Traversable1.Class.Traversable1 a_433 ) instance AST.Unmarshal.SymbolMatching Mulop where matchedSymbols _ = [136] showFailure _ node_434 = "expected " GHC.Base.<> ( "mulop" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_434 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_435 c1_436 = TreeSitter.Node.nodeStartPoint node_434 TreeSitter.Node.TSPoint r2_437 c2_438 = TreeSitter.Node.nodeEndPoint node_434 deriving instance GHC.Classes.Eq a_439 => GHC.Classes.Eq (Mulop a_439) deriving instance GHC.Classes.Ord a_440 => GHC.Classes.Ord (Mulop a_440) deriving instance GHC.Show.Show a_441 => GHC.Show.Show (Mulop a_441) instance AST.Unmarshal.Unmarshal Mulop instance Data.Foldable.Foldable Mulop where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Mulop where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Mulop where traverse = AST.Traversable1.Class.traverseDefault1 data Negation a = Negation { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_442. AST.Traversable1.Class.Traversable1 a_442 ) instance AST.Unmarshal.SymbolMatching Negation where matchedSymbols _ = [111] showFailure _ node_443 = "expected " GHC.Base.<> ( "negation" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_443 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_444 c1_445 = TreeSitter.Node.nodeStartPoint node_443 TreeSitter.Node.TSPoint r2_446 c2_447 = TreeSitter.Node.nodeEndPoint node_443 deriving instance GHC.Classes.Eq a_448 => GHC.Classes.Eq (Negation a_448) deriving instance GHC.Classes.Ord a_449 => GHC.Classes.Ord (Negation a_449) deriving instance GHC.Show.Show a_450 => GHC.Show.Show (Negation a_450) instance AST.Unmarshal.Unmarshal Negation instance Data.Foldable.Foldable Negation where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Negation where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Negation where traverse = AST.Traversable1.Class.traverseDefault1 data OrderBy a = OrderBy { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_451. AST.Traversable1.Class.Traversable1 a_451 ) instance AST.Unmarshal.SymbolMatching OrderBy where matchedSymbols _ = [144] showFailure _ node_452 = "expected " GHC.Base.<> ( "orderBy" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_452 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_453 c1_454 = TreeSitter.Node.nodeStartPoint node_452 TreeSitter.Node.TSPoint r2_455 c2_456 = TreeSitter.Node.nodeEndPoint node_452 deriving instance GHC.Classes.Eq a_457 => GHC.Classes.Eq (OrderBy a_457) deriving instance GHC.Classes.Ord a_458 => GHC.Classes.Ord (OrderBy a_458) deriving instance GHC.Show.Show a_459 => GHC.Show.Show (OrderBy a_459) instance AST.Unmarshal.Unmarshal OrderBy instance Data.Foldable.Foldable OrderBy where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor OrderBy where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable OrderBy where traverse = AST.Traversable1.Class.traverseDefault1 data OrderBys a = OrderBys { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (OrderBy a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_460. AST.Traversable1.Class.Traversable1 a_460 ) instance AST.Unmarshal.SymbolMatching OrderBys where matchedSymbols _ = [143] showFailure _ node_461 = "expected " GHC.Base.<> ( "orderBys" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_461 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_462 c1_463 = TreeSitter.Node.nodeStartPoint node_461 TreeSitter.Node.TSPoint r2_464 c2_465 = TreeSitter.Node.nodeEndPoint node_461 deriving instance GHC.Classes.Eq a_466 => GHC.Classes.Eq (OrderBys a_466) deriving instance GHC.Classes.Ord a_467 => GHC.Classes.Ord (OrderBys a_467) deriving instance GHC.Show.Show a_468 => GHC.Show.Show (OrderBys a_468) instance AST.Unmarshal.Unmarshal OrderBys instance Data.Foldable.Foldable OrderBys where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor OrderBys where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable OrderBys where traverse = AST.Traversable1.Class.traverseDefault1 data ParExpr a = ParExpr { ann :: a, 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_469. AST.Traversable1.Class.Traversable1 a_469 ) instance AST.Unmarshal.SymbolMatching ParExpr where matchedSymbols _ = [128] showFailure _ node_470 = "expected " GHC.Base.<> ( "par_expr" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_470 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_471 c1_472 = TreeSitter.Node.nodeStartPoint node_470 TreeSitter.Node.TSPoint r2_473 c2_474 = TreeSitter.Node.nodeEndPoint node_470 deriving instance GHC.Classes.Eq a_475 => GHC.Classes.Eq (ParExpr a_475) deriving instance GHC.Classes.Ord a_476 => GHC.Classes.Ord (ParExpr a_476) deriving instance GHC.Show.Show a_477 => GHC.Show.Show (ParExpr a_477) instance AST.Unmarshal.Unmarshal ParExpr instance Data.Foldable.Foldable ParExpr where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ParExpr where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ParExpr where traverse = AST.Traversable1.Class.traverseDefault1 data PredicateAliasBody a = PredicateAliasBody { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Eq GHC.Generics.:+: PredicateExpr) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_478. AST.Traversable1.Class.Traversable1 a_478 ) instance AST.Unmarshal.SymbolMatching PredicateAliasBody where matchedSymbols _ = [87] showFailure _ node_479 = "expected " GHC.Base.<> ( "predicateAliasBody" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_479 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_480 c1_481 = TreeSitter.Node.nodeStartPoint node_479 TreeSitter.Node.TSPoint r2_482 c2_483 = TreeSitter.Node.nodeEndPoint node_479 deriving instance GHC.Classes.Eq a_484 => GHC.Classes.Eq (PredicateAliasBody a_484) deriving instance GHC.Classes.Ord a_485 => GHC.Classes.Ord (PredicateAliasBody a_485) deriving instance GHC.Show.Show a_486 => GHC.Show.Show (PredicateAliasBody a_486) instance AST.Unmarshal.Unmarshal PredicateAliasBody instance Data.Foldable.Foldable PredicateAliasBody where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor PredicateAliasBody where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable PredicateAliasBody where traverse = AST.Traversable1.Class.traverseDefault1 data PredicateExpr a = PredicateExpr { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((AritylessPredicateExpr GHC.Generics.:+: Integer GHC.Generics.:+: Slash) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_487. AST.Traversable1.Class.Traversable1 a_487 ) instance AST.Unmarshal.SymbolMatching PredicateExpr where matchedSymbols _ = [161] showFailure _ node_488 = "expected " GHC.Base.<> ( "predicateExpr" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_488 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_489 c1_490 = TreeSitter.Node.nodeStartPoint node_488 TreeSitter.Node.TSPoint r2_491 c2_492 = TreeSitter.Node.nodeEndPoint node_488 deriving instance GHC.Classes.Eq a_493 => GHC.Classes.Eq (PredicateExpr a_493) deriving instance GHC.Classes.Ord a_494 => GHC.Classes.Ord (PredicateExpr a_494) deriving instance GHC.Show.Show a_495 => GHC.Show.Show (PredicateExpr a_495) instance AST.Unmarshal.Unmarshal PredicateExpr instance Data.Foldable.Foldable PredicateExpr where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor PredicateExpr where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable PredicateExpr where traverse = AST.Traversable1.Class.traverseDefault1 data PredicateName a = PredicateName {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_496. AST.Traversable1.Class.Traversable1 a_496 ) instance AST.Unmarshal.SymbolMatching PredicateName where matchedSymbols _ = [159] showFailure _ node_497 = "expected " GHC.Base.<> ( "predicateName" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_497 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_498 c1_499 = TreeSitter.Node.nodeStartPoint node_497 TreeSitter.Node.TSPoint r2_500 c2_501 = TreeSitter.Node.nodeEndPoint node_497 deriving instance GHC.Classes.Eq a_502 => GHC.Classes.Eq (PredicateName a_502) deriving instance GHC.Classes.Ord a_503 => GHC.Classes.Ord (PredicateName a_503) deriving instance GHC.Show.Show a_504 => GHC.Show.Show (PredicateName a_504) instance AST.Unmarshal.Unmarshal PredicateName instance Data.Foldable.Foldable PredicateName where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor PredicateName where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable PredicateName where traverse = AST.Traversable1.Class.traverseDefault1 data PrefixCast a = PrefixCast { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_505. AST.Traversable1.Class.Traversable1 a_505 ) instance AST.Unmarshal.SymbolMatching PrefixCast where matchedSymbols _ = [104] showFailure _ node_506 = "expected " GHC.Base.<> ( "prefix_cast" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_506 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_507 c1_508 = TreeSitter.Node.nodeStartPoint node_506 TreeSitter.Node.TSPoint r2_509 c2_510 = TreeSitter.Node.nodeEndPoint node_506 deriving instance GHC.Classes.Eq a_511 => GHC.Classes.Eq (PrefixCast a_511) deriving instance GHC.Classes.Ord a_512 => GHC.Classes.Ord (PrefixCast a_512) deriving instance GHC.Show.Show a_513 => GHC.Show.Show (PrefixCast a_513) instance AST.Unmarshal.Unmarshal PrefixCast instance Data.Foldable.Foldable PrefixCast where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor PrefixCast where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable PrefixCast where traverse = AST.Traversable1.Class.traverseDefault1 data Ql a = Ql { ann :: a, extraChildren :: ([AST.Parse.Err (ModuleMember a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_514. AST.Traversable1.Class.Traversable1 a_514 ) instance AST.Unmarshal.SymbolMatching Ql where matchedSymbols _ = [82] showFailure _ node_515 = "expected " GHC.Base.<> ( "ql" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_515 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_516 c1_517 = TreeSitter.Node.nodeStartPoint node_515 TreeSitter.Node.TSPoint r2_518 c2_519 = TreeSitter.Node.nodeEndPoint node_515 deriving instance GHC.Classes.Eq a_520 => GHC.Classes.Eq (Ql a_520) deriving instance GHC.Classes.Ord a_521 => GHC.Classes.Ord (Ql a_521) deriving instance GHC.Show.Show a_522 => GHC.Show.Show (Ql a_522) instance AST.Unmarshal.Unmarshal Ql instance Data.Foldable.Foldable Ql where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Ql where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Ql where traverse = AST.Traversable1.Class.traverseDefault1 data QualModuleExpr a = QualModuleExpr { ann :: a, name :: (GHC.Base.NonEmpty (AST.Parse.Err (SimpleId a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_523. AST.Traversable1.Class.Traversable1 a_523 ) instance AST.Unmarshal.SymbolMatching QualModuleExpr where matchedSymbols _ = [150] showFailure _ node_524 = "expected " GHC.Base.<> ( "qualModuleExpr" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_524 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_525 c1_526 = TreeSitter.Node.nodeStartPoint node_524 TreeSitter.Node.TSPoint r2_527 c2_528 = TreeSitter.Node.nodeEndPoint node_524 deriving instance GHC.Classes.Eq a_529 => GHC.Classes.Eq (QualModuleExpr a_529) deriving instance GHC.Classes.Ord a_530 => GHC.Classes.Ord (QualModuleExpr a_530) deriving instance GHC.Show.Show a_531 => GHC.Show.Show (QualModuleExpr a_531) instance AST.Unmarshal.Unmarshal QualModuleExpr instance Data.Foldable.Foldable QualModuleExpr where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor QualModuleExpr where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable QualModuleExpr where traverse = AST.Traversable1.Class.traverseDefault1 data QualifiedRhs a = QualifiedRhs { ann :: a, name :: (GHC.Maybe.Maybe (AST.Parse.Err (PredicateName a))), 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)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_532. AST.Traversable1.Class.Traversable1 a_532 ) instance AST.Unmarshal.SymbolMatching QualifiedRhs where matchedSymbols _ = [120] showFailure _ node_533 = "expected " GHC.Base.<> ( "qualifiedRhs" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_533 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_534 c1_535 = TreeSitter.Node.nodeStartPoint node_533 TreeSitter.Node.TSPoint r2_536 c2_537 = TreeSitter.Node.nodeEndPoint node_533 deriving instance GHC.Classes.Eq a_538 => GHC.Classes.Eq (QualifiedRhs a_538) deriving instance GHC.Classes.Ord a_539 => GHC.Classes.Ord (QualifiedRhs a_539) deriving instance GHC.Show.Show a_540 => GHC.Show.Show (QualifiedRhs a_540) instance AST.Unmarshal.Unmarshal QualifiedRhs instance Data.Foldable.Foldable QualifiedRhs where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor QualifiedRhs where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable QualifiedRhs where traverse = AST.Traversable1.Class.traverseDefault1 data QualifiedExpr a = QualifiedExpr { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_541. AST.Traversable1.Class.Traversable1 a_541 ) instance AST.Unmarshal.SymbolMatching QualifiedExpr where matchedSymbols _ = [122] showFailure _ node_542 = "expected " GHC.Base.<> ( "qualified_expr" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_542 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_543 c1_544 = TreeSitter.Node.nodeStartPoint node_542 TreeSitter.Node.TSPoint r2_545 c2_546 = TreeSitter.Node.nodeEndPoint node_542 deriving instance GHC.Classes.Eq a_547 => GHC.Classes.Eq (QualifiedExpr a_547) deriving instance GHC.Classes.Ord a_548 => GHC.Classes.Ord (QualifiedExpr a_548) deriving instance GHC.Show.Show a_549 => GHC.Show.Show (QualifiedExpr a_549) instance AST.Unmarshal.Unmarshal QualifiedExpr instance Data.Foldable.Foldable QualifiedExpr where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor QualifiedExpr where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable QualifiedExpr where traverse = AST.Traversable1.Class.traverseDefault1 data Quantified a = Quantified { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_550. AST.Traversable1.Class.Traversable1 a_550 ) instance AST.Unmarshal.SymbolMatching Quantified where matchedSymbols _ = [116] showFailure _ node_551 = "expected " GHC.Base.<> ( "quantified" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_551 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_552 c1_553 = TreeSitter.Node.nodeStartPoint node_551 TreeSitter.Node.TSPoint r2_554 c2_555 = TreeSitter.Node.nodeEndPoint node_551 deriving instance GHC.Classes.Eq a_556 => GHC.Classes.Eq (Quantified a_556) deriving instance GHC.Classes.Ord a_557 => GHC.Classes.Ord (Quantified a_557) deriving instance GHC.Show.Show a_558 => GHC.Show.Show (Quantified a_558) instance AST.Unmarshal.Unmarshal Quantified instance Data.Foldable.Foldable Quantified where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Quantified where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Quantified where traverse = AST.Traversable1.Class.traverseDefault1 data Quantifier a = Quantifier { ann :: a, extraChildren :: (AST.Parse.Err ((Exists GHC.Generics.:+: Forall GHC.Generics.:+: Forex) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_559. AST.Traversable1.Class.Traversable1 a_559 ) instance AST.Unmarshal.SymbolMatching Quantifier where matchedSymbols _ = [118] showFailure _ node_560 = "expected " GHC.Base.<> ( "quantifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_560 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_561 c1_562 = TreeSitter.Node.nodeStartPoint node_560 TreeSitter.Node.TSPoint r2_563 c2_564 = TreeSitter.Node.nodeEndPoint node_560 deriving instance GHC.Classes.Eq a_565 => GHC.Classes.Eq (Quantifier a_565) deriving instance GHC.Classes.Ord a_566 => GHC.Classes.Ord (Quantifier a_566) deriving instance GHC.Show.Show a_567 => GHC.Show.Show (Quantifier a_567) instance AST.Unmarshal.Unmarshal Quantifier instance Data.Foldable.Foldable Quantifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Quantifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Quantifier where traverse = AST.Traversable1.Class.traverseDefault1 data Range a = Range { ann :: a, 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)), 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_568. AST.Traversable1.Class.Traversable1 a_568 ) instance AST.Unmarshal.SymbolMatching Range where matchedSymbols _ = [127] showFailure _ node_569 = "expected " GHC.Base.<> ( "range" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_569 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_570 c1_571 = TreeSitter.Node.nodeStartPoint node_569 TreeSitter.Node.TSPoint r2_572 c2_573 = TreeSitter.Node.nodeEndPoint node_569 deriving instance GHC.Classes.Eq a_574 => GHC.Classes.Eq (Range a_574) deriving instance GHC.Classes.Ord a_575 => GHC.Classes.Ord (Range a_575) deriving instance GHC.Show.Show a_576 => GHC.Show.Show (Range a_576) instance AST.Unmarshal.Unmarshal Range instance Data.Foldable.Foldable Range where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Range where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Range where traverse = AST.Traversable1.Class.traverseDefault1 data ReturnType a = ReturnType { ann :: a, extraChildren :: (AST.Parse.Err ((Predicate GHC.Generics.:+: TypeExpr) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_577. AST.Traversable1.Class.Traversable1 a_577 ) instance AST.Unmarshal.SymbolMatching ReturnType where matchedSymbols _ = [157] showFailure _ node_578 = "expected " GHC.Base.<> ( "returnType" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_578 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_579 c1_580 = TreeSitter.Node.nodeStartPoint node_578 TreeSitter.Node.TSPoint r2_581 c2_582 = TreeSitter.Node.nodeEndPoint node_578 deriving instance GHC.Classes.Eq a_583 => GHC.Classes.Eq (ReturnType a_583) deriving instance GHC.Classes.Ord a_584 => GHC.Classes.Ord (ReturnType a_584) deriving instance GHC.Show.Show a_585 => GHC.Show.Show (ReturnType a_585) instance AST.Unmarshal.Unmarshal ReturnType instance Data.Foldable.Foldable ReturnType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ReturnType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ReturnType where traverse = AST.Traversable1.Class.traverseDefault1 data Select a = Select { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_586. AST.Traversable1.Class.Traversable1 a_586 ) instance AST.Unmarshal.SymbolMatching Select where matchedSymbols _ = [93] showFailure _ node_587 = "expected " GHC.Base.<> ( "select" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_587 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_588 c1_589 = TreeSitter.Node.nodeStartPoint node_587 TreeSitter.Node.TSPoint r2_590 c2_591 = TreeSitter.Node.nodeEndPoint node_587 deriving instance GHC.Classes.Eq a_592 => GHC.Classes.Eq (Select a_592) deriving instance GHC.Classes.Ord a_593 => GHC.Classes.Ord (Select a_593) deriving instance GHC.Show.Show a_594 => GHC.Show.Show (Select a_594) instance AST.Unmarshal.Unmarshal Select instance Data.Foldable.Foldable Select where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Select where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Select where traverse = AST.Traversable1.Class.traverseDefault1 data SimpleId a = SimpleId {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_595. AST.Traversable1.Class.Traversable1 a_595 ) instance AST.Unmarshal.SymbolMatching SimpleId where matchedSymbols _ = [154] showFailure _ node_596 = "expected " GHC.Base.<> ( "simpleId" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_596 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_597 c1_598 = TreeSitter.Node.nodeStartPoint node_596 TreeSitter.Node.TSPoint r2_599 c2_600 = TreeSitter.Node.nodeEndPoint node_596 deriving instance GHC.Classes.Eq a_601 => GHC.Classes.Eq (SimpleId a_601) deriving instance GHC.Classes.Ord a_602 => GHC.Classes.Ord (SimpleId a_602) deriving instance GHC.Show.Show a_603 => GHC.Show.Show (SimpleId a_603) instance AST.Unmarshal.Unmarshal SimpleId instance Data.Foldable.Foldable SimpleId where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SimpleId where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SimpleId where traverse = AST.Traversable1.Class.traverseDefault1 data SpecialId a = SpecialId {ann :: a, extraChildren :: (AST.Parse.Err (None a))} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_604. AST.Traversable1.Class.Traversable1 a_604 ) instance AST.Unmarshal.SymbolMatching SpecialId where matchedSymbols _ = [117] showFailure _ node_605 = "expected " GHC.Base.<> ( "specialId" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_605 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_606 c1_607 = TreeSitter.Node.nodeStartPoint node_605 TreeSitter.Node.TSPoint r2_608 c2_609 = TreeSitter.Node.nodeEndPoint node_605 deriving instance GHC.Classes.Eq a_610 => GHC.Classes.Eq (SpecialId a_610) deriving instance GHC.Classes.Ord a_611 => GHC.Classes.Ord (SpecialId a_611) deriving instance GHC.Show.Show a_612 => GHC.Show.Show (SpecialId a_612) instance AST.Unmarshal.Unmarshal SpecialId instance Data.Foldable.Foldable SpecialId where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SpecialId where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SpecialId where traverse = AST.Traversable1.Class.traverseDefault1 data SpecialCall a = SpecialCall { ann :: a, extraChildren :: (AST.Parse.Err (SpecialId a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_613. AST.Traversable1.Class.Traversable1 a_613 ) instance AST.Unmarshal.SymbolMatching SpecialCall where matchedSymbols _ = [103] showFailure _ node_614 = "expected " GHC.Base.<> ( "special_call" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_614 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_615 c1_616 = TreeSitter.Node.nodeStartPoint node_614 TreeSitter.Node.TSPoint r2_617 c2_618 = TreeSitter.Node.nodeEndPoint node_614 deriving instance GHC.Classes.Eq a_619 => GHC.Classes.Eq (SpecialCall a_619) deriving instance GHC.Classes.Ord a_620 => GHC.Classes.Ord (SpecialCall a_620) deriving instance GHC.Show.Show a_621 => GHC.Show.Show (SpecialCall a_621) instance AST.Unmarshal.Unmarshal SpecialCall instance Data.Foldable.Foldable SpecialCall where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SpecialCall where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SpecialCall where traverse = AST.Traversable1.Class.traverseDefault1 data SuperRef a = SuperRef { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Super GHC.Generics.:+: TypeExpr) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_622. AST.Traversable1.Class.Traversable1 a_622 ) instance AST.Unmarshal.SymbolMatching SuperRef where matchedSymbols _ = [123] showFailure _ node_623 = "expected " GHC.Base.<> ( "super_ref" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_623 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_624 c1_625 = TreeSitter.Node.nodeStartPoint node_623 TreeSitter.Node.TSPoint r2_626 c2_627 = TreeSitter.Node.nodeEndPoint node_623 deriving instance GHC.Classes.Eq a_628 => GHC.Classes.Eq (SuperRef a_628) deriving instance GHC.Classes.Ord a_629 => GHC.Classes.Ord (SuperRef a_629) deriving instance GHC.Show.Show a_630 => GHC.Show.Show (SuperRef a_630) instance AST.Unmarshal.Unmarshal SuperRef instance Data.Foldable.Foldable SuperRef where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SuperRef where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SuperRef where traverse = AST.Traversable1.Class.traverseDefault1 data TypeAliasBody a = TypeAliasBody { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Eq GHC.Generics.:+: TypeExpr) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_631. AST.Traversable1.Class.Traversable1 a_631 ) instance AST.Unmarshal.SymbolMatching TypeAliasBody where matchedSymbols _ = [88] showFailure _ node_632 = "expected " GHC.Base.<> ( "typeAliasBody" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_632 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_633 c1_634 = TreeSitter.Node.nodeStartPoint node_632 TreeSitter.Node.TSPoint r2_635 c2_636 = TreeSitter.Node.nodeEndPoint node_632 deriving instance GHC.Classes.Eq a_637 => GHC.Classes.Eq (TypeAliasBody a_637) deriving instance GHC.Classes.Ord a_638 => GHC.Classes.Ord (TypeAliasBody a_638) deriving instance GHC.Show.Show a_639 => GHC.Show.Show (TypeAliasBody a_639) instance AST.Unmarshal.Unmarshal TypeAliasBody instance Data.Foldable.Foldable TypeAliasBody where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeAliasBody where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeAliasBody where traverse = AST.Traversable1.Class.traverseDefault1 data TypeExpr a = TypeExpr { ann :: a, name :: (GHC.Maybe.Maybe (AST.Parse.Err (ClassName a))), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err ((ModuleExpr GHC.Generics.:+: TypeLiteral) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_640. AST.Traversable1.Class.Traversable1 a_640 ) instance AST.Unmarshal.SymbolMatching TypeExpr where matchedSymbols _ = [158] showFailure _ node_641 = "expected " GHC.Base.<> ( "typeExpr" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_641 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_642 c1_643 = TreeSitter.Node.nodeStartPoint node_641 TreeSitter.Node.TSPoint r2_644 c2_645 = TreeSitter.Node.nodeEndPoint node_641 deriving instance GHC.Classes.Eq a_646 => GHC.Classes.Eq (TypeExpr a_646) deriving instance GHC.Classes.Ord a_647 => GHC.Classes.Ord (TypeExpr a_647) deriving instance GHC.Show.Show a_648 => GHC.Show.Show (TypeExpr a_648) instance AST.Unmarshal.Unmarshal TypeExpr instance Data.Foldable.Foldable TypeExpr where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeExpr where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeExpr where traverse = AST.Traversable1.Class.traverseDefault1 data TypeLiteral a = TypeLiteral { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err ((Boolean GHC.Generics.:+: Date GHC.Generics.:+: Dbtype) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_649. AST.Traversable1.Class.Traversable1 a_649 ) instance AST.Unmarshal.SymbolMatching TypeLiteral where matchedSymbols _ = [153] showFailure _ node_650 = "expected " GHC.Base.<> ( "typeLiteral" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_650 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_651 c1_652 = TreeSitter.Node.nodeStartPoint node_650 TreeSitter.Node.TSPoint r2_653 c2_654 = TreeSitter.Node.nodeEndPoint node_650 deriving instance GHC.Classes.Eq a_655 => GHC.Classes.Eq (TypeLiteral a_655) deriving instance GHC.Classes.Ord a_656 => GHC.Classes.Ord (TypeLiteral a_656) deriving instance GHC.Show.Show a_657 => GHC.Show.Show (TypeLiteral a_657) instance AST.Unmarshal.Unmarshal TypeLiteral instance Data.Foldable.Foldable TypeLiteral where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeLiteral where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeLiteral where traverse = AST.Traversable1.Class.traverseDefault1 data UnaryExpr a = UnaryExpr { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_658. AST.Traversable1.Class.Traversable1 a_658 ) instance AST.Unmarshal.SymbolMatching UnaryExpr where matchedSymbols _ = [105] showFailure _ node_659 = "expected " GHC.Base.<> ( "unary_expr" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_659 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_660 c1_661 = TreeSitter.Node.nodeStartPoint node_659 TreeSitter.Node.TSPoint r2_662 c2_663 = TreeSitter.Node.nodeEndPoint node_659 deriving instance GHC.Classes.Eq a_664 => GHC.Classes.Eq (UnaryExpr a_664) deriving instance GHC.Classes.Ord a_665 => GHC.Classes.Ord (UnaryExpr a_665) deriving instance GHC.Show.Show a_666 => GHC.Show.Show (UnaryExpr a_666) instance AST.Unmarshal.Unmarshal UnaryExpr instance Data.Foldable.Foldable UnaryExpr where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor UnaryExpr where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable UnaryExpr where traverse = AST.Traversable1.Class.traverseDefault1 data Unop a = Unop { ann :: a, extraChildren :: (AST.Parse.Err ((Minus GHC.Generics.:+: Plus) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_667. AST.Traversable1.Class.Traversable1 a_667 ) instance AST.Unmarshal.SymbolMatching Unop where matchedSymbols _ = [135] showFailure _ node_668 = "expected " GHC.Base.<> ( "unop" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_668 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_669 c1_670 = TreeSitter.Node.nodeStartPoint node_668 TreeSitter.Node.TSPoint r2_671 c2_672 = TreeSitter.Node.nodeEndPoint node_668 deriving instance GHC.Classes.Eq a_673 => GHC.Classes.Eq (Unop a_673) deriving instance GHC.Classes.Ord a_674 => GHC.Classes.Ord (Unop a_674) deriving instance GHC.Show.Show a_675 => GHC.Show.Show (Unop a_675) instance AST.Unmarshal.Unmarshal Unop instance Data.Foldable.Foldable Unop where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Unop where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Unop where traverse = AST.Traversable1.Class.traverseDefault1 data VarDecl a = VarDecl { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((TypeExpr GHC.Generics.:+: VarName) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_676. AST.Traversable1.Class.Traversable1 a_676 ) instance AST.Unmarshal.SymbolMatching VarDecl where matchedSymbols _ = [140] showFailure _ node_677 = "expected " GHC.Base.<> ( "varDecl" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_677 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_678 c1_679 = TreeSitter.Node.nodeStartPoint node_677 TreeSitter.Node.TSPoint r2_680 c2_681 = TreeSitter.Node.nodeEndPoint node_677 deriving instance GHC.Classes.Eq a_682 => GHC.Classes.Eq (VarDecl a_682) deriving instance GHC.Classes.Ord a_683 => GHC.Classes.Ord (VarDecl a_683) deriving instance GHC.Show.Show a_684 => GHC.Show.Show (VarDecl a_684) instance AST.Unmarshal.Unmarshal VarDecl instance Data.Foldable.Foldable VarDecl where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor VarDecl where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable VarDecl where traverse = AST.Traversable1.Class.traverseDefault1 data VarName a = VarName {ann :: a, extraChildren :: (AST.Parse.Err (SimpleId a))} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_685. AST.Traversable1.Class.Traversable1 a_685 ) instance AST.Unmarshal.SymbolMatching VarName where matchedSymbols _ = [162] showFailure _ node_686 = "expected " GHC.Base.<> ( "varName" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_686 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_687 c1_688 = TreeSitter.Node.nodeStartPoint node_686 TreeSitter.Node.TSPoint r2_689 c2_690 = TreeSitter.Node.nodeEndPoint node_686 deriving instance GHC.Classes.Eq a_691 => GHC.Classes.Eq (VarName a_691) deriving instance GHC.Classes.Ord a_692 => GHC.Classes.Ord (VarName a_692) deriving instance GHC.Show.Show a_693 => GHC.Show.Show (VarName a_693) instance AST.Unmarshal.Unmarshal VarName instance Data.Foldable.Foldable VarName where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor VarName where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable VarName where traverse = AST.Traversable1.Class.traverseDefault1 data Variable a = Variable { ann :: a, extraChildren :: (AST.Parse.Err ((Result GHC.Generics.:+: This GHC.Generics.:+: VarName) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_694. AST.Traversable1.Class.Traversable1 a_694 ) instance AST.Unmarshal.SymbolMatching Variable where matchedSymbols _ = [133] showFailure _ node_695 = "expected " GHC.Base.<> ( "variable" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_695 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_696 c1_697 = TreeSitter.Node.nodeStartPoint node_695 TreeSitter.Node.TSPoint r2_698 c2_699 = TreeSitter.Node.nodeEndPoint node_695 deriving instance GHC.Classes.Eq a_700 => GHC.Classes.Eq (Variable a_700) deriving instance GHC.Classes.Ord a_701 => GHC.Classes.Ord (Variable a_701) deriving instance GHC.Show.Show a_702 => GHC.Show.Show (Variable a_702) instance AST.Unmarshal.Unmarshal Variable instance Data.Foldable.Foldable Variable where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Variable where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Variable where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousLParen = AST.Token.Token "(" 6 type AnonymousRParen = AST.Token.Token ")" 8 type AnonymousComma = AST.Token.Token "," 7 type AnonymousDot = AST.Token.Token "." 19 type AnonymousDotDot = AST.Token.Token ".." 22 type AnonymousColonColon = AST.Token.Token "::" 26 type AnonymousSemicolon = AST.Token.Token ";" 5 type AnonymousLBracket = AST.Token.Token "[" 20 type AnonymousRBracket = AST.Token.Token "]" 21 type AnonymousAnd = AST.Token.Token "and" 16 data Any a = Any {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_703. AST.Traversable1.Class.Traversable1 a_703 ) instance AST.Unmarshal.SymbolMatching Any where matchedSymbols _ = [37] showFailure _ node_704 = "expected " GHC.Base.<> ( "any" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_704 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_705 c1_706 = TreeSitter.Node.nodeStartPoint node_704 TreeSitter.Node.TSPoint r2_707 c2_708 = TreeSitter.Node.nodeEndPoint node_704 deriving instance GHC.Classes.Eq a_709 => GHC.Classes.Eq (Any a_709) deriving instance GHC.Classes.Ord a_710 => GHC.Classes.Ord (Any a_710) deriving instance GHC.Show.Show a_711 => GHC.Show.Show (Any a_711) instance AST.Unmarshal.Unmarshal Any instance Data.Foldable.Foldable Any where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Any where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Any where traverse = AST.Traversable1.Class.traverseDefault1 data As a = As {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_712. AST.Traversable1.Class.Traversable1 a_712 ) instance AST.Unmarshal.SymbolMatching As where matchedSymbols _ = [38] showFailure _ node_713 = "expected " GHC.Base.<> ( "as" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_713 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_714 c1_715 = TreeSitter.Node.nodeStartPoint node_713 TreeSitter.Node.TSPoint r2_716 c2_717 = TreeSitter.Node.nodeEndPoint node_713 deriving instance GHC.Classes.Eq a_718 => GHC.Classes.Eq (As a_718) deriving instance GHC.Classes.Ord a_719 => GHC.Classes.Ord (As a_719) deriving instance GHC.Show.Show a_720 => GHC.Show.Show (As a_720) instance AST.Unmarshal.Unmarshal As instance Data.Foldable.Foldable As where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor As where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable As where traverse = AST.Traversable1.Class.traverseDefault1 data Asc a = Asc {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_721. AST.Traversable1.Class.Traversable1 a_721 ) instance AST.Unmarshal.SymbolMatching Asc where matchedSymbols _ = [39] showFailure _ node_722 = "expected " GHC.Base.<> ( "asc" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_722 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_723 c1_724 = TreeSitter.Node.nodeStartPoint node_722 TreeSitter.Node.TSPoint r2_725 c2_726 = TreeSitter.Node.nodeEndPoint node_722 deriving instance GHC.Classes.Eq a_727 => GHC.Classes.Eq (Asc a_727) deriving instance GHC.Classes.Ord a_728 => GHC.Classes.Ord (Asc a_728) deriving instance GHC.Show.Show a_729 => GHC.Show.Show (Asc a_729) instance AST.Unmarshal.Unmarshal Asc instance Data.Foldable.Foldable Asc where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Asc where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Asc where traverse = AST.Traversable1.Class.traverseDefault1 data Avg a = Avg {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_730. AST.Traversable1.Class.Traversable1 a_730 ) instance AST.Unmarshal.SymbolMatching Avg where matchedSymbols _ = [40] showFailure _ node_731 = "expected " GHC.Base.<> ( "avg" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_731 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_732 c1_733 = TreeSitter.Node.nodeStartPoint node_731 TreeSitter.Node.TSPoint r2_734 c2_735 = TreeSitter.Node.nodeEndPoint node_731 deriving instance GHC.Classes.Eq a_736 => GHC.Classes.Eq (Avg a_736) deriving instance GHC.Classes.Ord a_737 => GHC.Classes.Ord (Avg a_737) deriving instance GHC.Show.Show a_738 => GHC.Show.Show (Avg a_738) instance AST.Unmarshal.Unmarshal Avg instance Data.Foldable.Foldable Avg where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Avg where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Avg where traverse = AST.Traversable1.Class.traverseDefault1 data Boolean a = Boolean {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_739. AST.Traversable1.Class.Traversable1 a_739 ) instance AST.Unmarshal.SymbolMatching Boolean where matchedSymbols _ = [41] showFailure _ node_740 = "expected " GHC.Base.<> ( "boolean" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_740 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_741 c1_742 = TreeSitter.Node.nodeStartPoint node_740 TreeSitter.Node.TSPoint r2_743 c2_744 = TreeSitter.Node.nodeEndPoint node_740 deriving instance GHC.Classes.Eq a_745 => GHC.Classes.Eq (Boolean a_745) deriving instance GHC.Classes.Ord a_746 => GHC.Classes.Ord (Boolean a_746) deriving instance GHC.Show.Show a_747 => GHC.Show.Show (Boolean a_747) instance AST.Unmarshal.Unmarshal Boolean instance Data.Foldable.Foldable Boolean where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Boolean where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Boolean where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousBy = AST.Token.Token "by" 24 data Class a = Class {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_748. AST.Traversable1.Class.Traversable1 a_748 ) instance AST.Unmarshal.SymbolMatching Class where matchedSymbols _ = [42] showFailure _ node_749 = "expected " GHC.Base.<> ( "class" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_749 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_750 c1_751 = TreeSitter.Node.nodeStartPoint node_749 TreeSitter.Node.TSPoint r2_752 c2_753 = TreeSitter.Node.nodeEndPoint node_749 deriving instance GHC.Classes.Eq a_754 => GHC.Classes.Eq (Class a_754) deriving instance GHC.Classes.Ord a_755 => GHC.Classes.Ord (Class a_755) deriving instance GHC.Show.Show a_756 => GHC.Show.Show (Class a_756) instance AST.Unmarshal.Unmarshal Class instance Data.Foldable.Foldable Class where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Class where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Class where traverse = AST.Traversable1.Class.traverseDefault1 data Concat a = Concat {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_757. AST.Traversable1.Class.Traversable1 a_757 ) instance AST.Unmarshal.SymbolMatching Concat where matchedSymbols _ = [65] showFailure _ node_758 = "expected " GHC.Base.<> ( "concat" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_758 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_759 c1_760 = TreeSitter.Node.nodeStartPoint node_758 TreeSitter.Node.TSPoint r2_761 c2_762 = TreeSitter.Node.nodeEndPoint node_758 deriving instance GHC.Classes.Eq a_763 => GHC.Classes.Eq (Concat a_763) deriving instance GHC.Classes.Ord a_764 => GHC.Classes.Ord (Concat a_764) deriving instance GHC.Show.Show a_765 => GHC.Show.Show (Concat a_765) instance AST.Unmarshal.Unmarshal Concat instance Data.Foldable.Foldable Concat where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Concat where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Concat where traverse = AST.Traversable1.Class.traverseDefault1 data Count a = Count {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_766. AST.Traversable1.Class.Traversable1 a_766 ) instance AST.Unmarshal.SymbolMatching Count where matchedSymbols _ = [44] showFailure _ node_767 = "expected " GHC.Base.<> ( "count" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_767 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_768 c1_769 = TreeSitter.Node.nodeStartPoint node_767 TreeSitter.Node.TSPoint r2_770 c2_771 = TreeSitter.Node.nodeEndPoint node_767 deriving instance GHC.Classes.Eq a_772 => GHC.Classes.Eq (Count a_772) deriving instance GHC.Classes.Ord a_773 => GHC.Classes.Ord (Count a_773) deriving instance GHC.Show.Show a_774 => GHC.Show.Show (Count a_774) instance AST.Unmarshal.Unmarshal Count instance Data.Foldable.Foldable Count where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Count where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Count where traverse = AST.Traversable1.Class.traverseDefault1 data Date a = Date {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_775. AST.Traversable1.Class.Traversable1 a_775 ) instance AST.Unmarshal.SymbolMatching Date where matchedSymbols _ = [45] showFailure _ node_776 = "expected " GHC.Base.<> ( "date" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_776 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_777 c1_778 = TreeSitter.Node.nodeStartPoint node_776 TreeSitter.Node.TSPoint r2_779 c2_780 = TreeSitter.Node.nodeEndPoint node_776 deriving instance GHC.Classes.Eq a_781 => GHC.Classes.Eq (Date a_781) deriving instance GHC.Classes.Ord a_782 => GHC.Classes.Ord (Date a_782) deriving instance GHC.Show.Show a_783 => GHC.Show.Show (Date a_783) instance AST.Unmarshal.Unmarshal Date instance Data.Foldable.Foldable Date where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Date where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Date where traverse = AST.Traversable1.Class.traverseDefault1 data Desc a = Desc {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_784. AST.Traversable1.Class.Traversable1 a_784 ) instance AST.Unmarshal.SymbolMatching Desc where matchedSymbols _ = [46] showFailure _ node_785 = "expected " GHC.Base.<> ( "desc" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_785 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_786 c1_787 = TreeSitter.Node.nodeStartPoint node_785 TreeSitter.Node.TSPoint r2_788 c2_789 = TreeSitter.Node.nodeEndPoint node_785 deriving instance GHC.Classes.Eq a_790 => GHC.Classes.Eq (Desc a_790) deriving instance GHC.Classes.Ord a_791 => GHC.Classes.Ord (Desc a_791) deriving instance GHC.Show.Show a_792 => GHC.Show.Show (Desc a_792) instance AST.Unmarshal.Unmarshal Desc instance Data.Foldable.Foldable Desc where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Desc where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Desc where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousElse = AST.Token.Token "else" 15 data Eq a = Eq {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_793. AST.Traversable1.Class.Traversable1 a_793 ) instance AST.Unmarshal.SymbolMatching Eq where matchedSymbols _ = [72] showFailure _ node_794 = "expected " GHC.Base.<> ( "eq" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_794 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_795 c1_796 = TreeSitter.Node.nodeStartPoint node_794 TreeSitter.Node.TSPoint r2_797 c2_798 = TreeSitter.Node.nodeEndPoint node_794 deriving instance GHC.Classes.Eq a_799 => GHC.Classes.Eq (Eq a_799) deriving instance GHC.Classes.Ord a_800 => GHC.Classes.Ord (Eq a_800) deriving instance GHC.Show.Show a_801 => GHC.Show.Show (Eq a_801) instance AST.Unmarshal.Unmarshal Eq instance Data.Foldable.Foldable Eq where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Eq where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Eq where traverse = AST.Traversable1.Class.traverseDefault1 data Exists a = Exists {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_802. AST.Traversable1.Class.Traversable1 a_802 ) instance AST.Unmarshal.SymbolMatching Exists where matchedSymbols _ = [47] showFailure _ node_803 = "expected " GHC.Base.<> ( "exists" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_803 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_804 c1_805 = TreeSitter.Node.nodeStartPoint node_803 TreeSitter.Node.TSPoint r2_806 c2_807 = TreeSitter.Node.nodeEndPoint node_803 deriving instance GHC.Classes.Eq a_808 => GHC.Classes.Eq (Exists a_808) deriving instance GHC.Classes.Ord a_809 => GHC.Classes.Ord (Exists a_809) deriving instance GHC.Show.Show a_810 => GHC.Show.Show (Exists a_810) instance AST.Unmarshal.Unmarshal Exists instance Data.Foldable.Foldable Exists where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Exists where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Exists where traverse = AST.Traversable1.Class.traverseDefault1 data Extends a = Extends {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_811. AST.Traversable1.Class.Traversable1 a_811 ) instance AST.Unmarshal.SymbolMatching Extends where matchedSymbols _ = [48] showFailure _ node_812 = "expected " GHC.Base.<> ( "extends" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_812 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_813 c1_814 = TreeSitter.Node.nodeStartPoint node_812 TreeSitter.Node.TSPoint r2_815 c2_816 = TreeSitter.Node.nodeEndPoint node_812 deriving instance GHC.Classes.Eq a_817 => GHC.Classes.Eq (Extends a_817) deriving instance GHC.Classes.Ord a_818 => GHC.Classes.Ord (Extends a_818) deriving instance GHC.Show.Show a_819 => GHC.Show.Show (Extends a_819) instance AST.Unmarshal.Unmarshal Extends instance Data.Foldable.Foldable Extends where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Extends where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Extends where traverse = AST.Traversable1.Class.traverseDefault1 data False a = False {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_820. AST.Traversable1.Class.Traversable1 a_820 ) instance AST.Unmarshal.SymbolMatching False where matchedSymbols _ = [49] showFailure _ node_821 = "expected " GHC.Base.<> ( "false" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_821 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_822 c1_823 = TreeSitter.Node.nodeStartPoint node_821 TreeSitter.Node.TSPoint r2_824 c2_825 = TreeSitter.Node.nodeEndPoint node_821 deriving instance GHC.Classes.Eq a_826 => GHC.Classes.Eq (False a_826) deriving instance GHC.Classes.Ord a_827 => GHC.Classes.Ord (False a_827) deriving instance GHC.Show.Show a_828 => GHC.Show.Show (False a_828) instance AST.Unmarshal.Unmarshal False instance Data.Foldable.Foldable False where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor False where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable False where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousFloat = AST.Token.Token "float" 27 data Float a = Float {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_829. AST.Traversable1.Class.Traversable1 a_829 ) instance AST.Unmarshal.SymbolMatching Float where matchedSymbols _ = [33] showFailure _ node_830 = "expected " GHC.Base.<> ( "float" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_830 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_831 c1_832 = TreeSitter.Node.nodeStartPoint node_830 TreeSitter.Node.TSPoint r2_833 c2_834 = TreeSitter.Node.nodeEndPoint node_830 deriving instance GHC.Classes.Eq a_835 => GHC.Classes.Eq (Float a_835) deriving instance GHC.Classes.Ord a_836 => GHC.Classes.Ord (Float a_836) deriving instance GHC.Show.Show a_837 => GHC.Show.Show (Float a_837) instance AST.Unmarshal.Unmarshal Float instance Data.Foldable.Foldable Float where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Float where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Float where traverse = AST.Traversable1.Class.traverseDefault1 data Forall a = Forall {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_838. AST.Traversable1.Class.Traversable1 a_838 ) instance AST.Unmarshal.SymbolMatching Forall where matchedSymbols _ = [50] showFailure _ node_839 = "expected " GHC.Base.<> ( "forall" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_839 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_840 c1_841 = TreeSitter.Node.nodeStartPoint node_839 TreeSitter.Node.TSPoint r2_842 c2_843 = TreeSitter.Node.nodeEndPoint node_839 deriving instance GHC.Classes.Eq a_844 => GHC.Classes.Eq (Forall a_844) deriving instance GHC.Classes.Ord a_845 => GHC.Classes.Ord (Forall a_845) deriving instance GHC.Show.Show a_846 => GHC.Show.Show (Forall a_846) instance AST.Unmarshal.Unmarshal Forall instance Data.Foldable.Foldable Forall where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Forall where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Forall where traverse = AST.Traversable1.Class.traverseDefault1 data Forex a = Forex {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_847. AST.Traversable1.Class.Traversable1 a_847 ) instance AST.Unmarshal.SymbolMatching Forex where matchedSymbols _ = [51] showFailure _ node_848 = "expected " GHC.Base.<> ( "forex" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_848 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_849 c1_850 = TreeSitter.Node.nodeStartPoint node_848 TreeSitter.Node.TSPoint r2_851 c2_852 = TreeSitter.Node.nodeEndPoint node_848 deriving instance GHC.Classes.Eq a_853 => GHC.Classes.Eq (Forex a_853) deriving instance GHC.Classes.Ord a_854 => GHC.Classes.Ord (Forex a_854) deriving instance GHC.Show.Show a_855 => GHC.Show.Show (Forex a_855) instance AST.Unmarshal.Unmarshal Forex instance Data.Foldable.Foldable Forex where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Forex where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Forex where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousFrom = AST.Token.Token "from" 10 data Ge a = Ge {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_856. AST.Traversable1.Class.Traversable1 a_856 ) instance AST.Unmarshal.SymbolMatching Ge where matchedSymbols _ = [74] showFailure _ node_857 = "expected " GHC.Base.<> ( "ge" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_857 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_858 c1_859 = TreeSitter.Node.nodeStartPoint node_857 TreeSitter.Node.TSPoint r2_860 c2_861 = TreeSitter.Node.nodeEndPoint node_857 deriving instance GHC.Classes.Eq a_862 => GHC.Classes.Eq (Ge a_862) deriving instance GHC.Classes.Ord a_863 => GHC.Classes.Ord (Ge a_863) deriving instance GHC.Show.Show a_864 => GHC.Show.Show (Ge a_864) instance AST.Unmarshal.Unmarshal Ge instance Data.Foldable.Foldable Ge where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Ge where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Ge where traverse = AST.Traversable1.Class.traverseDefault1 data Gt a = Gt {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_865. AST.Traversable1.Class.Traversable1 a_865 ) instance AST.Unmarshal.SymbolMatching Gt where matchedSymbols _ = [73] showFailure _ node_866 = "expected " GHC.Base.<> ( "gt" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_866 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_867 c1_868 = TreeSitter.Node.nodeStartPoint node_866 TreeSitter.Node.TSPoint r2_869 c2_870 = TreeSitter.Node.nodeEndPoint node_866 deriving instance GHC.Classes.Eq a_871 => GHC.Classes.Eq (Gt a_871) deriving instance GHC.Classes.Ord a_872 => GHC.Classes.Ord (Gt a_872) deriving instance GHC.Show.Show a_873 => GHC.Show.Show (Gt a_873) instance AST.Unmarshal.Unmarshal Gt instance Data.Foldable.Foldable Gt where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Gt where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Gt where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousIf = AST.Token.Token "if" 13 type AnonymousImplies = AST.Token.Token "implies" 17 data Import a = Import {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_874. AST.Traversable1.Class.Traversable1 a_874 ) instance AST.Unmarshal.SymbolMatching Import where matchedSymbols _ = [52] showFailure _ node_875 = "expected " GHC.Base.<> ( "import" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_875 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_876 c1_877 = TreeSitter.Node.nodeStartPoint node_875 TreeSitter.Node.TSPoint r2_878 c2_879 = TreeSitter.Node.nodeEndPoint node_875 deriving instance GHC.Classes.Eq a_880 => GHC.Classes.Eq (Import a_880) deriving instance GHC.Classes.Ord a_881 => GHC.Classes.Ord (Import a_881) deriving instance GHC.Show.Show a_882 => GHC.Show.Show (Import a_882) instance AST.Unmarshal.Unmarshal Import instance Data.Foldable.Foldable Import where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Import where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Import where traverse = AST.Traversable1.Class.traverseDefault1 data In a = In {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_883. AST.Traversable1.Class.Traversable1 a_883 ) instance AST.Unmarshal.SymbolMatching In where matchedSymbols _ = [53] showFailure _ node_884 = "expected " GHC.Base.<> ( "in" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_884 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_885 c1_886 = TreeSitter.Node.nodeStartPoint node_884 TreeSitter.Node.TSPoint r2_887 c2_888 = TreeSitter.Node.nodeEndPoint node_884 deriving instance GHC.Classes.Eq a_889 => GHC.Classes.Eq (In a_889) deriving instance GHC.Classes.Ord a_890 => GHC.Classes.Ord (In a_890) deriving instance GHC.Show.Show a_891 => GHC.Show.Show (In a_891) instance AST.Unmarshal.Unmarshal In instance Data.Foldable.Foldable In where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor In where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable In where traverse = AST.Traversable1.Class.traverseDefault1 data Instanceof a = Instanceof {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_892. AST.Traversable1.Class.Traversable1 a_892 ) instance AST.Unmarshal.SymbolMatching Instanceof where matchedSymbols _ = [54] showFailure _ node_893 = "expected " GHC.Base.<> ( "instanceof" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_893 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_894 c1_895 = TreeSitter.Node.nodeStartPoint node_893 TreeSitter.Node.TSPoint r2_896 c2_897 = TreeSitter.Node.nodeEndPoint node_893 deriving instance GHC.Classes.Eq a_898 => GHC.Classes.Eq (Instanceof a_898) deriving instance GHC.Classes.Ord a_899 => GHC.Classes.Ord (Instanceof a_899) deriving instance GHC.Show.Show a_900 => GHC.Show.Show (Instanceof a_900) instance AST.Unmarshal.Unmarshal Instanceof instance Data.Foldable.Foldable Instanceof where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Instanceof where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Instanceof where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousInt = AST.Token.Token "int" 28 data Integer a = Integer {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_901. AST.Traversable1.Class.Traversable1 a_901 ) instance AST.Unmarshal.SymbolMatching Integer where matchedSymbols _ = [32] showFailure _ node_902 = "expected " GHC.Base.<> ( "integer" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_902 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_903 c1_904 = TreeSitter.Node.nodeStartPoint node_902 TreeSitter.Node.TSPoint r2_905 c2_906 = TreeSitter.Node.nodeEndPoint node_902 deriving instance GHC.Classes.Eq a_907 => GHC.Classes.Eq (Integer a_907) deriving instance GHC.Classes.Ord a_908 => GHC.Classes.Ord (Integer a_908) deriving instance GHC.Show.Show a_909 => GHC.Show.Show (Integer a_909) instance AST.Unmarshal.Unmarshal Integer instance Data.Foldable.Foldable Integer where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Integer where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Integer where traverse = AST.Traversable1.Class.traverseDefault1 data Le a = Le {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_910. AST.Traversable1.Class.Traversable1 a_910 ) instance AST.Unmarshal.SymbolMatching Le where matchedSymbols _ = [71] showFailure _ node_911 = "expected " GHC.Base.<> ( "le" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_911 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_912 c1_913 = TreeSitter.Node.nodeStartPoint node_911 TreeSitter.Node.TSPoint r2_914 c2_915 = TreeSitter.Node.nodeEndPoint node_911 deriving instance GHC.Classes.Eq a_916 => GHC.Classes.Eq (Le a_916) deriving instance GHC.Classes.Ord a_917 => GHC.Classes.Ord (Le a_917) deriving instance GHC.Show.Show a_918 => GHC.Show.Show (Le a_918) instance AST.Unmarshal.Unmarshal Le instance Data.Foldable.Foldable Le where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Le where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Le where traverse = AST.Traversable1.Class.traverseDefault1 data Lt a = Lt {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_919. AST.Traversable1.Class.Traversable1 a_919 ) instance AST.Unmarshal.SymbolMatching Lt where matchedSymbols _ = [70] showFailure _ node_920 = "expected " GHC.Base.<> ( "lt" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_920 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_921 c1_922 = TreeSitter.Node.nodeStartPoint node_920 TreeSitter.Node.TSPoint r2_923 c2_924 = TreeSitter.Node.nodeEndPoint node_920 deriving instance GHC.Classes.Eq a_925 => GHC.Classes.Eq (Lt a_925) deriving instance GHC.Classes.Ord a_926 => GHC.Classes.Ord (Lt a_926) deriving instance GHC.Show.Show a_927 => GHC.Show.Show (Lt a_927) instance AST.Unmarshal.Unmarshal Lt instance Data.Foldable.Foldable Lt where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Lt where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Lt where traverse = AST.Traversable1.Class.traverseDefault1 data Max a = Max {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_928. AST.Traversable1.Class.Traversable1 a_928 ) instance AST.Unmarshal.SymbolMatching Max where matchedSymbols _ = [55] showFailure _ node_929 = "expected " GHC.Base.<> ( "max" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_929 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_930 c1_931 = TreeSitter.Node.nodeStartPoint node_929 TreeSitter.Node.TSPoint r2_932 c2_933 = TreeSitter.Node.nodeEndPoint node_929 deriving instance GHC.Classes.Eq a_934 => GHC.Classes.Eq (Max a_934) deriving instance GHC.Classes.Ord a_935 => GHC.Classes.Ord (Max a_935) deriving instance GHC.Show.Show a_936 => GHC.Show.Show (Max a_936) instance AST.Unmarshal.Unmarshal Max instance Data.Foldable.Foldable Max where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Max where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Max where traverse = AST.Traversable1.Class.traverseDefault1 data Min a = Min {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_937. AST.Traversable1.Class.Traversable1 a_937 ) instance AST.Unmarshal.SymbolMatching Min where matchedSymbols _ = [56] showFailure _ node_938 = "expected " GHC.Base.<> ( "min" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_938 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_939 c1_940 = TreeSitter.Node.nodeStartPoint node_938 TreeSitter.Node.TSPoint r2_941 c2_942 = TreeSitter.Node.nodeEndPoint node_938 deriving instance GHC.Classes.Eq a_943 => GHC.Classes.Eq (Min a_943) deriving instance GHC.Classes.Ord a_944 => GHC.Classes.Ord (Min a_944) deriving instance GHC.Show.Show a_945 => GHC.Show.Show (Min a_945) instance AST.Unmarshal.Unmarshal Min instance Data.Foldable.Foldable Min where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Min where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Min where traverse = AST.Traversable1.Class.traverseDefault1 data Minus a = Minus {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_946. AST.Traversable1.Class.Traversable1 a_946 ) instance AST.Unmarshal.SymbolMatching Minus where matchedSymbols _ = [76] showFailure _ node_947 = "expected " GHC.Base.<> ( "minus" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_947 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_948 c1_949 = TreeSitter.Node.nodeStartPoint node_947 TreeSitter.Node.TSPoint r2_950 c2_951 = TreeSitter.Node.nodeEndPoint node_947 deriving instance GHC.Classes.Eq a_952 => GHC.Classes.Eq (Minus a_952) deriving instance GHC.Classes.Ord a_953 => GHC.Classes.Ord (Minus a_953) deriving instance GHC.Show.Show a_954 => GHC.Show.Show (Minus a_954) instance AST.Unmarshal.Unmarshal Minus instance Data.Foldable.Foldable Minus where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Minus where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Minus where traverse = AST.Traversable1.Class.traverseDefault1 data Mod a = Mod {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_955. AST.Traversable1.Class.Traversable1 a_955 ) instance AST.Unmarshal.SymbolMatching Mod where matchedSymbols _ = [80] showFailure _ node_956 = "expected " GHC.Base.<> ( "mod" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_956 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_957 c1_958 = TreeSitter.Node.nodeStartPoint node_956 TreeSitter.Node.TSPoint r2_959 c2_960 = TreeSitter.Node.nodeEndPoint node_956 deriving instance GHC.Classes.Eq a_961 => GHC.Classes.Eq (Mod a_961) deriving instance GHC.Classes.Ord a_962 => GHC.Classes.Ord (Mod a_962) deriving instance GHC.Show.Show a_963 => GHC.Show.Show (Mod a_963) instance AST.Unmarshal.Unmarshal Mod instance Data.Foldable.Foldable Mod where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Mod where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Mod where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousModule = AST.Token.Token "module" 2 data Ne a = Ne {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_964. AST.Traversable1.Class.Traversable1 a_964 ) instance AST.Unmarshal.SymbolMatching Ne where matchedSymbols _ = [77] showFailure _ node_965 = "expected " GHC.Base.<> ( "ne" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_965 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_966 c1_967 = TreeSitter.Node.nodeStartPoint node_965 TreeSitter.Node.TSPoint r2_968 c2_969 = TreeSitter.Node.nodeEndPoint node_965 deriving instance GHC.Classes.Eq a_970 => GHC.Classes.Eq (Ne a_970) deriving instance GHC.Classes.Ord a_971 => GHC.Classes.Ord (Ne a_971) deriving instance GHC.Show.Show a_972 => GHC.Show.Show (Ne a_972) instance AST.Unmarshal.Unmarshal Ne instance Data.Foldable.Foldable Ne where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Ne where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Ne where traverse = AST.Traversable1.Class.traverseDefault1 data Newtype a = Newtype {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_973. AST.Traversable1.Class.Traversable1 a_973 ) instance AST.Unmarshal.SymbolMatching Newtype where matchedSymbols _ = [43] showFailure _ node_974 = "expected " GHC.Base.<> ( "newtype" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_974 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_975 c1_976 = TreeSitter.Node.nodeStartPoint node_974 TreeSitter.Node.TSPoint r2_977 c2_978 = TreeSitter.Node.nodeEndPoint node_974 deriving instance GHC.Classes.Eq a_979 => GHC.Classes.Eq (Newtype a_979) deriving instance GHC.Classes.Ord a_980 => GHC.Classes.Ord (Newtype a_980) deriving instance GHC.Show.Show a_981 => GHC.Show.Show (Newtype a_981) instance AST.Unmarshal.Unmarshal Newtype instance Data.Foldable.Foldable Newtype where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Newtype where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Newtype where traverse = AST.Traversable1.Class.traverseDefault1 data None a = None {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_982. AST.Traversable1.Class.Traversable1 a_982 ) instance AST.Unmarshal.SymbolMatching None where matchedSymbols _ = [58] showFailure _ node_983 = "expected " GHC.Base.<> ( "none" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_983 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_984 c1_985 = TreeSitter.Node.nodeStartPoint node_983 TreeSitter.Node.TSPoint r2_986 c2_987 = TreeSitter.Node.nodeEndPoint node_983 deriving instance GHC.Classes.Eq a_988 => GHC.Classes.Eq (None a_988) deriving instance GHC.Classes.Ord a_989 => GHC.Classes.Ord (None a_989) deriving instance GHC.Show.Show a_990 => GHC.Show.Show (None a_990) instance AST.Unmarshal.Unmarshal None instance Data.Foldable.Foldable None where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor None where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable None where traverse = AST.Traversable1.Class.traverseDefault1 data Not a = Not {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_991. AST.Traversable1.Class.Traversable1 a_991 ) instance AST.Unmarshal.SymbolMatching Not where matchedSymbols _ = [57] showFailure _ node_992 = "expected " GHC.Base.<> ( "not" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_992 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_993 c1_994 = TreeSitter.Node.nodeStartPoint node_992 TreeSitter.Node.TSPoint r2_995 c2_996 = TreeSitter.Node.nodeEndPoint node_992 deriving instance GHC.Classes.Eq a_997 => GHC.Classes.Eq (Not a_997) deriving instance GHC.Classes.Ord a_998 => GHC.Classes.Ord (Not a_998) deriving instance GHC.Show.Show a_999 => GHC.Show.Show (Not a_999) instance AST.Unmarshal.Unmarshal Not instance Data.Foldable.Foldable Not where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Not where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Not where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousOr = AST.Token.Token "or" 9 type AnonymousOrder = AST.Token.Token "order" 23 data Plus a = Plus {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1000. AST.Traversable1.Class.Traversable1 a_1000 ) instance AST.Unmarshal.SymbolMatching Plus where matchedSymbols _ = [81] showFailure _ node_1001 = "expected " GHC.Base.<> ( "plus" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1001 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1002 c1_1003 = TreeSitter.Node.nodeStartPoint node_1001 TreeSitter.Node.TSPoint r2_1004 c2_1005 = TreeSitter.Node.nodeEndPoint node_1001 deriving instance GHC.Classes.Eq a_1006 => GHC.Classes.Eq (Plus a_1006) deriving instance GHC.Classes.Ord a_1007 => GHC.Classes.Ord (Plus a_1007) deriving instance GHC.Show.Show a_1008 => GHC.Show.Show (Plus a_1008) instance AST.Unmarshal.Unmarshal Plus instance Data.Foldable.Foldable Plus where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Plus where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Plus where traverse = AST.Traversable1.Class.traverseDefault1 data Predicate a = Predicate {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1009. AST.Traversable1.Class.Traversable1 a_1009 ) instance AST.Unmarshal.SymbolMatching Predicate where matchedSymbols _ = [59] showFailure _ node_1010 = "expected " GHC.Base.<> ( "predicate" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1010 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1011 c1_1012 = TreeSitter.Node.nodeStartPoint node_1010 TreeSitter.Node.TSPoint r2_1013 c2_1014 = TreeSitter.Node.nodeEndPoint node_1010 deriving instance GHC.Classes.Eq a_1015 => GHC.Classes.Eq (Predicate a_1015) deriving instance GHC.Classes.Ord a_1016 => GHC.Classes.Ord (Predicate a_1016) deriving instance GHC.Show.Show a_1017 => GHC.Show.Show (Predicate a_1017) instance AST.Unmarshal.Unmarshal Predicate instance Data.Foldable.Foldable Predicate where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Predicate where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Predicate where traverse = AST.Traversable1.Class.traverseDefault1 data Qldoc a = Qldoc {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1018. AST.Traversable1.Class.Traversable1 a_1018 ) instance AST.Unmarshal.SymbolMatching Qldoc where matchedSymbols _ = [25] showFailure _ node_1019 = "expected " GHC.Base.<> ( "qldoc" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1019 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1020 c1_1021 = TreeSitter.Node.nodeStartPoint node_1019 TreeSitter.Node.TSPoint r2_1022 c2_1023 = TreeSitter.Node.nodeEndPoint node_1019 deriving instance GHC.Classes.Eq a_1024 => GHC.Classes.Eq (Qldoc a_1024) deriving instance GHC.Classes.Ord a_1025 => GHC.Classes.Ord (Qldoc a_1025) deriving instance GHC.Show.Show a_1026 => GHC.Show.Show (Qldoc a_1026) instance AST.Unmarshal.Unmarshal Qldoc instance Data.Foldable.Foldable Qldoc where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Qldoc where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Qldoc where traverse = AST.Traversable1.Class.traverseDefault1 data Rank a = Rank {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1027. AST.Traversable1.Class.Traversable1 a_1027 ) instance AST.Unmarshal.SymbolMatching Rank where matchedSymbols _ = [60] showFailure _ node_1028 = "expected " GHC.Base.<> ( "rank" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1028 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1029 c1_1030 = TreeSitter.Node.nodeStartPoint node_1028 TreeSitter.Node.TSPoint r2_1031 c2_1032 = TreeSitter.Node.nodeEndPoint node_1028 deriving instance GHC.Classes.Eq a_1033 => GHC.Classes.Eq (Rank a_1033) deriving instance GHC.Classes.Ord a_1034 => GHC.Classes.Ord (Rank a_1034) deriving instance GHC.Show.Show a_1035 => GHC.Show.Show (Rank a_1035) instance AST.Unmarshal.Unmarshal Rank instance Data.Foldable.Foldable Rank where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Rank where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Rank where traverse = AST.Traversable1.Class.traverseDefault1 data Result a = Result {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1036. AST.Traversable1.Class.Traversable1 a_1036 ) instance AST.Unmarshal.SymbolMatching Result where matchedSymbols _ = [61] showFailure _ node_1037 = "expected " GHC.Base.<> ( "result" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1037 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1038 c1_1039 = TreeSitter.Node.nodeStartPoint node_1037 TreeSitter.Node.TSPoint r2_1040 c2_1041 = TreeSitter.Node.nodeEndPoint node_1037 deriving instance GHC.Classes.Eq a_1042 => GHC.Classes.Eq (Result a_1042) deriving instance GHC.Classes.Ord a_1043 => GHC.Classes.Ord (Result a_1043) deriving instance GHC.Show.Show a_1044 => GHC.Show.Show (Result a_1044) instance AST.Unmarshal.Unmarshal Result instance Data.Foldable.Foldable Result where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Result where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Result where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousSelect = AST.Token.Token "select" 12 data Slash a = Slash {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1045. AST.Traversable1.Class.Traversable1 a_1045 ) instance AST.Unmarshal.SymbolMatching Slash where matchedSymbols _ = [78] showFailure _ node_1046 = "expected " GHC.Base.<> ( "slash" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1046 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1047 c1_1048 = TreeSitter.Node.nodeStartPoint node_1046 TreeSitter.Node.TSPoint r2_1049 c2_1050 = TreeSitter.Node.nodeEndPoint node_1046 deriving instance GHC.Classes.Eq a_1051 => GHC.Classes.Eq (Slash a_1051) deriving instance GHC.Classes.Ord a_1052 => GHC.Classes.Ord (Slash a_1052) deriving instance GHC.Show.Show a_1053 => GHC.Show.Show (Slash a_1053) instance AST.Unmarshal.Unmarshal Slash instance Data.Foldable.Foldable Slash where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Slash where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Slash where traverse = AST.Traversable1.Class.traverseDefault1 data Star a = Star {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1054. AST.Traversable1.Class.Traversable1 a_1054 ) instance AST.Unmarshal.SymbolMatching Star where matchedSymbols _ = [79] showFailure _ node_1055 = "expected " GHC.Base.<> ( "star" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1055 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1056 c1_1057 = TreeSitter.Node.nodeStartPoint node_1055 TreeSitter.Node.TSPoint r2_1058 c2_1059 = TreeSitter.Node.nodeEndPoint node_1055 deriving instance GHC.Classes.Eq a_1060 => GHC.Classes.Eq (Star a_1060) deriving instance GHC.Classes.Ord a_1061 => GHC.Classes.Ord (Star a_1061) deriving instance GHC.Show.Show a_1062 => GHC.Show.Show (Star a_1062) instance AST.Unmarshal.Unmarshal Star instance Data.Foldable.Foldable Star where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Star where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Star where traverse = AST.Traversable1.Class.traverseDefault1 data Strictconcat a = Strictconcat {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1063. AST.Traversable1.Class.Traversable1 a_1063 ) instance AST.Unmarshal.SymbolMatching Strictconcat where matchedSymbols _ = [64] showFailure _ node_1064 = "expected " GHC.Base.<> ( "strictconcat" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1064 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1065 c1_1066 = TreeSitter.Node.nodeStartPoint node_1064 TreeSitter.Node.TSPoint r2_1067 c2_1068 = TreeSitter.Node.nodeEndPoint node_1064 deriving instance GHC.Classes.Eq a_1069 => GHC.Classes.Eq (Strictconcat a_1069) deriving instance GHC.Classes.Ord a_1070 => GHC.Classes.Ord (Strictconcat a_1070) deriving instance GHC.Show.Show a_1071 => GHC.Show.Show (Strictconcat a_1071) instance AST.Unmarshal.Unmarshal Strictconcat instance Data.Foldable.Foldable Strictconcat where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Strictconcat where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Strictconcat where traverse = AST.Traversable1.Class.traverseDefault1 data Strictcount a = Strictcount {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1072. AST.Traversable1.Class.Traversable1 a_1072 ) instance AST.Unmarshal.SymbolMatching Strictcount where matchedSymbols _ = [62] showFailure _ node_1073 = "expected " GHC.Base.<> ( "strictcount" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1073 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1074 c1_1075 = TreeSitter.Node.nodeStartPoint node_1073 TreeSitter.Node.TSPoint r2_1076 c2_1077 = TreeSitter.Node.nodeEndPoint node_1073 deriving instance GHC.Classes.Eq a_1078 => GHC.Classes.Eq (Strictcount a_1078) deriving instance GHC.Classes.Ord a_1079 => GHC.Classes.Ord (Strictcount a_1079) deriving instance GHC.Show.Show a_1080 => GHC.Show.Show (Strictcount a_1080) instance AST.Unmarshal.Unmarshal Strictcount instance Data.Foldable.Foldable Strictcount where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Strictcount where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Strictcount where traverse = AST.Traversable1.Class.traverseDefault1 data Strictsum a = Strictsum {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1081. AST.Traversable1.Class.Traversable1 a_1081 ) instance AST.Unmarshal.SymbolMatching Strictsum where matchedSymbols _ = [63] showFailure _ node_1082 = "expected " GHC.Base.<> ( "strictsum" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1082 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1083 c1_1084 = TreeSitter.Node.nodeStartPoint node_1082 TreeSitter.Node.TSPoint r2_1085 c2_1086 = TreeSitter.Node.nodeEndPoint node_1082 deriving instance GHC.Classes.Eq a_1087 => GHC.Classes.Eq (Strictsum a_1087) deriving instance GHC.Classes.Ord a_1088 => GHC.Classes.Ord (Strictsum a_1088) deriving instance GHC.Show.Show a_1089 => GHC.Show.Show (Strictsum a_1089) instance AST.Unmarshal.Unmarshal Strictsum instance Data.Foldable.Foldable Strictsum where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Strictsum where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Strictsum where traverse = AST.Traversable1.Class.traverseDefault1 data String a = String {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1090. AST.Traversable1.Class.Traversable1 a_1090 ) instance AST.Unmarshal.SymbolMatching String where matchedSymbols _ = [34] showFailure _ node_1091 = "expected " GHC.Base.<> ( "string" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1091 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1092 c1_1093 = TreeSitter.Node.nodeStartPoint node_1091 TreeSitter.Node.TSPoint r2_1094 c2_1095 = TreeSitter.Node.nodeEndPoint node_1091 deriving instance GHC.Classes.Eq a_1096 => GHC.Classes.Eq (String a_1096) deriving instance GHC.Classes.Ord a_1097 => GHC.Classes.Ord (String a_1097) deriving instance GHC.Show.Show a_1098 => GHC.Show.Show (String a_1098) instance AST.Unmarshal.Unmarshal String instance Data.Foldable.Foldable String where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor String where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable String where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousString = AST.Token.Token "string" 29 data Sum a = Sum {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1099. AST.Traversable1.Class.Traversable1 a_1099 ) instance AST.Unmarshal.SymbolMatching Sum where matchedSymbols _ = [66] showFailure _ node_1100 = "expected " GHC.Base.<> ( "sum" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1100 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1101 c1_1102 = TreeSitter.Node.nodeStartPoint node_1100 TreeSitter.Node.TSPoint r2_1103 c2_1104 = TreeSitter.Node.nodeEndPoint node_1100 deriving instance GHC.Classes.Eq a_1105 => GHC.Classes.Eq (Sum a_1105) deriving instance GHC.Classes.Ord a_1106 => GHC.Classes.Ord (Sum a_1106) deriving instance GHC.Show.Show a_1107 => GHC.Show.Show (Sum a_1107) instance AST.Unmarshal.Unmarshal Sum instance Data.Foldable.Foldable Sum where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Sum where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Sum where traverse = AST.Traversable1.Class.traverseDefault1 data Super a = Super {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1108. AST.Traversable1.Class.Traversable1 a_1108 ) instance AST.Unmarshal.SymbolMatching Super where matchedSymbols _ = [67] showFailure _ node_1109 = "expected " GHC.Base.<> ( "super" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1109 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1110 c1_1111 = TreeSitter.Node.nodeStartPoint node_1109 TreeSitter.Node.TSPoint r2_1112 c2_1113 = TreeSitter.Node.nodeEndPoint node_1109 deriving instance GHC.Classes.Eq a_1114 => GHC.Classes.Eq (Super a_1114) deriving instance GHC.Classes.Ord a_1115 => GHC.Classes.Ord (Super a_1115) deriving instance GHC.Show.Show a_1116 => GHC.Show.Show (Super a_1116) instance AST.Unmarshal.Unmarshal Super instance Data.Foldable.Foldable Super where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Super where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Super where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousThen = AST.Token.Token "then" 14 data This a = This {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1117. AST.Traversable1.Class.Traversable1 a_1117 ) instance AST.Unmarshal.SymbolMatching This where matchedSymbols _ = [68] showFailure _ node_1118 = "expected " GHC.Base.<> ( "this" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1118 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1119 c1_1120 = TreeSitter.Node.nodeStartPoint node_1118 TreeSitter.Node.TSPoint r2_1121 c2_1122 = TreeSitter.Node.nodeEndPoint node_1118 deriving instance GHC.Classes.Eq a_1123 => GHC.Classes.Eq (This a_1123) deriving instance GHC.Classes.Ord a_1124 => GHC.Classes.Ord (This a_1124) deriving instance GHC.Show.Show a_1125 => GHC.Show.Show (This a_1125) instance AST.Unmarshal.Unmarshal This instance Data.Foldable.Foldable This where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor This where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable This where traverse = AST.Traversable1.Class.traverseDefault1 data True a = True {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1126. AST.Traversable1.Class.Traversable1 a_1126 ) instance AST.Unmarshal.SymbolMatching True where matchedSymbols _ = [69] showFailure _ node_1127 = "expected " GHC.Base.<> ( "true" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1127 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1128 c1_1129 = TreeSitter.Node.nodeStartPoint node_1127 TreeSitter.Node.TSPoint r2_1130 c2_1131 = TreeSitter.Node.nodeEndPoint node_1127 deriving instance GHC.Classes.Eq a_1132 => GHC.Classes.Eq (True a_1132) deriving instance GHC.Classes.Ord a_1133 => GHC.Classes.Ord (True a_1133) deriving instance GHC.Show.Show a_1134 => GHC.Show.Show (True a_1134) instance AST.Unmarshal.Unmarshal True instance Data.Foldable.Foldable True where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor True where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable True where traverse = AST.Traversable1.Class.traverseDefault1 data Underscore a = Underscore {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1135. AST.Traversable1.Class.Traversable1 a_1135 ) instance AST.Unmarshal.SymbolMatching Underscore where matchedSymbols _ = [75] showFailure _ node_1136 = "expected " GHC.Base.<> ( "underscore" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1136 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1137 c1_1138 = TreeSitter.Node.nodeStartPoint node_1136 TreeSitter.Node.TSPoint r2_1139 c2_1140 = TreeSitter.Node.nodeEndPoint node_1136 deriving instance GHC.Classes.Eq a_1141 => GHC.Classes.Eq (Underscore a_1141) deriving instance GHC.Classes.Ord a_1142 => GHC.Classes.Ord (Underscore a_1142) deriving instance GHC.Show.Show a_1143 => GHC.Show.Show (Underscore a_1143) instance AST.Unmarshal.Unmarshal Underscore instance Data.Foldable.Foldable Underscore where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Underscore where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Underscore where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousWhere = AST.Token.Token "where" 11 type AnonymousLBrace = AST.Token.Token "{" 3 type AnonymousPipe = AST.Token.Token "|" 18 type AnonymousRBrace = AST.Token.Token "}" 4 ================================================ FILE: semantic-codeql/src/Language/CodeQL/Grammar.hs ================================================ {-# LANGUAGE TemplateHaskell #-} module Language.CodeQL.Grammar ( tree_sitter_ql , Grammar(..) ) where import AST.Grammar.TH import Language.Haskell.TH import TreeSitter.QL (tree_sitter_ql) -- | Statically-known rules corresponding to symbols in the grammar. mkStaticallyKnownRuleGrammarData (mkName "Grammar") tree_sitter_ql ================================================ FILE: semantic-codeql/src/Language/CodeQL/Tags.hs ================================================ {-# LANGUAGE DefaultSignatures #-} {-# LANGUAGE DisambiguateRecordFields #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} module Language.CodeQL.Tags ( ToTags (..), ) where import AST.Element import qualified AST.Parse as Parse import AST.Token import AST.Traversable1 import Control.Effect.Reader import Control.Effect.Writer import Control.Effect.State import Data.Foldable (for_) import qualified Language.CodeQL.AST as CodeQL import Proto.Semantic as P import Source.Loc import Source.Source as Source import qualified Tags.Tagging.Precise as Tags class ToTags t where tags :: ( Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m ) => t Loc -> m () default tags :: ( Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m, Traversable1 ToTags t ) => t Loc -> m () tags = gtags instance ToTags (Token sym n) where tags _ = pure () instance (ToTags l, ToTags r) => ToTags (l :+: r) where tags (L1 l) = tags l tags (R1 r) = tags r gtags :: ( Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m, Traversable1 ToTags t ) => t Loc -> m () gtags = traverse1_ @ToTags (const (pure ())) tags instance ToTags CodeQL.Module where tags t@CodeQL.Module { ann = Loc {byteRange}, name = Parse.Success (CodeQL.ModuleName {extraChildren = Parse.Success (CodeQL.SimpleId {text, ann})}) } = Tags.yield text P.MODULE P.DEFINITION ann byteRange >> gtags t tags _ = pure () instance ToTags CodeQL.ClasslessPredicate where tags t@CodeQL.ClasslessPredicate { ann = Loc {byteRange}, name = Parse.Success (CodeQL.PredicateName {text, ann}) } = Tags.yield text P.FUNCTION P.DEFINITION ann byteRange >> gtags t tags _ = pure () instance ToTags CodeQL.AritylessPredicateExpr where tags t@CodeQL.AritylessPredicateExpr { ann = Loc {byteRange}, name = Parse.Success (CodeQL.LiteralId {text, ann}) } = Tags.yield text P.CALL P.REFERENCE ann byteRange >> gtags t tags _ = pure () instance ToTags CodeQL.Dataclass where tags t@CodeQL.Dataclass { ann = Loc {byteRange}, name = Parse.Success (CodeQL.ClassName {text, ann}) } = Tags.yield text P.CLASS P.DEFINITION ann byteRange >> gtags t tags _ = pure () instance ToTags CodeQL.MemberPredicate where tags t@CodeQL.MemberPredicate { ann = Loc {byteRange}, name = Parse.Success (CodeQL.PredicateName {text, ann}) } = Tags.yield text P.METHOD P.DEFINITION ann byteRange >> gtags t tags _ = pure () instance ToTags CodeQL.Datatype where tags t@CodeQL.Datatype { ann = Loc {byteRange}, name = Parse.Success (CodeQL.ClassName {text, ann}) } = Tags.yield text P.CLASS P.DEFINITION ann byteRange >> gtags t tags _ = pure () instance ToTags CodeQL.DatatypeBranch where tags t@CodeQL.DatatypeBranch { ann = Loc {byteRange}, name = Parse.Success (CodeQL.ClassName {text, ann}) } = Tags.yield text P.CLASS P.DEFINITION ann byteRange >> gtags t tags _ = pure () instance ToTags CodeQL.ClasslessPredicateCall where tags CodeQL.ClasslessPredicateCall { extraChildren } = for_ extraChildren $ \x -> case x of EPrj t@CodeQL.AritylessPredicateExpr {} -> tags t _ -> pure () instance ToTags CodeQL.QualifiedRhs where tags t@CodeQL.QualifiedRhs { ann = Loc {byteRange}, name = expr } = case expr of Just (EPrj CodeQL.PredicateName {text, ann}) -> Tags.yield text P.CALL P.REFERENCE ann byteRange >> gtags t _ -> gtags t instance ToTags CodeQL.TypeExpr where tags t@CodeQL.TypeExpr { ann = Loc {byteRange}, name = expr } = case expr of Just (EPrj CodeQL.ClassName {text, ann}) -> Tags.yield text P.TYPE P.REFERENCE ann byteRange >> gtags t _ -> gtags t instance ToTags CodeQL.AddExpr instance ToTags CodeQL.Addop instance ToTags CodeQL.AggId instance ToTags CodeQL.Aggregate instance ToTags CodeQL.AnnotArg instance ToTags CodeQL.Annotation instance ToTags CodeQL.AnnotName instance ToTags CodeQL.Any instance ToTags CodeQL.As instance ToTags CodeQL.Asc instance ToTags CodeQL.AsExpr instance ToTags CodeQL.AsExprs instance ToTags CodeQL.Avg instance ToTags CodeQL.Body instance ToTags CodeQL.Bool instance ToTags CodeQL.Boolean instance ToTags CodeQL.Charpred instance ToTags CodeQL.ClassMember instance ToTags CodeQL.ClassName instance ToTags CodeQL.Closure instance ToTags CodeQL.Compop instance ToTags CodeQL.CompTerm instance ToTags CodeQL.Concat instance ToTags CodeQL.Conjunction instance ToTags CodeQL.Count instance ToTags CodeQL.Class instance ToTags CodeQL.DatatypeBranches instance ToTags CodeQL.Date instance ToTags CodeQL.Dbtype instance ToTags CodeQL.Desc instance ToTags CodeQL.Direction instance ToTags CodeQL.Disjunction instance ToTags CodeQL.Empty instance ToTags CodeQL.Eq instance ToTags CodeQL.Exists instance ToTags CodeQL.ExprAggregateBody instance ToTags CodeQL.Extends instance ToTags CodeQL.False instance ToTags CodeQL.Field instance ToTags CodeQL.Float instance ToTags CodeQL.Forall instance ToTags CodeQL.Forex instance ToTags CodeQL.FullAggregateBody instance ToTags CodeQL.Ge instance ToTags CodeQL.Gt instance ToTags CodeQL.HigherOrderTerm instance ToTags CodeQL.IfTerm instance ToTags CodeQL.Implication instance ToTags CodeQL.Import instance ToTags CodeQL.ImportModuleExpr instance ToTags CodeQL.Imprt instance ToTags CodeQL.In instance ToTags CodeQL.InExpr instance ToTags CodeQL.InstanceOf instance ToTags CodeQL.Instanceof instance ToTags CodeQL.Integer instance ToTags CodeQL.Le instance ToTags CodeQL.Literal instance ToTags CodeQL.LiteralId instance ToTags CodeQL.Lt instance ToTags CodeQL.Max instance ToTags CodeQL.Mod instance ToTags CodeQL.ModuleAliasBody instance ToTags CodeQL.ModuleExpr instance ToTags CodeQL.ModuleMember instance ToTags CodeQL.ModuleName instance ToTags CodeQL.Min instance ToTags CodeQL.Minus instance ToTags CodeQL.MulExpr instance ToTags CodeQL.Mulop instance ToTags CodeQL.Ne instance ToTags CodeQL.Negation instance ToTags CodeQL.Newtype instance ToTags CodeQL.None instance ToTags CodeQL.Not instance ToTags CodeQL.OrderBy instance ToTags CodeQL.OrderBys instance ToTags CodeQL.ParExpr instance ToTags CodeQL.Plus instance ToTags CodeQL.Predicate instance ToTags CodeQL.PredicateAliasBody instance ToTags CodeQL.PredicateExpr instance ToTags CodeQL.PredicateName instance ToTags CodeQL.PrefixCast instance ToTags CodeQL.Ql instance ToTags CodeQL.Qldoc instance ToTags CodeQL.QualifiedExpr instance ToTags CodeQL.QualModuleExpr instance ToTags CodeQL.Quantified instance ToTags CodeQL.Quantifier instance ToTags CodeQL.Range instance ToTags CodeQL.Rank instance ToTags CodeQL.Result instance ToTags CodeQL.ReturnType instance ToTags CodeQL.Select instance ToTags CodeQL.SimpleId instance ToTags CodeQL.Slash instance ToTags CodeQL.SpecialCall instance ToTags CodeQL.SpecialId instance ToTags CodeQL.Star instance ToTags CodeQL.Strictconcat instance ToTags CodeQL.Strictcount instance ToTags CodeQL.Strictsum instance ToTags CodeQL.String instance ToTags CodeQL.Sum instance ToTags CodeQL.Super instance ToTags CodeQL.SuperRef instance ToTags CodeQL.This instance ToTags CodeQL.True instance ToTags CodeQL.TypeAliasBody instance ToTags CodeQL.TypeLiteral instance ToTags CodeQL.UnaryExpr instance ToTags CodeQL.Underscore instance ToTags CodeQL.Unop instance ToTags CodeQL.VarDecl instance ToTags CodeQL.Variable instance ToTags CodeQL.VarName ================================================ FILE: semantic-codeql/src/Language/CodeQL.hs ================================================ {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# OPTIONS_GHC -freduction-depth=0 #-} -- | Semantic functionality for CodeQL programs. module Language.CodeQL ( Term(..) , TreeSitter.QL.tree_sitter_ql ) where import AST.Marshal.JSON import qualified AST.Unmarshal as TS import Data.Proxy import qualified Language.CodeQL.AST as CodeQL import qualified Language.CodeQL.Tags as CodeQLTags import qualified Tags.Tagging.Precise as Tags import qualified TreeSitter.QL (tree_sitter_ql) newtype Term a = Term { getTerm :: CodeQL.Ql a } deriving MarshalJSON instance TS.SymbolMatching Term where matchedSymbols _ = TS.matchedSymbols (Proxy :: Proxy CodeQL.Ql) showFailure _ = TS.showFailure (Proxy :: Proxy CodeQL.Ql) instance TS.Unmarshal Term where matchers = fmap (fmap (TS.hoist Term)) TS.matchers instance Tags.ToTags Term where tags src = Tags.runTagging src . CodeQLTags.tags . getTerm ================================================ FILE: semantic-codeql/test/PreciseTest.hs ================================================ {-# LANGUAGE CPP #-} {-# LANGUAGE DisambiguateRecordFields #-} {-# LANGUAGE ImplicitParams #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeApplications #-} {-# OPTIONS_GHC -Wno-unused-imports #-} module Main (main) where import AST.TestHelpers import AST.Unmarshal import qualified Language.CodeQL.AST as CodeQL import Language.CodeQL.Grammar import qualified System.Path.Fixture as Fixture import Test.Tasty main :: IO () main = do #if BAZEL_BUILD rf <- Fixture.create let ?project = "external/tree-sitter-ql" ?runfiles = rf let dirs = Fixture.absRelDir "test/corpus" #else dirs <- CodeQL.getTestCorpusDir #endif let parse = parseByteString @CodeQL.Ql @() tree_sitter_ql readCorpusFiles' dirs >>= traverse (testCorpus parse) >>= defaultMain . tests tests :: [TestTree] -> TestTree tests = testGroup "tree-sitter-ql corpus tests" ================================================ FILE: semantic-go/BUILD.bazel ================================================ package(default_visibility = ["//visibility:public"]) load( "//:build/common.bzl", "semantic_language_library", "semantic_language_parsing_test", ) load( "@rules_haskell//haskell:defs.bzl", "haskell_test", ) semantic_language_library( name = "semantic-go", srcs = glob(["src/**/*.hs"]), language = "go", ) semantic_language_parsing_test(language = "go") ================================================ FILE: semantic-go/LICENSE ================================================ MIT License Copyright (c) 2019 GitHub Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: semantic-go/README.md ================================================ # Semantic support for Go This package implements `semantic` support for Go. ================================================ FILE: semantic-go/Setup.hs ================================================ import Distribution.Simple main = defaultMain ================================================ FILE: semantic-go/semantic-go.cabal ================================================ cabal-version: 2.4 name: semantic-go version: 0.0.0.0 synopsis: Semantic support for Go. description: Semantic support for Go. homepage: https://github.com/github/semantic/tree/master/semantic-go#readme bug-reports: https://github.com/github/semantic/issues license: MIT license-file: LICENSE author: The Semantic authors maintainer: opensource+semantic@github.com copyright: (c) 2019 GitHub, Inc. category: Language build-type: Simple stability: alpha extra-source-files: README.md tested-with: GHC == 8.6.5 common haskell default-language: Haskell2010 ghc-options: -Weverything -Wno-missing-local-signatures -Wno-missing-import-lists -Wno-implicit-prelude -Wno-safe -Wno-unsafe -Wno-name-shadowing -Wno-monomorphism-restriction -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-star-is-type if (impl(ghc >= 8.8)) ghc-options: -Wno-missing-deriving-strategies if (impl(ghc >= 8.10)) ghc-options: -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module if (impl(ghc >= 9.2)) ghc-options: -Wno-missing-kind-signatures cpp-options: -DBAZEL_BUILD=0 library import: haskell exposed-modules: Language.Go Language.Go.AST Language.Go.Grammar Language.Go.Tags hs-source-dirs: src build-depends: , base >= 4.13 && < 5 , fused-effects ^>= 1.1 , semantic-ast , semantic-proto ^>= 0 , semantic-source ^>= 0.2 , semantic-tags ^>= 0.0 , template-haskell >= 2.15 && < 2.22 , text ^>= 1.2.3 , tree-sitter ^>= 0.9 , tree-sitter-go ^>= 0.5.0.1 test-suite test import: haskell type: exitcode-stdio-1.0 hs-source-dirs: test main-is: PreciseTest.hs build-depends: , base , semantic-ast , semantic-go , tasty ================================================ FILE: semantic-go/src/Language/Go/AST.hs ================================================ -- Language definition for Go, generated by ast-generate. Do not edit! {-# LANGUAGE CPP #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE QuantifiedConstraints #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} module Language.Go.AST (module Language.Go.AST, getTestCorpusDir) where import qualified AST.Parse import qualified AST.Token import qualified AST.Traversable1.Class import qualified AST.Unmarshal import qualified Data.Foldable import qualified Data.List as Data.OldList import qualified Data.Maybe as GHC.Maybe import qualified Data.Text.Internal import qualified Data.Traversable import qualified GHC.Base import qualified GHC.Generics import qualified GHC.Records import qualified GHC.Show import TreeSitter.Go (getTestCorpusDir) import qualified TreeSitter.Node import qualified Prelude as GHC.Classes debugSymbolNames :: [GHC.Base.String] debugSymbolNames = debugSymbolNames_0 debugSymbolNames_0 :: [GHC.Base.String] debugSymbolNames_0 = [ "end", "identifier", "_\n", "_;", "_package", "_import", "_.", "blank_identifier", "_(", "_)", "_const", "_,", "_=", "_var", "_func", "_...", "_type", "_*", "_[", "_]", "_struct", "_{", "_}", "_interface", "_map", "_chan", "_<-", "_:=", "_++", "_--", "_*=", "_/=", "_%=", "_<<=", "_>>=", "_&=", "_&^=", "_+=", "_-=", "_|=", "_^=", "_:", "_fallthrough", "_break", "_continue", "_goto", "_return", "_go", "_defer", "_if", "_else", "_for", "_range", "_switch", "_case", "_default", "_select", "identifier", "identifier", "_+", "_-", "_!", "_^", "_&", "_/", "_%", "_<<", "_>>", "_&^", "_|", "_==", "_!=", "_<", "_<=", "_>", "_>=", "_&&", "_||", "raw_string_literal", "_\"", "_interpreted_string_literal_token1", "escape_sequence", "int_literal", "float_literal", "imaginary_literal", "rune_literal", "nil", "true", "false", "comment", "source_file", "package_clause", "import_declaration", "import_spec", "dot", "import_spec_list", "_declaration", "const_declaration", "const_spec", "var_declaration", "var_spec", "function_declaration", "method_declaration", "parameter_list", "parameter_declaration", "variadic_parameter_declaration", "type_alias", "type_declaration", "type_spec", "expression_list", "parenthesized_type", "_simple_type", "pointer_type", "array_type", "implicit_length_array_type", "slice_type", "struct_type", "field_declaration_list", "field_declaration", "interface_type", "method_spec_list", "method_spec", "map_type", "channel_type", "function_type", "block", "_statement_list", "_statement", "empty_statement", "_simple_statement", "send_statement", "receive_statement", "inc_statement", "dec_statement", "assignment_statement", "short_var_declaration", "labeled_statement", "labeled_statement", "fallthrough_statement", "break_statement", "continue_statement", "goto_statement", "return_statement", "go_statement", "defer_statement", "if_statement", "for_statement", "for_clause", "range_clause", "expression_switch_statement", "expression_case", "default_case", "type_switch_statement", "_type_switch_header", "type_case", "select_statement", "communication_case", "_expression", "parenthesized_expression", "call_expression", "variadic_argument", "argument_list", "argument_list", "selector_expression", "index_expression", "slice_expression", "type_assertion_expression", "type_conversion_expression", "composite_literal", "literal_value", "keyed_element", "element", "func_literal", "unary_expression", "binary_expression", "qualified_type", "interpreted_string_literal", "_source_file_repeat1", "_import_spec_list_repeat1", "_const_declaration_repeat1", "_const_spec_repeat1", "_var_declaration_repeat1", "_parameter_list_repeat1", "_type_declaration_repeat1", "_field_name_list_repeat1", "_expression_list_repeat1", "_field_declaration_list_repeat1", "_method_spec_list_repeat1", "__statement_list_repeat1", "_expression_switch_statement_repeat1", "_type_switch_statement_repeat1", "_type_case_repeat1", "_select_statement_repeat1", "_argument_list_repeat1", "_literal_value_repeat1", "_interpreted_string_literal_repeat1", "field_identifier", "label_name", "package_identifier", "type_identifier" ] newtype 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)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1. AST.Traversable1.Class.Traversable1 a_1 ) instance GHC.Records.HasField "ann" (Expression a_2) a_2 where getField = AST.Unmarshal.gann GHC.Base.. getExpression deriving instance GHC.Classes.Eq a_3 => GHC.Classes.Eq (Expression a_3) deriving instance GHC.Classes.Ord a_4 => GHC.Classes.Ord (Expression a_4) deriving instance GHC.Show.Show a_5 => GHC.Show.Show (Expression a_5) instance AST.Unmarshal.Unmarshal Expression instance Data.Foldable.Foldable Expression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Expression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Expression where traverse = AST.Traversable1.Class.traverseDefault1 newtype SimpleStatement a = SimpleStatement {getSimpleStatement :: ((Expression GHC.Generics.:+: AssignmentStatement GHC.Generics.:+: DecStatement GHC.Generics.:+: IncStatement GHC.Generics.:+: SendStatement GHC.Generics.:+: ShortVarDeclaration) a)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_6. AST.Traversable1.Class.Traversable1 a_6 ) instance GHC.Records.HasField "ann" (SimpleStatement a_7) a_7 where getField = AST.Unmarshal.gann GHC.Base.. getSimpleStatement deriving instance GHC.Classes.Eq a_8 => GHC.Classes.Eq (SimpleStatement a_8) deriving instance GHC.Classes.Ord a_9 => GHC.Classes.Ord (SimpleStatement a_9) deriving instance GHC.Show.Show a_10 => GHC.Show.Show (SimpleStatement a_10) instance AST.Unmarshal.Unmarshal SimpleStatement instance Data.Foldable.Foldable SimpleStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SimpleStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SimpleStatement where traverse = AST.Traversable1.Class.traverseDefault1 newtype 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)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_11. AST.Traversable1.Class.Traversable1 a_11 ) instance GHC.Records.HasField "ann" (SimpleType a_12) a_12 where getField = AST.Unmarshal.gann GHC.Base.. getSimpleType deriving instance GHC.Classes.Eq a_13 => GHC.Classes.Eq (SimpleType a_13) deriving instance GHC.Classes.Ord a_14 => GHC.Classes.Ord (SimpleType a_14) deriving instance GHC.Show.Show a_15 => GHC.Show.Show (SimpleType a_15) instance AST.Unmarshal.Unmarshal SimpleType instance Data.Foldable.Foldable SimpleType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SimpleType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SimpleType where traverse = AST.Traversable1.Class.traverseDefault1 newtype 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)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_16. AST.Traversable1.Class.Traversable1 a_16 ) instance GHC.Records.HasField "ann" (Statement a_17) a_17 where getField = AST.Unmarshal.gann GHC.Base.. getStatement deriving instance GHC.Classes.Eq a_18 => GHC.Classes.Eq (Statement a_18) deriving instance GHC.Classes.Ord a_19 => GHC.Classes.Ord (Statement a_19) deriving instance GHC.Show.Show a_20 => GHC.Show.Show (Statement a_20) instance AST.Unmarshal.Unmarshal Statement instance Data.Foldable.Foldable Statement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Statement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Statement where traverse = AST.Traversable1.Class.traverseDefault1 newtype Type a = Type {getType :: ((SimpleType GHC.Generics.:+: ParenthesizedType) a)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_21. AST.Traversable1.Class.Traversable1 a_21 ) instance GHC.Records.HasField "ann" (Type a_22) a_22 where getField = AST.Unmarshal.gann GHC.Base.. getType deriving instance GHC.Classes.Eq a_23 => GHC.Classes.Eq (Type a_23) deriving instance GHC.Classes.Ord a_24 => GHC.Classes.Ord (Type a_24) deriving instance GHC.Show.Show a_25 => GHC.Show.Show (Type a_25) instance AST.Unmarshal.Unmarshal Type instance Data.Foldable.Foldable Type where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Type where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Type where traverse = AST.Traversable1.Class.traverseDefault1 data ArgumentList a = ArgumentList { ann :: a, extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: Type GHC.Generics.:+: VariadicArgument) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_26. AST.Traversable1.Class.Traversable1 a_26 ) instance AST.Unmarshal.SymbolMatching ArgumentList where matchedSymbols _ = [161, 162] showFailure _ node_27 = "expected " GHC.Base.<> ( "argument_list, argument_list" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_27 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_28 c1_29 = TreeSitter.Node.nodeStartPoint node_27 TreeSitter.Node.TSPoint r2_30 c2_31 = TreeSitter.Node.nodeEndPoint node_27 deriving instance GHC.Classes.Eq a_32 => GHC.Classes.Eq (ArgumentList a_32) deriving instance GHC.Classes.Ord a_33 => GHC.Classes.Ord (ArgumentList a_33) deriving instance GHC.Show.Show a_34 => GHC.Show.Show (ArgumentList a_34) instance AST.Unmarshal.Unmarshal ArgumentList instance Data.Foldable.Foldable ArgumentList where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ArgumentList where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ArgumentList where traverse = AST.Traversable1.Class.traverseDefault1 data ArrayType a = ArrayType { ann :: a, length :: (AST.Parse.Err (Expression a)), element :: (AST.Parse.Err (Type a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_35. AST.Traversable1.Class.Traversable1 a_35 ) instance AST.Unmarshal.SymbolMatching ArrayType where matchedSymbols _ = [113] showFailure _ node_36 = "expected " GHC.Base.<> ( "array_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_36 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_37 c1_38 = TreeSitter.Node.nodeStartPoint node_36 TreeSitter.Node.TSPoint r2_39 c2_40 = TreeSitter.Node.nodeEndPoint node_36 deriving instance GHC.Classes.Eq a_41 => GHC.Classes.Eq (ArrayType a_41) deriving instance GHC.Classes.Ord a_42 => GHC.Classes.Ord (ArrayType a_42) deriving instance GHC.Show.Show a_43 => GHC.Show.Show (ArrayType a_43) instance AST.Unmarshal.Unmarshal ArrayType instance Data.Foldable.Foldable ArrayType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ArrayType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ArrayType where traverse = AST.Traversable1.Class.traverseDefault1 data AssignmentStatement a = AssignmentStatement { ann :: a, 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)), left :: (AST.Parse.Err (ExpressionList a)), right :: (AST.Parse.Err (ExpressionList a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_44. AST.Traversable1.Class.Traversable1 a_44 ) instance AST.Unmarshal.SymbolMatching AssignmentStatement where matchedSymbols _ = [134] showFailure _ node_45 = "expected " GHC.Base.<> ( "assignment_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_45 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_46 c1_47 = TreeSitter.Node.nodeStartPoint node_45 TreeSitter.Node.TSPoint r2_48 c2_49 = TreeSitter.Node.nodeEndPoint node_45 deriving instance GHC.Classes.Eq a_50 => GHC.Classes.Eq (AssignmentStatement a_50) deriving instance GHC.Classes.Ord a_51 => GHC.Classes.Ord (AssignmentStatement a_51) deriving instance GHC.Show.Show a_52 => GHC.Show.Show (AssignmentStatement a_52) instance AST.Unmarshal.Unmarshal AssignmentStatement instance Data.Foldable.Foldable AssignmentStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AssignmentStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AssignmentStatement where traverse = AST.Traversable1.Class.traverseDefault1 data BinaryExpression a = BinaryExpression { ann :: a, 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)), left :: (AST.Parse.Err (Expression a)), right :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_53. AST.Traversable1.Class.Traversable1 a_53 ) instance AST.Unmarshal.SymbolMatching BinaryExpression where matchedSymbols _ = [174] showFailure _ node_54 = "expected " GHC.Base.<> ( "binary_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_54 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_55 c1_56 = TreeSitter.Node.nodeStartPoint node_54 TreeSitter.Node.TSPoint r2_57 c2_58 = TreeSitter.Node.nodeEndPoint node_54 deriving instance GHC.Classes.Eq a_59 => GHC.Classes.Eq (BinaryExpression a_59) deriving instance GHC.Classes.Ord a_60 => GHC.Classes.Ord (BinaryExpression a_60) deriving instance GHC.Show.Show a_61 => GHC.Show.Show (BinaryExpression a_61) instance AST.Unmarshal.Unmarshal BinaryExpression instance Data.Foldable.Foldable BinaryExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor BinaryExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable BinaryExpression where traverse = AST.Traversable1.Class.traverseDefault1 data Block a = Block { ann :: a, extraChildren :: ([AST.Parse.Err (Statement a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_62. AST.Traversable1.Class.Traversable1 a_62 ) instance AST.Unmarshal.SymbolMatching Block where matchedSymbols _ = [125] showFailure _ node_63 = "expected " GHC.Base.<> ( "block" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_63 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_64 c1_65 = TreeSitter.Node.nodeStartPoint node_63 TreeSitter.Node.TSPoint r2_66 c2_67 = TreeSitter.Node.nodeEndPoint node_63 deriving instance GHC.Classes.Eq a_68 => GHC.Classes.Eq (Block a_68) deriving instance GHC.Classes.Ord a_69 => GHC.Classes.Ord (Block a_69) deriving instance GHC.Show.Show a_70 => GHC.Show.Show (Block a_70) instance AST.Unmarshal.Unmarshal Block instance Data.Foldable.Foldable Block where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Block where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Block where traverse = AST.Traversable1.Class.traverseDefault1 data BreakStatement a = BreakStatement { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (LabelName a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_71. AST.Traversable1.Class.Traversable1 a_71 ) instance AST.Unmarshal.SymbolMatching BreakStatement where matchedSymbols _ = [139] showFailure _ node_72 = "expected " GHC.Base.<> ( "break_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_72 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_73 c1_74 = TreeSitter.Node.nodeStartPoint node_72 TreeSitter.Node.TSPoint r2_75 c2_76 = TreeSitter.Node.nodeEndPoint node_72 deriving instance GHC.Classes.Eq a_77 => GHC.Classes.Eq (BreakStatement a_77) deriving instance GHC.Classes.Ord a_78 => GHC.Classes.Ord (BreakStatement a_78) deriving instance GHC.Show.Show a_79 => GHC.Show.Show (BreakStatement a_79) instance AST.Unmarshal.Unmarshal BreakStatement instance Data.Foldable.Foldable BreakStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor BreakStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable BreakStatement where traverse = AST.Traversable1.Class.traverseDefault1 data CallExpression a = CallExpression { ann :: a, function :: (AST.Parse.Err (Expression a)), arguments :: (AST.Parse.Err (ArgumentList a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_80. AST.Traversable1.Class.Traversable1 a_80 ) instance AST.Unmarshal.SymbolMatching CallExpression where matchedSymbols _ = [159] showFailure _ node_81 = "expected " GHC.Base.<> ( "call_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_81 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_82 c1_83 = TreeSitter.Node.nodeStartPoint node_81 TreeSitter.Node.TSPoint r2_84 c2_85 = TreeSitter.Node.nodeEndPoint node_81 deriving instance GHC.Classes.Eq a_86 => GHC.Classes.Eq (CallExpression a_86) deriving instance GHC.Classes.Ord a_87 => GHC.Classes.Ord (CallExpression a_87) deriving instance GHC.Show.Show a_88 => GHC.Show.Show (CallExpression a_88) instance AST.Unmarshal.Unmarshal CallExpression instance Data.Foldable.Foldable CallExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor CallExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable CallExpression where traverse = AST.Traversable1.Class.traverseDefault1 data ChannelType a = ChannelType {ann :: a, value :: (AST.Parse.Err (Type a))} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_89. AST.Traversable1.Class.Traversable1 a_89 ) instance AST.Unmarshal.SymbolMatching ChannelType where matchedSymbols _ = [123] showFailure _ node_90 = "expected " GHC.Base.<> ( "channel_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_90 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_91 c1_92 = TreeSitter.Node.nodeStartPoint node_90 TreeSitter.Node.TSPoint r2_93 c2_94 = TreeSitter.Node.nodeEndPoint node_90 deriving instance GHC.Classes.Eq a_95 => GHC.Classes.Eq (ChannelType a_95) deriving instance GHC.Classes.Ord a_96 => GHC.Classes.Ord (ChannelType a_96) deriving instance GHC.Show.Show a_97 => GHC.Show.Show (ChannelType a_97) instance AST.Unmarshal.Unmarshal ChannelType instance Data.Foldable.Foldable ChannelType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ChannelType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ChannelType where traverse = AST.Traversable1.Class.traverseDefault1 data CommunicationCase a = CommunicationCase { ann :: a, communication :: (AST.Parse.Err ((ReceiveStatement GHC.Generics.:+: SendStatement) a)), extraChildren :: ([AST.Parse.Err (Statement a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_98. AST.Traversable1.Class.Traversable1 a_98 ) instance AST.Unmarshal.SymbolMatching CommunicationCase where matchedSymbols _ = [156] showFailure _ node_99 = "expected " GHC.Base.<> ( "communication_case" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_99 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_100 c1_101 = TreeSitter.Node.nodeStartPoint node_99 TreeSitter.Node.TSPoint r2_102 c2_103 = TreeSitter.Node.nodeEndPoint node_99 deriving instance GHC.Classes.Eq a_104 => GHC.Classes.Eq (CommunicationCase a_104) deriving instance GHC.Classes.Ord a_105 => GHC.Classes.Ord (CommunicationCase a_105) deriving instance GHC.Show.Show a_106 => GHC.Show.Show (CommunicationCase a_106) instance AST.Unmarshal.Unmarshal CommunicationCase instance Data.Foldable.Foldable CommunicationCase where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor CommunicationCase where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable CommunicationCase where traverse = AST.Traversable1.Class.traverseDefault1 data CompositeLiteral a = CompositeLiteral { ann :: a, body :: (AST.Parse.Err (LiteralValue a)), type' :: (AST.Parse.Err ((ArrayType GHC.Generics.:+: ImplicitLengthArrayType GHC.Generics.:+: MapType GHC.Generics.:+: QualifiedType GHC.Generics.:+: SliceType GHC.Generics.:+: StructType GHC.Generics.:+: TypeIdentifier) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_107. AST.Traversable1.Class.Traversable1 a_107 ) instance AST.Unmarshal.SymbolMatching CompositeLiteral where matchedSymbols _ = [168] showFailure _ node_108 = "expected " GHC.Base.<> ( "composite_literal" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_108 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_109 c1_110 = TreeSitter.Node.nodeStartPoint node_108 TreeSitter.Node.TSPoint r2_111 c2_112 = TreeSitter.Node.nodeEndPoint node_108 deriving instance GHC.Classes.Eq a_113 => GHC.Classes.Eq (CompositeLiteral a_113) deriving instance GHC.Classes.Ord a_114 => GHC.Classes.Ord (CompositeLiteral a_114) deriving instance GHC.Show.Show a_115 => GHC.Show.Show (CompositeLiteral a_115) instance AST.Unmarshal.Unmarshal CompositeLiteral instance Data.Foldable.Foldable CompositeLiteral where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor CompositeLiteral where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable CompositeLiteral where traverse = AST.Traversable1.Class.traverseDefault1 data ConstDeclaration a = ConstDeclaration { ann :: a, extraChildren :: ([AST.Parse.Err (ConstSpec a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_116. AST.Traversable1.Class.Traversable1 a_116 ) instance AST.Unmarshal.SymbolMatching ConstDeclaration where matchedSymbols _ = [97] showFailure _ node_117 = "expected " GHC.Base.<> ( "const_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_117 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_118 c1_119 = TreeSitter.Node.nodeStartPoint node_117 TreeSitter.Node.TSPoint r2_120 c2_121 = TreeSitter.Node.nodeEndPoint node_117 deriving instance GHC.Classes.Eq a_122 => GHC.Classes.Eq (ConstDeclaration a_122) deriving instance GHC.Classes.Ord a_123 => GHC.Classes.Ord (ConstDeclaration a_123) deriving instance GHC.Show.Show a_124 => GHC.Show.Show (ConstDeclaration a_124) instance AST.Unmarshal.Unmarshal ConstDeclaration instance Data.Foldable.Foldable ConstDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ConstDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ConstDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data ConstSpec a = ConstSpec { ann :: a, value :: (GHC.Maybe.Maybe (AST.Parse.Err (ExpressionList a))), name :: (GHC.Base.NonEmpty (AST.Parse.Err ((AnonymousComma GHC.Generics.:+: Identifier) a))), type' :: (GHC.Maybe.Maybe (AST.Parse.Err (Type a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_125. AST.Traversable1.Class.Traversable1 a_125 ) instance AST.Unmarshal.SymbolMatching ConstSpec where matchedSymbols _ = [98] showFailure _ node_126 = "expected " GHC.Base.<> ( "const_spec" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_126 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_127 c1_128 = TreeSitter.Node.nodeStartPoint node_126 TreeSitter.Node.TSPoint r2_129 c2_130 = TreeSitter.Node.nodeEndPoint node_126 deriving instance GHC.Classes.Eq a_131 => GHC.Classes.Eq (ConstSpec a_131) deriving instance GHC.Classes.Ord a_132 => GHC.Classes.Ord (ConstSpec a_132) deriving instance GHC.Show.Show a_133 => GHC.Show.Show (ConstSpec a_133) instance AST.Unmarshal.Unmarshal ConstSpec instance Data.Foldable.Foldable ConstSpec where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ConstSpec where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ConstSpec where traverse = AST.Traversable1.Class.traverseDefault1 data ContinueStatement a = ContinueStatement { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (LabelName a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_134. AST.Traversable1.Class.Traversable1 a_134 ) instance AST.Unmarshal.SymbolMatching ContinueStatement where matchedSymbols _ = [140] showFailure _ node_135 = "expected " GHC.Base.<> ( "continue_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_135 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_136 c1_137 = TreeSitter.Node.nodeStartPoint node_135 TreeSitter.Node.TSPoint r2_138 c2_139 = TreeSitter.Node.nodeEndPoint node_135 deriving instance GHC.Classes.Eq a_140 => GHC.Classes.Eq (ContinueStatement a_140) deriving instance GHC.Classes.Ord a_141 => GHC.Classes.Ord (ContinueStatement a_141) deriving instance GHC.Show.Show a_142 => GHC.Show.Show (ContinueStatement a_142) instance AST.Unmarshal.Unmarshal ContinueStatement instance Data.Foldable.Foldable ContinueStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ContinueStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ContinueStatement where traverse = AST.Traversable1.Class.traverseDefault1 data DecStatement a = DecStatement { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_143. AST.Traversable1.Class.Traversable1 a_143 ) instance AST.Unmarshal.SymbolMatching DecStatement where matchedSymbols _ = [133] showFailure _ node_144 = "expected " GHC.Base.<> ( "dec_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_144 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_145 c1_146 = TreeSitter.Node.nodeStartPoint node_144 TreeSitter.Node.TSPoint r2_147 c2_148 = TreeSitter.Node.nodeEndPoint node_144 deriving instance GHC.Classes.Eq a_149 => GHC.Classes.Eq (DecStatement a_149) deriving instance GHC.Classes.Ord a_150 => GHC.Classes.Ord (DecStatement a_150) deriving instance GHC.Show.Show a_151 => GHC.Show.Show (DecStatement a_151) instance AST.Unmarshal.Unmarshal DecStatement instance Data.Foldable.Foldable DecStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DecStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DecStatement where traverse = AST.Traversable1.Class.traverseDefault1 data DefaultCase a = DefaultCase { ann :: a, extraChildren :: ([AST.Parse.Err (Statement a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_152. AST.Traversable1.Class.Traversable1 a_152 ) instance AST.Unmarshal.SymbolMatching DefaultCase where matchedSymbols _ = [151] showFailure _ node_153 = "expected " GHC.Base.<> ( "default_case" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_153 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_154 c1_155 = TreeSitter.Node.nodeStartPoint node_153 TreeSitter.Node.TSPoint r2_156 c2_157 = TreeSitter.Node.nodeEndPoint node_153 deriving instance GHC.Classes.Eq a_158 => GHC.Classes.Eq (DefaultCase a_158) deriving instance GHC.Classes.Ord a_159 => GHC.Classes.Ord (DefaultCase a_159) deriving instance GHC.Show.Show a_160 => GHC.Show.Show (DefaultCase a_160) instance AST.Unmarshal.Unmarshal DefaultCase instance Data.Foldable.Foldable DefaultCase where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DefaultCase where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DefaultCase where traverse = AST.Traversable1.Class.traverseDefault1 data DeferStatement a = DeferStatement { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_161. AST.Traversable1.Class.Traversable1 a_161 ) instance AST.Unmarshal.SymbolMatching DeferStatement where matchedSymbols _ = [144] showFailure _ node_162 = "expected " GHC.Base.<> ( "defer_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_162 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_163 c1_164 = TreeSitter.Node.nodeStartPoint node_162 TreeSitter.Node.TSPoint r2_165 c2_166 = TreeSitter.Node.nodeEndPoint node_162 deriving instance GHC.Classes.Eq a_167 => GHC.Classes.Eq (DeferStatement a_167) deriving instance GHC.Classes.Ord a_168 => GHC.Classes.Ord (DeferStatement a_168) deriving instance GHC.Show.Show a_169 => GHC.Show.Show (DeferStatement a_169) instance AST.Unmarshal.Unmarshal DeferStatement instance Data.Foldable.Foldable DeferStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DeferStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DeferStatement where traverse = AST.Traversable1.Class.traverseDefault1 data Dot a = Dot {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_170. AST.Traversable1.Class.Traversable1 a_170 ) instance AST.Unmarshal.SymbolMatching Dot where matchedSymbols _ = [94] showFailure _ node_171 = "expected " GHC.Base.<> ( "dot" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_171 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_172 c1_173 = TreeSitter.Node.nodeStartPoint node_171 TreeSitter.Node.TSPoint r2_174 c2_175 = TreeSitter.Node.nodeEndPoint node_171 deriving instance GHC.Classes.Eq a_176 => GHC.Classes.Eq (Dot a_176) deriving instance GHC.Classes.Ord a_177 => GHC.Classes.Ord (Dot a_177) deriving instance GHC.Show.Show a_178 => GHC.Show.Show (Dot a_178) instance AST.Unmarshal.Unmarshal Dot instance Data.Foldable.Foldable Dot where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Dot where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Dot where traverse = AST.Traversable1.Class.traverseDefault1 data Element a = Element { ann :: a, extraChildren :: (AST.Parse.Err ((Expression GHC.Generics.:+: LiteralValue) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_179. AST.Traversable1.Class.Traversable1 a_179 ) instance AST.Unmarshal.SymbolMatching Element where matchedSymbols _ = [171] showFailure _ node_180 = "expected " GHC.Base.<> ( "element" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_180 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_181 c1_182 = TreeSitter.Node.nodeStartPoint node_180 TreeSitter.Node.TSPoint r2_183 c2_184 = TreeSitter.Node.nodeEndPoint node_180 deriving instance GHC.Classes.Eq a_185 => GHC.Classes.Eq (Element a_185) deriving instance GHC.Classes.Ord a_186 => GHC.Classes.Ord (Element a_186) deriving instance GHC.Show.Show a_187 => GHC.Show.Show (Element a_187) instance AST.Unmarshal.Unmarshal Element instance Data.Foldable.Foldable Element where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Element where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Element where traverse = AST.Traversable1.Class.traverseDefault1 data EmptyStatement a = EmptyStatement {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_188. AST.Traversable1.Class.Traversable1 a_188 ) instance AST.Unmarshal.SymbolMatching EmptyStatement where matchedSymbols _ = [128] showFailure _ node_189 = "expected " GHC.Base.<> ( "empty_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_189 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_190 c1_191 = TreeSitter.Node.nodeStartPoint node_189 TreeSitter.Node.TSPoint r2_192 c2_193 = TreeSitter.Node.nodeEndPoint node_189 deriving instance GHC.Classes.Eq a_194 => GHC.Classes.Eq (EmptyStatement a_194) deriving instance GHC.Classes.Ord a_195 => GHC.Classes.Ord (EmptyStatement a_195) deriving instance GHC.Show.Show a_196 => GHC.Show.Show (EmptyStatement a_196) instance AST.Unmarshal.Unmarshal EmptyStatement instance Data.Foldable.Foldable EmptyStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor EmptyStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable EmptyStatement where traverse = AST.Traversable1.Class.traverseDefault1 data ExpressionCase a = ExpressionCase { ann :: a, value :: (AST.Parse.Err (ExpressionList a)), extraChildren :: ([AST.Parse.Err (Statement a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_197. AST.Traversable1.Class.Traversable1 a_197 ) instance AST.Unmarshal.SymbolMatching ExpressionCase where matchedSymbols _ = [150] showFailure _ node_198 = "expected " GHC.Base.<> ( "expression_case" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_198 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_199 c1_200 = TreeSitter.Node.nodeStartPoint node_198 TreeSitter.Node.TSPoint r2_201 c2_202 = TreeSitter.Node.nodeEndPoint node_198 deriving instance GHC.Classes.Eq a_203 => GHC.Classes.Eq (ExpressionCase a_203) deriving instance GHC.Classes.Ord a_204 => GHC.Classes.Ord (ExpressionCase a_204) deriving instance GHC.Show.Show a_205 => GHC.Show.Show (ExpressionCase a_205) instance AST.Unmarshal.Unmarshal ExpressionCase instance Data.Foldable.Foldable ExpressionCase where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ExpressionCase where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ExpressionCase where traverse = AST.Traversable1.Class.traverseDefault1 data ExpressionList a = ExpressionList { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Expression a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_206. AST.Traversable1.Class.Traversable1 a_206 ) instance AST.Unmarshal.SymbolMatching ExpressionList where matchedSymbols _ = [109] showFailure _ node_207 = "expected " GHC.Base.<> ( "expression_list" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_207 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_208 c1_209 = TreeSitter.Node.nodeStartPoint node_207 TreeSitter.Node.TSPoint r2_210 c2_211 = TreeSitter.Node.nodeEndPoint node_207 deriving instance GHC.Classes.Eq a_212 => GHC.Classes.Eq (ExpressionList a_212) deriving instance GHC.Classes.Ord a_213 => GHC.Classes.Ord (ExpressionList a_213) deriving instance GHC.Show.Show a_214 => GHC.Show.Show (ExpressionList a_214) instance AST.Unmarshal.Unmarshal ExpressionList instance Data.Foldable.Foldable ExpressionList where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ExpressionList where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ExpressionList where traverse = AST.Traversable1.Class.traverseDefault1 data ExpressionSwitchStatement a = ExpressionSwitchStatement { ann :: a, value :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))), initializer :: (GHC.Maybe.Maybe (AST.Parse.Err (SimpleStatement a))), extraChildren :: ([AST.Parse.Err ((DefaultCase GHC.Generics.:+: ExpressionCase) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_215. AST.Traversable1.Class.Traversable1 a_215 ) instance AST.Unmarshal.SymbolMatching ExpressionSwitchStatement where matchedSymbols _ = [149] showFailure _ node_216 = "expected " GHC.Base.<> ( "expression_switch_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_216 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_217 c1_218 = TreeSitter.Node.nodeStartPoint node_216 TreeSitter.Node.TSPoint r2_219 c2_220 = TreeSitter.Node.nodeEndPoint node_216 deriving instance GHC.Classes.Eq a_221 => GHC.Classes.Eq (ExpressionSwitchStatement a_221) deriving instance GHC.Classes.Ord a_222 => GHC.Classes.Ord (ExpressionSwitchStatement a_222) deriving instance GHC.Show.Show a_223 => GHC.Show.Show (ExpressionSwitchStatement a_223) instance AST.Unmarshal.Unmarshal ExpressionSwitchStatement instance Data.Foldable.Foldable ExpressionSwitchStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ExpressionSwitchStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ExpressionSwitchStatement where traverse = AST.Traversable1.Class.traverseDefault1 data FallthroughStatement a = FallthroughStatement {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_224. AST.Traversable1.Class.Traversable1 a_224 ) instance AST.Unmarshal.SymbolMatching FallthroughStatement where matchedSymbols _ = [138] showFailure _ node_225 = "expected " GHC.Base.<> ( "fallthrough_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_225 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_226 c1_227 = TreeSitter.Node.nodeStartPoint node_225 TreeSitter.Node.TSPoint r2_228 c2_229 = TreeSitter.Node.nodeEndPoint node_225 deriving instance GHC.Classes.Eq a_230 => GHC.Classes.Eq (FallthroughStatement a_230) deriving instance GHC.Classes.Ord a_231 => GHC.Classes.Ord (FallthroughStatement a_231) deriving instance GHC.Show.Show a_232 => GHC.Show.Show (FallthroughStatement a_232) instance AST.Unmarshal.Unmarshal FallthroughStatement instance Data.Foldable.Foldable FallthroughStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FallthroughStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FallthroughStatement where traverse = AST.Traversable1.Class.traverseDefault1 data FieldDeclaration a = FieldDeclaration { ann :: a, tag :: (GHC.Maybe.Maybe (AST.Parse.Err ((InterpretedStringLiteral GHC.Generics.:+: RawStringLiteral) a))), name :: ([AST.Parse.Err ((AnonymousComma GHC.Generics.:+: FieldIdentifier) a)]), type' :: (AST.Parse.Err ((Type GHC.Generics.:+: QualifiedType GHC.Generics.:+: TypeIdentifier) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_233. AST.Traversable1.Class.Traversable1 a_233 ) instance AST.Unmarshal.SymbolMatching FieldDeclaration where matchedSymbols _ = [118] showFailure _ node_234 = "expected " GHC.Base.<> ( "field_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_234 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_235 c1_236 = TreeSitter.Node.nodeStartPoint node_234 TreeSitter.Node.TSPoint r2_237 c2_238 = TreeSitter.Node.nodeEndPoint node_234 deriving instance GHC.Classes.Eq a_239 => GHC.Classes.Eq (FieldDeclaration a_239) deriving instance GHC.Classes.Ord a_240 => GHC.Classes.Ord (FieldDeclaration a_240) deriving instance GHC.Show.Show a_241 => GHC.Show.Show (FieldDeclaration a_241) instance AST.Unmarshal.Unmarshal FieldDeclaration instance Data.Foldable.Foldable FieldDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FieldDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FieldDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data FieldDeclarationList a = FieldDeclarationList { ann :: a, extraChildren :: ([AST.Parse.Err (FieldDeclaration a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_242. AST.Traversable1.Class.Traversable1 a_242 ) instance AST.Unmarshal.SymbolMatching FieldDeclarationList where matchedSymbols _ = [117] showFailure _ node_243 = "expected " GHC.Base.<> ( "field_declaration_list" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_243 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_244 c1_245 = TreeSitter.Node.nodeStartPoint node_243 TreeSitter.Node.TSPoint r2_246 c2_247 = TreeSitter.Node.nodeEndPoint node_243 deriving instance GHC.Classes.Eq a_248 => GHC.Classes.Eq (FieldDeclarationList a_248) deriving instance GHC.Classes.Ord a_249 => GHC.Classes.Ord (FieldDeclarationList a_249) deriving instance GHC.Show.Show a_250 => GHC.Show.Show (FieldDeclarationList a_250) instance AST.Unmarshal.Unmarshal FieldDeclarationList instance Data.Foldable.Foldable FieldDeclarationList where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FieldDeclarationList where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FieldDeclarationList where traverse = AST.Traversable1.Class.traverseDefault1 data ForClause a = ForClause { ann :: a, initializer :: (GHC.Maybe.Maybe (AST.Parse.Err (SimpleStatement a))), condition :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))), update :: (GHC.Maybe.Maybe (AST.Parse.Err (SimpleStatement a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_251. AST.Traversable1.Class.Traversable1 a_251 ) instance AST.Unmarshal.SymbolMatching ForClause where matchedSymbols _ = [147] showFailure _ node_252 = "expected " GHC.Base.<> ( "for_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_252 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_253 c1_254 = TreeSitter.Node.nodeStartPoint node_252 TreeSitter.Node.TSPoint r2_255 c2_256 = TreeSitter.Node.nodeEndPoint node_252 deriving instance GHC.Classes.Eq a_257 => GHC.Classes.Eq (ForClause a_257) deriving instance GHC.Classes.Ord a_258 => GHC.Classes.Ord (ForClause a_258) deriving instance GHC.Show.Show a_259 => GHC.Show.Show (ForClause a_259) instance AST.Unmarshal.Unmarshal ForClause instance Data.Foldable.Foldable ForClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ForClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ForClause where traverse = AST.Traversable1.Class.traverseDefault1 data ForStatement a = ForStatement { ann :: a, body :: (AST.Parse.Err (Block a)), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err ((Expression GHC.Generics.:+: ForClause GHC.Generics.:+: RangeClause) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_260. AST.Traversable1.Class.Traversable1 a_260 ) instance AST.Unmarshal.SymbolMatching ForStatement where matchedSymbols _ = [146] showFailure _ node_261 = "expected " GHC.Base.<> ( "for_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_261 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_262 c1_263 = TreeSitter.Node.nodeStartPoint node_261 TreeSitter.Node.TSPoint r2_264 c2_265 = TreeSitter.Node.nodeEndPoint node_261 deriving instance GHC.Classes.Eq a_266 => GHC.Classes.Eq (ForStatement a_266) deriving instance GHC.Classes.Ord a_267 => GHC.Classes.Ord (ForStatement a_267) deriving instance GHC.Show.Show a_268 => GHC.Show.Show (ForStatement a_268) instance AST.Unmarshal.Unmarshal ForStatement instance Data.Foldable.Foldable ForStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ForStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ForStatement where traverse = AST.Traversable1.Class.traverseDefault1 data FuncLiteral a = FuncLiteral { ann :: a, body :: (AST.Parse.Err (Block a)), result :: (GHC.Maybe.Maybe (AST.Parse.Err ((SimpleType GHC.Generics.:+: ParameterList) a))), parameters :: (AST.Parse.Err (ParameterList a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_269. AST.Traversable1.Class.Traversable1 a_269 ) instance AST.Unmarshal.SymbolMatching FuncLiteral where matchedSymbols _ = [172] showFailure _ node_270 = "expected " GHC.Base.<> ( "func_literal" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_270 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_271 c1_272 = TreeSitter.Node.nodeStartPoint node_270 TreeSitter.Node.TSPoint r2_273 c2_274 = TreeSitter.Node.nodeEndPoint node_270 deriving instance GHC.Classes.Eq a_275 => GHC.Classes.Eq (FuncLiteral a_275) deriving instance GHC.Classes.Ord a_276 => GHC.Classes.Ord (FuncLiteral a_276) deriving instance GHC.Show.Show a_277 => GHC.Show.Show (FuncLiteral a_277) instance AST.Unmarshal.Unmarshal FuncLiteral instance Data.Foldable.Foldable FuncLiteral where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FuncLiteral where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FuncLiteral where traverse = AST.Traversable1.Class.traverseDefault1 data FunctionDeclaration a = FunctionDeclaration { ann :: a, body :: (GHC.Maybe.Maybe (AST.Parse.Err (Block a))), result :: (GHC.Maybe.Maybe (AST.Parse.Err ((SimpleType GHC.Generics.:+: ParameterList) a))), name :: (AST.Parse.Err (Identifier a)), parameters :: (AST.Parse.Err (ParameterList a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_278. AST.Traversable1.Class.Traversable1 a_278 ) instance AST.Unmarshal.SymbolMatching FunctionDeclaration where matchedSymbols _ = [101] showFailure _ node_279 = "expected " GHC.Base.<> ( "function_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_279 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_280 c1_281 = TreeSitter.Node.nodeStartPoint node_279 TreeSitter.Node.TSPoint r2_282 c2_283 = TreeSitter.Node.nodeEndPoint node_279 deriving instance GHC.Classes.Eq a_284 => GHC.Classes.Eq (FunctionDeclaration a_284) deriving instance GHC.Classes.Ord a_285 => GHC.Classes.Ord (FunctionDeclaration a_285) deriving instance GHC.Show.Show a_286 => GHC.Show.Show (FunctionDeclaration a_286) instance AST.Unmarshal.Unmarshal FunctionDeclaration instance Data.Foldable.Foldable FunctionDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FunctionDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FunctionDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data FunctionType a = FunctionType { ann :: a, result :: (GHC.Maybe.Maybe (AST.Parse.Err ((SimpleType GHC.Generics.:+: ParameterList) a))), parameters :: (AST.Parse.Err (ParameterList a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_287. AST.Traversable1.Class.Traversable1 a_287 ) instance AST.Unmarshal.SymbolMatching FunctionType where matchedSymbols _ = [124] showFailure _ node_288 = "expected " GHC.Base.<> ( "function_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_288 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_289 c1_290 = TreeSitter.Node.nodeStartPoint node_288 TreeSitter.Node.TSPoint r2_291 c2_292 = TreeSitter.Node.nodeEndPoint node_288 deriving instance GHC.Classes.Eq a_293 => GHC.Classes.Eq (FunctionType a_293) deriving instance GHC.Classes.Ord a_294 => GHC.Classes.Ord (FunctionType a_294) deriving instance GHC.Show.Show a_295 => GHC.Show.Show (FunctionType a_295) instance AST.Unmarshal.Unmarshal FunctionType instance Data.Foldable.Foldable FunctionType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FunctionType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FunctionType where traverse = AST.Traversable1.Class.traverseDefault1 data GoStatement a = GoStatement { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_296. AST.Traversable1.Class.Traversable1 a_296 ) instance AST.Unmarshal.SymbolMatching GoStatement where matchedSymbols _ = [143] showFailure _ node_297 = "expected " GHC.Base.<> ( "go_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_297 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_298 c1_299 = TreeSitter.Node.nodeStartPoint node_297 TreeSitter.Node.TSPoint r2_300 c2_301 = TreeSitter.Node.nodeEndPoint node_297 deriving instance GHC.Classes.Eq a_302 => GHC.Classes.Eq (GoStatement a_302) deriving instance GHC.Classes.Ord a_303 => GHC.Classes.Ord (GoStatement a_303) deriving instance GHC.Show.Show a_304 => GHC.Show.Show (GoStatement a_304) instance AST.Unmarshal.Unmarshal GoStatement instance Data.Foldable.Foldable GoStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor GoStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable GoStatement where traverse = AST.Traversable1.Class.traverseDefault1 data GotoStatement a = GotoStatement { ann :: a, extraChildren :: (AST.Parse.Err (LabelName a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_305. AST.Traversable1.Class.Traversable1 a_305 ) instance AST.Unmarshal.SymbolMatching GotoStatement where matchedSymbols _ = [141] showFailure _ node_306 = "expected " GHC.Base.<> ( "goto_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_306 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_307 c1_308 = TreeSitter.Node.nodeStartPoint node_306 TreeSitter.Node.TSPoint r2_309 c2_310 = TreeSitter.Node.nodeEndPoint node_306 deriving instance GHC.Classes.Eq a_311 => GHC.Classes.Eq (GotoStatement a_311) deriving instance GHC.Classes.Ord a_312 => GHC.Classes.Ord (GotoStatement a_312) deriving instance GHC.Show.Show a_313 => GHC.Show.Show (GotoStatement a_313) instance AST.Unmarshal.Unmarshal GotoStatement instance Data.Foldable.Foldable GotoStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor GotoStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable GotoStatement where traverse = AST.Traversable1.Class.traverseDefault1 data IfStatement a = IfStatement { ann :: a, alternative :: (GHC.Maybe.Maybe (AST.Parse.Err ((Block GHC.Generics.:+: IfStatement) a))), initializer :: (GHC.Maybe.Maybe (AST.Parse.Err (SimpleStatement a))), consequence :: (AST.Parse.Err (Block a)), condition :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_314. AST.Traversable1.Class.Traversable1 a_314 ) instance AST.Unmarshal.SymbolMatching IfStatement where matchedSymbols _ = [145] showFailure _ node_315 = "expected " GHC.Base.<> ( "if_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_315 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_316 c1_317 = TreeSitter.Node.nodeStartPoint node_315 TreeSitter.Node.TSPoint r2_318 c2_319 = TreeSitter.Node.nodeEndPoint node_315 deriving instance GHC.Classes.Eq a_320 => GHC.Classes.Eq (IfStatement a_320) deriving instance GHC.Classes.Ord a_321 => GHC.Classes.Ord (IfStatement a_321) deriving instance GHC.Show.Show a_322 => GHC.Show.Show (IfStatement a_322) instance AST.Unmarshal.Unmarshal IfStatement instance Data.Foldable.Foldable IfStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor IfStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable IfStatement where traverse = AST.Traversable1.Class.traverseDefault1 data ImplicitLengthArrayType a = ImplicitLengthArrayType { ann :: a, element :: (AST.Parse.Err (Type a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_323. AST.Traversable1.Class.Traversable1 a_323 ) instance AST.Unmarshal.SymbolMatching ImplicitLengthArrayType where matchedSymbols _ = [114] showFailure _ node_324 = "expected " GHC.Base.<> ( "implicit_length_array_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_324 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_325 c1_326 = TreeSitter.Node.nodeStartPoint node_324 TreeSitter.Node.TSPoint r2_327 c2_328 = TreeSitter.Node.nodeEndPoint node_324 deriving instance GHC.Classes.Eq a_329 => GHC.Classes.Eq (ImplicitLengthArrayType a_329) deriving instance GHC.Classes.Ord a_330 => GHC.Classes.Ord (ImplicitLengthArrayType a_330) deriving instance GHC.Show.Show a_331 => GHC.Show.Show (ImplicitLengthArrayType a_331) instance AST.Unmarshal.Unmarshal ImplicitLengthArrayType instance Data.Foldable.Foldable ImplicitLengthArrayType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ImplicitLengthArrayType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ImplicitLengthArrayType where traverse = AST.Traversable1.Class.traverseDefault1 data ImportDeclaration a = ImportDeclaration { ann :: a, extraChildren :: (AST.Parse.Err ((ImportSpec GHC.Generics.:+: ImportSpecList) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_332. AST.Traversable1.Class.Traversable1 a_332 ) instance AST.Unmarshal.SymbolMatching ImportDeclaration where matchedSymbols _ = [92] showFailure _ node_333 = "expected " GHC.Base.<> ( "import_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_333 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_334 c1_335 = TreeSitter.Node.nodeStartPoint node_333 TreeSitter.Node.TSPoint r2_336 c2_337 = TreeSitter.Node.nodeEndPoint node_333 deriving instance GHC.Classes.Eq a_338 => GHC.Classes.Eq (ImportDeclaration a_338) deriving instance GHC.Classes.Ord a_339 => GHC.Classes.Ord (ImportDeclaration a_339) deriving instance GHC.Show.Show a_340 => GHC.Show.Show (ImportDeclaration a_340) instance AST.Unmarshal.Unmarshal ImportDeclaration instance Data.Foldable.Foldable ImportDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ImportDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ImportDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data ImportSpec a = ImportSpec { ann :: a, path :: (AST.Parse.Err ((InterpretedStringLiteral GHC.Generics.:+: RawStringLiteral) a)), name :: (GHC.Maybe.Maybe (AST.Parse.Err ((BlankIdentifier GHC.Generics.:+: Dot GHC.Generics.:+: PackageIdentifier) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_341. AST.Traversable1.Class.Traversable1 a_341 ) instance AST.Unmarshal.SymbolMatching ImportSpec where matchedSymbols _ = [93] showFailure _ node_342 = "expected " GHC.Base.<> ( "import_spec" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_342 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_343 c1_344 = TreeSitter.Node.nodeStartPoint node_342 TreeSitter.Node.TSPoint r2_345 c2_346 = TreeSitter.Node.nodeEndPoint node_342 deriving instance GHC.Classes.Eq a_347 => GHC.Classes.Eq (ImportSpec a_347) deriving instance GHC.Classes.Ord a_348 => GHC.Classes.Ord (ImportSpec a_348) deriving instance GHC.Show.Show a_349 => GHC.Show.Show (ImportSpec a_349) instance AST.Unmarshal.Unmarshal ImportSpec instance Data.Foldable.Foldable ImportSpec where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ImportSpec where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ImportSpec where traverse = AST.Traversable1.Class.traverseDefault1 data ImportSpecList a = ImportSpecList { ann :: a, extraChildren :: ([AST.Parse.Err (ImportSpec a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_350. AST.Traversable1.Class.Traversable1 a_350 ) instance AST.Unmarshal.SymbolMatching ImportSpecList where matchedSymbols _ = [95] showFailure _ node_351 = "expected " GHC.Base.<> ( "import_spec_list" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_351 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_352 c1_353 = TreeSitter.Node.nodeStartPoint node_351 TreeSitter.Node.TSPoint r2_354 c2_355 = TreeSitter.Node.nodeEndPoint node_351 deriving instance GHC.Classes.Eq a_356 => GHC.Classes.Eq (ImportSpecList a_356) deriving instance GHC.Classes.Ord a_357 => GHC.Classes.Ord (ImportSpecList a_357) deriving instance GHC.Show.Show a_358 => GHC.Show.Show (ImportSpecList a_358) instance AST.Unmarshal.Unmarshal ImportSpecList instance Data.Foldable.Foldable ImportSpecList where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ImportSpecList where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ImportSpecList where traverse = AST.Traversable1.Class.traverseDefault1 data IncStatement a = IncStatement { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_359. AST.Traversable1.Class.Traversable1 a_359 ) instance AST.Unmarshal.SymbolMatching IncStatement where matchedSymbols _ = [132] showFailure _ node_360 = "expected " GHC.Base.<> ( "inc_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_360 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_361 c1_362 = TreeSitter.Node.nodeStartPoint node_360 TreeSitter.Node.TSPoint r2_363 c2_364 = TreeSitter.Node.nodeEndPoint node_360 deriving instance GHC.Classes.Eq a_365 => GHC.Classes.Eq (IncStatement a_365) deriving instance GHC.Classes.Ord a_366 => GHC.Classes.Ord (IncStatement a_366) deriving instance GHC.Show.Show a_367 => GHC.Show.Show (IncStatement a_367) instance AST.Unmarshal.Unmarshal IncStatement instance Data.Foldable.Foldable IncStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor IncStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable IncStatement where traverse = AST.Traversable1.Class.traverseDefault1 data IndexExpression a = IndexExpression { ann :: a, operand :: (AST.Parse.Err (Expression a)), index :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_368. AST.Traversable1.Class.Traversable1 a_368 ) instance AST.Unmarshal.SymbolMatching IndexExpression where matchedSymbols _ = [164] showFailure _ node_369 = "expected " GHC.Base.<> ( "index_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_369 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_370 c1_371 = TreeSitter.Node.nodeStartPoint node_369 TreeSitter.Node.TSPoint r2_372 c2_373 = TreeSitter.Node.nodeEndPoint node_369 deriving instance GHC.Classes.Eq a_374 => GHC.Classes.Eq (IndexExpression a_374) deriving instance GHC.Classes.Ord a_375 => GHC.Classes.Ord (IndexExpression a_375) deriving instance GHC.Show.Show a_376 => GHC.Show.Show (IndexExpression a_376) instance AST.Unmarshal.Unmarshal IndexExpression instance Data.Foldable.Foldable IndexExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor IndexExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable IndexExpression where traverse = AST.Traversable1.Class.traverseDefault1 data InterfaceType a = InterfaceType { ann :: a, extraChildren :: (AST.Parse.Err (MethodSpecList a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_377. AST.Traversable1.Class.Traversable1 a_377 ) instance AST.Unmarshal.SymbolMatching InterfaceType where matchedSymbols _ = [119] showFailure _ node_378 = "expected " GHC.Base.<> ( "interface_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_378 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_379 c1_380 = TreeSitter.Node.nodeStartPoint node_378 TreeSitter.Node.TSPoint r2_381 c2_382 = TreeSitter.Node.nodeEndPoint node_378 deriving instance GHC.Classes.Eq a_383 => GHC.Classes.Eq (InterfaceType a_383) deriving instance GHC.Classes.Ord a_384 => GHC.Classes.Ord (InterfaceType a_384) deriving instance GHC.Show.Show a_385 => GHC.Show.Show (InterfaceType a_385) instance AST.Unmarshal.Unmarshal InterfaceType instance Data.Foldable.Foldable InterfaceType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor InterfaceType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable InterfaceType where traverse = AST.Traversable1.Class.traverseDefault1 data InterpretedStringLiteral a = InterpretedStringLiteral { ann :: a, extraChildren :: ([AST.Parse.Err (EscapeSequence a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_386. AST.Traversable1.Class.Traversable1 a_386 ) instance AST.Unmarshal.SymbolMatching InterpretedStringLiteral where matchedSymbols _ = [176] showFailure _ node_387 = "expected " GHC.Base.<> ( "interpreted_string_literal" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_387 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_388 c1_389 = TreeSitter.Node.nodeStartPoint node_387 TreeSitter.Node.TSPoint r2_390 c2_391 = TreeSitter.Node.nodeEndPoint node_387 deriving instance GHC.Classes.Eq a_392 => GHC.Classes.Eq (InterpretedStringLiteral a_392) deriving instance GHC.Classes.Ord a_393 => GHC.Classes.Ord (InterpretedStringLiteral a_393) deriving instance GHC.Show.Show a_394 => GHC.Show.Show (InterpretedStringLiteral a_394) instance AST.Unmarshal.Unmarshal InterpretedStringLiteral instance Data.Foldable.Foldable InterpretedStringLiteral where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor InterpretedStringLiteral where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable InterpretedStringLiteral where traverse = AST.Traversable1.Class.traverseDefault1 data KeyedElement a = KeyedElement { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: FieldIdentifier GHC.Generics.:+: LiteralValue) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_395. AST.Traversable1.Class.Traversable1 a_395 ) instance AST.Unmarshal.SymbolMatching KeyedElement where matchedSymbols _ = [170] showFailure _ node_396 = "expected " GHC.Base.<> ( "keyed_element" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_396 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_397 c1_398 = TreeSitter.Node.nodeStartPoint node_396 TreeSitter.Node.TSPoint r2_399 c2_400 = TreeSitter.Node.nodeEndPoint node_396 deriving instance GHC.Classes.Eq a_401 => GHC.Classes.Eq (KeyedElement a_401) deriving instance GHC.Classes.Ord a_402 => GHC.Classes.Ord (KeyedElement a_402) deriving instance GHC.Show.Show a_403 => GHC.Show.Show (KeyedElement a_403) instance AST.Unmarshal.Unmarshal KeyedElement instance Data.Foldable.Foldable KeyedElement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor KeyedElement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable KeyedElement where traverse = AST.Traversable1.Class.traverseDefault1 data LabeledStatement a = LabeledStatement { ann :: a, label :: (AST.Parse.Err (LabelName a)), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Statement a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_404. AST.Traversable1.Class.Traversable1 a_404 ) instance AST.Unmarshal.SymbolMatching LabeledStatement where matchedSymbols _ = [136, 137] showFailure _ node_405 = "expected " GHC.Base.<> ( "labeled_statement, labeled_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_405 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_406 c1_407 = TreeSitter.Node.nodeStartPoint node_405 TreeSitter.Node.TSPoint r2_408 c2_409 = TreeSitter.Node.nodeEndPoint node_405 deriving instance GHC.Classes.Eq a_410 => GHC.Classes.Eq (LabeledStatement a_410) deriving instance GHC.Classes.Ord a_411 => GHC.Classes.Ord (LabeledStatement a_411) deriving instance GHC.Show.Show a_412 => GHC.Show.Show (LabeledStatement a_412) instance AST.Unmarshal.Unmarshal LabeledStatement instance Data.Foldable.Foldable LabeledStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor LabeledStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable LabeledStatement where traverse = AST.Traversable1.Class.traverseDefault1 data LiteralValue a = LiteralValue { ann :: a, extraChildren :: ([AST.Parse.Err ((Element GHC.Generics.:+: KeyedElement) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_413. AST.Traversable1.Class.Traversable1 a_413 ) instance AST.Unmarshal.SymbolMatching LiteralValue where matchedSymbols _ = [169] showFailure _ node_414 = "expected " GHC.Base.<> ( "literal_value" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_414 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_415 c1_416 = TreeSitter.Node.nodeStartPoint node_414 TreeSitter.Node.TSPoint r2_417 c2_418 = TreeSitter.Node.nodeEndPoint node_414 deriving instance GHC.Classes.Eq a_419 => GHC.Classes.Eq (LiteralValue a_419) deriving instance GHC.Classes.Ord a_420 => GHC.Classes.Ord (LiteralValue a_420) deriving instance GHC.Show.Show a_421 => GHC.Show.Show (LiteralValue a_421) instance AST.Unmarshal.Unmarshal LiteralValue instance Data.Foldable.Foldable LiteralValue where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor LiteralValue where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable LiteralValue where traverse = AST.Traversable1.Class.traverseDefault1 data MapType a = MapType { ann :: a, value :: (AST.Parse.Err (Type a)), key :: (AST.Parse.Err (Type a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_422. AST.Traversable1.Class.Traversable1 a_422 ) instance AST.Unmarshal.SymbolMatching MapType where matchedSymbols _ = [122] showFailure _ node_423 = "expected " GHC.Base.<> ( "map_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_423 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_424 c1_425 = TreeSitter.Node.nodeStartPoint node_423 TreeSitter.Node.TSPoint r2_426 c2_427 = TreeSitter.Node.nodeEndPoint node_423 deriving instance GHC.Classes.Eq a_428 => GHC.Classes.Eq (MapType a_428) deriving instance GHC.Classes.Ord a_429 => GHC.Classes.Ord (MapType a_429) deriving instance GHC.Show.Show a_430 => GHC.Show.Show (MapType a_430) instance AST.Unmarshal.Unmarshal MapType instance Data.Foldable.Foldable MapType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor MapType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable MapType where traverse = AST.Traversable1.Class.traverseDefault1 data MethodDeclaration a = MethodDeclaration { ann :: a, body :: (GHC.Maybe.Maybe (AST.Parse.Err (Block a))), result :: (GHC.Maybe.Maybe (AST.Parse.Err ((SimpleType GHC.Generics.:+: ParameterList) a))), receiver :: (AST.Parse.Err (ParameterList a)), name :: (AST.Parse.Err (FieldIdentifier a)), parameters :: (AST.Parse.Err (ParameterList a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_431. AST.Traversable1.Class.Traversable1 a_431 ) instance AST.Unmarshal.SymbolMatching MethodDeclaration where matchedSymbols _ = [102] showFailure _ node_432 = "expected " GHC.Base.<> ( "method_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_432 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_433 c1_434 = TreeSitter.Node.nodeStartPoint node_432 TreeSitter.Node.TSPoint r2_435 c2_436 = TreeSitter.Node.nodeEndPoint node_432 deriving instance GHC.Classes.Eq a_437 => GHC.Classes.Eq (MethodDeclaration a_437) deriving instance GHC.Classes.Ord a_438 => GHC.Classes.Ord (MethodDeclaration a_438) deriving instance GHC.Show.Show a_439 => GHC.Show.Show (MethodDeclaration a_439) instance AST.Unmarshal.Unmarshal MethodDeclaration instance Data.Foldable.Foldable MethodDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor MethodDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable MethodDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data MethodSpec a = MethodSpec { ann :: a, result :: (GHC.Maybe.Maybe (AST.Parse.Err ((SimpleType GHC.Generics.:+: ParameterList) a))), name :: (AST.Parse.Err (FieldIdentifier a)), parameters :: (AST.Parse.Err (ParameterList a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_440. AST.Traversable1.Class.Traversable1 a_440 ) instance AST.Unmarshal.SymbolMatching MethodSpec where matchedSymbols _ = [121] showFailure _ node_441 = "expected " GHC.Base.<> ( "method_spec" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_441 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_442 c1_443 = TreeSitter.Node.nodeStartPoint node_441 TreeSitter.Node.TSPoint r2_444 c2_445 = TreeSitter.Node.nodeEndPoint node_441 deriving instance GHC.Classes.Eq a_446 => GHC.Classes.Eq (MethodSpec a_446) deriving instance GHC.Classes.Ord a_447 => GHC.Classes.Ord (MethodSpec a_447) deriving instance GHC.Show.Show a_448 => GHC.Show.Show (MethodSpec a_448) instance AST.Unmarshal.Unmarshal MethodSpec instance Data.Foldable.Foldable MethodSpec where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor MethodSpec where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable MethodSpec where traverse = AST.Traversable1.Class.traverseDefault1 data MethodSpecList a = MethodSpecList { ann :: a, extraChildren :: ([AST.Parse.Err ((MethodSpec GHC.Generics.:+: QualifiedType GHC.Generics.:+: TypeIdentifier) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_449. AST.Traversable1.Class.Traversable1 a_449 ) instance AST.Unmarshal.SymbolMatching MethodSpecList where matchedSymbols _ = [120] showFailure _ node_450 = "expected " GHC.Base.<> ( "method_spec_list" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_450 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_451 c1_452 = TreeSitter.Node.nodeStartPoint node_450 TreeSitter.Node.TSPoint r2_453 c2_454 = TreeSitter.Node.nodeEndPoint node_450 deriving instance GHC.Classes.Eq a_455 => GHC.Classes.Eq (MethodSpecList a_455) deriving instance GHC.Classes.Ord a_456 => GHC.Classes.Ord (MethodSpecList a_456) deriving instance GHC.Show.Show a_457 => GHC.Show.Show (MethodSpecList a_457) instance AST.Unmarshal.Unmarshal MethodSpecList instance Data.Foldable.Foldable MethodSpecList where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor MethodSpecList where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable MethodSpecList where traverse = AST.Traversable1.Class.traverseDefault1 data PackageClause a = PackageClause { ann :: a, extraChildren :: (AST.Parse.Err (PackageIdentifier a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_458. AST.Traversable1.Class.Traversable1 a_458 ) instance AST.Unmarshal.SymbolMatching PackageClause where matchedSymbols _ = [91] showFailure _ node_459 = "expected " GHC.Base.<> ( "package_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_459 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_460 c1_461 = TreeSitter.Node.nodeStartPoint node_459 TreeSitter.Node.TSPoint r2_462 c2_463 = TreeSitter.Node.nodeEndPoint node_459 deriving instance GHC.Classes.Eq a_464 => GHC.Classes.Eq (PackageClause a_464) deriving instance GHC.Classes.Ord a_465 => GHC.Classes.Ord (PackageClause a_465) deriving instance GHC.Show.Show a_466 => GHC.Show.Show (PackageClause a_466) instance AST.Unmarshal.Unmarshal PackageClause instance Data.Foldable.Foldable PackageClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor PackageClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable PackageClause where traverse = AST.Traversable1.Class.traverseDefault1 data ParameterDeclaration a = ParameterDeclaration { ann :: a, name :: ([AST.Parse.Err ((AnonymousComma GHC.Generics.:+: Identifier) a)]), type' :: (AST.Parse.Err (Type a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_467. AST.Traversable1.Class.Traversable1 a_467 ) instance AST.Unmarshal.SymbolMatching ParameterDeclaration where matchedSymbols _ = [104] showFailure _ node_468 = "expected " GHC.Base.<> ( "parameter_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_468 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_469 c1_470 = TreeSitter.Node.nodeStartPoint node_468 TreeSitter.Node.TSPoint r2_471 c2_472 = TreeSitter.Node.nodeEndPoint node_468 deriving instance GHC.Classes.Eq a_473 => GHC.Classes.Eq (ParameterDeclaration a_473) deriving instance GHC.Classes.Ord a_474 => GHC.Classes.Ord (ParameterDeclaration a_474) deriving instance GHC.Show.Show a_475 => GHC.Show.Show (ParameterDeclaration a_475) instance AST.Unmarshal.Unmarshal ParameterDeclaration instance Data.Foldable.Foldable ParameterDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ParameterDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ParameterDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data ParameterList a = ParameterList { ann :: a, extraChildren :: ([AST.Parse.Err ((ParameterDeclaration GHC.Generics.:+: VariadicParameterDeclaration) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_476. AST.Traversable1.Class.Traversable1 a_476 ) instance AST.Unmarshal.SymbolMatching ParameterList where matchedSymbols _ = [103] showFailure _ node_477 = "expected " GHC.Base.<> ( "parameter_list" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_477 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_478 c1_479 = TreeSitter.Node.nodeStartPoint node_477 TreeSitter.Node.TSPoint r2_480 c2_481 = TreeSitter.Node.nodeEndPoint node_477 deriving instance GHC.Classes.Eq a_482 => GHC.Classes.Eq (ParameterList a_482) deriving instance GHC.Classes.Ord a_483 => GHC.Classes.Ord (ParameterList a_483) deriving instance GHC.Show.Show a_484 => GHC.Show.Show (ParameterList a_484) instance AST.Unmarshal.Unmarshal ParameterList instance Data.Foldable.Foldable ParameterList where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ParameterList where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ParameterList where traverse = AST.Traversable1.Class.traverseDefault1 data ParenthesizedExpression a = ParenthesizedExpression { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_485. AST.Traversable1.Class.Traversable1 a_485 ) instance AST.Unmarshal.SymbolMatching ParenthesizedExpression where matchedSymbols _ = [158] showFailure _ node_486 = "expected " GHC.Base.<> ( "parenthesized_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_486 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_487 c1_488 = TreeSitter.Node.nodeStartPoint node_486 TreeSitter.Node.TSPoint r2_489 c2_490 = TreeSitter.Node.nodeEndPoint node_486 deriving instance GHC.Classes.Eq a_491 => GHC.Classes.Eq (ParenthesizedExpression a_491) deriving instance GHC.Classes.Ord a_492 => GHC.Classes.Ord (ParenthesizedExpression a_492) deriving instance GHC.Show.Show a_493 => GHC.Show.Show (ParenthesizedExpression a_493) instance AST.Unmarshal.Unmarshal ParenthesizedExpression instance Data.Foldable.Foldable ParenthesizedExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ParenthesizedExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ParenthesizedExpression where traverse = AST.Traversable1.Class.traverseDefault1 data ParenthesizedType a = ParenthesizedType { ann :: a, extraChildren :: (AST.Parse.Err (Type a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_494. AST.Traversable1.Class.Traversable1 a_494 ) instance AST.Unmarshal.SymbolMatching ParenthesizedType where matchedSymbols _ = [110] showFailure _ node_495 = "expected " GHC.Base.<> ( "parenthesized_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_495 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_496 c1_497 = TreeSitter.Node.nodeStartPoint node_495 TreeSitter.Node.TSPoint r2_498 c2_499 = TreeSitter.Node.nodeEndPoint node_495 deriving instance GHC.Classes.Eq a_500 => GHC.Classes.Eq (ParenthesizedType a_500) deriving instance GHC.Classes.Ord a_501 => GHC.Classes.Ord (ParenthesizedType a_501) deriving instance GHC.Show.Show a_502 => GHC.Show.Show (ParenthesizedType a_502) instance AST.Unmarshal.Unmarshal ParenthesizedType instance Data.Foldable.Foldable ParenthesizedType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ParenthesizedType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ParenthesizedType where traverse = AST.Traversable1.Class.traverseDefault1 data PointerType a = PointerType {ann :: a, extraChildren :: (AST.Parse.Err (Type a))} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_503. AST.Traversable1.Class.Traversable1 a_503 ) instance AST.Unmarshal.SymbolMatching PointerType where matchedSymbols _ = [112] showFailure _ node_504 = "expected " GHC.Base.<> ( "pointer_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_504 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_505 c1_506 = TreeSitter.Node.nodeStartPoint node_504 TreeSitter.Node.TSPoint r2_507 c2_508 = TreeSitter.Node.nodeEndPoint node_504 deriving instance GHC.Classes.Eq a_509 => GHC.Classes.Eq (PointerType a_509) deriving instance GHC.Classes.Ord a_510 => GHC.Classes.Ord (PointerType a_510) deriving instance GHC.Show.Show a_511 => GHC.Show.Show (PointerType a_511) instance AST.Unmarshal.Unmarshal PointerType instance Data.Foldable.Foldable PointerType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor PointerType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable PointerType where traverse = AST.Traversable1.Class.traverseDefault1 data QualifiedType a = QualifiedType { ann :: a, name :: (AST.Parse.Err (TypeIdentifier a)), package :: (AST.Parse.Err (PackageIdentifier a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_512. AST.Traversable1.Class.Traversable1 a_512 ) instance AST.Unmarshal.SymbolMatching QualifiedType where matchedSymbols _ = [175] showFailure _ node_513 = "expected " GHC.Base.<> ( "qualified_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_513 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_514 c1_515 = TreeSitter.Node.nodeStartPoint node_513 TreeSitter.Node.TSPoint r2_516 c2_517 = TreeSitter.Node.nodeEndPoint node_513 deriving instance GHC.Classes.Eq a_518 => GHC.Classes.Eq (QualifiedType a_518) deriving instance GHC.Classes.Ord a_519 => GHC.Classes.Ord (QualifiedType a_519) deriving instance GHC.Show.Show a_520 => GHC.Show.Show (QualifiedType a_520) instance AST.Unmarshal.Unmarshal QualifiedType instance Data.Foldable.Foldable QualifiedType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor QualifiedType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable QualifiedType where traverse = AST.Traversable1.Class.traverseDefault1 data RangeClause a = RangeClause { ann :: a, left :: (GHC.Maybe.Maybe (AST.Parse.Err (ExpressionList a))), right :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_521. AST.Traversable1.Class.Traversable1 a_521 ) instance AST.Unmarshal.SymbolMatching RangeClause where matchedSymbols _ = [148] showFailure _ node_522 = "expected " GHC.Base.<> ( "range_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_522 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_523 c1_524 = TreeSitter.Node.nodeStartPoint node_522 TreeSitter.Node.TSPoint r2_525 c2_526 = TreeSitter.Node.nodeEndPoint node_522 deriving instance GHC.Classes.Eq a_527 => GHC.Classes.Eq (RangeClause a_527) deriving instance GHC.Classes.Ord a_528 => GHC.Classes.Ord (RangeClause a_528) deriving instance GHC.Show.Show a_529 => GHC.Show.Show (RangeClause a_529) instance AST.Unmarshal.Unmarshal RangeClause instance Data.Foldable.Foldable RangeClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor RangeClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable RangeClause where traverse = AST.Traversable1.Class.traverseDefault1 data ReceiveStatement a = ReceiveStatement { ann :: a, left :: (GHC.Maybe.Maybe (AST.Parse.Err (ExpressionList a))), right :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_530. AST.Traversable1.Class.Traversable1 a_530 ) instance AST.Unmarshal.SymbolMatching ReceiveStatement where matchedSymbols _ = [131] showFailure _ node_531 = "expected " GHC.Base.<> ( "receive_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_531 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_532 c1_533 = TreeSitter.Node.nodeStartPoint node_531 TreeSitter.Node.TSPoint r2_534 c2_535 = TreeSitter.Node.nodeEndPoint node_531 deriving instance GHC.Classes.Eq a_536 => GHC.Classes.Eq (ReceiveStatement a_536) deriving instance GHC.Classes.Ord a_537 => GHC.Classes.Ord (ReceiveStatement a_537) deriving instance GHC.Show.Show a_538 => GHC.Show.Show (ReceiveStatement a_538) instance AST.Unmarshal.Unmarshal ReceiveStatement instance Data.Foldable.Foldable ReceiveStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ReceiveStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ReceiveStatement where traverse = AST.Traversable1.Class.traverseDefault1 data ReturnStatement a = ReturnStatement { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ExpressionList a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_539. AST.Traversable1.Class.Traversable1 a_539 ) instance AST.Unmarshal.SymbolMatching ReturnStatement where matchedSymbols _ = [142] showFailure _ node_540 = "expected " GHC.Base.<> ( "return_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_540 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_541 c1_542 = TreeSitter.Node.nodeStartPoint node_540 TreeSitter.Node.TSPoint r2_543 c2_544 = TreeSitter.Node.nodeEndPoint node_540 deriving instance GHC.Classes.Eq a_545 => GHC.Classes.Eq (ReturnStatement a_545) deriving instance GHC.Classes.Ord a_546 => GHC.Classes.Ord (ReturnStatement a_546) deriving instance GHC.Show.Show a_547 => GHC.Show.Show (ReturnStatement a_547) instance AST.Unmarshal.Unmarshal ReturnStatement instance Data.Foldable.Foldable ReturnStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ReturnStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ReturnStatement where traverse = AST.Traversable1.Class.traverseDefault1 data SelectStatement a = SelectStatement { ann :: a, extraChildren :: ([AST.Parse.Err ((CommunicationCase GHC.Generics.:+: DefaultCase) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_548. AST.Traversable1.Class.Traversable1 a_548 ) instance AST.Unmarshal.SymbolMatching SelectStatement where matchedSymbols _ = [155] showFailure _ node_549 = "expected " GHC.Base.<> ( "select_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_549 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_550 c1_551 = TreeSitter.Node.nodeStartPoint node_549 TreeSitter.Node.TSPoint r2_552 c2_553 = TreeSitter.Node.nodeEndPoint node_549 deriving instance GHC.Classes.Eq a_554 => GHC.Classes.Eq (SelectStatement a_554) deriving instance GHC.Classes.Ord a_555 => GHC.Classes.Ord (SelectStatement a_555) deriving instance GHC.Show.Show a_556 => GHC.Show.Show (SelectStatement a_556) instance AST.Unmarshal.Unmarshal SelectStatement instance Data.Foldable.Foldable SelectStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SelectStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SelectStatement where traverse = AST.Traversable1.Class.traverseDefault1 data SelectorExpression a = SelectorExpression { ann :: a, field :: (AST.Parse.Err (FieldIdentifier a)), operand :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_557. AST.Traversable1.Class.Traversable1 a_557 ) instance AST.Unmarshal.SymbolMatching SelectorExpression where matchedSymbols _ = [163] showFailure _ node_558 = "expected " GHC.Base.<> ( "selector_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_558 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_559 c1_560 = TreeSitter.Node.nodeStartPoint node_558 TreeSitter.Node.TSPoint r2_561 c2_562 = TreeSitter.Node.nodeEndPoint node_558 deriving instance GHC.Classes.Eq a_563 => GHC.Classes.Eq (SelectorExpression a_563) deriving instance GHC.Classes.Ord a_564 => GHC.Classes.Ord (SelectorExpression a_564) deriving instance GHC.Show.Show a_565 => GHC.Show.Show (SelectorExpression a_565) instance AST.Unmarshal.Unmarshal SelectorExpression instance Data.Foldable.Foldable SelectorExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SelectorExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SelectorExpression where traverse = AST.Traversable1.Class.traverseDefault1 data SendStatement a = SendStatement { ann :: a, value :: (AST.Parse.Err (Expression a)), channel :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_566. AST.Traversable1.Class.Traversable1 a_566 ) instance AST.Unmarshal.SymbolMatching SendStatement where matchedSymbols _ = [130] showFailure _ node_567 = "expected " GHC.Base.<> ( "send_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_567 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_568 c1_569 = TreeSitter.Node.nodeStartPoint node_567 TreeSitter.Node.TSPoint r2_570 c2_571 = TreeSitter.Node.nodeEndPoint node_567 deriving instance GHC.Classes.Eq a_572 => GHC.Classes.Eq (SendStatement a_572) deriving instance GHC.Classes.Ord a_573 => GHC.Classes.Ord (SendStatement a_573) deriving instance GHC.Show.Show a_574 => GHC.Show.Show (SendStatement a_574) instance AST.Unmarshal.Unmarshal SendStatement instance Data.Foldable.Foldable SendStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SendStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SendStatement where traverse = AST.Traversable1.Class.traverseDefault1 data ShortVarDeclaration a = ShortVarDeclaration { ann :: a, left :: (AST.Parse.Err (ExpressionList a)), right :: (AST.Parse.Err (ExpressionList a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_575. AST.Traversable1.Class.Traversable1 a_575 ) instance AST.Unmarshal.SymbolMatching ShortVarDeclaration where matchedSymbols _ = [135] showFailure _ node_576 = "expected " GHC.Base.<> ( "short_var_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_576 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_577 c1_578 = TreeSitter.Node.nodeStartPoint node_576 TreeSitter.Node.TSPoint r2_579 c2_580 = TreeSitter.Node.nodeEndPoint node_576 deriving instance GHC.Classes.Eq a_581 => GHC.Classes.Eq (ShortVarDeclaration a_581) deriving instance GHC.Classes.Ord a_582 => GHC.Classes.Ord (ShortVarDeclaration a_582) deriving instance GHC.Show.Show a_583 => GHC.Show.Show (ShortVarDeclaration a_583) instance AST.Unmarshal.Unmarshal ShortVarDeclaration instance Data.Foldable.Foldable ShortVarDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ShortVarDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ShortVarDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data SliceExpression a = SliceExpression { ann :: a, start :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))), capacity :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))), end :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))), operand :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_584. AST.Traversable1.Class.Traversable1 a_584 ) instance AST.Unmarshal.SymbolMatching SliceExpression where matchedSymbols _ = [165] showFailure _ node_585 = "expected " GHC.Base.<> ( "slice_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_585 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_586 c1_587 = TreeSitter.Node.nodeStartPoint node_585 TreeSitter.Node.TSPoint r2_588 c2_589 = TreeSitter.Node.nodeEndPoint node_585 deriving instance GHC.Classes.Eq a_590 => GHC.Classes.Eq (SliceExpression a_590) deriving instance GHC.Classes.Ord a_591 => GHC.Classes.Ord (SliceExpression a_591) deriving instance GHC.Show.Show a_592 => GHC.Show.Show (SliceExpression a_592) instance AST.Unmarshal.Unmarshal SliceExpression instance Data.Foldable.Foldable SliceExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SliceExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SliceExpression where traverse = AST.Traversable1.Class.traverseDefault1 data SliceType a = SliceType {ann :: a, element :: (AST.Parse.Err (Type a))} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_593. AST.Traversable1.Class.Traversable1 a_593 ) instance AST.Unmarshal.SymbolMatching SliceType where matchedSymbols _ = [115] showFailure _ node_594 = "expected " GHC.Base.<> ( "slice_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_594 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_595 c1_596 = TreeSitter.Node.nodeStartPoint node_594 TreeSitter.Node.TSPoint r2_597 c2_598 = TreeSitter.Node.nodeEndPoint node_594 deriving instance GHC.Classes.Eq a_599 => GHC.Classes.Eq (SliceType a_599) deriving instance GHC.Classes.Ord a_600 => GHC.Classes.Ord (SliceType a_600) deriving instance GHC.Show.Show a_601 => GHC.Show.Show (SliceType a_601) instance AST.Unmarshal.Unmarshal SliceType instance Data.Foldable.Foldable SliceType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SliceType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SliceType where traverse = AST.Traversable1.Class.traverseDefault1 data SourceFile a = SourceFile { ann :: a, extraChildren :: ([AST.Parse.Err ((ConstDeclaration GHC.Generics.:+: FunctionDeclaration GHC.Generics.:+: ImportDeclaration GHC.Generics.:+: MethodDeclaration GHC.Generics.:+: PackageClause GHC.Generics.:+: TypeDeclaration GHC.Generics.:+: VarDeclaration) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_602. AST.Traversable1.Class.Traversable1 a_602 ) instance AST.Unmarshal.SymbolMatching SourceFile where matchedSymbols _ = [90] showFailure _ node_603 = "expected " GHC.Base.<> ( "source_file" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_603 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_604 c1_605 = TreeSitter.Node.nodeStartPoint node_603 TreeSitter.Node.TSPoint r2_606 c2_607 = TreeSitter.Node.nodeEndPoint node_603 deriving instance GHC.Classes.Eq a_608 => GHC.Classes.Eq (SourceFile a_608) deriving instance GHC.Classes.Ord a_609 => GHC.Classes.Ord (SourceFile a_609) deriving instance GHC.Show.Show a_610 => GHC.Show.Show (SourceFile a_610) instance AST.Unmarshal.Unmarshal SourceFile instance Data.Foldable.Foldable SourceFile where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SourceFile where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SourceFile where traverse = AST.Traversable1.Class.traverseDefault1 data StructType a = StructType { ann :: a, extraChildren :: (AST.Parse.Err (FieldDeclarationList a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_611. AST.Traversable1.Class.Traversable1 a_611 ) instance AST.Unmarshal.SymbolMatching StructType where matchedSymbols _ = [116] showFailure _ node_612 = "expected " GHC.Base.<> ( "struct_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_612 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_613 c1_614 = TreeSitter.Node.nodeStartPoint node_612 TreeSitter.Node.TSPoint r2_615 c2_616 = TreeSitter.Node.nodeEndPoint node_612 deriving instance GHC.Classes.Eq a_617 => GHC.Classes.Eq (StructType a_617) deriving instance GHC.Classes.Ord a_618 => GHC.Classes.Ord (StructType a_618) deriving instance GHC.Show.Show a_619 => GHC.Show.Show (StructType a_619) instance AST.Unmarshal.Unmarshal StructType instance Data.Foldable.Foldable StructType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor StructType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable StructType where traverse = AST.Traversable1.Class.traverseDefault1 data TypeAlias a = TypeAlias { ann :: a, name :: (AST.Parse.Err (TypeIdentifier a)), type' :: (AST.Parse.Err (Type a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_620. AST.Traversable1.Class.Traversable1 a_620 ) instance AST.Unmarshal.SymbolMatching TypeAlias where matchedSymbols _ = [106] showFailure _ node_621 = "expected " GHC.Base.<> ( "type_alias" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_621 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_622 c1_623 = TreeSitter.Node.nodeStartPoint node_621 TreeSitter.Node.TSPoint r2_624 c2_625 = TreeSitter.Node.nodeEndPoint node_621 deriving instance GHC.Classes.Eq a_626 => GHC.Classes.Eq (TypeAlias a_626) deriving instance GHC.Classes.Ord a_627 => GHC.Classes.Ord (TypeAlias a_627) deriving instance GHC.Show.Show a_628 => GHC.Show.Show (TypeAlias a_628) instance AST.Unmarshal.Unmarshal TypeAlias instance Data.Foldable.Foldable TypeAlias where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeAlias where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeAlias where traverse = AST.Traversable1.Class.traverseDefault1 data TypeAssertionExpression a = TypeAssertionExpression { ann :: a, type' :: (AST.Parse.Err (Type a)), operand :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_629. AST.Traversable1.Class.Traversable1 a_629 ) instance AST.Unmarshal.SymbolMatching TypeAssertionExpression where matchedSymbols _ = [166] showFailure _ node_630 = "expected " GHC.Base.<> ( "type_assertion_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_630 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_631 c1_632 = TreeSitter.Node.nodeStartPoint node_630 TreeSitter.Node.TSPoint r2_633 c2_634 = TreeSitter.Node.nodeEndPoint node_630 deriving instance GHC.Classes.Eq a_635 => GHC.Classes.Eq (TypeAssertionExpression a_635) deriving instance GHC.Classes.Ord a_636 => GHC.Classes.Ord (TypeAssertionExpression a_636) deriving instance GHC.Show.Show a_637 => GHC.Show.Show (TypeAssertionExpression a_637) instance AST.Unmarshal.Unmarshal TypeAssertionExpression instance Data.Foldable.Foldable TypeAssertionExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeAssertionExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeAssertionExpression where traverse = AST.Traversable1.Class.traverseDefault1 data TypeCase a = TypeCase { ann :: a, type' :: (GHC.Base.NonEmpty (AST.Parse.Err ((AnonymousComma GHC.Generics.:+: Type) a))), extraChildren :: ([AST.Parse.Err (Statement a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_638. AST.Traversable1.Class.Traversable1 a_638 ) instance AST.Unmarshal.SymbolMatching TypeCase where matchedSymbols _ = [154] showFailure _ node_639 = "expected " GHC.Base.<> ( "type_case" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_639 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_640 c1_641 = TreeSitter.Node.nodeStartPoint node_639 TreeSitter.Node.TSPoint r2_642 c2_643 = TreeSitter.Node.nodeEndPoint node_639 deriving instance GHC.Classes.Eq a_644 => GHC.Classes.Eq (TypeCase a_644) deriving instance GHC.Classes.Ord a_645 => GHC.Classes.Ord (TypeCase a_645) deriving instance GHC.Show.Show a_646 => GHC.Show.Show (TypeCase a_646) instance AST.Unmarshal.Unmarshal TypeCase instance Data.Foldable.Foldable TypeCase where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeCase where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeCase where traverse = AST.Traversable1.Class.traverseDefault1 data TypeConversionExpression a = TypeConversionExpression { ann :: a, type' :: (AST.Parse.Err (Type a)), operand :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_647. AST.Traversable1.Class.Traversable1 a_647 ) instance AST.Unmarshal.SymbolMatching TypeConversionExpression where matchedSymbols _ = [167] showFailure _ node_648 = "expected " GHC.Base.<> ( "type_conversion_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_648 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_649 c1_650 = TreeSitter.Node.nodeStartPoint node_648 TreeSitter.Node.TSPoint r2_651 c2_652 = TreeSitter.Node.nodeEndPoint node_648 deriving instance GHC.Classes.Eq a_653 => GHC.Classes.Eq (TypeConversionExpression a_653) deriving instance GHC.Classes.Ord a_654 => GHC.Classes.Ord (TypeConversionExpression a_654) deriving instance GHC.Show.Show a_655 => GHC.Show.Show (TypeConversionExpression a_655) instance AST.Unmarshal.Unmarshal TypeConversionExpression instance Data.Foldable.Foldable TypeConversionExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeConversionExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeConversionExpression where traverse = AST.Traversable1.Class.traverseDefault1 data TypeDeclaration a = TypeDeclaration { ann :: a, extraChildren :: ([AST.Parse.Err ((TypeAlias GHC.Generics.:+: TypeSpec) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_656. AST.Traversable1.Class.Traversable1 a_656 ) instance AST.Unmarshal.SymbolMatching TypeDeclaration where matchedSymbols _ = [107] showFailure _ node_657 = "expected " GHC.Base.<> ( "type_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_657 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_658 c1_659 = TreeSitter.Node.nodeStartPoint node_657 TreeSitter.Node.TSPoint r2_660 c2_661 = TreeSitter.Node.nodeEndPoint node_657 deriving instance GHC.Classes.Eq a_662 => GHC.Classes.Eq (TypeDeclaration a_662) deriving instance GHC.Classes.Ord a_663 => GHC.Classes.Ord (TypeDeclaration a_663) deriving instance GHC.Show.Show a_664 => GHC.Show.Show (TypeDeclaration a_664) instance AST.Unmarshal.Unmarshal TypeDeclaration instance Data.Foldable.Foldable TypeDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data TypeSpec a = TypeSpec { ann :: a, name :: (AST.Parse.Err (TypeIdentifier a)), type' :: (AST.Parse.Err (Type a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_665. AST.Traversable1.Class.Traversable1 a_665 ) instance AST.Unmarshal.SymbolMatching TypeSpec where matchedSymbols _ = [108] showFailure _ node_666 = "expected " GHC.Base.<> ( "type_spec" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_666 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_667 c1_668 = TreeSitter.Node.nodeStartPoint node_666 TreeSitter.Node.TSPoint r2_669 c2_670 = TreeSitter.Node.nodeEndPoint node_666 deriving instance GHC.Classes.Eq a_671 => GHC.Classes.Eq (TypeSpec a_671) deriving instance GHC.Classes.Ord a_672 => GHC.Classes.Ord (TypeSpec a_672) deriving instance GHC.Show.Show a_673 => GHC.Show.Show (TypeSpec a_673) instance AST.Unmarshal.Unmarshal TypeSpec instance Data.Foldable.Foldable TypeSpec where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeSpec where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeSpec where traverse = AST.Traversable1.Class.traverseDefault1 data TypeSwitchStatement a = TypeSwitchStatement { ann :: a, value :: (AST.Parse.Err (Expression a)), alias :: (GHC.Maybe.Maybe (AST.Parse.Err (ExpressionList a))), initializer :: (GHC.Maybe.Maybe (AST.Parse.Err (SimpleStatement a))), extraChildren :: ([AST.Parse.Err ((DefaultCase GHC.Generics.:+: TypeCase) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_674. AST.Traversable1.Class.Traversable1 a_674 ) instance AST.Unmarshal.SymbolMatching TypeSwitchStatement where matchedSymbols _ = [152] showFailure _ node_675 = "expected " GHC.Base.<> ( "type_switch_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_675 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_676 c1_677 = TreeSitter.Node.nodeStartPoint node_675 TreeSitter.Node.TSPoint r2_678 c2_679 = TreeSitter.Node.nodeEndPoint node_675 deriving instance GHC.Classes.Eq a_680 => GHC.Classes.Eq (TypeSwitchStatement a_680) deriving instance GHC.Classes.Ord a_681 => GHC.Classes.Ord (TypeSwitchStatement a_681) deriving instance GHC.Show.Show a_682 => GHC.Show.Show (TypeSwitchStatement a_682) instance AST.Unmarshal.Unmarshal TypeSwitchStatement instance Data.Foldable.Foldable TypeSwitchStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeSwitchStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeSwitchStatement where traverse = AST.Traversable1.Class.traverseDefault1 data UnaryExpression a = UnaryExpression { ann :: a, operator :: (AST.Parse.Err ((AnonymousBang GHC.Generics.:+: AnonymousAmpersand GHC.Generics.:+: AnonymousStar GHC.Generics.:+: AnonymousPlus GHC.Generics.:+: AnonymousMinus GHC.Generics.:+: AnonymousLAngleMinus GHC.Generics.:+: AnonymousCaret) a)), operand :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_683. AST.Traversable1.Class.Traversable1 a_683 ) instance AST.Unmarshal.SymbolMatching UnaryExpression where matchedSymbols _ = [173] showFailure _ node_684 = "expected " GHC.Base.<> ( "unary_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_684 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_685 c1_686 = TreeSitter.Node.nodeStartPoint node_684 TreeSitter.Node.TSPoint r2_687 c2_688 = TreeSitter.Node.nodeEndPoint node_684 deriving instance GHC.Classes.Eq a_689 => GHC.Classes.Eq (UnaryExpression a_689) deriving instance GHC.Classes.Ord a_690 => GHC.Classes.Ord (UnaryExpression a_690) deriving instance GHC.Show.Show a_691 => GHC.Show.Show (UnaryExpression a_691) instance AST.Unmarshal.Unmarshal UnaryExpression instance Data.Foldable.Foldable UnaryExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor UnaryExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable UnaryExpression where traverse = AST.Traversable1.Class.traverseDefault1 data VarDeclaration a = VarDeclaration { ann :: a, extraChildren :: ([AST.Parse.Err (VarSpec a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_692. AST.Traversable1.Class.Traversable1 a_692 ) instance AST.Unmarshal.SymbolMatching VarDeclaration where matchedSymbols _ = [99] showFailure _ node_693 = "expected " GHC.Base.<> ( "var_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_693 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_694 c1_695 = TreeSitter.Node.nodeStartPoint node_693 TreeSitter.Node.TSPoint r2_696 c2_697 = TreeSitter.Node.nodeEndPoint node_693 deriving instance GHC.Classes.Eq a_698 => GHC.Classes.Eq (VarDeclaration a_698) deriving instance GHC.Classes.Ord a_699 => GHC.Classes.Ord (VarDeclaration a_699) deriving instance GHC.Show.Show a_700 => GHC.Show.Show (VarDeclaration a_700) instance AST.Unmarshal.Unmarshal VarDeclaration instance Data.Foldable.Foldable VarDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor VarDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable VarDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data VarSpec a = VarSpec { ann :: a, value :: (GHC.Maybe.Maybe (AST.Parse.Err (ExpressionList a))), name :: (GHC.Base.NonEmpty (AST.Parse.Err ((AnonymousComma GHC.Generics.:+: Identifier) a))), type' :: (GHC.Maybe.Maybe (AST.Parse.Err (Type a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_701. AST.Traversable1.Class.Traversable1 a_701 ) instance AST.Unmarshal.SymbolMatching VarSpec where matchedSymbols _ = [100] showFailure _ node_702 = "expected " GHC.Base.<> ( "var_spec" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_702 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_703 c1_704 = TreeSitter.Node.nodeStartPoint node_702 TreeSitter.Node.TSPoint r2_705 c2_706 = TreeSitter.Node.nodeEndPoint node_702 deriving instance GHC.Classes.Eq a_707 => GHC.Classes.Eq (VarSpec a_707) deriving instance GHC.Classes.Ord a_708 => GHC.Classes.Ord (VarSpec a_708) deriving instance GHC.Show.Show a_709 => GHC.Show.Show (VarSpec a_709) instance AST.Unmarshal.Unmarshal VarSpec instance Data.Foldable.Foldable VarSpec where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor VarSpec where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable VarSpec where traverse = AST.Traversable1.Class.traverseDefault1 data VariadicArgument a = VariadicArgument { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_710. AST.Traversable1.Class.Traversable1 a_710 ) instance AST.Unmarshal.SymbolMatching VariadicArgument where matchedSymbols _ = [160] showFailure _ node_711 = "expected " GHC.Base.<> ( "variadic_argument" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_711 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_712 c1_713 = TreeSitter.Node.nodeStartPoint node_711 TreeSitter.Node.TSPoint r2_714 c2_715 = TreeSitter.Node.nodeEndPoint node_711 deriving instance GHC.Classes.Eq a_716 => GHC.Classes.Eq (VariadicArgument a_716) deriving instance GHC.Classes.Ord a_717 => GHC.Classes.Ord (VariadicArgument a_717) deriving instance GHC.Show.Show a_718 => GHC.Show.Show (VariadicArgument a_718) instance AST.Unmarshal.Unmarshal VariadicArgument instance Data.Foldable.Foldable VariadicArgument where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor VariadicArgument where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable VariadicArgument where traverse = AST.Traversable1.Class.traverseDefault1 data VariadicParameterDeclaration a = VariadicParameterDeclaration { ann :: a, name :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a))), type' :: (AST.Parse.Err (Type a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_719. AST.Traversable1.Class.Traversable1 a_719 ) instance AST.Unmarshal.SymbolMatching VariadicParameterDeclaration where matchedSymbols _ = [105] showFailure _ node_720 = "expected " GHC.Base.<> ( "variadic_parameter_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_720 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_721 c1_722 = TreeSitter.Node.nodeStartPoint node_720 TreeSitter.Node.TSPoint r2_723 c2_724 = TreeSitter.Node.nodeEndPoint node_720 deriving instance GHC.Classes.Eq a_725 => GHC.Classes.Eq (VariadicParameterDeclaration a_725) deriving instance GHC.Classes.Ord a_726 => GHC.Classes.Ord (VariadicParameterDeclaration a_726) deriving instance GHC.Show.Show a_727 => GHC.Show.Show (VariadicParameterDeclaration a_727) instance AST.Unmarshal.Unmarshal VariadicParameterDeclaration instance Data.Foldable.Foldable VariadicParameterDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor VariadicParameterDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable VariadicParameterDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousLF = AST.Token.Token "\n" 2 type AnonymousBang = AST.Token.Token "!" 61 type AnonymousBangEqual = AST.Token.Token "!=" 71 type AnonymousDQuote = AST.Token.Token "\"" 79 type AnonymousPercent = AST.Token.Token "%" 65 type AnonymousPercentEqual = AST.Token.Token "%=" 32 type AnonymousAmpersand = AST.Token.Token "&" 63 type AnonymousAmpersandAmpersand = AST.Token.Token "&&" 76 type AnonymousAmpersandEqual = AST.Token.Token "&=" 35 type AnonymousAmpersandCaret = AST.Token.Token "&^" 68 type AnonymousAmpersandCaretEqual = AST.Token.Token "&^=" 36 type AnonymousLParen = AST.Token.Token "(" 8 type AnonymousRParen = AST.Token.Token ")" 9 type AnonymousStar = AST.Token.Token "*" 17 type AnonymousStarEqual = AST.Token.Token "*=" 30 type AnonymousPlus = AST.Token.Token "+" 59 type AnonymousPlusPlus = AST.Token.Token "++" 28 type AnonymousPlusEqual = AST.Token.Token "+=" 37 type AnonymousComma = AST.Token.Token "," 11 type AnonymousMinus = AST.Token.Token "-" 60 type AnonymousMinusMinus = AST.Token.Token "--" 29 type AnonymousMinusEqual = AST.Token.Token "-=" 38 type AnonymousDot = AST.Token.Token "." 6 type AnonymousDotDotDot = AST.Token.Token "..." 15 type AnonymousSlash = AST.Token.Token "/" 64 type AnonymousSlashEqual = AST.Token.Token "/=" 31 type AnonymousColon = AST.Token.Token ":" 41 type AnonymousColonEqual = AST.Token.Token ":=" 27 type AnonymousSemicolon = AST.Token.Token ";" 3 type AnonymousLAngle = AST.Token.Token "<" 72 type AnonymousLAngleMinus = AST.Token.Token "<-" 26 type AnonymousLAngleLAngle = AST.Token.Token "<<" 66 type AnonymousLAngleLAngleEqual = AST.Token.Token "<<=" 33 type AnonymousLAngleEqual = AST.Token.Token "<=" 73 type AnonymousEqual = AST.Token.Token "=" 12 type AnonymousEqualEqual = AST.Token.Token "==" 70 type AnonymousRAngle = AST.Token.Token ">" 74 type AnonymousRAngleEqual = AST.Token.Token ">=" 75 type AnonymousRAngleRAngle = AST.Token.Token ">>" 67 type AnonymousRAngleRAngleEqual = AST.Token.Token ">>=" 34 type AnonymousLBracket = AST.Token.Token "[" 18 type AnonymousRBracket = AST.Token.Token "]" 19 type AnonymousCaret = AST.Token.Token "^" 62 type AnonymousCaretEqual = AST.Token.Token "^=" 40 data BlankIdentifier a = BlankIdentifier {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_728. AST.Traversable1.Class.Traversable1 a_728 ) instance AST.Unmarshal.SymbolMatching BlankIdentifier where matchedSymbols _ = [7] showFailure _ node_729 = "expected " GHC.Base.<> ( "blank_identifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_729 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_730 c1_731 = TreeSitter.Node.nodeStartPoint node_729 TreeSitter.Node.TSPoint r2_732 c2_733 = TreeSitter.Node.nodeEndPoint node_729 deriving instance GHC.Classes.Eq a_734 => GHC.Classes.Eq (BlankIdentifier a_734) deriving instance GHC.Classes.Ord a_735 => GHC.Classes.Ord (BlankIdentifier a_735) deriving instance GHC.Show.Show a_736 => GHC.Show.Show (BlankIdentifier a_736) instance AST.Unmarshal.Unmarshal BlankIdentifier instance Data.Foldable.Foldable BlankIdentifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor BlankIdentifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable BlankIdentifier where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousBreak = AST.Token.Token "break" 43 type AnonymousCase = AST.Token.Token "case" 54 type AnonymousChan = AST.Token.Token "chan" 25 type AnonymousConst = AST.Token.Token "const" 10 type AnonymousContinue = AST.Token.Token "continue" 44 type AnonymousDefault = AST.Token.Token "default" 55 type AnonymousDefer = AST.Token.Token "defer" 48 type AnonymousElse = AST.Token.Token "else" 50 data EscapeSequence a = EscapeSequence {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_737. AST.Traversable1.Class.Traversable1 a_737 ) instance AST.Unmarshal.SymbolMatching EscapeSequence where matchedSymbols _ = [81] showFailure _ node_738 = "expected " GHC.Base.<> ( "escape_sequence" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_738 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_739 c1_740 = TreeSitter.Node.nodeStartPoint node_738 TreeSitter.Node.TSPoint r2_741 c2_742 = TreeSitter.Node.nodeEndPoint node_738 deriving instance GHC.Classes.Eq a_743 => GHC.Classes.Eq (EscapeSequence a_743) deriving instance GHC.Classes.Ord a_744 => GHC.Classes.Ord (EscapeSequence a_744) deriving instance GHC.Show.Show a_745 => GHC.Show.Show (EscapeSequence a_745) instance AST.Unmarshal.Unmarshal EscapeSequence instance Data.Foldable.Foldable EscapeSequence where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor EscapeSequence where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable EscapeSequence where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousFallthrough = AST.Token.Token "fallthrough" 42 data False a = False {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_746. AST.Traversable1.Class.Traversable1 a_746 ) instance AST.Unmarshal.SymbolMatching False where matchedSymbols _ = [88] showFailure _ node_747 = "expected " GHC.Base.<> ( "false" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_747 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_748 c1_749 = TreeSitter.Node.nodeStartPoint node_747 TreeSitter.Node.TSPoint r2_750 c2_751 = TreeSitter.Node.nodeEndPoint node_747 deriving instance GHC.Classes.Eq a_752 => GHC.Classes.Eq (False a_752) deriving instance GHC.Classes.Ord a_753 => GHC.Classes.Ord (False a_753) deriving instance GHC.Show.Show a_754 => GHC.Show.Show (False a_754) instance AST.Unmarshal.Unmarshal False instance Data.Foldable.Foldable False where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor False where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable False where traverse = AST.Traversable1.Class.traverseDefault1 data FieldIdentifier a = FieldIdentifier {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_755. AST.Traversable1.Class.Traversable1 a_755 ) instance AST.Unmarshal.SymbolMatching FieldIdentifier where matchedSymbols _ = [196] showFailure _ node_756 = "expected " GHC.Base.<> ( "field_identifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_756 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_757 c1_758 = TreeSitter.Node.nodeStartPoint node_756 TreeSitter.Node.TSPoint r2_759 c2_760 = TreeSitter.Node.nodeEndPoint node_756 deriving instance GHC.Classes.Eq a_761 => GHC.Classes.Eq (FieldIdentifier a_761) deriving instance GHC.Classes.Ord a_762 => GHC.Classes.Ord (FieldIdentifier a_762) deriving instance GHC.Show.Show a_763 => GHC.Show.Show (FieldIdentifier a_763) instance AST.Unmarshal.Unmarshal FieldIdentifier instance Data.Foldable.Foldable FieldIdentifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FieldIdentifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FieldIdentifier where traverse = AST.Traversable1.Class.traverseDefault1 data FloatLiteral a = FloatLiteral {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_764. AST.Traversable1.Class.Traversable1 a_764 ) instance AST.Unmarshal.SymbolMatching FloatLiteral where matchedSymbols _ = [83] showFailure _ node_765 = "expected " GHC.Base.<> ( "float_literal" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_765 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_766 c1_767 = TreeSitter.Node.nodeStartPoint node_765 TreeSitter.Node.TSPoint r2_768 c2_769 = TreeSitter.Node.nodeEndPoint node_765 deriving instance GHC.Classes.Eq a_770 => GHC.Classes.Eq (FloatLiteral a_770) deriving instance GHC.Classes.Ord a_771 => GHC.Classes.Ord (FloatLiteral a_771) deriving instance GHC.Show.Show a_772 => GHC.Show.Show (FloatLiteral a_772) instance AST.Unmarshal.Unmarshal FloatLiteral instance Data.Foldable.Foldable FloatLiteral where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FloatLiteral where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FloatLiteral where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousFor = AST.Token.Token "for" 51 type AnonymousFunc = AST.Token.Token "func" 14 type AnonymousGo = AST.Token.Token "go" 47 type AnonymousGoto = AST.Token.Token "goto" 45 data Identifier a = Identifier {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_773. AST.Traversable1.Class.Traversable1 a_773 ) instance AST.Unmarshal.SymbolMatching Identifier where matchedSymbols _ = [1, 57, 58] showFailure _ node_774 = "expected " GHC.Base.<> ( "identifier, identifier, identifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_774 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_775 c1_776 = TreeSitter.Node.nodeStartPoint node_774 TreeSitter.Node.TSPoint r2_777 c2_778 = TreeSitter.Node.nodeEndPoint node_774 deriving instance GHC.Classes.Eq a_779 => GHC.Classes.Eq (Identifier a_779) deriving instance GHC.Classes.Ord a_780 => GHC.Classes.Ord (Identifier a_780) deriving instance GHC.Show.Show a_781 => GHC.Show.Show (Identifier a_781) instance AST.Unmarshal.Unmarshal Identifier instance Data.Foldable.Foldable Identifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Identifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Identifier where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousIf = AST.Token.Token "if" 49 data ImaginaryLiteral a = ImaginaryLiteral {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_782. AST.Traversable1.Class.Traversable1 a_782 ) instance AST.Unmarshal.SymbolMatching ImaginaryLiteral where matchedSymbols _ = [84] showFailure _ node_783 = "expected " GHC.Base.<> ( "imaginary_literal" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_783 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_784 c1_785 = TreeSitter.Node.nodeStartPoint node_783 TreeSitter.Node.TSPoint r2_786 c2_787 = TreeSitter.Node.nodeEndPoint node_783 deriving instance GHC.Classes.Eq a_788 => GHC.Classes.Eq (ImaginaryLiteral a_788) deriving instance GHC.Classes.Ord a_789 => GHC.Classes.Ord (ImaginaryLiteral a_789) deriving instance GHC.Show.Show a_790 => GHC.Show.Show (ImaginaryLiteral a_790) instance AST.Unmarshal.Unmarshal ImaginaryLiteral instance Data.Foldable.Foldable ImaginaryLiteral where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ImaginaryLiteral where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ImaginaryLiteral where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousImport = AST.Token.Token "import" 5 data IntLiteral a = IntLiteral {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_791. AST.Traversable1.Class.Traversable1 a_791 ) instance AST.Unmarshal.SymbolMatching IntLiteral where matchedSymbols _ = [82] showFailure _ node_792 = "expected " GHC.Base.<> ( "int_literal" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_792 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_793 c1_794 = TreeSitter.Node.nodeStartPoint node_792 TreeSitter.Node.TSPoint r2_795 c2_796 = TreeSitter.Node.nodeEndPoint node_792 deriving instance GHC.Classes.Eq a_797 => GHC.Classes.Eq (IntLiteral a_797) deriving instance GHC.Classes.Ord a_798 => GHC.Classes.Ord (IntLiteral a_798) deriving instance GHC.Show.Show a_799 => GHC.Show.Show (IntLiteral a_799) instance AST.Unmarshal.Unmarshal IntLiteral instance Data.Foldable.Foldable IntLiteral where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor IntLiteral where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable IntLiteral where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousInterface = AST.Token.Token "interface" 23 data LabelName a = LabelName {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_800. AST.Traversable1.Class.Traversable1 a_800 ) instance AST.Unmarshal.SymbolMatching LabelName where matchedSymbols _ = [197] showFailure _ node_801 = "expected " GHC.Base.<> ( "label_name" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_801 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_802 c1_803 = TreeSitter.Node.nodeStartPoint node_801 TreeSitter.Node.TSPoint r2_804 c2_805 = TreeSitter.Node.nodeEndPoint node_801 deriving instance GHC.Classes.Eq a_806 => GHC.Classes.Eq (LabelName a_806) deriving instance GHC.Classes.Ord a_807 => GHC.Classes.Ord (LabelName a_807) deriving instance GHC.Show.Show a_808 => GHC.Show.Show (LabelName a_808) instance AST.Unmarshal.Unmarshal LabelName instance Data.Foldable.Foldable LabelName where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor LabelName where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable LabelName where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousMap = AST.Token.Token "map" 24 data Nil a = Nil {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_809. AST.Traversable1.Class.Traversable1 a_809 ) instance AST.Unmarshal.SymbolMatching Nil where matchedSymbols _ = [86] showFailure _ node_810 = "expected " GHC.Base.<> ( "nil" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_810 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_811 c1_812 = TreeSitter.Node.nodeStartPoint node_810 TreeSitter.Node.TSPoint r2_813 c2_814 = TreeSitter.Node.nodeEndPoint node_810 deriving instance GHC.Classes.Eq a_815 => GHC.Classes.Eq (Nil a_815) deriving instance GHC.Classes.Ord a_816 => GHC.Classes.Ord (Nil a_816) deriving instance GHC.Show.Show a_817 => GHC.Show.Show (Nil a_817) instance AST.Unmarshal.Unmarshal Nil instance Data.Foldable.Foldable Nil where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Nil where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Nil where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousPackage = AST.Token.Token "package" 4 data PackageIdentifier a = PackageIdentifier {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_818. AST.Traversable1.Class.Traversable1 a_818 ) instance AST.Unmarshal.SymbolMatching PackageIdentifier where matchedSymbols _ = [198] showFailure _ node_819 = "expected " GHC.Base.<> ( "package_identifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_819 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_820 c1_821 = TreeSitter.Node.nodeStartPoint node_819 TreeSitter.Node.TSPoint r2_822 c2_823 = TreeSitter.Node.nodeEndPoint node_819 deriving instance GHC.Classes.Eq a_824 => GHC.Classes.Eq (PackageIdentifier a_824) deriving instance GHC.Classes.Ord a_825 => GHC.Classes.Ord (PackageIdentifier a_825) deriving instance GHC.Show.Show a_826 => GHC.Show.Show (PackageIdentifier a_826) instance AST.Unmarshal.Unmarshal PackageIdentifier instance Data.Foldable.Foldable PackageIdentifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor PackageIdentifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable PackageIdentifier where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousRange = AST.Token.Token "range" 52 data RawStringLiteral a = RawStringLiteral {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_827. AST.Traversable1.Class.Traversable1 a_827 ) instance AST.Unmarshal.SymbolMatching RawStringLiteral where matchedSymbols _ = [78] showFailure _ node_828 = "expected " GHC.Base.<> ( "raw_string_literal" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_828 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_829 c1_830 = TreeSitter.Node.nodeStartPoint node_828 TreeSitter.Node.TSPoint r2_831 c2_832 = TreeSitter.Node.nodeEndPoint node_828 deriving instance GHC.Classes.Eq a_833 => GHC.Classes.Eq (RawStringLiteral a_833) deriving instance GHC.Classes.Ord a_834 => GHC.Classes.Ord (RawStringLiteral a_834) deriving instance GHC.Show.Show a_835 => GHC.Show.Show (RawStringLiteral a_835) instance AST.Unmarshal.Unmarshal RawStringLiteral instance Data.Foldable.Foldable RawStringLiteral where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor RawStringLiteral where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable RawStringLiteral where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousReturn = AST.Token.Token "return" 46 data RuneLiteral a = RuneLiteral {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_836. AST.Traversable1.Class.Traversable1 a_836 ) instance AST.Unmarshal.SymbolMatching RuneLiteral where matchedSymbols _ = [85] showFailure _ node_837 = "expected " GHC.Base.<> ( "rune_literal" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_837 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_838 c1_839 = TreeSitter.Node.nodeStartPoint node_837 TreeSitter.Node.TSPoint r2_840 c2_841 = TreeSitter.Node.nodeEndPoint node_837 deriving instance GHC.Classes.Eq a_842 => GHC.Classes.Eq (RuneLiteral a_842) deriving instance GHC.Classes.Ord a_843 => GHC.Classes.Ord (RuneLiteral a_843) deriving instance GHC.Show.Show a_844 => GHC.Show.Show (RuneLiteral a_844) instance AST.Unmarshal.Unmarshal RuneLiteral instance Data.Foldable.Foldable RuneLiteral where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor RuneLiteral where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable RuneLiteral where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousSelect = AST.Token.Token "select" 56 type AnonymousStruct = AST.Token.Token "struct" 20 type AnonymousSwitch = AST.Token.Token "switch" 53 data True a = True {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_845. AST.Traversable1.Class.Traversable1 a_845 ) instance AST.Unmarshal.SymbolMatching True where matchedSymbols _ = [87] showFailure _ node_846 = "expected " GHC.Base.<> ( "true" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_846 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_847 c1_848 = TreeSitter.Node.nodeStartPoint node_846 TreeSitter.Node.TSPoint r2_849 c2_850 = TreeSitter.Node.nodeEndPoint node_846 deriving instance GHC.Classes.Eq a_851 => GHC.Classes.Eq (True a_851) deriving instance GHC.Classes.Ord a_852 => GHC.Classes.Ord (True a_852) deriving instance GHC.Show.Show a_853 => GHC.Show.Show (True a_853) instance AST.Unmarshal.Unmarshal True instance Data.Foldable.Foldable True where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor True where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable True where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousType = AST.Token.Token "type" 16 data TypeIdentifier a = TypeIdentifier {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_854. AST.Traversable1.Class.Traversable1 a_854 ) instance AST.Unmarshal.SymbolMatching TypeIdentifier where matchedSymbols _ = [199] showFailure _ node_855 = "expected " GHC.Base.<> ( "type_identifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_855 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_856 c1_857 = TreeSitter.Node.nodeStartPoint node_855 TreeSitter.Node.TSPoint r2_858 c2_859 = TreeSitter.Node.nodeEndPoint node_855 deriving instance GHC.Classes.Eq a_860 => GHC.Classes.Eq (TypeIdentifier a_860) deriving instance GHC.Classes.Ord a_861 => GHC.Classes.Ord (TypeIdentifier a_861) deriving instance GHC.Show.Show a_862 => GHC.Show.Show (TypeIdentifier a_862) instance AST.Unmarshal.Unmarshal TypeIdentifier instance Data.Foldable.Foldable TypeIdentifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeIdentifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeIdentifier where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousVar = AST.Token.Token "var" 13 type AnonymousLBrace = AST.Token.Token "{" 21 type AnonymousPipe = AST.Token.Token "|" 69 type AnonymousPipeEqual = AST.Token.Token "|=" 39 type AnonymousPipePipe = AST.Token.Token "||" 77 type AnonymousRBrace = AST.Token.Token "}" 22 ================================================ FILE: semantic-go/src/Language/Go/Grammar.hs ================================================ {-# LANGUAGE TemplateHaskell #-} module Language.Go.Grammar ( tree_sitter_go , Grammar(..) ) where import AST.Grammar.TH import Language.Haskell.TH import TreeSitter.Go (tree_sitter_go) -- | Statically-known rules corresponding to symbols in the grammar. mkStaticallyKnownRuleGrammarData (mkName "Grammar") tree_sitter_go ================================================ FILE: semantic-go/src/Language/Go/Tags.hs ================================================ {-# LANGUAGE DefaultSignatures #-} {-# LANGUAGE DisambiguateRecordFields #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} module Language.Go.Tags ( ToTags (..), ) where import AST.Element import qualified AST.Parse as Parse import AST.Token import AST.Traversable1 import Control.Effect.Reader import Control.Effect.Writer import Control.Effect.State import qualified Language.Go.AST as Go import Proto.Semantic as P import Source.Loc import Source.Source as Source import qualified Tags.Tagging.Precise as Tags class ToTags t where tags :: ( Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m ) => t Loc -> m () default tags :: ( Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m, Traversable1 ToTags t ) => t Loc -> m () tags = gtags instance ToTags Go.FunctionDeclaration where tags t@Go.FunctionDeclaration { ann = Loc {byteRange}, name = Parse.Success (Go.Identifier {text, ann}) } = Tags.yield text P.FUNCTION P.DEFINITION ann byteRange >> gtags t tags _ = pure () instance ToTags Go.MethodDeclaration where tags t@Go.MethodDeclaration { ann = Loc {byteRange}, name = Parse.Success (Go.FieldIdentifier {text, ann}) } = Tags.yield text P.METHOD P.DEFINITION ann byteRange >> gtags t tags _ = pure () instance ToTags Go.CallExpression where tags t@Go.CallExpression { ann = Loc {byteRange}, function = Parse.Success (Go.Expression expr) } = match expr where match expr = case expr of Prj Go.SelectorExpression {field = Parse.Success (Go.FieldIdentifier {text, ann})} -> yield text ann Prj Go.Identifier {text, ann} -> yield text ann Prj Go.CallExpression {function = Parse.Success (Go.Expression e)} -> match e Prj Go.ParenthesizedExpression {extraChildren = Parse.Success (Go.Expression e)} -> match e _ -> gtags t yield name loc = Tags.yield name P.CALL P.REFERENCE loc byteRange >> gtags t tags _ = pure () instance (ToTags l, ToTags r) => ToTags (l :+: r) where tags (L1 l) = tags l tags (R1 r) = tags r instance ToTags (Token sym n) where tags _ = pure () gtags :: ( Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m, Traversable1 ToTags t ) => t Loc -> m () gtags = traverse1_ @ToTags (const (pure ())) tags instance ToTags Go.ArgumentList instance ToTags Go.ArrayType instance ToTags Go.AssignmentStatement instance ToTags Go.BinaryExpression instance ToTags Go.BlankIdentifier instance ToTags Go.Block instance ToTags Go.BreakStatement -- instance ToTags Go.CallExpression instance ToTags Go.ChannelType instance ToTags Go.CommunicationCase instance ToTags Go.CompositeLiteral instance ToTags Go.ConstDeclaration instance ToTags Go.ConstSpec instance ToTags Go.ContinueStatement instance ToTags Go.DecStatement instance ToTags Go.DefaultCase instance ToTags Go.DeferStatement instance ToTags Go.Dot instance ToTags Go.Element instance ToTags Go.EmptyStatement instance ToTags Go.EscapeSequence instance ToTags Go.Expression instance ToTags Go.ExpressionCase instance ToTags Go.ExpressionList instance ToTags Go.ExpressionSwitchStatement instance ToTags Go.FallthroughStatement instance ToTags Go.False instance ToTags Go.FieldDeclaration instance ToTags Go.FieldDeclarationList instance ToTags Go.FieldIdentifier instance ToTags Go.FloatLiteral instance ToTags Go.ForClause instance ToTags Go.ForStatement instance ToTags Go.FuncLiteral -- instance ToTags Go.FunctionDeclaration instance ToTags Go.FunctionType instance ToTags Go.GoStatement instance ToTags Go.GotoStatement instance ToTags Go.Identifier instance ToTags Go.IfStatement instance ToTags Go.ImaginaryLiteral instance ToTags Go.ImplicitLengthArrayType instance ToTags Go.ImportDeclaration instance ToTags Go.ImportSpec instance ToTags Go.ImportSpecList instance ToTags Go.IncStatement instance ToTags Go.IndexExpression instance ToTags Go.IntLiteral instance ToTags Go.InterfaceType instance ToTags Go.InterpretedStringLiteral instance ToTags Go.KeyedElement instance ToTags Go.LabelName instance ToTags Go.LabeledStatement instance ToTags Go.LiteralValue instance ToTags Go.MapType -- instance ToTags Go.MethodDeclaration instance ToTags Go.MethodSpec instance ToTags Go.MethodSpecList instance ToTags Go.Nil instance ToTags Go.PackageClause instance ToTags Go.PackageIdentifier instance ToTags Go.ParameterDeclaration instance ToTags Go.ParameterList instance ToTags Go.ParenthesizedExpression instance ToTags Go.ParenthesizedType instance ToTags Go.PointerType instance ToTags Go.QualifiedType instance ToTags Go.RangeClause instance ToTags Go.RawStringLiteral instance ToTags Go.ReceiveStatement instance ToTags Go.ReturnStatement instance ToTags Go.RuneLiteral instance ToTags Go.SelectStatement instance ToTags Go.SelectorExpression instance ToTags Go.SendStatement instance ToTags Go.ShortVarDeclaration instance ToTags Go.SimpleStatement instance ToTags Go.SimpleType instance ToTags Go.SliceExpression instance ToTags Go.SliceType instance ToTags Go.SourceFile instance ToTags Go.Statement instance ToTags Go.StructType instance ToTags Go.True instance ToTags Go.Type instance ToTags Go.TypeAlias instance ToTags Go.TypeAssertionExpression instance ToTags Go.TypeCase instance ToTags Go.TypeConversionExpression instance ToTags Go.TypeDeclaration instance ToTags Go.TypeIdentifier instance ToTags Go.TypeSpec instance ToTags Go.TypeSwitchStatement instance ToTags Go.UnaryExpression instance ToTags Go.VarDeclaration instance ToTags Go.VarSpec instance ToTags Go.VariadicArgument instance ToTags Go.VariadicParameterDeclaration ================================================ FILE: semantic-go/src/Language/Go.hs ================================================ {-# LANGUAGE GeneralizedNewtypeDeriving #-} -- | Semantic functionality for Go programs. module Language.Go ( Term(..) , Language.Go.Grammar.tree_sitter_go ) where import AST.Marshal.JSON import Data.Proxy import qualified Language.Go.AST as Go import qualified Language.Go.Tags as GoTags import qualified Tags.Tagging.Precise as Tags import qualified Language.Go.Grammar (tree_sitter_go) import qualified AST.Unmarshal as TS newtype Term a = Term { getTerm :: Go.SourceFile a } deriving MarshalJSON instance TS.SymbolMatching Term where matchedSymbols _ = TS.matchedSymbols (Proxy :: Proxy Go.SourceFile) showFailure _ = TS.showFailure (Proxy :: Proxy Go.SourceFile) instance TS.Unmarshal Term where matchers = fmap (fmap (TS.hoist Term)) TS.matchers instance Tags.ToTags Term where tags src = Tags.runTagging src . GoTags.tags . getTerm ================================================ FILE: semantic-go/test/PreciseTest.hs ================================================ {-# LANGUAGE CPP #-} {-# LANGUAGE DisambiguateRecordFields #-} {-# LANGUAGE ImplicitParams #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeApplications #-} {-# OPTIONS_GHC -Wno-unused-imports #-} module Main (main) where import AST.TestHelpers import AST.Unmarshal import qualified Language.Go.AST as Go import Language.Go.Grammar import qualified System.Path.Fixture as Fixture import Test.Tasty main :: IO () main = do #if BAZEL_BUILD rf <- Fixture.create let ?project = "external/tree-sitter-go" ?runfiles = rf let dirs = Fixture.absRelDir "corpus" #else dirs <- Go.getTestCorpusDir #endif readCorpusFiles' dirs >>= traverse (testCorpus parse) >>= defaultMain . tests where parse = parseByteString @Go.SourceFile @() tree_sitter_go tests :: [TestTree] -> TestTree tests = testGroup "tree-sitter-go corpus tests" ================================================ FILE: semantic-java/BUILD.bazel ================================================ package(default_visibility = ["//visibility:public"]) load( "//:build/common.bzl", "semantic_language_library", "semantic_language_parsing_test", ) semantic_language_library( name = "semantic-java", srcs = glob(["src/**/*.hs"]), language = "java", ) semantic_language_parsing_test(language = "java") ================================================ FILE: semantic-java/LICENSE ================================================ MIT License Copyright (c) 2019 GitHub Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: semantic-java/README.md ================================================ # semantic-java Semantic support for Java. ## Development This project consists of a Haskell package named `semantic-java`. The library’s sources are in [`src`][]. Development of `semantic-java` is typically done using `cabal v2-build`: ```shell cabal v2-build # build the library cabal v2-repl # load the package into ghci cabal v2-test # build and run the doctests ``` [`src`]: https://github.com/github/semantic/tree/master/semantic-java/src ================================================ FILE: semantic-java/Setup.hs ================================================ import Distribution.Simple main = defaultMain ================================================ FILE: semantic-java/semantic-java.cabal ================================================ cabal-version: 2.4 name: semantic-java version: 0.0.0.0 synopsis: Semantic support for Java description: Semantic support for Java. homepage: https://github.com/github/semantic/tree/master/semantic-java#readme bug-reports: https://github.com/github/semantic/issues license: MIT license-file: LICENSE author: The Semantic authors maintainer: opensource+semantic@github.com copyright: (c) 2019 GitHub, Inc. category: Language build-type: Simple stability: alpha extra-source-files: README.md tested-with: GHC == 8.6.5 common haskell default-language: Haskell2010 ghc-options: -Weverything -Wno-missing-local-signatures -Wno-missing-import-lists -Wno-implicit-prelude -Wno-safe -Wno-unsafe -Wno-name-shadowing -Wno-monomorphism-restriction -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-star-is-type if (impl(ghc >= 8.8)) ghc-options: -Wno-missing-deriving-strategies if (impl(ghc >= 8.10)) ghc-options: -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module if (impl(ghc >= 9.2)) ghc-options: -Wno-missing-kind-signatures cpp-options: -DBAZEL_BUILD=0 library import: haskell exposed-modules: Language.Java Language.Java.AST Language.Java.Grammar Language.Java.Tags hs-source-dirs: src build-depends: , base >= 4.13 && < 5 , fused-effects ^>= 1.1 , semantic-ast , semantic-proto ^>= 0 , semantic-source ^>= 0.2 , semantic-tags ^>= 0.0 , template-haskell >= 2.15 && < 2.22 , text ^>= 1.2.3 , tree-sitter ^>= 0.9 , tree-sitter-java ^>= 0.7.0.1 test-suite test import: haskell type: exitcode-stdio-1.0 hs-source-dirs: test main-is: PreciseTest.hs build-depends: , base , semantic-ast , semantic-java , tasty , tree-sitter-java ^>= 0.7.0.1 ================================================ FILE: semantic-java/src/Language/Java/AST.hs ================================================ -- Language definition for Java, generated by ast-generate. Do not edit! {-# LANGUAGE CPP #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE QuantifiedConstraints #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} module Language.Java.AST (module Language.Java.AST, getTestCorpusDir) where import qualified AST.Parse import qualified AST.Token import qualified AST.Traversable1.Class import qualified AST.Unmarshal import qualified Data.Foldable import qualified Data.List as Data.OldList import qualified Data.Maybe as GHC.Maybe import qualified Data.Text.Internal import qualified Data.Traversable import qualified GHC.Base import qualified GHC.Generics import qualified GHC.Records import qualified GHC.Show import TreeSitter.Java (getTestCorpusDir) import qualified TreeSitter.Node import qualified Prelude as GHC.Classes debugSymbolNames :: [GHC.Base.String] debugSymbolNames = debugSymbolNames_0 debugSymbolNames_0 :: [GHC.Base.String] debugSymbolNames_0 = [ "end", "identifier", "decimal_integer_literal", "hex_integer_literal", "octal_integer_literal", "binary_integer_literal", "decimal_floating_point_literal", "hex_floating_point_literal", "true", "false", "character_literal", "string_literal", "null_literal", "_(", "_&", "_)", "_=", "_+=", "_-=", "_*=", "_/=", "_&=", "_|=", "_^=", "_%=", "_<<=", "_>>=", "_>>>=", "_>", "_<", "_==", "_>=", "_<=", "_!=", "_&&", "_||", "_+", "_-", "_*", "_/", "_|", "_^", "_%", "_<<", "_>>", "_>>>", "_instanceof", "_->", "_,", "_?", "_:", "_!", "_~", "_++", "_--", "_new", "_[", "_]", "_.", "_class", "_::", "_extends", "_;", "_{", "_}", "_assert", "_switch", "_case", "_default", "_do", "_while", "_break", "_continue", "_return", "_synchronized", "_throw", "_try", "_catch", "_finally", "_if", "_else", "_for", "_@", "_open", "_module", "_requires", "_exports", "_to", "_opens", "_uses", "_provides", "_with", "_transitive", "_static", "_package", "_import", "_enum", "_public", "_protected", "_private", "_abstract", "_final", "_strictfp", "_native", "_transient", "_volatile", "_implements", "_@interface", "_interface", "_byte", "_short", "_int", "_long", "_char", "_float", "_double", "boolean_type", "void_type", "_...", "_throws", "this", "super", "comment", "program", "_literal", "_expression", "cast_expression", "assignment_expression", "binary_expression", "instanceof_expression", "lambda_expression", "inferred_parameters", "ternary_expression", "unary_expression", "update_expression", "_primary", "array_creation_expression", "dimensions_expr", "parenthesized_expression", "class_literal", "object_creation_expression", "_unqualified_object_creation_expression", "field_access", "array_access", "method_invocation", "argument_list", "method_reference", "type_arguments", "wildcard", "_wildcard_bounds", "dimensions", "_statement", "block", "expression_statement", "labeled_statement", "assert_statement", "switch_statement", "switch_block", "switch_label", "do_statement", "break_statement", "continue_statement", "return_statement", "synchronized_statement", "throw_statement", "try_statement", "catch_clause", "catch_formal_parameter", "catch_type", "finally_clause", "try_with_resources_statement", "resource_specification", "resource", "if_statement", "while_statement", "for_statement", "for_init", "enhanced_for_statement", "_annotation", "marker_annotation", "annotation", "annotation_argument_list", "element_value_pair", "_element_value", "element_value_array_initializer", "_declaration", "module_declaration", "module_directive", "requires_modifier", "module_name", "package_declaration", "import_declaration", "asterisk", "enum_declaration", "enum_body", "enum_body_declarations", "enum_constant", "class_declaration", "modifiers", "type_parameters", "type_parameter", "type_bound", "superclass", "super_interfaces", "interface_type_list", "class_body", "static_initializer", "constructor_declaration", "_constructor_declarator", "constructor_body", "explicit_constructor_invocation", "scoped_identifier", "field_declaration", "annotation_type_declaration", "annotation_type_body", "annotation_type_element_declaration", "_default_value", "interface_declaration", "extends_interfaces", "interface_body", "constant_declaration", "_variable_declarator_list", "variable_declarator", "_variable_declarator_id", "array_initializer", "_type", "_unannotated_type", "annotated_type", "scoped_type_identifier", "generic_type", "array_type", "integral_type", "floating_point_type", "_method_header", "_method_declarator", "formal_parameters", "formal_parameter", "receiver_parameter", "spread_parameter", "throws", "local_variable_declaration_statement", "local_variable_declaration", "method_declaration", "_program_repeat1", "_cast_expression_repeat1", "_inferred_parameters_repeat1", "_array_creation_expression_repeat1", "_dimensions_expr_repeat1", "_class_literal_repeat1", "_argument_list_repeat1", "_type_arguments_repeat1", "_dimensions_repeat1", "_switch_block_repeat1", "_try_statement_repeat1", "_catch_type_repeat1", "_resource_specification_repeat1", "_annotation_argument_list_repeat1", "_element_value_array_initializer_repeat1", "_module_declaration_repeat1", "_module_directive_repeat1", "_module_directive_repeat2", "_module_directive_repeat3", "_import_declaration_repeat1", "_enum_body_repeat1", "_enum_body_declarations_repeat1", "_modifiers_repeat1", "_type_parameters_repeat1", "_type_bound_repeat1", "_interface_type_list_repeat1", "_annotation_type_body_repeat1", "_interface_body_repeat1", "__variable_declarator_list_repeat1", "_array_initializer_repeat1", "_formal_parameters_repeat1", "type_identifier" ] newtype Declaration a = Declaration {getDeclaration :: ((AnnotationTypeDeclaration GHC.Generics.:+: ClassDeclaration GHC.Generics.:+: EnumDeclaration GHC.Generics.:+: ImportDeclaration GHC.Generics.:+: InterfaceDeclaration GHC.Generics.:+: ModuleDeclaration GHC.Generics.:+: PackageDeclaration) a)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1. AST.Traversable1.Class.Traversable1 a_1 ) instance GHC.Records.HasField "ann" (Declaration a_2) a_2 where getField = AST.Unmarshal.gann GHC.Base.. getDeclaration deriving instance GHC.Classes.Eq a_3 => GHC.Classes.Eq (Declaration a_3) deriving instance GHC.Classes.Ord a_4 => GHC.Classes.Ord (Declaration a_4) deriving instance GHC.Show.Show a_5 => GHC.Show.Show (Declaration a_5) instance AST.Unmarshal.Unmarshal Declaration instance Data.Foldable.Foldable Declaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Declaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Declaration where traverse = AST.Traversable1.Class.traverseDefault1 newtype 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)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_6. AST.Traversable1.Class.Traversable1 a_6 ) instance GHC.Records.HasField "ann" (Expression a_7) a_7 where getField = AST.Unmarshal.gann GHC.Base.. getExpression deriving instance GHC.Classes.Eq a_8 => GHC.Classes.Eq (Expression a_8) deriving instance GHC.Classes.Ord a_9 => GHC.Classes.Ord (Expression a_9) deriving instance GHC.Show.Show a_10 => GHC.Show.Show (Expression a_10) instance AST.Unmarshal.Unmarshal Expression instance Data.Foldable.Foldable Expression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Expression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Expression where traverse = AST.Traversable1.Class.traverseDefault1 newtype 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)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_11. AST.Traversable1.Class.Traversable1 a_11 ) instance GHC.Records.HasField "ann" (Literal a_12) a_12 where getField = AST.Unmarshal.gann GHC.Base.. getLiteral deriving instance GHC.Classes.Eq a_13 => GHC.Classes.Eq (Literal a_13) deriving instance GHC.Classes.Ord a_14 => GHC.Classes.Ord (Literal a_14) deriving instance GHC.Show.Show a_15 => GHC.Show.Show (Literal a_15) instance AST.Unmarshal.Unmarshal Literal instance Data.Foldable.Foldable Literal where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Literal where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Literal where traverse = AST.Traversable1.Class.traverseDefault1 newtype 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)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_16. AST.Traversable1.Class.Traversable1 a_16 ) instance GHC.Records.HasField "ann" (Primary a_17) a_17 where getField = AST.Unmarshal.gann GHC.Base.. getPrimary deriving instance GHC.Classes.Eq a_18 => GHC.Classes.Eq (Primary a_18) deriving instance GHC.Classes.Ord a_19 => GHC.Classes.Ord (Primary a_19) deriving instance GHC.Show.Show a_20 => GHC.Show.Show (Primary a_20) instance AST.Unmarshal.Unmarshal Primary instance Data.Foldable.Foldable Primary where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Primary where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Primary where traverse = AST.Traversable1.Class.traverseDefault1 newtype SimpleType a = SimpleType {getSimpleType :: ((BooleanType GHC.Generics.:+: FloatingPointType GHC.Generics.:+: GenericType GHC.Generics.:+: IntegralType GHC.Generics.:+: ScopedTypeIdentifier GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: VoidType) a)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_21. AST.Traversable1.Class.Traversable1 a_21 ) instance GHC.Records.HasField "ann" (SimpleType a_22) a_22 where getField = AST.Unmarshal.gann GHC.Base.. getSimpleType deriving instance GHC.Classes.Eq a_23 => GHC.Classes.Eq (SimpleType a_23) deriving instance GHC.Classes.Ord a_24 => GHC.Classes.Ord (SimpleType a_24) deriving instance GHC.Show.Show a_25 => GHC.Show.Show (SimpleType a_25) instance AST.Unmarshal.Unmarshal SimpleType instance Data.Foldable.Foldable SimpleType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SimpleType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SimpleType where traverse = AST.Traversable1.Class.traverseDefault1 newtype 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)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_26. AST.Traversable1.Class.Traversable1 a_26 ) instance GHC.Records.HasField "ann" (Statement a_27) a_27 where getField = AST.Unmarshal.gann GHC.Base.. getStatement deriving instance GHC.Classes.Eq a_28 => GHC.Classes.Eq (Statement a_28) deriving instance GHC.Classes.Ord a_29 => GHC.Classes.Ord (Statement a_29) deriving instance GHC.Show.Show a_30 => GHC.Show.Show (Statement a_30) instance AST.Unmarshal.Unmarshal Statement instance Data.Foldable.Foldable Statement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Statement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Statement where traverse = AST.Traversable1.Class.traverseDefault1 newtype Type a = Type {getType :: ((UnannotatedType GHC.Generics.:+: AnnotatedType) a)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_31. AST.Traversable1.Class.Traversable1 a_31 ) instance GHC.Records.HasField "ann" (Type a_32) a_32 where getField = AST.Unmarshal.gann GHC.Base.. getType deriving instance GHC.Classes.Eq a_33 => GHC.Classes.Eq (Type a_33) deriving instance GHC.Classes.Ord a_34 => GHC.Classes.Ord (Type a_34) deriving instance GHC.Show.Show a_35 => GHC.Show.Show (Type a_35) instance AST.Unmarshal.Unmarshal Type instance Data.Foldable.Foldable Type where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Type where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Type where traverse = AST.Traversable1.Class.traverseDefault1 newtype UnannotatedType a = UnannotatedType {getUnannotatedType :: ((SimpleType GHC.Generics.:+: ArrayType) a)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_36. AST.Traversable1.Class.Traversable1 a_36 ) instance GHC.Records.HasField "ann" (UnannotatedType a_37) a_37 where getField = AST.Unmarshal.gann GHC.Base.. getUnannotatedType deriving instance GHC.Classes.Eq a_38 => GHC.Classes.Eq (UnannotatedType a_38) deriving instance GHC.Classes.Ord a_39 => GHC.Classes.Ord (UnannotatedType a_39) deriving instance GHC.Show.Show a_40 => GHC.Show.Show (UnannotatedType a_40) instance AST.Unmarshal.Unmarshal UnannotatedType instance Data.Foldable.Foldable UnannotatedType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor UnannotatedType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable UnannotatedType where traverse = AST.Traversable1.Class.traverseDefault1 data AnnotatedType a = AnnotatedType { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((UnannotatedType GHC.Generics.:+: Annotation GHC.Generics.:+: MarkerAnnotation) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_41. AST.Traversable1.Class.Traversable1 a_41 ) instance AST.Unmarshal.SymbolMatching AnnotatedType where matchedSymbols _ = [227] showFailure _ node_42 = "expected " GHC.Base.<> ( "annotated_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_42 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_43 c1_44 = TreeSitter.Node.nodeStartPoint node_42 TreeSitter.Node.TSPoint r2_45 c2_46 = TreeSitter.Node.nodeEndPoint node_42 deriving instance GHC.Classes.Eq a_47 => GHC.Classes.Eq (AnnotatedType a_47) deriving instance GHC.Classes.Ord a_48 => GHC.Classes.Ord (AnnotatedType a_48) deriving instance GHC.Show.Show a_49 => GHC.Show.Show (AnnotatedType a_49) instance AST.Unmarshal.Unmarshal AnnotatedType instance Data.Foldable.Foldable AnnotatedType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AnnotatedType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AnnotatedType where traverse = AST.Traversable1.Class.traverseDefault1 data Annotation a = Annotation { ann :: a, arguments :: (AST.Parse.Err (AnnotationArgumentList a)), name :: (AST.Parse.Err ((Identifier GHC.Generics.:+: ScopedIdentifier) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_50. AST.Traversable1.Class.Traversable1 a_50 ) instance AST.Unmarshal.SymbolMatching Annotation where matchedSymbols _ = [180] showFailure _ node_51 = "expected " GHC.Base.<> ( "annotation" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_51 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_52 c1_53 = TreeSitter.Node.nodeStartPoint node_51 TreeSitter.Node.TSPoint r2_54 c2_55 = TreeSitter.Node.nodeEndPoint node_51 deriving instance GHC.Classes.Eq a_56 => GHC.Classes.Eq (Annotation a_56) deriving instance GHC.Classes.Ord a_57 => GHC.Classes.Ord (Annotation a_57) deriving instance GHC.Show.Show a_58 => GHC.Show.Show (Annotation a_58) instance AST.Unmarshal.Unmarshal Annotation instance Data.Foldable.Foldable Annotation where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Annotation where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Annotation where traverse = AST.Traversable1.Class.traverseDefault1 data AnnotationArgumentList a = AnnotationArgumentList { ann :: a, extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: Annotation GHC.Generics.:+: ElementValueArrayInitializer GHC.Generics.:+: ElementValuePair GHC.Generics.:+: MarkerAnnotation) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_59. AST.Traversable1.Class.Traversable1 a_59 ) instance AST.Unmarshal.SymbolMatching AnnotationArgumentList where matchedSymbols _ = [181] showFailure _ node_60 = "expected " GHC.Base.<> ( "annotation_argument_list" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_60 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_61 c1_62 = TreeSitter.Node.nodeStartPoint node_60 TreeSitter.Node.TSPoint r2_63 c2_64 = TreeSitter.Node.nodeEndPoint node_60 deriving instance GHC.Classes.Eq a_65 => GHC.Classes.Eq (AnnotationArgumentList a_65) deriving instance GHC.Classes.Ord a_66 => GHC.Classes.Ord (AnnotationArgumentList a_66) deriving instance GHC.Show.Show a_67 => GHC.Show.Show (AnnotationArgumentList a_67) instance AST.Unmarshal.Unmarshal AnnotationArgumentList instance Data.Foldable.Foldable AnnotationArgumentList where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AnnotationArgumentList where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AnnotationArgumentList where traverse = AST.Traversable1.Class.traverseDefault1 data AnnotationTypeBody a = AnnotationTypeBody { ann :: a, extraChildren :: ([AST.Parse.Err ((AnnotationTypeDeclaration GHC.Generics.:+: AnnotationTypeElementDeclaration GHC.Generics.:+: ClassDeclaration GHC.Generics.:+: ConstantDeclaration GHC.Generics.:+: InterfaceDeclaration) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_68. AST.Traversable1.Class.Traversable1 a_68 ) instance AST.Unmarshal.SymbolMatching AnnotationTypeBody where matchedSymbols _ = [214] showFailure _ node_69 = "expected " GHC.Base.<> ( "annotation_type_body" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_69 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_70 c1_71 = TreeSitter.Node.nodeStartPoint node_69 TreeSitter.Node.TSPoint r2_72 c2_73 = TreeSitter.Node.nodeEndPoint node_69 deriving instance GHC.Classes.Eq a_74 => GHC.Classes.Eq (AnnotationTypeBody a_74) deriving instance GHC.Classes.Ord a_75 => GHC.Classes.Ord (AnnotationTypeBody a_75) deriving instance GHC.Show.Show a_76 => GHC.Show.Show (AnnotationTypeBody a_76) instance AST.Unmarshal.Unmarshal AnnotationTypeBody instance Data.Foldable.Foldable AnnotationTypeBody where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AnnotationTypeBody where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AnnotationTypeBody where traverse = AST.Traversable1.Class.traverseDefault1 data AnnotationTypeDeclaration a = AnnotationTypeDeclaration { ann :: a, body :: (AST.Parse.Err (AnnotationTypeBody a)), name :: (AST.Parse.Err (Identifier a)), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Modifiers a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_77. AST.Traversable1.Class.Traversable1 a_77 ) instance AST.Unmarshal.SymbolMatching AnnotationTypeDeclaration where matchedSymbols _ = [213] showFailure _ node_78 = "expected " GHC.Base.<> ( "annotation_type_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_78 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_79 c1_80 = TreeSitter.Node.nodeStartPoint node_78 TreeSitter.Node.TSPoint r2_81 c2_82 = TreeSitter.Node.nodeEndPoint node_78 deriving instance GHC.Classes.Eq a_83 => GHC.Classes.Eq (AnnotationTypeDeclaration a_83) deriving instance GHC.Classes.Ord a_84 => GHC.Classes.Ord (AnnotationTypeDeclaration a_84) deriving instance GHC.Show.Show a_85 => GHC.Show.Show (AnnotationTypeDeclaration a_85) instance AST.Unmarshal.Unmarshal AnnotationTypeDeclaration instance Data.Foldable.Foldable AnnotationTypeDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AnnotationTypeDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AnnotationTypeDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data AnnotationTypeElementDeclaration a = AnnotationTypeElementDeclaration { ann :: a, value :: (GHC.Maybe.Maybe (AST.Parse.Err ((Expression GHC.Generics.:+: Annotation GHC.Generics.:+: ElementValueArrayInitializer GHC.Generics.:+: MarkerAnnotation) a))), name :: (AST.Parse.Err (Identifier a)), type' :: (AST.Parse.Err (UnannotatedType a)), dimensions :: (GHC.Maybe.Maybe (AST.Parse.Err (Dimensions a))), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Modifiers a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_86. AST.Traversable1.Class.Traversable1 a_86 ) instance AST.Unmarshal.SymbolMatching AnnotationTypeElementDeclaration where matchedSymbols _ = [215] showFailure _ node_87 = "expected " GHC.Base.<> ( "annotation_type_element_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_87 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_88 c1_89 = TreeSitter.Node.nodeStartPoint node_87 TreeSitter.Node.TSPoint r2_90 c2_91 = TreeSitter.Node.nodeEndPoint node_87 deriving instance GHC.Classes.Eq a_92 => GHC.Classes.Eq (AnnotationTypeElementDeclaration a_92) deriving instance GHC.Classes.Ord a_93 => GHC.Classes.Ord (AnnotationTypeElementDeclaration a_93) deriving instance GHC.Show.Show a_94 => GHC.Show.Show (AnnotationTypeElementDeclaration a_94) instance AST.Unmarshal.Unmarshal AnnotationTypeElementDeclaration instance Data.Foldable.Foldable AnnotationTypeElementDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AnnotationTypeElementDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AnnotationTypeElementDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data ArgumentList a = ArgumentList { ann :: a, extraChildren :: ([AST.Parse.Err (Expression a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_95. AST.Traversable1.Class.Traversable1 a_95 ) instance AST.Unmarshal.SymbolMatching ArgumentList where matchedSymbols _ = [145] showFailure _ node_96 = "expected " GHC.Base.<> ( "argument_list" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_96 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_97 c1_98 = TreeSitter.Node.nodeStartPoint node_96 TreeSitter.Node.TSPoint r2_99 c2_100 = TreeSitter.Node.nodeEndPoint node_96 deriving instance GHC.Classes.Eq a_101 => GHC.Classes.Eq (ArgumentList a_101) deriving instance GHC.Classes.Ord a_102 => GHC.Classes.Ord (ArgumentList a_102) deriving instance GHC.Show.Show a_103 => GHC.Show.Show (ArgumentList a_103) instance AST.Unmarshal.Unmarshal ArgumentList instance Data.Foldable.Foldable ArgumentList where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ArgumentList where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ArgumentList where traverse = AST.Traversable1.Class.traverseDefault1 data ArrayAccess a = ArrayAccess { ann :: a, array :: (AST.Parse.Err ((Primary GHC.Generics.:+: Identifier GHC.Generics.:+: ScopedIdentifier) a)), index :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_104. AST.Traversable1.Class.Traversable1 a_104 ) instance AST.Unmarshal.SymbolMatching ArrayAccess where matchedSymbols _ = [143] showFailure _ node_105 = "expected " GHC.Base.<> ( "array_access" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_105 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_106 c1_107 = TreeSitter.Node.nodeStartPoint node_105 TreeSitter.Node.TSPoint r2_108 c2_109 = TreeSitter.Node.nodeEndPoint node_105 deriving instance GHC.Classes.Eq a_110 => GHC.Classes.Eq (ArrayAccess a_110) deriving instance GHC.Classes.Ord a_111 => GHC.Classes.Ord (ArrayAccess a_111) deriving instance GHC.Show.Show a_112 => GHC.Show.Show (ArrayAccess a_112) instance AST.Unmarshal.Unmarshal ArrayAccess instance Data.Foldable.Foldable ArrayAccess where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ArrayAccess where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ArrayAccess where traverse = AST.Traversable1.Class.traverseDefault1 data ArrayCreationExpression a = ArrayCreationExpression { ann :: a, value :: (GHC.Maybe.Maybe (AST.Parse.Err (ArrayInitializer a))), type' :: (AST.Parse.Err (SimpleType a)), dimensions :: (GHC.Base.NonEmpty (AST.Parse.Err ((Dimensions GHC.Generics.:+: DimensionsExpr) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_113. AST.Traversable1.Class.Traversable1 a_113 ) instance AST.Unmarshal.SymbolMatching ArrayCreationExpression where matchedSymbols _ = [136] showFailure _ node_114 = "expected " GHC.Base.<> ( "array_creation_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_114 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_115 c1_116 = TreeSitter.Node.nodeStartPoint node_114 TreeSitter.Node.TSPoint r2_117 c2_118 = TreeSitter.Node.nodeEndPoint node_114 deriving instance GHC.Classes.Eq a_119 => GHC.Classes.Eq (ArrayCreationExpression a_119) deriving instance GHC.Classes.Ord a_120 => GHC.Classes.Ord (ArrayCreationExpression a_120) deriving instance GHC.Show.Show a_121 => GHC.Show.Show (ArrayCreationExpression a_121) instance AST.Unmarshal.Unmarshal ArrayCreationExpression instance Data.Foldable.Foldable ArrayCreationExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ArrayCreationExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ArrayCreationExpression where traverse = AST.Traversable1.Class.traverseDefault1 data ArrayInitializer a = ArrayInitializer { ann :: a, extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: ArrayInitializer) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_122. AST.Traversable1.Class.Traversable1 a_122 ) instance AST.Unmarshal.SymbolMatching ArrayInitializer where matchedSymbols _ = [224] showFailure _ node_123 = "expected " GHC.Base.<> ( "array_initializer" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_123 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_124 c1_125 = TreeSitter.Node.nodeStartPoint node_123 TreeSitter.Node.TSPoint r2_126 c2_127 = TreeSitter.Node.nodeEndPoint node_123 deriving instance GHC.Classes.Eq a_128 => GHC.Classes.Eq (ArrayInitializer a_128) deriving instance GHC.Classes.Ord a_129 => GHC.Classes.Ord (ArrayInitializer a_129) deriving instance GHC.Show.Show a_130 => GHC.Show.Show (ArrayInitializer a_130) instance AST.Unmarshal.Unmarshal ArrayInitializer instance Data.Foldable.Foldable ArrayInitializer where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ArrayInitializer where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ArrayInitializer where traverse = AST.Traversable1.Class.traverseDefault1 data ArrayType a = ArrayType { ann :: a, dimensions :: (AST.Parse.Err (Dimensions a)), element :: (AST.Parse.Err (UnannotatedType a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_131. AST.Traversable1.Class.Traversable1 a_131 ) instance AST.Unmarshal.SymbolMatching ArrayType where matchedSymbols _ = [230] showFailure _ node_132 = "expected " GHC.Base.<> ( "array_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_132 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_133 c1_134 = TreeSitter.Node.nodeStartPoint node_132 TreeSitter.Node.TSPoint r2_135 c2_136 = TreeSitter.Node.nodeEndPoint node_132 deriving instance GHC.Classes.Eq a_137 => GHC.Classes.Eq (ArrayType a_137) deriving instance GHC.Classes.Ord a_138 => GHC.Classes.Ord (ArrayType a_138) deriving instance GHC.Show.Show a_139 => GHC.Show.Show (ArrayType a_139) instance AST.Unmarshal.Unmarshal ArrayType instance Data.Foldable.Foldable ArrayType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ArrayType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ArrayType where traverse = AST.Traversable1.Class.traverseDefault1 data AssertStatement a = AssertStatement { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Expression a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_140. AST.Traversable1.Class.Traversable1 a_140 ) instance AST.Unmarshal.SymbolMatching AssertStatement where matchedSymbols _ = [155] showFailure _ node_141 = "expected " GHC.Base.<> ( "assert_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_141 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_142 c1_143 = TreeSitter.Node.nodeStartPoint node_141 TreeSitter.Node.TSPoint r2_144 c2_145 = TreeSitter.Node.nodeEndPoint node_141 deriving instance GHC.Classes.Eq a_146 => GHC.Classes.Eq (AssertStatement a_146) deriving instance GHC.Classes.Ord a_147 => GHC.Classes.Ord (AssertStatement a_147) deriving instance GHC.Show.Show a_148 => GHC.Show.Show (AssertStatement a_148) instance AST.Unmarshal.Unmarshal AssertStatement instance Data.Foldable.Foldable AssertStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AssertStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AssertStatement where traverse = AST.Traversable1.Class.traverseDefault1 data AssignmentExpression a = AssignmentExpression { ann :: a, 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)), left :: (AST.Parse.Err ((ArrayAccess GHC.Generics.:+: FieldAccess GHC.Generics.:+: Identifier GHC.Generics.:+: ScopedIdentifier) a)), right :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_149. AST.Traversable1.Class.Traversable1 a_149 ) instance AST.Unmarshal.SymbolMatching AssignmentExpression where matchedSymbols _ = [127] showFailure _ node_150 = "expected " GHC.Base.<> ( "assignment_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_150 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_151 c1_152 = TreeSitter.Node.nodeStartPoint node_150 TreeSitter.Node.TSPoint r2_153 c2_154 = TreeSitter.Node.nodeEndPoint node_150 deriving instance GHC.Classes.Eq a_155 => GHC.Classes.Eq (AssignmentExpression a_155) deriving instance GHC.Classes.Ord a_156 => GHC.Classes.Ord (AssignmentExpression a_156) deriving instance GHC.Show.Show a_157 => GHC.Show.Show (AssignmentExpression a_157) instance AST.Unmarshal.Unmarshal AssignmentExpression instance Data.Foldable.Foldable AssignmentExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AssignmentExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AssignmentExpression where traverse = AST.Traversable1.Class.traverseDefault1 data Asterisk a = Asterisk {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_158. AST.Traversable1.Class.Traversable1 a_158 ) instance AST.Unmarshal.SymbolMatching Asterisk where matchedSymbols _ = [192] showFailure _ node_159 = "expected " GHC.Base.<> ( "asterisk" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_159 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_160 c1_161 = TreeSitter.Node.nodeStartPoint node_159 TreeSitter.Node.TSPoint r2_162 c2_163 = TreeSitter.Node.nodeEndPoint node_159 deriving instance GHC.Classes.Eq a_164 => GHC.Classes.Eq (Asterisk a_164) deriving instance GHC.Classes.Ord a_165 => GHC.Classes.Ord (Asterisk a_165) deriving instance GHC.Show.Show a_166 => GHC.Show.Show (Asterisk a_166) instance AST.Unmarshal.Unmarshal Asterisk instance Data.Foldable.Foldable Asterisk where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Asterisk where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Asterisk where traverse = AST.Traversable1.Class.traverseDefault1 data BinaryExpression a = BinaryExpression { ann :: a, 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)), left :: (AST.Parse.Err (Expression a)), right :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_167. AST.Traversable1.Class.Traversable1 a_167 ) instance AST.Unmarshal.SymbolMatching BinaryExpression where matchedSymbols _ = [128] showFailure _ node_168 = "expected " GHC.Base.<> ( "binary_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_168 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_169 c1_170 = TreeSitter.Node.nodeStartPoint node_168 TreeSitter.Node.TSPoint r2_171 c2_172 = TreeSitter.Node.nodeEndPoint node_168 deriving instance GHC.Classes.Eq a_173 => GHC.Classes.Eq (BinaryExpression a_173) deriving instance GHC.Classes.Ord a_174 => GHC.Classes.Ord (BinaryExpression a_174) deriving instance GHC.Show.Show a_175 => GHC.Show.Show (BinaryExpression a_175) instance AST.Unmarshal.Unmarshal BinaryExpression instance Data.Foldable.Foldable BinaryExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor BinaryExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable BinaryExpression where traverse = AST.Traversable1.Class.traverseDefault1 data Block a = Block { ann :: a, extraChildren :: ([AST.Parse.Err (Statement a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_176. AST.Traversable1.Class.Traversable1 a_176 ) instance AST.Unmarshal.SymbolMatching Block where matchedSymbols _ = [152] showFailure _ node_177 = "expected " GHC.Base.<> ( "block" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_177 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_178 c1_179 = TreeSitter.Node.nodeStartPoint node_177 TreeSitter.Node.TSPoint r2_180 c2_181 = TreeSitter.Node.nodeEndPoint node_177 deriving instance GHC.Classes.Eq a_182 => GHC.Classes.Eq (Block a_182) deriving instance GHC.Classes.Ord a_183 => GHC.Classes.Ord (Block a_183) deriving instance GHC.Show.Show a_184 => GHC.Show.Show (Block a_184) instance AST.Unmarshal.Unmarshal Block instance Data.Foldable.Foldable Block where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Block where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Block where traverse = AST.Traversable1.Class.traverseDefault1 data BreakStatement a = BreakStatement { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_185. AST.Traversable1.Class.Traversable1 a_185 ) instance AST.Unmarshal.SymbolMatching BreakStatement where matchedSymbols _ = [160] showFailure _ node_186 = "expected " GHC.Base.<> ( "break_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_186 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_187 c1_188 = TreeSitter.Node.nodeStartPoint node_186 TreeSitter.Node.TSPoint r2_189 c2_190 = TreeSitter.Node.nodeEndPoint node_186 deriving instance GHC.Classes.Eq a_191 => GHC.Classes.Eq (BreakStatement a_191) deriving instance GHC.Classes.Ord a_192 => GHC.Classes.Ord (BreakStatement a_192) deriving instance GHC.Show.Show a_193 => GHC.Show.Show (BreakStatement a_193) instance AST.Unmarshal.Unmarshal BreakStatement instance Data.Foldable.Foldable BreakStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor BreakStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable BreakStatement where traverse = AST.Traversable1.Class.traverseDefault1 data CastExpression a = CastExpression { ann :: a, value :: (AST.Parse.Err (Expression a)), type' :: (GHC.Base.NonEmpty (AST.Parse.Err (Type a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_194. AST.Traversable1.Class.Traversable1 a_194 ) instance AST.Unmarshal.SymbolMatching CastExpression where matchedSymbols _ = [126] showFailure _ node_195 = "expected " GHC.Base.<> ( "cast_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_195 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_196 c1_197 = TreeSitter.Node.nodeStartPoint node_195 TreeSitter.Node.TSPoint r2_198 c2_199 = TreeSitter.Node.nodeEndPoint node_195 deriving instance GHC.Classes.Eq a_200 => GHC.Classes.Eq (CastExpression a_200) deriving instance GHC.Classes.Ord a_201 => GHC.Classes.Ord (CastExpression a_201) deriving instance GHC.Show.Show a_202 => GHC.Show.Show (CastExpression a_202) instance AST.Unmarshal.Unmarshal CastExpression instance Data.Foldable.Foldable CastExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor CastExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable CastExpression where traverse = AST.Traversable1.Class.traverseDefault1 data CatchClause a = CatchClause { ann :: a, body :: (AST.Parse.Err (Block a)), extraChildren :: (AST.Parse.Err (CatchFormalParameter a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_203. AST.Traversable1.Class.Traversable1 a_203 ) instance AST.Unmarshal.SymbolMatching CatchClause where matchedSymbols _ = [166] showFailure _ node_204 = "expected " GHC.Base.<> ( "catch_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_204 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_205 c1_206 = TreeSitter.Node.nodeStartPoint node_204 TreeSitter.Node.TSPoint r2_207 c2_208 = TreeSitter.Node.nodeEndPoint node_204 deriving instance GHC.Classes.Eq a_209 => GHC.Classes.Eq (CatchClause a_209) deriving instance GHC.Classes.Ord a_210 => GHC.Classes.Ord (CatchClause a_210) deriving instance GHC.Show.Show a_211 => GHC.Show.Show (CatchClause a_211) instance AST.Unmarshal.Unmarshal CatchClause instance Data.Foldable.Foldable CatchClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor CatchClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable CatchClause where traverse = AST.Traversable1.Class.traverseDefault1 data CatchFormalParameter a = CatchFormalParameter { ann :: a, name :: (AST.Parse.Err (Identifier a)), dimensions :: (GHC.Maybe.Maybe (AST.Parse.Err (Dimensions a))), extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((CatchType GHC.Generics.:+: Modifiers) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_212. AST.Traversable1.Class.Traversable1 a_212 ) instance AST.Unmarshal.SymbolMatching CatchFormalParameter where matchedSymbols _ = [167] showFailure _ node_213 = "expected " GHC.Base.<> ( "catch_formal_parameter" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_213 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_214 c1_215 = TreeSitter.Node.nodeStartPoint node_213 TreeSitter.Node.TSPoint r2_216 c2_217 = TreeSitter.Node.nodeEndPoint node_213 deriving instance GHC.Classes.Eq a_218 => GHC.Classes.Eq (CatchFormalParameter a_218) deriving instance GHC.Classes.Ord a_219 => GHC.Classes.Ord (CatchFormalParameter a_219) deriving instance GHC.Show.Show a_220 => GHC.Show.Show (CatchFormalParameter a_220) instance AST.Unmarshal.Unmarshal CatchFormalParameter instance Data.Foldable.Foldable CatchFormalParameter where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor CatchFormalParameter where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable CatchFormalParameter where traverse = AST.Traversable1.Class.traverseDefault1 data CatchType a = CatchType { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (UnannotatedType a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_221. AST.Traversable1.Class.Traversable1 a_221 ) instance AST.Unmarshal.SymbolMatching CatchType where matchedSymbols _ = [168] showFailure _ node_222 = "expected " GHC.Base.<> ( "catch_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_222 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_223 c1_224 = TreeSitter.Node.nodeStartPoint node_222 TreeSitter.Node.TSPoint r2_225 c2_226 = TreeSitter.Node.nodeEndPoint node_222 deriving instance GHC.Classes.Eq a_227 => GHC.Classes.Eq (CatchType a_227) deriving instance GHC.Classes.Ord a_228 => GHC.Classes.Ord (CatchType a_228) deriving instance GHC.Show.Show a_229 => GHC.Show.Show (CatchType a_229) instance AST.Unmarshal.Unmarshal CatchType instance Data.Foldable.Foldable CatchType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor CatchType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable CatchType where traverse = AST.Traversable1.Class.traverseDefault1 data ClassBody a = ClassBody { ann :: a, 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)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_230. AST.Traversable1.Class.Traversable1 a_230 ) instance AST.Unmarshal.SymbolMatching ClassBody where matchedSymbols _ = [205] showFailure _ node_231 = "expected " GHC.Base.<> ( "class_body" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_231 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_232 c1_233 = TreeSitter.Node.nodeStartPoint node_231 TreeSitter.Node.TSPoint r2_234 c2_235 = TreeSitter.Node.nodeEndPoint node_231 deriving instance GHC.Classes.Eq a_236 => GHC.Classes.Eq (ClassBody a_236) deriving instance GHC.Classes.Ord a_237 => GHC.Classes.Ord (ClassBody a_237) deriving instance GHC.Show.Show a_238 => GHC.Show.Show (ClassBody a_238) instance AST.Unmarshal.Unmarshal ClassBody instance Data.Foldable.Foldable ClassBody where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ClassBody where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ClassBody where traverse = AST.Traversable1.Class.traverseDefault1 data ClassDeclaration a = ClassDeclaration { ann :: a, body :: (AST.Parse.Err (ClassBody a)), interfaces :: (GHC.Maybe.Maybe (AST.Parse.Err (SuperInterfaces a))), name :: (AST.Parse.Err (Identifier a)), superclass :: (GHC.Maybe.Maybe (AST.Parse.Err (Superclass a))), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Modifiers a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_239. AST.Traversable1.Class.Traversable1 a_239 ) instance AST.Unmarshal.SymbolMatching ClassDeclaration where matchedSymbols _ = [197] showFailure _ node_240 = "expected " GHC.Base.<> ( "class_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_240 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_241 c1_242 = TreeSitter.Node.nodeStartPoint node_240 TreeSitter.Node.TSPoint r2_243 c2_244 = TreeSitter.Node.nodeEndPoint node_240 deriving instance GHC.Classes.Eq a_245 => GHC.Classes.Eq (ClassDeclaration a_245) deriving instance GHC.Classes.Ord a_246 => GHC.Classes.Ord (ClassDeclaration a_246) deriving instance GHC.Show.Show a_247 => GHC.Show.Show (ClassDeclaration a_247) instance AST.Unmarshal.Unmarshal ClassDeclaration instance Data.Foldable.Foldable ClassDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ClassDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ClassDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data ClassLiteral a = ClassLiteral { ann :: a, extraChildren :: (AST.Parse.Err ((BooleanType GHC.Generics.:+: FloatingPointType GHC.Generics.:+: Identifier GHC.Generics.:+: IntegralType GHC.Generics.:+: ScopedIdentifier GHC.Generics.:+: VoidType) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_248. AST.Traversable1.Class.Traversable1 a_248 ) instance AST.Unmarshal.SymbolMatching ClassLiteral where matchedSymbols _ = [139] showFailure _ node_249 = "expected " GHC.Base.<> ( "class_literal" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_249 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_250 c1_251 = TreeSitter.Node.nodeStartPoint node_249 TreeSitter.Node.TSPoint r2_252 c2_253 = TreeSitter.Node.nodeEndPoint node_249 deriving instance GHC.Classes.Eq a_254 => GHC.Classes.Eq (ClassLiteral a_254) deriving instance GHC.Classes.Ord a_255 => GHC.Classes.Ord (ClassLiteral a_255) deriving instance GHC.Show.Show a_256 => GHC.Show.Show (ClassLiteral a_256) instance AST.Unmarshal.Unmarshal ClassLiteral instance Data.Foldable.Foldable ClassLiteral where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ClassLiteral where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ClassLiteral where traverse = AST.Traversable1.Class.traverseDefault1 data ConstantDeclaration a = ConstantDeclaration { ann :: a, declarator :: (GHC.Base.NonEmpty (AST.Parse.Err (VariableDeclarator a))), type' :: (AST.Parse.Err (UnannotatedType a)), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Modifiers a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_257. AST.Traversable1.Class.Traversable1 a_257 ) instance AST.Unmarshal.SymbolMatching ConstantDeclaration where matchedSymbols _ = [220] showFailure _ node_258 = "expected " GHC.Base.<> ( "constant_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_258 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_259 c1_260 = TreeSitter.Node.nodeStartPoint node_258 TreeSitter.Node.TSPoint r2_261 c2_262 = TreeSitter.Node.nodeEndPoint node_258 deriving instance GHC.Classes.Eq a_263 => GHC.Classes.Eq (ConstantDeclaration a_263) deriving instance GHC.Classes.Ord a_264 => GHC.Classes.Ord (ConstantDeclaration a_264) deriving instance GHC.Show.Show a_265 => GHC.Show.Show (ConstantDeclaration a_265) instance AST.Unmarshal.Unmarshal ConstantDeclaration instance Data.Foldable.Foldable ConstantDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ConstantDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ConstantDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data ConstructorBody a = ConstructorBody { ann :: a, extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: ExplicitConstructorInvocation) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_266. AST.Traversable1.Class.Traversable1 a_266 ) instance AST.Unmarshal.SymbolMatching ConstructorBody where matchedSymbols _ = [209] showFailure _ node_267 = "expected " GHC.Base.<> ( "constructor_body" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_267 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_268 c1_269 = TreeSitter.Node.nodeStartPoint node_267 TreeSitter.Node.TSPoint r2_270 c2_271 = TreeSitter.Node.nodeEndPoint node_267 deriving instance GHC.Classes.Eq a_272 => GHC.Classes.Eq (ConstructorBody a_272) deriving instance GHC.Classes.Ord a_273 => GHC.Classes.Ord (ConstructorBody a_273) deriving instance GHC.Show.Show a_274 => GHC.Show.Show (ConstructorBody a_274) instance AST.Unmarshal.Unmarshal ConstructorBody instance Data.Foldable.Foldable ConstructorBody where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ConstructorBody where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ConstructorBody where traverse = AST.Traversable1.Class.traverseDefault1 data ConstructorDeclaration a = ConstructorDeclaration { ann :: a, body :: (AST.Parse.Err (ConstructorBody a)), typeParamaters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))), name :: (AST.Parse.Err (Identifier a)), parameters :: (AST.Parse.Err (FormalParameters a)), extraChildren :: ([AST.Parse.Err ((Modifiers GHC.Generics.:+: Throws) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_275. AST.Traversable1.Class.Traversable1 a_275 ) instance AST.Unmarshal.SymbolMatching ConstructorDeclaration where matchedSymbols _ = [207] showFailure _ node_276 = "expected " GHC.Base.<> ( "constructor_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_276 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_277 c1_278 = TreeSitter.Node.nodeStartPoint node_276 TreeSitter.Node.TSPoint r2_279 c2_280 = TreeSitter.Node.nodeEndPoint node_276 deriving instance GHC.Classes.Eq a_281 => GHC.Classes.Eq (ConstructorDeclaration a_281) deriving instance GHC.Classes.Ord a_282 => GHC.Classes.Ord (ConstructorDeclaration a_282) deriving instance GHC.Show.Show a_283 => GHC.Show.Show (ConstructorDeclaration a_283) instance AST.Unmarshal.Unmarshal ConstructorDeclaration instance Data.Foldable.Foldable ConstructorDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ConstructorDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ConstructorDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data ContinueStatement a = ContinueStatement { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_284. AST.Traversable1.Class.Traversable1 a_284 ) instance AST.Unmarshal.SymbolMatching ContinueStatement where matchedSymbols _ = [161] showFailure _ node_285 = "expected " GHC.Base.<> ( "continue_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_285 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_286 c1_287 = TreeSitter.Node.nodeStartPoint node_285 TreeSitter.Node.TSPoint r2_288 c2_289 = TreeSitter.Node.nodeEndPoint node_285 deriving instance GHC.Classes.Eq a_290 => GHC.Classes.Eq (ContinueStatement a_290) deriving instance GHC.Classes.Ord a_291 => GHC.Classes.Ord (ContinueStatement a_291) deriving instance GHC.Show.Show a_292 => GHC.Show.Show (ContinueStatement a_292) instance AST.Unmarshal.Unmarshal ContinueStatement instance Data.Foldable.Foldable ContinueStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ContinueStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ContinueStatement where traverse = AST.Traversable1.Class.traverseDefault1 data Dimensions a = Dimensions { ann :: a, extraChildren :: ([AST.Parse.Err ((Annotation GHC.Generics.:+: MarkerAnnotation) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_293. AST.Traversable1.Class.Traversable1 a_293 ) instance AST.Unmarshal.SymbolMatching Dimensions where matchedSymbols _ = [150] showFailure _ node_294 = "expected " GHC.Base.<> ( "dimensions" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_294 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_295 c1_296 = TreeSitter.Node.nodeStartPoint node_294 TreeSitter.Node.TSPoint r2_297 c2_298 = TreeSitter.Node.nodeEndPoint node_294 deriving instance GHC.Classes.Eq a_299 => GHC.Classes.Eq (Dimensions a_299) deriving instance GHC.Classes.Ord a_300 => GHC.Classes.Ord (Dimensions a_300) deriving instance GHC.Show.Show a_301 => GHC.Show.Show (Dimensions a_301) instance AST.Unmarshal.Unmarshal Dimensions instance Data.Foldable.Foldable Dimensions where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Dimensions where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Dimensions where traverse = AST.Traversable1.Class.traverseDefault1 data DimensionsExpr a = DimensionsExpr { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: Annotation GHC.Generics.:+: MarkerAnnotation) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_302. AST.Traversable1.Class.Traversable1 a_302 ) instance AST.Unmarshal.SymbolMatching DimensionsExpr where matchedSymbols _ = [137] showFailure _ node_303 = "expected " GHC.Base.<> ( "dimensions_expr" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_303 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_304 c1_305 = TreeSitter.Node.nodeStartPoint node_303 TreeSitter.Node.TSPoint r2_306 c2_307 = TreeSitter.Node.nodeEndPoint node_303 deriving instance GHC.Classes.Eq a_308 => GHC.Classes.Eq (DimensionsExpr a_308) deriving instance GHC.Classes.Ord a_309 => GHC.Classes.Ord (DimensionsExpr a_309) deriving instance GHC.Show.Show a_310 => GHC.Show.Show (DimensionsExpr a_310) instance AST.Unmarshal.Unmarshal DimensionsExpr instance Data.Foldable.Foldable DimensionsExpr where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DimensionsExpr where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DimensionsExpr where traverse = AST.Traversable1.Class.traverseDefault1 data DoStatement a = DoStatement { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: Statement) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_311. AST.Traversable1.Class.Traversable1 a_311 ) instance AST.Unmarshal.SymbolMatching DoStatement where matchedSymbols _ = [159] showFailure _ node_312 = "expected " GHC.Base.<> ( "do_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_312 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_313 c1_314 = TreeSitter.Node.nodeStartPoint node_312 TreeSitter.Node.TSPoint r2_315 c2_316 = TreeSitter.Node.nodeEndPoint node_312 deriving instance GHC.Classes.Eq a_317 => GHC.Classes.Eq (DoStatement a_317) deriving instance GHC.Classes.Ord a_318 => GHC.Classes.Ord (DoStatement a_318) deriving instance GHC.Show.Show a_319 => GHC.Show.Show (DoStatement a_319) instance AST.Unmarshal.Unmarshal DoStatement instance Data.Foldable.Foldable DoStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DoStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DoStatement where traverse = AST.Traversable1.Class.traverseDefault1 data ElementValueArrayInitializer a = ElementValueArrayInitializer { ann :: a, extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: Annotation GHC.Generics.:+: ElementValueArrayInitializer GHC.Generics.:+: MarkerAnnotation) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_320. AST.Traversable1.Class.Traversable1 a_320 ) instance AST.Unmarshal.SymbolMatching ElementValueArrayInitializer where matchedSymbols _ = [184] showFailure _ node_321 = "expected " GHC.Base.<> ( "element_value_array_initializer" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_321 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_322 c1_323 = TreeSitter.Node.nodeStartPoint node_321 TreeSitter.Node.TSPoint r2_324 c2_325 = TreeSitter.Node.nodeEndPoint node_321 deriving instance GHC.Classes.Eq a_326 => GHC.Classes.Eq (ElementValueArrayInitializer a_326) deriving instance GHC.Classes.Ord a_327 => GHC.Classes.Ord (ElementValueArrayInitializer a_327) deriving instance GHC.Show.Show a_328 => GHC.Show.Show (ElementValueArrayInitializer a_328) instance AST.Unmarshal.Unmarshal ElementValueArrayInitializer instance Data.Foldable.Foldable ElementValueArrayInitializer where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ElementValueArrayInitializer where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ElementValueArrayInitializer where traverse = AST.Traversable1.Class.traverseDefault1 data ElementValuePair a = ElementValuePair { ann :: a, value :: (AST.Parse.Err ((Expression GHC.Generics.:+: Annotation GHC.Generics.:+: ElementValueArrayInitializer GHC.Generics.:+: MarkerAnnotation) a)), key :: (AST.Parse.Err (Identifier a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_329. AST.Traversable1.Class.Traversable1 a_329 ) instance AST.Unmarshal.SymbolMatching ElementValuePair where matchedSymbols _ = [182] showFailure _ node_330 = "expected " GHC.Base.<> ( "element_value_pair" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_330 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_331 c1_332 = TreeSitter.Node.nodeStartPoint node_330 TreeSitter.Node.TSPoint r2_333 c2_334 = TreeSitter.Node.nodeEndPoint node_330 deriving instance GHC.Classes.Eq a_335 => GHC.Classes.Eq (ElementValuePair a_335) deriving instance GHC.Classes.Ord a_336 => GHC.Classes.Ord (ElementValuePair a_336) deriving instance GHC.Show.Show a_337 => GHC.Show.Show (ElementValuePair a_337) instance AST.Unmarshal.Unmarshal ElementValuePair instance Data.Foldable.Foldable ElementValuePair where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ElementValuePair where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ElementValuePair where traverse = AST.Traversable1.Class.traverseDefault1 data EnhancedForStatement a = EnhancedForStatement { ann :: a, body :: (AST.Parse.Err (Statement a)), value :: (AST.Parse.Err (Expression a)), name :: (AST.Parse.Err (Identifier a)), type' :: (AST.Parse.Err (UnannotatedType a)), dimensions :: (GHC.Maybe.Maybe (AST.Parse.Err (Dimensions a))), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Modifiers a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_338. AST.Traversable1.Class.Traversable1 a_338 ) instance AST.Unmarshal.SymbolMatching EnhancedForStatement where matchedSymbols _ = [177] showFailure _ node_339 = "expected " GHC.Base.<> ( "enhanced_for_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_339 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_340 c1_341 = TreeSitter.Node.nodeStartPoint node_339 TreeSitter.Node.TSPoint r2_342 c2_343 = TreeSitter.Node.nodeEndPoint node_339 deriving instance GHC.Classes.Eq a_344 => GHC.Classes.Eq (EnhancedForStatement a_344) deriving instance GHC.Classes.Ord a_345 => GHC.Classes.Ord (EnhancedForStatement a_345) deriving instance GHC.Show.Show a_346 => GHC.Show.Show (EnhancedForStatement a_346) instance AST.Unmarshal.Unmarshal EnhancedForStatement instance Data.Foldable.Foldable EnhancedForStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor EnhancedForStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable EnhancedForStatement where traverse = AST.Traversable1.Class.traverseDefault1 data EnumBody a = EnumBody { ann :: a, extraChildren :: ([AST.Parse.Err ((EnumBodyDeclarations GHC.Generics.:+: EnumConstant) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_347. AST.Traversable1.Class.Traversable1 a_347 ) instance AST.Unmarshal.SymbolMatching EnumBody where matchedSymbols _ = [194] showFailure _ node_348 = "expected " GHC.Base.<> ( "enum_body" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_348 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_349 c1_350 = TreeSitter.Node.nodeStartPoint node_348 TreeSitter.Node.TSPoint r2_351 c2_352 = TreeSitter.Node.nodeEndPoint node_348 deriving instance GHC.Classes.Eq a_353 => GHC.Classes.Eq (EnumBody a_353) deriving instance GHC.Classes.Ord a_354 => GHC.Classes.Ord (EnumBody a_354) deriving instance GHC.Show.Show a_355 => GHC.Show.Show (EnumBody a_355) instance AST.Unmarshal.Unmarshal EnumBody instance Data.Foldable.Foldable EnumBody where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor EnumBody where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable EnumBody where traverse = AST.Traversable1.Class.traverseDefault1 data EnumBodyDeclarations a = EnumBodyDeclarations { ann :: a, 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)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_356. AST.Traversable1.Class.Traversable1 a_356 ) instance AST.Unmarshal.SymbolMatching EnumBodyDeclarations where matchedSymbols _ = [195] showFailure _ node_357 = "expected " GHC.Base.<> ( "enum_body_declarations" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_357 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_358 c1_359 = TreeSitter.Node.nodeStartPoint node_357 TreeSitter.Node.TSPoint r2_360 c2_361 = TreeSitter.Node.nodeEndPoint node_357 deriving instance GHC.Classes.Eq a_362 => GHC.Classes.Eq (EnumBodyDeclarations a_362) deriving instance GHC.Classes.Ord a_363 => GHC.Classes.Ord (EnumBodyDeclarations a_363) deriving instance GHC.Show.Show a_364 => GHC.Show.Show (EnumBodyDeclarations a_364) instance AST.Unmarshal.Unmarshal EnumBodyDeclarations instance Data.Foldable.Foldable EnumBodyDeclarations where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor EnumBodyDeclarations where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable EnumBodyDeclarations where traverse = AST.Traversable1.Class.traverseDefault1 data EnumConstant a = EnumConstant { ann :: a, body :: (GHC.Maybe.Maybe (AST.Parse.Err (ClassBody a))), arguments :: (GHC.Maybe.Maybe (AST.Parse.Err (ArgumentList a))), name :: (AST.Parse.Err (Identifier a)), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Modifiers a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_365. AST.Traversable1.Class.Traversable1 a_365 ) instance AST.Unmarshal.SymbolMatching EnumConstant where matchedSymbols _ = [196] showFailure _ node_366 = "expected " GHC.Base.<> ( "enum_constant" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_366 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_367 c1_368 = TreeSitter.Node.nodeStartPoint node_366 TreeSitter.Node.TSPoint r2_369 c2_370 = TreeSitter.Node.nodeEndPoint node_366 deriving instance GHC.Classes.Eq a_371 => GHC.Classes.Eq (EnumConstant a_371) deriving instance GHC.Classes.Ord a_372 => GHC.Classes.Ord (EnumConstant a_372) deriving instance GHC.Show.Show a_373 => GHC.Show.Show (EnumConstant a_373) instance AST.Unmarshal.Unmarshal EnumConstant instance Data.Foldable.Foldable EnumConstant where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor EnumConstant where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable EnumConstant where traverse = AST.Traversable1.Class.traverseDefault1 data EnumDeclaration a = EnumDeclaration { ann :: a, body :: (AST.Parse.Err (EnumBody a)), interfaces :: (GHC.Maybe.Maybe (AST.Parse.Err (SuperInterfaces a))), name :: (AST.Parse.Err (Identifier a)), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Modifiers a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_374. AST.Traversable1.Class.Traversable1 a_374 ) instance AST.Unmarshal.SymbolMatching EnumDeclaration where matchedSymbols _ = [193] showFailure _ node_375 = "expected " GHC.Base.<> ( "enum_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_375 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_376 c1_377 = TreeSitter.Node.nodeStartPoint node_375 TreeSitter.Node.TSPoint r2_378 c2_379 = TreeSitter.Node.nodeEndPoint node_375 deriving instance GHC.Classes.Eq a_380 => GHC.Classes.Eq (EnumDeclaration a_380) deriving instance GHC.Classes.Ord a_381 => GHC.Classes.Ord (EnumDeclaration a_381) deriving instance GHC.Show.Show a_382 => GHC.Show.Show (EnumDeclaration a_382) instance AST.Unmarshal.Unmarshal EnumDeclaration instance Data.Foldable.Foldable EnumDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor EnumDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable EnumDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data ExplicitConstructorInvocation a = ExplicitConstructorInvocation { ann :: a, arguments :: (AST.Parse.Err (ArgumentList a)), typeArguments :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeArguments a))), object :: (GHC.Maybe.Maybe (AST.Parse.Err ((Primary GHC.Generics.:+: Identifier GHC.Generics.:+: ScopedIdentifier) a))), constructor :: (AST.Parse.Err ((Super GHC.Generics.:+: This) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_383. AST.Traversable1.Class.Traversable1 a_383 ) instance AST.Unmarshal.SymbolMatching ExplicitConstructorInvocation where matchedSymbols _ = [210] showFailure _ node_384 = "expected " GHC.Base.<> ( "explicit_constructor_invocation" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_384 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_385 c1_386 = TreeSitter.Node.nodeStartPoint node_384 TreeSitter.Node.TSPoint r2_387 c2_388 = TreeSitter.Node.nodeEndPoint node_384 deriving instance GHC.Classes.Eq a_389 => GHC.Classes.Eq (ExplicitConstructorInvocation a_389) deriving instance GHC.Classes.Ord a_390 => GHC.Classes.Ord (ExplicitConstructorInvocation a_390) deriving instance GHC.Show.Show a_391 => GHC.Show.Show (ExplicitConstructorInvocation a_391) instance AST.Unmarshal.Unmarshal ExplicitConstructorInvocation instance Data.Foldable.Foldable ExplicitConstructorInvocation where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ExplicitConstructorInvocation where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ExplicitConstructorInvocation where traverse = AST.Traversable1.Class.traverseDefault1 data ExpressionStatement a = ExpressionStatement { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_392. AST.Traversable1.Class.Traversable1 a_392 ) instance AST.Unmarshal.SymbolMatching ExpressionStatement where matchedSymbols _ = [153] showFailure _ node_393 = "expected " GHC.Base.<> ( "expression_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_393 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_394 c1_395 = TreeSitter.Node.nodeStartPoint node_393 TreeSitter.Node.TSPoint r2_396 c2_397 = TreeSitter.Node.nodeEndPoint node_393 deriving instance GHC.Classes.Eq a_398 => GHC.Classes.Eq (ExpressionStatement a_398) deriving instance GHC.Classes.Ord a_399 => GHC.Classes.Ord (ExpressionStatement a_399) deriving instance GHC.Show.Show a_400 => GHC.Show.Show (ExpressionStatement a_400) instance AST.Unmarshal.Unmarshal ExpressionStatement instance Data.Foldable.Foldable ExpressionStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ExpressionStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ExpressionStatement where traverse = AST.Traversable1.Class.traverseDefault1 data ExtendsInterfaces a = ExtendsInterfaces { ann :: a, extraChildren :: (AST.Parse.Err (InterfaceTypeList a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_401. AST.Traversable1.Class.Traversable1 a_401 ) instance AST.Unmarshal.SymbolMatching ExtendsInterfaces where matchedSymbols _ = [218] showFailure _ node_402 = "expected " GHC.Base.<> ( "extends_interfaces" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_402 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_403 c1_404 = TreeSitter.Node.nodeStartPoint node_402 TreeSitter.Node.TSPoint r2_405 c2_406 = TreeSitter.Node.nodeEndPoint node_402 deriving instance GHC.Classes.Eq a_407 => GHC.Classes.Eq (ExtendsInterfaces a_407) deriving instance GHC.Classes.Ord a_408 => GHC.Classes.Ord (ExtendsInterfaces a_408) deriving instance GHC.Show.Show a_409 => GHC.Show.Show (ExtendsInterfaces a_409) instance AST.Unmarshal.Unmarshal ExtendsInterfaces instance Data.Foldable.Foldable ExtendsInterfaces where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ExtendsInterfaces where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ExtendsInterfaces where traverse = AST.Traversable1.Class.traverseDefault1 data FieldAccess a = FieldAccess { ann :: a, field :: (AST.Parse.Err ((Identifier GHC.Generics.:+: This) a)), object :: (AST.Parse.Err ((Primary GHC.Generics.:+: Identifier GHC.Generics.:+: ScopedIdentifier GHC.Generics.:+: Super) a)), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Super a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_410. AST.Traversable1.Class.Traversable1 a_410 ) instance AST.Unmarshal.SymbolMatching FieldAccess where matchedSymbols _ = [142] showFailure _ node_411 = "expected " GHC.Base.<> ( "field_access" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_411 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_412 c1_413 = TreeSitter.Node.nodeStartPoint node_411 TreeSitter.Node.TSPoint r2_414 c2_415 = TreeSitter.Node.nodeEndPoint node_411 deriving instance GHC.Classes.Eq a_416 => GHC.Classes.Eq (FieldAccess a_416) deriving instance GHC.Classes.Ord a_417 => GHC.Classes.Ord (FieldAccess a_417) deriving instance GHC.Show.Show a_418 => GHC.Show.Show (FieldAccess a_418) instance AST.Unmarshal.Unmarshal FieldAccess instance Data.Foldable.Foldable FieldAccess where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FieldAccess where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FieldAccess where traverse = AST.Traversable1.Class.traverseDefault1 data FieldDeclaration a = FieldDeclaration { ann :: a, declarator :: (GHC.Base.NonEmpty (AST.Parse.Err (VariableDeclarator a))), type' :: (AST.Parse.Err (UnannotatedType a)), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Modifiers a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_419. AST.Traversable1.Class.Traversable1 a_419 ) instance AST.Unmarshal.SymbolMatching FieldDeclaration where matchedSymbols _ = [212] showFailure _ node_420 = "expected " GHC.Base.<> ( "field_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_420 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_421 c1_422 = TreeSitter.Node.nodeStartPoint node_420 TreeSitter.Node.TSPoint r2_423 c2_424 = TreeSitter.Node.nodeEndPoint node_420 deriving instance GHC.Classes.Eq a_425 => GHC.Classes.Eq (FieldDeclaration a_425) deriving instance GHC.Classes.Ord a_426 => GHC.Classes.Ord (FieldDeclaration a_426) deriving instance GHC.Show.Show a_427 => GHC.Show.Show (FieldDeclaration a_427) instance AST.Unmarshal.Unmarshal FieldDeclaration instance Data.Foldable.Foldable FieldDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FieldDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FieldDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data FinallyClause a = FinallyClause { ann :: a, extraChildren :: (AST.Parse.Err (Block a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_428. AST.Traversable1.Class.Traversable1 a_428 ) instance AST.Unmarshal.SymbolMatching FinallyClause where matchedSymbols _ = [169] showFailure _ node_429 = "expected " GHC.Base.<> ( "finally_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_429 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_430 c1_431 = TreeSitter.Node.nodeStartPoint node_429 TreeSitter.Node.TSPoint r2_432 c2_433 = TreeSitter.Node.nodeEndPoint node_429 deriving instance GHC.Classes.Eq a_434 => GHC.Classes.Eq (FinallyClause a_434) deriving instance GHC.Classes.Ord a_435 => GHC.Classes.Ord (FinallyClause a_435) deriving instance GHC.Show.Show a_436 => GHC.Show.Show (FinallyClause a_436) instance AST.Unmarshal.Unmarshal FinallyClause instance Data.Foldable.Foldable FinallyClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FinallyClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FinallyClause where traverse = AST.Traversable1.Class.traverseDefault1 data FloatingPointType a = FloatingPointType {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_437. AST.Traversable1.Class.Traversable1 a_437 ) instance AST.Unmarshal.SymbolMatching FloatingPointType where matchedSymbols _ = [232] showFailure _ node_438 = "expected " GHC.Base.<> ( "floating_point_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_438 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_439 c1_440 = TreeSitter.Node.nodeStartPoint node_438 TreeSitter.Node.TSPoint r2_441 c2_442 = TreeSitter.Node.nodeEndPoint node_438 deriving instance GHC.Classes.Eq a_443 => GHC.Classes.Eq (FloatingPointType a_443) deriving instance GHC.Classes.Ord a_444 => GHC.Classes.Ord (FloatingPointType a_444) deriving instance GHC.Show.Show a_445 => GHC.Show.Show (FloatingPointType a_445) instance AST.Unmarshal.Unmarshal FloatingPointType instance Data.Foldable.Foldable FloatingPointType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FloatingPointType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FloatingPointType where traverse = AST.Traversable1.Class.traverseDefault1 data ForInit a = ForInit { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: LocalVariableDeclaration) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_446. AST.Traversable1.Class.Traversable1 a_446 ) instance AST.Unmarshal.SymbolMatching ForInit where matchedSymbols _ = [176] showFailure _ node_447 = "expected " GHC.Base.<> ( "for_init" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_447 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_448 c1_449 = TreeSitter.Node.nodeStartPoint node_447 TreeSitter.Node.TSPoint r2_450 c2_451 = TreeSitter.Node.nodeEndPoint node_447 deriving instance GHC.Classes.Eq a_452 => GHC.Classes.Eq (ForInit a_452) deriving instance GHC.Classes.Ord a_453 => GHC.Classes.Ord (ForInit a_453) deriving instance GHC.Show.Show a_454 => GHC.Show.Show (ForInit a_454) instance AST.Unmarshal.Unmarshal ForInit instance Data.Foldable.Foldable ForInit where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ForInit where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ForInit where traverse = AST.Traversable1.Class.traverseDefault1 data ForStatement a = ForStatement { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: Statement GHC.Generics.:+: ForInit) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_455. AST.Traversable1.Class.Traversable1 a_455 ) instance AST.Unmarshal.SymbolMatching ForStatement where matchedSymbols _ = [175] showFailure _ node_456 = "expected " GHC.Base.<> ( "for_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_456 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_457 c1_458 = TreeSitter.Node.nodeStartPoint node_456 TreeSitter.Node.TSPoint r2_459 c2_460 = TreeSitter.Node.nodeEndPoint node_456 deriving instance GHC.Classes.Eq a_461 => GHC.Classes.Eq (ForStatement a_461) deriving instance GHC.Classes.Ord a_462 => GHC.Classes.Ord (ForStatement a_462) deriving instance GHC.Show.Show a_463 => GHC.Show.Show (ForStatement a_463) instance AST.Unmarshal.Unmarshal ForStatement instance Data.Foldable.Foldable ForStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ForStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ForStatement where traverse = AST.Traversable1.Class.traverseDefault1 data FormalParameter a = FormalParameter { ann :: a, name :: (AST.Parse.Err (Identifier a)), type' :: (AST.Parse.Err (UnannotatedType a)), dimensions :: (GHC.Maybe.Maybe (AST.Parse.Err (Dimensions a))), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Modifiers a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_464. AST.Traversable1.Class.Traversable1 a_464 ) instance AST.Unmarshal.SymbolMatching FormalParameter where matchedSymbols _ = [236] showFailure _ node_465 = "expected " GHC.Base.<> ( "formal_parameter" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_465 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_466 c1_467 = TreeSitter.Node.nodeStartPoint node_465 TreeSitter.Node.TSPoint r2_468 c2_469 = TreeSitter.Node.nodeEndPoint node_465 deriving instance GHC.Classes.Eq a_470 => GHC.Classes.Eq (FormalParameter a_470) deriving instance GHC.Classes.Ord a_471 => GHC.Classes.Ord (FormalParameter a_471) deriving instance GHC.Show.Show a_472 => GHC.Show.Show (FormalParameter a_472) instance AST.Unmarshal.Unmarshal FormalParameter instance Data.Foldable.Foldable FormalParameter where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FormalParameter where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FormalParameter where traverse = AST.Traversable1.Class.traverseDefault1 data FormalParameters a = FormalParameters { ann :: a, extraChildren :: ([AST.Parse.Err ((FormalParameter GHC.Generics.:+: ReceiverParameter GHC.Generics.:+: SpreadParameter) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_473. AST.Traversable1.Class.Traversable1 a_473 ) instance AST.Unmarshal.SymbolMatching FormalParameters where matchedSymbols _ = [235] showFailure _ node_474 = "expected " GHC.Base.<> ( "formal_parameters" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_474 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_475 c1_476 = TreeSitter.Node.nodeStartPoint node_474 TreeSitter.Node.TSPoint r2_477 c2_478 = TreeSitter.Node.nodeEndPoint node_474 deriving instance GHC.Classes.Eq a_479 => GHC.Classes.Eq (FormalParameters a_479) deriving instance GHC.Classes.Ord a_480 => GHC.Classes.Ord (FormalParameters a_480) deriving instance GHC.Show.Show a_481 => GHC.Show.Show (FormalParameters a_481) instance AST.Unmarshal.Unmarshal FormalParameters instance Data.Foldable.Foldable FormalParameters where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FormalParameters where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FormalParameters where traverse = AST.Traversable1.Class.traverseDefault1 data GenericType a = GenericType { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ScopedTypeIdentifier GHC.Generics.:+: TypeArguments GHC.Generics.:+: TypeIdentifier) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_482. AST.Traversable1.Class.Traversable1 a_482 ) instance AST.Unmarshal.SymbolMatching GenericType where matchedSymbols _ = [229] showFailure _ node_483 = "expected " GHC.Base.<> ( "generic_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_483 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_484 c1_485 = TreeSitter.Node.nodeStartPoint node_483 TreeSitter.Node.TSPoint r2_486 c2_487 = TreeSitter.Node.nodeEndPoint node_483 deriving instance GHC.Classes.Eq a_488 => GHC.Classes.Eq (GenericType a_488) deriving instance GHC.Classes.Ord a_489 => GHC.Classes.Ord (GenericType a_489) deriving instance GHC.Show.Show a_490 => GHC.Show.Show (GenericType a_490) instance AST.Unmarshal.Unmarshal GenericType instance Data.Foldable.Foldable GenericType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor GenericType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable GenericType where traverse = AST.Traversable1.Class.traverseDefault1 data IfStatement a = IfStatement { ann :: a, alternative :: (GHC.Maybe.Maybe (AST.Parse.Err (Statement a))), consequence :: (AST.Parse.Err (Statement a)), condition :: (AST.Parse.Err (ParenthesizedExpression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_491. AST.Traversable1.Class.Traversable1 a_491 ) instance AST.Unmarshal.SymbolMatching IfStatement where matchedSymbols _ = [173] showFailure _ node_492 = "expected " GHC.Base.<> ( "if_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_492 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_493 c1_494 = TreeSitter.Node.nodeStartPoint node_492 TreeSitter.Node.TSPoint r2_495 c2_496 = TreeSitter.Node.nodeEndPoint node_492 deriving instance GHC.Classes.Eq a_497 => GHC.Classes.Eq (IfStatement a_497) deriving instance GHC.Classes.Ord a_498 => GHC.Classes.Ord (IfStatement a_498) deriving instance GHC.Show.Show a_499 => GHC.Show.Show (IfStatement a_499) instance AST.Unmarshal.Unmarshal IfStatement instance Data.Foldable.Foldable IfStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor IfStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable IfStatement where traverse = AST.Traversable1.Class.traverseDefault1 data ImportDeclaration a = ImportDeclaration { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Asterisk GHC.Generics.:+: Identifier) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_500. AST.Traversable1.Class.Traversable1 a_500 ) instance AST.Unmarshal.SymbolMatching ImportDeclaration where matchedSymbols _ = [191] showFailure _ node_501 = "expected " GHC.Base.<> ( "import_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_501 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_502 c1_503 = TreeSitter.Node.nodeStartPoint node_501 TreeSitter.Node.TSPoint r2_504 c2_505 = TreeSitter.Node.nodeEndPoint node_501 deriving instance GHC.Classes.Eq a_506 => GHC.Classes.Eq (ImportDeclaration a_506) deriving instance GHC.Classes.Ord a_507 => GHC.Classes.Ord (ImportDeclaration a_507) deriving instance GHC.Show.Show a_508 => GHC.Show.Show (ImportDeclaration a_508) instance AST.Unmarshal.Unmarshal ImportDeclaration instance Data.Foldable.Foldable ImportDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ImportDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ImportDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data InferredParameters a = InferredParameters { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Identifier a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_509. AST.Traversable1.Class.Traversable1 a_509 ) instance AST.Unmarshal.SymbolMatching InferredParameters where matchedSymbols _ = [131] showFailure _ node_510 = "expected " GHC.Base.<> ( "inferred_parameters" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_510 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_511 c1_512 = TreeSitter.Node.nodeStartPoint node_510 TreeSitter.Node.TSPoint r2_513 c2_514 = TreeSitter.Node.nodeEndPoint node_510 deriving instance GHC.Classes.Eq a_515 => GHC.Classes.Eq (InferredParameters a_515) deriving instance GHC.Classes.Ord a_516 => GHC.Classes.Ord (InferredParameters a_516) deriving instance GHC.Show.Show a_517 => GHC.Show.Show (InferredParameters a_517) instance AST.Unmarshal.Unmarshal InferredParameters instance Data.Foldable.Foldable InferredParameters where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor InferredParameters where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable InferredParameters where traverse = AST.Traversable1.Class.traverseDefault1 data InstanceofExpression a = InstanceofExpression { ann :: a, left :: (AST.Parse.Err (Expression a)), right :: (AST.Parse.Err (Type a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_518. AST.Traversable1.Class.Traversable1 a_518 ) instance AST.Unmarshal.SymbolMatching InstanceofExpression where matchedSymbols _ = [129] showFailure _ node_519 = "expected " GHC.Base.<> ( "instanceof_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_519 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_520 c1_521 = TreeSitter.Node.nodeStartPoint node_519 TreeSitter.Node.TSPoint r2_522 c2_523 = TreeSitter.Node.nodeEndPoint node_519 deriving instance GHC.Classes.Eq a_524 => GHC.Classes.Eq (InstanceofExpression a_524) deriving instance GHC.Classes.Ord a_525 => GHC.Classes.Ord (InstanceofExpression a_525) deriving instance GHC.Show.Show a_526 => GHC.Show.Show (InstanceofExpression a_526) instance AST.Unmarshal.Unmarshal InstanceofExpression instance Data.Foldable.Foldable InstanceofExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor InstanceofExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable InstanceofExpression where traverse = AST.Traversable1.Class.traverseDefault1 data IntegralType a = IntegralType {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_527. AST.Traversable1.Class.Traversable1 a_527 ) instance AST.Unmarshal.SymbolMatching IntegralType where matchedSymbols _ = [231] showFailure _ node_528 = "expected " GHC.Base.<> ( "integral_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_528 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_529 c1_530 = TreeSitter.Node.nodeStartPoint node_528 TreeSitter.Node.TSPoint r2_531 c2_532 = TreeSitter.Node.nodeEndPoint node_528 deriving instance GHC.Classes.Eq a_533 => GHC.Classes.Eq (IntegralType a_533) deriving instance GHC.Classes.Ord a_534 => GHC.Classes.Ord (IntegralType a_534) deriving instance GHC.Show.Show a_535 => GHC.Show.Show (IntegralType a_535) instance AST.Unmarshal.Unmarshal IntegralType instance Data.Foldable.Foldable IntegralType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor IntegralType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable IntegralType where traverse = AST.Traversable1.Class.traverseDefault1 data InterfaceBody a = InterfaceBody { ann :: a, extraChildren :: ([AST.Parse.Err ((AnnotationTypeDeclaration GHC.Generics.:+: ClassDeclaration GHC.Generics.:+: ConstantDeclaration GHC.Generics.:+: EnumDeclaration GHC.Generics.:+: InterfaceDeclaration GHC.Generics.:+: MethodDeclaration) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_536. AST.Traversable1.Class.Traversable1 a_536 ) instance AST.Unmarshal.SymbolMatching InterfaceBody where matchedSymbols _ = [219] showFailure _ node_537 = "expected " GHC.Base.<> ( "interface_body" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_537 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_538 c1_539 = TreeSitter.Node.nodeStartPoint node_537 TreeSitter.Node.TSPoint r2_540 c2_541 = TreeSitter.Node.nodeEndPoint node_537 deriving instance GHC.Classes.Eq a_542 => GHC.Classes.Eq (InterfaceBody a_542) deriving instance GHC.Classes.Ord a_543 => GHC.Classes.Ord (InterfaceBody a_543) deriving instance GHC.Show.Show a_544 => GHC.Show.Show (InterfaceBody a_544) instance AST.Unmarshal.Unmarshal InterfaceBody instance Data.Foldable.Foldable InterfaceBody where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor InterfaceBody where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable InterfaceBody where traverse = AST.Traversable1.Class.traverseDefault1 data InterfaceDeclaration a = InterfaceDeclaration { ann :: a, body :: (AST.Parse.Err (InterfaceBody a)), name :: (AST.Parse.Err (Identifier a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))), extraChildren :: ([AST.Parse.Err ((ExtendsInterfaces GHC.Generics.:+: Modifiers) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_545. AST.Traversable1.Class.Traversable1 a_545 ) instance AST.Unmarshal.SymbolMatching InterfaceDeclaration where matchedSymbols _ = [217] showFailure _ node_546 = "expected " GHC.Base.<> ( "interface_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_546 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_547 c1_548 = TreeSitter.Node.nodeStartPoint node_546 TreeSitter.Node.TSPoint r2_549 c2_550 = TreeSitter.Node.nodeEndPoint node_546 deriving instance GHC.Classes.Eq a_551 => GHC.Classes.Eq (InterfaceDeclaration a_551) deriving instance GHC.Classes.Ord a_552 => GHC.Classes.Ord (InterfaceDeclaration a_552) deriving instance GHC.Show.Show a_553 => GHC.Show.Show (InterfaceDeclaration a_553) instance AST.Unmarshal.Unmarshal InterfaceDeclaration instance Data.Foldable.Foldable InterfaceDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor InterfaceDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable InterfaceDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data InterfaceTypeList a = InterfaceTypeList { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Type a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_554. AST.Traversable1.Class.Traversable1 a_554 ) instance AST.Unmarshal.SymbolMatching InterfaceTypeList where matchedSymbols _ = [204] showFailure _ node_555 = "expected " GHC.Base.<> ( "interface_type_list" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_555 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_556 c1_557 = TreeSitter.Node.nodeStartPoint node_555 TreeSitter.Node.TSPoint r2_558 c2_559 = TreeSitter.Node.nodeEndPoint node_555 deriving instance GHC.Classes.Eq a_560 => GHC.Classes.Eq (InterfaceTypeList a_560) deriving instance GHC.Classes.Ord a_561 => GHC.Classes.Ord (InterfaceTypeList a_561) deriving instance GHC.Show.Show a_562 => GHC.Show.Show (InterfaceTypeList a_562) instance AST.Unmarshal.Unmarshal InterfaceTypeList instance Data.Foldable.Foldable InterfaceTypeList where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor InterfaceTypeList where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable InterfaceTypeList where traverse = AST.Traversable1.Class.traverseDefault1 data LabeledStatement a = LabeledStatement { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Statement GHC.Generics.:+: Identifier) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_563. AST.Traversable1.Class.Traversable1 a_563 ) instance AST.Unmarshal.SymbolMatching LabeledStatement where matchedSymbols _ = [154] showFailure _ node_564 = "expected " GHC.Base.<> ( "labeled_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_564 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_565 c1_566 = TreeSitter.Node.nodeStartPoint node_564 TreeSitter.Node.TSPoint r2_567 c2_568 = TreeSitter.Node.nodeEndPoint node_564 deriving instance GHC.Classes.Eq a_569 => GHC.Classes.Eq (LabeledStatement a_569) deriving instance GHC.Classes.Ord a_570 => GHC.Classes.Ord (LabeledStatement a_570) deriving instance GHC.Show.Show a_571 => GHC.Show.Show (LabeledStatement a_571) instance AST.Unmarshal.Unmarshal LabeledStatement instance Data.Foldable.Foldable LabeledStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor LabeledStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable LabeledStatement where traverse = AST.Traversable1.Class.traverseDefault1 data LambdaExpression a = LambdaExpression { ann :: a, body :: (AST.Parse.Err ((Expression GHC.Generics.:+: Block) a)), parameters :: (AST.Parse.Err ((FormalParameters GHC.Generics.:+: Identifier GHC.Generics.:+: InferredParameters) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_572. AST.Traversable1.Class.Traversable1 a_572 ) instance AST.Unmarshal.SymbolMatching LambdaExpression where matchedSymbols _ = [130] showFailure _ node_573 = "expected " GHC.Base.<> ( "lambda_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_573 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_574 c1_575 = TreeSitter.Node.nodeStartPoint node_573 TreeSitter.Node.TSPoint r2_576 c2_577 = TreeSitter.Node.nodeEndPoint node_573 deriving instance GHC.Classes.Eq a_578 => GHC.Classes.Eq (LambdaExpression a_578) deriving instance GHC.Classes.Ord a_579 => GHC.Classes.Ord (LambdaExpression a_579) deriving instance GHC.Show.Show a_580 => GHC.Show.Show (LambdaExpression a_580) instance AST.Unmarshal.Unmarshal LambdaExpression instance Data.Foldable.Foldable LambdaExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor LambdaExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable LambdaExpression where traverse = AST.Traversable1.Class.traverseDefault1 data LocalVariableDeclaration a = LocalVariableDeclaration { ann :: a, declarator :: (GHC.Base.NonEmpty (AST.Parse.Err (VariableDeclarator a))), type' :: (AST.Parse.Err (UnannotatedType a)), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Modifiers a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_581. AST.Traversable1.Class.Traversable1 a_581 ) instance AST.Unmarshal.SymbolMatching LocalVariableDeclaration where matchedSymbols _ = [241] showFailure _ node_582 = "expected " GHC.Base.<> ( "local_variable_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_582 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_583 c1_584 = TreeSitter.Node.nodeStartPoint node_582 TreeSitter.Node.TSPoint r2_585 c2_586 = TreeSitter.Node.nodeEndPoint node_582 deriving instance GHC.Classes.Eq a_587 => GHC.Classes.Eq (LocalVariableDeclaration a_587) deriving instance GHC.Classes.Ord a_588 => GHC.Classes.Ord (LocalVariableDeclaration a_588) deriving instance GHC.Show.Show a_589 => GHC.Show.Show (LocalVariableDeclaration a_589) instance AST.Unmarshal.Unmarshal LocalVariableDeclaration instance Data.Foldable.Foldable LocalVariableDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor LocalVariableDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable LocalVariableDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data LocalVariableDeclarationStatement a = LocalVariableDeclarationStatement { ann :: a, extraChildren :: (AST.Parse.Err (LocalVariableDeclaration a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_590. AST.Traversable1.Class.Traversable1 a_590 ) instance AST.Unmarshal.SymbolMatching LocalVariableDeclarationStatement where matchedSymbols _ = [240] showFailure _ node_591 = "expected " GHC.Base.<> ( "local_variable_declaration_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_591 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_592 c1_593 = TreeSitter.Node.nodeStartPoint node_591 TreeSitter.Node.TSPoint r2_594 c2_595 = TreeSitter.Node.nodeEndPoint node_591 deriving instance GHC.Classes.Eq a_596 => GHC.Classes.Eq (LocalVariableDeclarationStatement a_596) deriving instance GHC.Classes.Ord a_597 => GHC.Classes.Ord (LocalVariableDeclarationStatement a_597) deriving instance GHC.Show.Show a_598 => GHC.Show.Show (LocalVariableDeclarationStatement a_598) instance AST.Unmarshal.Unmarshal LocalVariableDeclarationStatement instance Data.Foldable.Foldable LocalVariableDeclarationStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor LocalVariableDeclarationStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable LocalVariableDeclarationStatement where traverse = AST.Traversable1.Class.traverseDefault1 data MarkerAnnotation a = MarkerAnnotation { ann :: a, name :: (AST.Parse.Err ((Identifier GHC.Generics.:+: ScopedIdentifier) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_599. AST.Traversable1.Class.Traversable1 a_599 ) instance AST.Unmarshal.SymbolMatching MarkerAnnotation where matchedSymbols _ = [179] showFailure _ node_600 = "expected " GHC.Base.<> ( "marker_annotation" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_600 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_601 c1_602 = TreeSitter.Node.nodeStartPoint node_600 TreeSitter.Node.TSPoint r2_603 c2_604 = TreeSitter.Node.nodeEndPoint node_600 deriving instance GHC.Classes.Eq a_605 => GHC.Classes.Eq (MarkerAnnotation a_605) deriving instance GHC.Classes.Ord a_606 => GHC.Classes.Ord (MarkerAnnotation a_606) deriving instance GHC.Show.Show a_607 => GHC.Show.Show (MarkerAnnotation a_607) instance AST.Unmarshal.Unmarshal MarkerAnnotation instance Data.Foldable.Foldable MarkerAnnotation where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor MarkerAnnotation where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable MarkerAnnotation where traverse = AST.Traversable1.Class.traverseDefault1 data MethodDeclaration a = MethodDeclaration { ann :: a, body :: (GHC.Maybe.Maybe (AST.Parse.Err (Block a))), name :: (AST.Parse.Err (Identifier a)), parameters :: (AST.Parse.Err (FormalParameters a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))), type' :: (AST.Parse.Err (UnannotatedType a)), dimensions :: (GHC.Maybe.Maybe (AST.Parse.Err (Dimensions a))), extraChildren :: ([AST.Parse.Err ((Annotation GHC.Generics.:+: MarkerAnnotation GHC.Generics.:+: Modifiers GHC.Generics.:+: Throws) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_608. AST.Traversable1.Class.Traversable1 a_608 ) instance AST.Unmarshal.SymbolMatching MethodDeclaration where matchedSymbols _ = [242] showFailure _ node_609 = "expected " GHC.Base.<> ( "method_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_609 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_610 c1_611 = TreeSitter.Node.nodeStartPoint node_609 TreeSitter.Node.TSPoint r2_612 c2_613 = TreeSitter.Node.nodeEndPoint node_609 deriving instance GHC.Classes.Eq a_614 => GHC.Classes.Eq (MethodDeclaration a_614) deriving instance GHC.Classes.Ord a_615 => GHC.Classes.Ord (MethodDeclaration a_615) deriving instance GHC.Show.Show a_616 => GHC.Show.Show (MethodDeclaration a_616) instance AST.Unmarshal.Unmarshal MethodDeclaration instance Data.Foldable.Foldable MethodDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor MethodDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable MethodDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data MethodInvocation a = MethodInvocation { ann :: a, arguments :: (AST.Parse.Err (ArgumentList a)), name :: (AST.Parse.Err (Identifier a)), typeArguments :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeArguments a))), object :: (GHC.Maybe.Maybe (AST.Parse.Err ((Primary GHC.Generics.:+: Identifier GHC.Generics.:+: ScopedIdentifier GHC.Generics.:+: Super) a))), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Super a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_617. AST.Traversable1.Class.Traversable1 a_617 ) instance AST.Unmarshal.SymbolMatching MethodInvocation where matchedSymbols _ = [144] showFailure _ node_618 = "expected " GHC.Base.<> ( "method_invocation" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_618 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_619 c1_620 = TreeSitter.Node.nodeStartPoint node_618 TreeSitter.Node.TSPoint r2_621 c2_622 = TreeSitter.Node.nodeEndPoint node_618 deriving instance GHC.Classes.Eq a_623 => GHC.Classes.Eq (MethodInvocation a_623) deriving instance GHC.Classes.Ord a_624 => GHC.Classes.Ord (MethodInvocation a_624) deriving instance GHC.Show.Show a_625 => GHC.Show.Show (MethodInvocation a_625) instance AST.Unmarshal.Unmarshal MethodInvocation instance Data.Foldable.Foldable MethodInvocation where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor MethodInvocation where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable MethodInvocation where traverse = AST.Traversable1.Class.traverseDefault1 data MethodReference a = MethodReference { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Primary GHC.Generics.:+: Type GHC.Generics.:+: Identifier GHC.Generics.:+: ScopedIdentifier GHC.Generics.:+: Super GHC.Generics.:+: TypeArguments) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_626. AST.Traversable1.Class.Traversable1 a_626 ) instance AST.Unmarshal.SymbolMatching MethodReference where matchedSymbols _ = [146] showFailure _ node_627 = "expected " GHC.Base.<> ( "method_reference" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_627 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_628 c1_629 = TreeSitter.Node.nodeStartPoint node_627 TreeSitter.Node.TSPoint r2_630 c2_631 = TreeSitter.Node.nodeEndPoint node_627 deriving instance GHC.Classes.Eq a_632 => GHC.Classes.Eq (MethodReference a_632) deriving instance GHC.Classes.Ord a_633 => GHC.Classes.Ord (MethodReference a_633) deriving instance GHC.Show.Show a_634 => GHC.Show.Show (MethodReference a_634) instance AST.Unmarshal.Unmarshal MethodReference instance Data.Foldable.Foldable MethodReference where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor MethodReference where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable MethodReference where traverse = AST.Traversable1.Class.traverseDefault1 data Modifiers a = Modifiers { ann :: a, extraChildren :: ([AST.Parse.Err ((Annotation GHC.Generics.:+: MarkerAnnotation) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_635. AST.Traversable1.Class.Traversable1 a_635 ) instance AST.Unmarshal.SymbolMatching Modifiers where matchedSymbols _ = [198] showFailure _ node_636 = "expected " GHC.Base.<> ( "modifiers" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_636 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_637 c1_638 = TreeSitter.Node.nodeStartPoint node_636 TreeSitter.Node.TSPoint r2_639 c2_640 = TreeSitter.Node.nodeEndPoint node_636 deriving instance GHC.Classes.Eq a_641 => GHC.Classes.Eq (Modifiers a_641) deriving instance GHC.Classes.Ord a_642 => GHC.Classes.Ord (Modifiers a_642) deriving instance GHC.Show.Show a_643 => GHC.Show.Show (Modifiers a_643) instance AST.Unmarshal.Unmarshal Modifiers instance Data.Foldable.Foldable Modifiers where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Modifiers where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Modifiers where traverse = AST.Traversable1.Class.traverseDefault1 data ModuleDeclaration a = ModuleDeclaration { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Annotation GHC.Generics.:+: Identifier GHC.Generics.:+: MarkerAnnotation GHC.Generics.:+: ModuleDirective GHC.Generics.:+: ScopedIdentifier) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_644. AST.Traversable1.Class.Traversable1 a_644 ) instance AST.Unmarshal.SymbolMatching ModuleDeclaration where matchedSymbols _ = [186] showFailure _ node_645 = "expected " GHC.Base.<> ( "module_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_645 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_646 c1_647 = TreeSitter.Node.nodeStartPoint node_645 TreeSitter.Node.TSPoint r2_648 c2_649 = TreeSitter.Node.nodeEndPoint node_645 deriving instance GHC.Classes.Eq a_650 => GHC.Classes.Eq (ModuleDeclaration a_650) deriving instance GHC.Classes.Ord a_651 => GHC.Classes.Ord (ModuleDeclaration a_651) deriving instance GHC.Show.Show a_652 => GHC.Show.Show (ModuleDeclaration a_652) instance AST.Unmarshal.Unmarshal ModuleDeclaration instance Data.Foldable.Foldable ModuleDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ModuleDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ModuleDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data ModuleDirective a = ModuleDirective { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: ModuleName GHC.Generics.:+: RequiresModifier GHC.Generics.:+: ScopedIdentifier) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_653. AST.Traversable1.Class.Traversable1 a_653 ) instance AST.Unmarshal.SymbolMatching ModuleDirective where matchedSymbols _ = [187] showFailure _ node_654 = "expected " GHC.Base.<> ( "module_directive" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_654 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_655 c1_656 = TreeSitter.Node.nodeStartPoint node_654 TreeSitter.Node.TSPoint r2_657 c2_658 = TreeSitter.Node.nodeEndPoint node_654 deriving instance GHC.Classes.Eq a_659 => GHC.Classes.Eq (ModuleDirective a_659) deriving instance GHC.Classes.Ord a_660 => GHC.Classes.Ord (ModuleDirective a_660) deriving instance GHC.Show.Show a_661 => GHC.Show.Show (ModuleDirective a_661) instance AST.Unmarshal.Unmarshal ModuleDirective instance Data.Foldable.Foldable ModuleDirective where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ModuleDirective where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ModuleDirective where traverse = AST.Traversable1.Class.traverseDefault1 data ModuleName a = ModuleName { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: ModuleName) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_662. AST.Traversable1.Class.Traversable1 a_662 ) instance AST.Unmarshal.SymbolMatching ModuleName where matchedSymbols _ = [189] showFailure _ node_663 = "expected " GHC.Base.<> ( "module_name" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_663 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_664 c1_665 = TreeSitter.Node.nodeStartPoint node_663 TreeSitter.Node.TSPoint r2_666 c2_667 = TreeSitter.Node.nodeEndPoint node_663 deriving instance GHC.Classes.Eq a_668 => GHC.Classes.Eq (ModuleName a_668) deriving instance GHC.Classes.Ord a_669 => GHC.Classes.Ord (ModuleName a_669) deriving instance GHC.Show.Show a_670 => GHC.Show.Show (ModuleName a_670) instance AST.Unmarshal.Unmarshal ModuleName instance Data.Foldable.Foldable ModuleName where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ModuleName where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ModuleName where traverse = AST.Traversable1.Class.traverseDefault1 data ObjectCreationExpression a = ObjectCreationExpression { ann :: a, arguments :: (AST.Parse.Err (ArgumentList a)), typeArguments :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeArguments a))), type' :: (AST.Parse.Err (SimpleType a)), extraChildren :: ([AST.Parse.Err ((Primary GHC.Generics.:+: ClassBody GHC.Generics.:+: Identifier GHC.Generics.:+: ScopedIdentifier) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_671. AST.Traversable1.Class.Traversable1 a_671 ) instance AST.Unmarshal.SymbolMatching ObjectCreationExpression where matchedSymbols _ = [140] showFailure _ node_672 = "expected " GHC.Base.<> ( "object_creation_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_672 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_673 c1_674 = TreeSitter.Node.nodeStartPoint node_672 TreeSitter.Node.TSPoint r2_675 c2_676 = TreeSitter.Node.nodeEndPoint node_672 deriving instance GHC.Classes.Eq a_677 => GHC.Classes.Eq (ObjectCreationExpression a_677) deriving instance GHC.Classes.Ord a_678 => GHC.Classes.Ord (ObjectCreationExpression a_678) deriving instance GHC.Show.Show a_679 => GHC.Show.Show (ObjectCreationExpression a_679) instance AST.Unmarshal.Unmarshal ObjectCreationExpression instance Data.Foldable.Foldable ObjectCreationExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ObjectCreationExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ObjectCreationExpression where traverse = AST.Traversable1.Class.traverseDefault1 data PackageDeclaration a = PackageDeclaration { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Annotation GHC.Generics.:+: Identifier GHC.Generics.:+: MarkerAnnotation GHC.Generics.:+: ScopedIdentifier) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_680. AST.Traversable1.Class.Traversable1 a_680 ) instance AST.Unmarshal.SymbolMatching PackageDeclaration where matchedSymbols _ = [190] showFailure _ node_681 = "expected " GHC.Base.<> ( "package_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_681 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_682 c1_683 = TreeSitter.Node.nodeStartPoint node_681 TreeSitter.Node.TSPoint r2_684 c2_685 = TreeSitter.Node.nodeEndPoint node_681 deriving instance GHC.Classes.Eq a_686 => GHC.Classes.Eq (PackageDeclaration a_686) deriving instance GHC.Classes.Ord a_687 => GHC.Classes.Ord (PackageDeclaration a_687) deriving instance GHC.Show.Show a_688 => GHC.Show.Show (PackageDeclaration a_688) instance AST.Unmarshal.Unmarshal PackageDeclaration instance Data.Foldable.Foldable PackageDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor PackageDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable PackageDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data ParenthesizedExpression a = ParenthesizedExpression { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_689. AST.Traversable1.Class.Traversable1 a_689 ) instance AST.Unmarshal.SymbolMatching ParenthesizedExpression where matchedSymbols _ = [138] showFailure _ node_690 = "expected " GHC.Base.<> ( "parenthesized_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_690 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_691 c1_692 = TreeSitter.Node.nodeStartPoint node_690 TreeSitter.Node.TSPoint r2_693 c2_694 = TreeSitter.Node.nodeEndPoint node_690 deriving instance GHC.Classes.Eq a_695 => GHC.Classes.Eq (ParenthesizedExpression a_695) deriving instance GHC.Classes.Ord a_696 => GHC.Classes.Ord (ParenthesizedExpression a_696) deriving instance GHC.Show.Show a_697 => GHC.Show.Show (ParenthesizedExpression a_697) instance AST.Unmarshal.Unmarshal ParenthesizedExpression instance Data.Foldable.Foldable ParenthesizedExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ParenthesizedExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ParenthesizedExpression where traverse = AST.Traversable1.Class.traverseDefault1 data Program a = Program { ann :: a, extraChildren :: ([AST.Parse.Err (Statement a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_698. AST.Traversable1.Class.Traversable1 a_698 ) instance AST.Unmarshal.SymbolMatching Program where matchedSymbols _ = [123] showFailure _ node_699 = "expected " GHC.Base.<> ( "program" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_699 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_700 c1_701 = TreeSitter.Node.nodeStartPoint node_699 TreeSitter.Node.TSPoint r2_702 c2_703 = TreeSitter.Node.nodeEndPoint node_699 deriving instance GHC.Classes.Eq a_704 => GHC.Classes.Eq (Program a_704) deriving instance GHC.Classes.Ord a_705 => GHC.Classes.Ord (Program a_705) deriving instance GHC.Show.Show a_706 => GHC.Show.Show (Program a_706) instance AST.Unmarshal.Unmarshal Program instance Data.Foldable.Foldable Program where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Program where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Program where traverse = AST.Traversable1.Class.traverseDefault1 data ReceiverParameter a = ReceiverParameter { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((UnannotatedType GHC.Generics.:+: Annotation GHC.Generics.:+: Identifier GHC.Generics.:+: MarkerAnnotation GHC.Generics.:+: This) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_707. AST.Traversable1.Class.Traversable1 a_707 ) instance AST.Unmarshal.SymbolMatching ReceiverParameter where matchedSymbols _ = [237] showFailure _ node_708 = "expected " GHC.Base.<> ( "receiver_parameter" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_708 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_709 c1_710 = TreeSitter.Node.nodeStartPoint node_708 TreeSitter.Node.TSPoint r2_711 c2_712 = TreeSitter.Node.nodeEndPoint node_708 deriving instance GHC.Classes.Eq a_713 => GHC.Classes.Eq (ReceiverParameter a_713) deriving instance GHC.Classes.Ord a_714 => GHC.Classes.Ord (ReceiverParameter a_714) deriving instance GHC.Show.Show a_715 => GHC.Show.Show (ReceiverParameter a_715) instance AST.Unmarshal.Unmarshal ReceiverParameter instance Data.Foldable.Foldable ReceiverParameter where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ReceiverParameter where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ReceiverParameter where traverse = AST.Traversable1.Class.traverseDefault1 data RequiresModifier a = RequiresModifier {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_716. AST.Traversable1.Class.Traversable1 a_716 ) instance AST.Unmarshal.SymbolMatching RequiresModifier where matchedSymbols _ = [188] showFailure _ node_717 = "expected " GHC.Base.<> ( "requires_modifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_717 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_718 c1_719 = TreeSitter.Node.nodeStartPoint node_717 TreeSitter.Node.TSPoint r2_720 c2_721 = TreeSitter.Node.nodeEndPoint node_717 deriving instance GHC.Classes.Eq a_722 => GHC.Classes.Eq (RequiresModifier a_722) deriving instance GHC.Classes.Ord a_723 => GHC.Classes.Ord (RequiresModifier a_723) deriving instance GHC.Show.Show a_724 => GHC.Show.Show (RequiresModifier a_724) instance AST.Unmarshal.Unmarshal RequiresModifier instance Data.Foldable.Foldable RequiresModifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor RequiresModifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable RequiresModifier where traverse = AST.Traversable1.Class.traverseDefault1 data Resource a = Resource { ann :: a, value :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))), name :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a))), type' :: (GHC.Maybe.Maybe (AST.Parse.Err (UnannotatedType a))), dimensions :: (GHC.Maybe.Maybe (AST.Parse.Err (Dimensions a))), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err ((FieldAccess GHC.Generics.:+: Identifier GHC.Generics.:+: Modifiers GHC.Generics.:+: ScopedIdentifier) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_725. AST.Traversable1.Class.Traversable1 a_725 ) instance AST.Unmarshal.SymbolMatching Resource where matchedSymbols _ = [172] showFailure _ node_726 = "expected " GHC.Base.<> ( "resource" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_726 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_727 c1_728 = TreeSitter.Node.nodeStartPoint node_726 TreeSitter.Node.TSPoint r2_729 c2_730 = TreeSitter.Node.nodeEndPoint node_726 deriving instance GHC.Classes.Eq a_731 => GHC.Classes.Eq (Resource a_731) deriving instance GHC.Classes.Ord a_732 => GHC.Classes.Ord (Resource a_732) deriving instance GHC.Show.Show a_733 => GHC.Show.Show (Resource a_733) instance AST.Unmarshal.Unmarshal Resource instance Data.Foldable.Foldable Resource where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Resource where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Resource where traverse = AST.Traversable1.Class.traverseDefault1 data ResourceSpecification a = ResourceSpecification { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Resource a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_734. AST.Traversable1.Class.Traversable1 a_734 ) instance AST.Unmarshal.SymbolMatching ResourceSpecification where matchedSymbols _ = [171] showFailure _ node_735 = "expected " GHC.Base.<> ( "resource_specification" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_735 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_736 c1_737 = TreeSitter.Node.nodeStartPoint node_735 TreeSitter.Node.TSPoint r2_738 c2_739 = TreeSitter.Node.nodeEndPoint node_735 deriving instance GHC.Classes.Eq a_740 => GHC.Classes.Eq (ResourceSpecification a_740) deriving instance GHC.Classes.Ord a_741 => GHC.Classes.Ord (ResourceSpecification a_741) deriving instance GHC.Show.Show a_742 => GHC.Show.Show (ResourceSpecification a_742) instance AST.Unmarshal.Unmarshal ResourceSpecification instance Data.Foldable.Foldable ResourceSpecification where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ResourceSpecification where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ResourceSpecification where traverse = AST.Traversable1.Class.traverseDefault1 data ReturnStatement a = ReturnStatement { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_743. AST.Traversable1.Class.Traversable1 a_743 ) instance AST.Unmarshal.SymbolMatching ReturnStatement where matchedSymbols _ = [162] showFailure _ node_744 = "expected " GHC.Base.<> ( "return_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_744 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_745 c1_746 = TreeSitter.Node.nodeStartPoint node_744 TreeSitter.Node.TSPoint r2_747 c2_748 = TreeSitter.Node.nodeEndPoint node_744 deriving instance GHC.Classes.Eq a_749 => GHC.Classes.Eq (ReturnStatement a_749) deriving instance GHC.Classes.Ord a_750 => GHC.Classes.Ord (ReturnStatement a_750) deriving instance GHC.Show.Show a_751 => GHC.Show.Show (ReturnStatement a_751) instance AST.Unmarshal.Unmarshal ReturnStatement instance Data.Foldable.Foldable ReturnStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ReturnStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ReturnStatement where traverse = AST.Traversable1.Class.traverseDefault1 data ScopedIdentifier a = ScopedIdentifier { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: ScopedIdentifier) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_752. AST.Traversable1.Class.Traversable1 a_752 ) instance AST.Unmarshal.SymbolMatching ScopedIdentifier where matchedSymbols _ = [211] showFailure _ node_753 = "expected " GHC.Base.<> ( "scoped_identifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_753 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_754 c1_755 = TreeSitter.Node.nodeStartPoint node_753 TreeSitter.Node.TSPoint r2_756 c2_757 = TreeSitter.Node.nodeEndPoint node_753 deriving instance GHC.Classes.Eq a_758 => GHC.Classes.Eq (ScopedIdentifier a_758) deriving instance GHC.Classes.Ord a_759 => GHC.Classes.Ord (ScopedIdentifier a_759) deriving instance GHC.Show.Show a_760 => GHC.Show.Show (ScopedIdentifier a_760) instance AST.Unmarshal.Unmarshal ScopedIdentifier instance Data.Foldable.Foldable ScopedIdentifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ScopedIdentifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ScopedIdentifier where traverse = AST.Traversable1.Class.traverseDefault1 data ScopedTypeIdentifier a = ScopedTypeIdentifier { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Annotation GHC.Generics.:+: GenericType GHC.Generics.:+: MarkerAnnotation GHC.Generics.:+: ScopedTypeIdentifier GHC.Generics.:+: TypeIdentifier) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_761. AST.Traversable1.Class.Traversable1 a_761 ) instance AST.Unmarshal.SymbolMatching ScopedTypeIdentifier where matchedSymbols _ = [228] showFailure _ node_762 = "expected " GHC.Base.<> ( "scoped_type_identifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_762 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_763 c1_764 = TreeSitter.Node.nodeStartPoint node_762 TreeSitter.Node.TSPoint r2_765 c2_766 = TreeSitter.Node.nodeEndPoint node_762 deriving instance GHC.Classes.Eq a_767 => GHC.Classes.Eq (ScopedTypeIdentifier a_767) deriving instance GHC.Classes.Ord a_768 => GHC.Classes.Ord (ScopedTypeIdentifier a_768) deriving instance GHC.Show.Show a_769 => GHC.Show.Show (ScopedTypeIdentifier a_769) instance AST.Unmarshal.Unmarshal ScopedTypeIdentifier instance Data.Foldable.Foldable ScopedTypeIdentifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ScopedTypeIdentifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ScopedTypeIdentifier where traverse = AST.Traversable1.Class.traverseDefault1 data SpreadParameter a = SpreadParameter { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((UnannotatedType GHC.Generics.:+: Modifiers GHC.Generics.:+: VariableDeclarator) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_770. AST.Traversable1.Class.Traversable1 a_770 ) instance AST.Unmarshal.SymbolMatching SpreadParameter where matchedSymbols _ = [238] showFailure _ node_771 = "expected " GHC.Base.<> ( "spread_parameter" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_771 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_772 c1_773 = TreeSitter.Node.nodeStartPoint node_771 TreeSitter.Node.TSPoint r2_774 c2_775 = TreeSitter.Node.nodeEndPoint node_771 deriving instance GHC.Classes.Eq a_776 => GHC.Classes.Eq (SpreadParameter a_776) deriving instance GHC.Classes.Ord a_777 => GHC.Classes.Ord (SpreadParameter a_777) deriving instance GHC.Show.Show a_778 => GHC.Show.Show (SpreadParameter a_778) instance AST.Unmarshal.Unmarshal SpreadParameter instance Data.Foldable.Foldable SpreadParameter where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SpreadParameter where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SpreadParameter where traverse = AST.Traversable1.Class.traverseDefault1 data StaticInitializer a = StaticInitializer { ann :: a, extraChildren :: (AST.Parse.Err (Block a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_779. AST.Traversable1.Class.Traversable1 a_779 ) instance AST.Unmarshal.SymbolMatching StaticInitializer where matchedSymbols _ = [206] showFailure _ node_780 = "expected " GHC.Base.<> ( "static_initializer" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_780 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_781 c1_782 = TreeSitter.Node.nodeStartPoint node_780 TreeSitter.Node.TSPoint r2_783 c2_784 = TreeSitter.Node.nodeEndPoint node_780 deriving instance GHC.Classes.Eq a_785 => GHC.Classes.Eq (StaticInitializer a_785) deriving instance GHC.Classes.Ord a_786 => GHC.Classes.Ord (StaticInitializer a_786) deriving instance GHC.Show.Show a_787 => GHC.Show.Show (StaticInitializer a_787) instance AST.Unmarshal.Unmarshal StaticInitializer instance Data.Foldable.Foldable StaticInitializer where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor StaticInitializer where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable StaticInitializer where traverse = AST.Traversable1.Class.traverseDefault1 data SuperInterfaces a = SuperInterfaces { ann :: a, extraChildren :: (AST.Parse.Err (InterfaceTypeList a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_788. AST.Traversable1.Class.Traversable1 a_788 ) instance AST.Unmarshal.SymbolMatching SuperInterfaces where matchedSymbols _ = [203] showFailure _ node_789 = "expected " GHC.Base.<> ( "super_interfaces" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_789 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_790 c1_791 = TreeSitter.Node.nodeStartPoint node_789 TreeSitter.Node.TSPoint r2_792 c2_793 = TreeSitter.Node.nodeEndPoint node_789 deriving instance GHC.Classes.Eq a_794 => GHC.Classes.Eq (SuperInterfaces a_794) deriving instance GHC.Classes.Ord a_795 => GHC.Classes.Ord (SuperInterfaces a_795) deriving instance GHC.Show.Show a_796 => GHC.Show.Show (SuperInterfaces a_796) instance AST.Unmarshal.Unmarshal SuperInterfaces instance Data.Foldable.Foldable SuperInterfaces where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SuperInterfaces where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SuperInterfaces where traverse = AST.Traversable1.Class.traverseDefault1 data Superclass a = Superclass {ann :: a, extraChildren :: (AST.Parse.Err (Type a))} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_797. AST.Traversable1.Class.Traversable1 a_797 ) instance AST.Unmarshal.SymbolMatching Superclass where matchedSymbols _ = [202] showFailure _ node_798 = "expected " GHC.Base.<> ( "superclass" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_798 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_799 c1_800 = TreeSitter.Node.nodeStartPoint node_798 TreeSitter.Node.TSPoint r2_801 c2_802 = TreeSitter.Node.nodeEndPoint node_798 deriving instance GHC.Classes.Eq a_803 => GHC.Classes.Eq (Superclass a_803) deriving instance GHC.Classes.Ord a_804 => GHC.Classes.Ord (Superclass a_804) deriving instance GHC.Show.Show a_805 => GHC.Show.Show (Superclass a_805) instance AST.Unmarshal.Unmarshal Superclass instance Data.Foldable.Foldable Superclass where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Superclass where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Superclass where traverse = AST.Traversable1.Class.traverseDefault1 data SwitchBlock a = SwitchBlock { ann :: a, extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: SwitchLabel) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_806. AST.Traversable1.Class.Traversable1 a_806 ) instance AST.Unmarshal.SymbolMatching SwitchBlock where matchedSymbols _ = [157] showFailure _ node_807 = "expected " GHC.Base.<> ( "switch_block" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_807 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_808 c1_809 = TreeSitter.Node.nodeStartPoint node_807 TreeSitter.Node.TSPoint r2_810 c2_811 = TreeSitter.Node.nodeEndPoint node_807 deriving instance GHC.Classes.Eq a_812 => GHC.Classes.Eq (SwitchBlock a_812) deriving instance GHC.Classes.Ord a_813 => GHC.Classes.Ord (SwitchBlock a_813) deriving instance GHC.Show.Show a_814 => GHC.Show.Show (SwitchBlock a_814) instance AST.Unmarshal.Unmarshal SwitchBlock instance Data.Foldable.Foldable SwitchBlock where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SwitchBlock where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SwitchBlock where traverse = AST.Traversable1.Class.traverseDefault1 data SwitchLabel a = SwitchLabel { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_815. AST.Traversable1.Class.Traversable1 a_815 ) instance AST.Unmarshal.SymbolMatching SwitchLabel where matchedSymbols _ = [158] showFailure _ node_816 = "expected " GHC.Base.<> ( "switch_label" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_816 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_817 c1_818 = TreeSitter.Node.nodeStartPoint node_816 TreeSitter.Node.TSPoint r2_819 c2_820 = TreeSitter.Node.nodeEndPoint node_816 deriving instance GHC.Classes.Eq a_821 => GHC.Classes.Eq (SwitchLabel a_821) deriving instance GHC.Classes.Ord a_822 => GHC.Classes.Ord (SwitchLabel a_822) deriving instance GHC.Show.Show a_823 => GHC.Show.Show (SwitchLabel a_823) instance AST.Unmarshal.Unmarshal SwitchLabel instance Data.Foldable.Foldable SwitchLabel where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SwitchLabel where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SwitchLabel where traverse = AST.Traversable1.Class.traverseDefault1 data SwitchStatement a = SwitchStatement { ann :: a, body :: (AST.Parse.Err (SwitchBlock a)), condition :: (AST.Parse.Err (ParenthesizedExpression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_824. AST.Traversable1.Class.Traversable1 a_824 ) instance AST.Unmarshal.SymbolMatching SwitchStatement where matchedSymbols _ = [156] showFailure _ node_825 = "expected " GHC.Base.<> ( "switch_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_825 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_826 c1_827 = TreeSitter.Node.nodeStartPoint node_825 TreeSitter.Node.TSPoint r2_828 c2_829 = TreeSitter.Node.nodeEndPoint node_825 deriving instance GHC.Classes.Eq a_830 => GHC.Classes.Eq (SwitchStatement a_830) deriving instance GHC.Classes.Ord a_831 => GHC.Classes.Ord (SwitchStatement a_831) deriving instance GHC.Show.Show a_832 => GHC.Show.Show (SwitchStatement a_832) instance AST.Unmarshal.Unmarshal SwitchStatement instance Data.Foldable.Foldable SwitchStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SwitchStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SwitchStatement where traverse = AST.Traversable1.Class.traverseDefault1 data SynchronizedStatement a = SynchronizedStatement { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: Block) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_833. AST.Traversable1.Class.Traversable1 a_833 ) instance AST.Unmarshal.SymbolMatching SynchronizedStatement where matchedSymbols _ = [163] showFailure _ node_834 = "expected " GHC.Base.<> ( "synchronized_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_834 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_835 c1_836 = TreeSitter.Node.nodeStartPoint node_834 TreeSitter.Node.TSPoint r2_837 c2_838 = TreeSitter.Node.nodeEndPoint node_834 deriving instance GHC.Classes.Eq a_839 => GHC.Classes.Eq (SynchronizedStatement a_839) deriving instance GHC.Classes.Ord a_840 => GHC.Classes.Ord (SynchronizedStatement a_840) deriving instance GHC.Show.Show a_841 => GHC.Show.Show (SynchronizedStatement a_841) instance AST.Unmarshal.Unmarshal SynchronizedStatement instance Data.Foldable.Foldable SynchronizedStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SynchronizedStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SynchronizedStatement where traverse = AST.Traversable1.Class.traverseDefault1 data TernaryExpression a = TernaryExpression { ann :: a, alternative :: (AST.Parse.Err (Expression a)), consequence :: (AST.Parse.Err (Expression a)), condition :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_842. AST.Traversable1.Class.Traversable1 a_842 ) instance AST.Unmarshal.SymbolMatching TernaryExpression where matchedSymbols _ = [132] showFailure _ node_843 = "expected " GHC.Base.<> ( "ternary_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_843 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_844 c1_845 = TreeSitter.Node.nodeStartPoint node_843 TreeSitter.Node.TSPoint r2_846 c2_847 = TreeSitter.Node.nodeEndPoint node_843 deriving instance GHC.Classes.Eq a_848 => GHC.Classes.Eq (TernaryExpression a_848) deriving instance GHC.Classes.Ord a_849 => GHC.Classes.Ord (TernaryExpression a_849) deriving instance GHC.Show.Show a_850 => GHC.Show.Show (TernaryExpression a_850) instance AST.Unmarshal.Unmarshal TernaryExpression instance Data.Foldable.Foldable TernaryExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TernaryExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TernaryExpression where traverse = AST.Traversable1.Class.traverseDefault1 data ThrowStatement a = ThrowStatement { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_851. AST.Traversable1.Class.Traversable1 a_851 ) instance AST.Unmarshal.SymbolMatching ThrowStatement where matchedSymbols _ = [164] showFailure _ node_852 = "expected " GHC.Base.<> ( "throw_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_852 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_853 c1_854 = TreeSitter.Node.nodeStartPoint node_852 TreeSitter.Node.TSPoint r2_855 c2_856 = TreeSitter.Node.nodeEndPoint node_852 deriving instance GHC.Classes.Eq a_857 => GHC.Classes.Eq (ThrowStatement a_857) deriving instance GHC.Classes.Ord a_858 => GHC.Classes.Ord (ThrowStatement a_858) deriving instance GHC.Show.Show a_859 => GHC.Show.Show (ThrowStatement a_859) instance AST.Unmarshal.Unmarshal ThrowStatement instance Data.Foldable.Foldable ThrowStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ThrowStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ThrowStatement where traverse = AST.Traversable1.Class.traverseDefault1 data Throws a = Throws { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Type a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_860. AST.Traversable1.Class.Traversable1 a_860 ) instance AST.Unmarshal.SymbolMatching Throws where matchedSymbols _ = [239] showFailure _ node_861 = "expected " GHC.Base.<> ( "throws" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_861 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_862 c1_863 = TreeSitter.Node.nodeStartPoint node_861 TreeSitter.Node.TSPoint r2_864 c2_865 = TreeSitter.Node.nodeEndPoint node_861 deriving instance GHC.Classes.Eq a_866 => GHC.Classes.Eq (Throws a_866) deriving instance GHC.Classes.Ord a_867 => GHC.Classes.Ord (Throws a_867) deriving instance GHC.Show.Show a_868 => GHC.Show.Show (Throws a_868) instance AST.Unmarshal.Unmarshal Throws instance Data.Foldable.Foldable Throws where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Throws where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Throws where traverse = AST.Traversable1.Class.traverseDefault1 data TryStatement a = TryStatement { ann :: a, body :: (AST.Parse.Err (Block a)), extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((CatchClause GHC.Generics.:+: FinallyClause) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_869. AST.Traversable1.Class.Traversable1 a_869 ) instance AST.Unmarshal.SymbolMatching TryStatement where matchedSymbols _ = [165] showFailure _ node_870 = "expected " GHC.Base.<> ( "try_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_870 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_871 c1_872 = TreeSitter.Node.nodeStartPoint node_870 TreeSitter.Node.TSPoint r2_873 c2_874 = TreeSitter.Node.nodeEndPoint node_870 deriving instance GHC.Classes.Eq a_875 => GHC.Classes.Eq (TryStatement a_875) deriving instance GHC.Classes.Ord a_876 => GHC.Classes.Ord (TryStatement a_876) deriving instance GHC.Show.Show a_877 => GHC.Show.Show (TryStatement a_877) instance AST.Unmarshal.Unmarshal TryStatement instance Data.Foldable.Foldable TryStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TryStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TryStatement where traverse = AST.Traversable1.Class.traverseDefault1 data TryWithResourcesStatement a = TryWithResourcesStatement { ann :: a, body :: (AST.Parse.Err (Block a)), resources :: (AST.Parse.Err (ResourceSpecification a)), extraChildren :: ([AST.Parse.Err ((CatchClause GHC.Generics.:+: FinallyClause) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_878. AST.Traversable1.Class.Traversable1 a_878 ) instance AST.Unmarshal.SymbolMatching TryWithResourcesStatement where matchedSymbols _ = [170] showFailure _ node_879 = "expected " GHC.Base.<> ( "try_with_resources_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_879 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_880 c1_881 = TreeSitter.Node.nodeStartPoint node_879 TreeSitter.Node.TSPoint r2_882 c2_883 = TreeSitter.Node.nodeEndPoint node_879 deriving instance GHC.Classes.Eq a_884 => GHC.Classes.Eq (TryWithResourcesStatement a_884) deriving instance GHC.Classes.Ord a_885 => GHC.Classes.Ord (TryWithResourcesStatement a_885) deriving instance GHC.Show.Show a_886 => GHC.Show.Show (TryWithResourcesStatement a_886) instance AST.Unmarshal.Unmarshal TryWithResourcesStatement instance Data.Foldable.Foldable TryWithResourcesStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TryWithResourcesStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TryWithResourcesStatement where traverse = AST.Traversable1.Class.traverseDefault1 data TypeArguments a = TypeArguments { ann :: a, extraChildren :: ([AST.Parse.Err ((Type GHC.Generics.:+: Wildcard) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_887. AST.Traversable1.Class.Traversable1 a_887 ) instance AST.Unmarshal.SymbolMatching TypeArguments where matchedSymbols _ = [147] showFailure _ node_888 = "expected " GHC.Base.<> ( "type_arguments" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_888 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_889 c1_890 = TreeSitter.Node.nodeStartPoint node_888 TreeSitter.Node.TSPoint r2_891 c2_892 = TreeSitter.Node.nodeEndPoint node_888 deriving instance GHC.Classes.Eq a_893 => GHC.Classes.Eq (TypeArguments a_893) deriving instance GHC.Classes.Ord a_894 => GHC.Classes.Ord (TypeArguments a_894) deriving instance GHC.Show.Show a_895 => GHC.Show.Show (TypeArguments a_895) instance AST.Unmarshal.Unmarshal TypeArguments instance Data.Foldable.Foldable TypeArguments where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeArguments where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeArguments where traverse = AST.Traversable1.Class.traverseDefault1 data TypeBound a = TypeBound { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Type a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_896. AST.Traversable1.Class.Traversable1 a_896 ) instance AST.Unmarshal.SymbolMatching TypeBound where matchedSymbols _ = [201] showFailure _ node_897 = "expected " GHC.Base.<> ( "type_bound" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_897 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_898 c1_899 = TreeSitter.Node.nodeStartPoint node_897 TreeSitter.Node.TSPoint r2_900 c2_901 = TreeSitter.Node.nodeEndPoint node_897 deriving instance GHC.Classes.Eq a_902 => GHC.Classes.Eq (TypeBound a_902) deriving instance GHC.Classes.Ord a_903 => GHC.Classes.Ord (TypeBound a_903) deriving instance GHC.Show.Show a_904 => GHC.Show.Show (TypeBound a_904) instance AST.Unmarshal.Unmarshal TypeBound instance Data.Foldable.Foldable TypeBound where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeBound where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeBound where traverse = AST.Traversable1.Class.traverseDefault1 data TypeParameter a = TypeParameter { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Annotation GHC.Generics.:+: Identifier GHC.Generics.:+: MarkerAnnotation GHC.Generics.:+: TypeBound) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_905. AST.Traversable1.Class.Traversable1 a_905 ) instance AST.Unmarshal.SymbolMatching TypeParameter where matchedSymbols _ = [200] showFailure _ node_906 = "expected " GHC.Base.<> ( "type_parameter" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_906 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_907 c1_908 = TreeSitter.Node.nodeStartPoint node_906 TreeSitter.Node.TSPoint r2_909 c2_910 = TreeSitter.Node.nodeEndPoint node_906 deriving instance GHC.Classes.Eq a_911 => GHC.Classes.Eq (TypeParameter a_911) deriving instance GHC.Classes.Ord a_912 => GHC.Classes.Ord (TypeParameter a_912) deriving instance GHC.Show.Show a_913 => GHC.Show.Show (TypeParameter a_913) instance AST.Unmarshal.Unmarshal TypeParameter instance Data.Foldable.Foldable TypeParameter where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeParameter where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeParameter where traverse = AST.Traversable1.Class.traverseDefault1 data TypeParameters a = TypeParameters { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (TypeParameter a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_914. AST.Traversable1.Class.Traversable1 a_914 ) instance AST.Unmarshal.SymbolMatching TypeParameters where matchedSymbols _ = [199] showFailure _ node_915 = "expected " GHC.Base.<> ( "type_parameters" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_915 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_916 c1_917 = TreeSitter.Node.nodeStartPoint node_915 TreeSitter.Node.TSPoint r2_918 c2_919 = TreeSitter.Node.nodeEndPoint node_915 deriving instance GHC.Classes.Eq a_920 => GHC.Classes.Eq (TypeParameters a_920) deriving instance GHC.Classes.Ord a_921 => GHC.Classes.Ord (TypeParameters a_921) deriving instance GHC.Show.Show a_922 => GHC.Show.Show (TypeParameters a_922) instance AST.Unmarshal.Unmarshal TypeParameters instance Data.Foldable.Foldable TypeParameters where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeParameters where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeParameters where traverse = AST.Traversable1.Class.traverseDefault1 data UnaryExpression a = UnaryExpression { ann :: a, operator :: (AST.Parse.Err ((AnonymousBang GHC.Generics.:+: AnonymousPlus GHC.Generics.:+: AnonymousMinus GHC.Generics.:+: AnonymousTilde) a)), operand :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_923. AST.Traversable1.Class.Traversable1 a_923 ) instance AST.Unmarshal.SymbolMatching UnaryExpression where matchedSymbols _ = [133] showFailure _ node_924 = "expected " GHC.Base.<> ( "unary_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_924 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_925 c1_926 = TreeSitter.Node.nodeStartPoint node_924 TreeSitter.Node.TSPoint r2_927 c2_928 = TreeSitter.Node.nodeEndPoint node_924 deriving instance GHC.Classes.Eq a_929 => GHC.Classes.Eq (UnaryExpression a_929) deriving instance GHC.Classes.Ord a_930 => GHC.Classes.Ord (UnaryExpression a_930) deriving instance GHC.Show.Show a_931 => GHC.Show.Show (UnaryExpression a_931) instance AST.Unmarshal.Unmarshal UnaryExpression instance Data.Foldable.Foldable UnaryExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor UnaryExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable UnaryExpression where traverse = AST.Traversable1.Class.traverseDefault1 data UpdateExpression a = UpdateExpression { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_932. AST.Traversable1.Class.Traversable1 a_932 ) instance AST.Unmarshal.SymbolMatching UpdateExpression where matchedSymbols _ = [134] showFailure _ node_933 = "expected " GHC.Base.<> ( "update_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_933 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_934 c1_935 = TreeSitter.Node.nodeStartPoint node_933 TreeSitter.Node.TSPoint r2_936 c2_937 = TreeSitter.Node.nodeEndPoint node_933 deriving instance GHC.Classes.Eq a_938 => GHC.Classes.Eq (UpdateExpression a_938) deriving instance GHC.Classes.Ord a_939 => GHC.Classes.Ord (UpdateExpression a_939) deriving instance GHC.Show.Show a_940 => GHC.Show.Show (UpdateExpression a_940) instance AST.Unmarshal.Unmarshal UpdateExpression instance Data.Foldable.Foldable UpdateExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor UpdateExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable UpdateExpression where traverse = AST.Traversable1.Class.traverseDefault1 data VariableDeclarator a = VariableDeclarator { ann :: a, value :: (GHC.Maybe.Maybe (AST.Parse.Err ((Expression GHC.Generics.:+: ArrayInitializer) a))), name :: (AST.Parse.Err (Identifier a)), dimensions :: (GHC.Maybe.Maybe (AST.Parse.Err (Dimensions a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_941. AST.Traversable1.Class.Traversable1 a_941 ) instance AST.Unmarshal.SymbolMatching VariableDeclarator where matchedSymbols _ = [222] showFailure _ node_942 = "expected " GHC.Base.<> ( "variable_declarator" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_942 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_943 c1_944 = TreeSitter.Node.nodeStartPoint node_942 TreeSitter.Node.TSPoint r2_945 c2_946 = TreeSitter.Node.nodeEndPoint node_942 deriving instance GHC.Classes.Eq a_947 => GHC.Classes.Eq (VariableDeclarator a_947) deriving instance GHC.Classes.Ord a_948 => GHC.Classes.Ord (VariableDeclarator a_948) deriving instance GHC.Show.Show a_949 => GHC.Show.Show (VariableDeclarator a_949) instance AST.Unmarshal.Unmarshal VariableDeclarator instance Data.Foldable.Foldable VariableDeclarator where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor VariableDeclarator where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable VariableDeclarator where traverse = AST.Traversable1.Class.traverseDefault1 data WhileStatement a = WhileStatement { ann :: a, body :: (AST.Parse.Err (Statement a)), condition :: (AST.Parse.Err (ParenthesizedExpression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_950. AST.Traversable1.Class.Traversable1 a_950 ) instance AST.Unmarshal.SymbolMatching WhileStatement where matchedSymbols _ = [174] showFailure _ node_951 = "expected " GHC.Base.<> ( "while_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_951 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_952 c1_953 = TreeSitter.Node.nodeStartPoint node_951 TreeSitter.Node.TSPoint r2_954 c2_955 = TreeSitter.Node.nodeEndPoint node_951 deriving instance GHC.Classes.Eq a_956 => GHC.Classes.Eq (WhileStatement a_956) deriving instance GHC.Classes.Ord a_957 => GHC.Classes.Ord (WhileStatement a_957) deriving instance GHC.Show.Show a_958 => GHC.Show.Show (WhileStatement a_958) instance AST.Unmarshal.Unmarshal WhileStatement instance Data.Foldable.Foldable WhileStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor WhileStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable WhileStatement where traverse = AST.Traversable1.Class.traverseDefault1 data Wildcard a = Wildcard { ann :: a, extraChildren :: ([AST.Parse.Err ((Type GHC.Generics.:+: Annotation GHC.Generics.:+: MarkerAnnotation GHC.Generics.:+: Super) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_959. AST.Traversable1.Class.Traversable1 a_959 ) instance AST.Unmarshal.SymbolMatching Wildcard where matchedSymbols _ = [148] showFailure _ node_960 = "expected " GHC.Base.<> ( "wildcard" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_960 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_961 c1_962 = TreeSitter.Node.nodeStartPoint node_960 TreeSitter.Node.TSPoint r2_963 c2_964 = TreeSitter.Node.nodeEndPoint node_960 deriving instance GHC.Classes.Eq a_965 => GHC.Classes.Eq (Wildcard a_965) deriving instance GHC.Classes.Ord a_966 => GHC.Classes.Ord (Wildcard a_966) deriving instance GHC.Show.Show a_967 => GHC.Show.Show (Wildcard a_967) instance AST.Unmarshal.Unmarshal Wildcard instance Data.Foldable.Foldable Wildcard where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Wildcard where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Wildcard where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousBang = AST.Token.Token "!" 51 type AnonymousBangEqual = AST.Token.Token "!=" 33 type AnonymousPercent = AST.Token.Token "%" 42 type AnonymousPercentEqual = AST.Token.Token "%=" 24 type AnonymousAmpersand = AST.Token.Token "&" 14 type AnonymousAmpersandAmpersand = AST.Token.Token "&&" 34 type AnonymousAmpersandEqual = AST.Token.Token "&=" 21 type AnonymousLParen = AST.Token.Token "(" 13 type AnonymousRParen = AST.Token.Token ")" 15 type AnonymousStar = AST.Token.Token "*" 38 type AnonymousStarEqual = AST.Token.Token "*=" 19 type AnonymousPlus = AST.Token.Token "+" 36 type AnonymousPlusPlus = AST.Token.Token "++" 53 type AnonymousPlusEqual = AST.Token.Token "+=" 17 type AnonymousComma = AST.Token.Token "," 48 type AnonymousMinus = AST.Token.Token "-" 37 type AnonymousMinusMinus = AST.Token.Token "--" 54 type AnonymousMinusEqual = AST.Token.Token "-=" 18 type AnonymousMinusRAngle = AST.Token.Token "->" 47 type AnonymousDot = AST.Token.Token "." 58 type AnonymousDotDotDot = AST.Token.Token "..." 118 type AnonymousSlash = AST.Token.Token "/" 39 type AnonymousSlashEqual = AST.Token.Token "/=" 20 type AnonymousColon = AST.Token.Token ":" 50 type AnonymousColonColon = AST.Token.Token "::" 60 type AnonymousSemicolon = AST.Token.Token ";" 62 type AnonymousLAngle = AST.Token.Token "<" 29 type AnonymousLAngleLAngle = AST.Token.Token "<<" 43 type AnonymousLAngleLAngleEqual = AST.Token.Token "<<=" 25 type AnonymousLAngleEqual = AST.Token.Token "<=" 32 type AnonymousEqual = AST.Token.Token "=" 16 type AnonymousEqualEqual = AST.Token.Token "==" 30 type AnonymousRAngle = AST.Token.Token ">" 28 type AnonymousRAngleEqual = AST.Token.Token ">=" 31 type AnonymousRAngleRAngle = AST.Token.Token ">>" 44 type AnonymousRAngleRAngleEqual = AST.Token.Token ">>=" 26 type AnonymousRAngleRAngleRAngle = AST.Token.Token ">>>" 45 type AnonymousRAngleRAngleRAngleEqual = AST.Token.Token ">>>=" 27 type AnonymousQuestion = AST.Token.Token "?" 49 type AnonymousAt = AST.Token.Token "@" 82 type AnonymousAtinterface = AST.Token.Token "@interface" 107 type AnonymousLBracket = AST.Token.Token "[" 56 type AnonymousRBracket = AST.Token.Token "]" 57 type AnonymousCaret = AST.Token.Token "^" 41 type AnonymousCaretEqual = AST.Token.Token "^=" 23 type AnonymousAbstract = AST.Token.Token "abstract" 100 type AnonymousAssert = AST.Token.Token "assert" 65 data BinaryIntegerLiteral a = BinaryIntegerLiteral {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_968. AST.Traversable1.Class.Traversable1 a_968 ) instance AST.Unmarshal.SymbolMatching BinaryIntegerLiteral where matchedSymbols _ = [5] showFailure _ node_969 = "expected " GHC.Base.<> ( "binary_integer_literal" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_969 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_970 c1_971 = TreeSitter.Node.nodeStartPoint node_969 TreeSitter.Node.TSPoint r2_972 c2_973 = TreeSitter.Node.nodeEndPoint node_969 deriving instance GHC.Classes.Eq a_974 => GHC.Classes.Eq (BinaryIntegerLiteral a_974) deriving instance GHC.Classes.Ord a_975 => GHC.Classes.Ord (BinaryIntegerLiteral a_975) deriving instance GHC.Show.Show a_976 => GHC.Show.Show (BinaryIntegerLiteral a_976) instance AST.Unmarshal.Unmarshal BinaryIntegerLiteral instance Data.Foldable.Foldable BinaryIntegerLiteral where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor BinaryIntegerLiteral where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable BinaryIntegerLiteral where traverse = AST.Traversable1.Class.traverseDefault1 data BooleanType a = BooleanType {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_977. AST.Traversable1.Class.Traversable1 a_977 ) instance AST.Unmarshal.SymbolMatching BooleanType where matchedSymbols _ = [116] showFailure _ node_978 = "expected " GHC.Base.<> ( "boolean_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_978 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_979 c1_980 = TreeSitter.Node.nodeStartPoint node_978 TreeSitter.Node.TSPoint r2_981 c2_982 = TreeSitter.Node.nodeEndPoint node_978 deriving instance GHC.Classes.Eq a_983 => GHC.Classes.Eq (BooleanType a_983) deriving instance GHC.Classes.Ord a_984 => GHC.Classes.Ord (BooleanType a_984) deriving instance GHC.Show.Show a_985 => GHC.Show.Show (BooleanType a_985) instance AST.Unmarshal.Unmarshal BooleanType instance Data.Foldable.Foldable BooleanType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor BooleanType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable BooleanType where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousBreak = AST.Token.Token "break" 71 type AnonymousByte = AST.Token.Token "byte" 109 type AnonymousCase = AST.Token.Token "case" 67 type AnonymousCatch = AST.Token.Token "catch" 77 type AnonymousChar = AST.Token.Token "char" 113 data CharacterLiteral a = CharacterLiteral {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_986. AST.Traversable1.Class.Traversable1 a_986 ) instance AST.Unmarshal.SymbolMatching CharacterLiteral where matchedSymbols _ = [10] showFailure _ node_987 = "expected " GHC.Base.<> ( "character_literal" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_987 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_988 c1_989 = TreeSitter.Node.nodeStartPoint node_987 TreeSitter.Node.TSPoint r2_990 c2_991 = TreeSitter.Node.nodeEndPoint node_987 deriving instance GHC.Classes.Eq a_992 => GHC.Classes.Eq (CharacterLiteral a_992) deriving instance GHC.Classes.Ord a_993 => GHC.Classes.Ord (CharacterLiteral a_993) deriving instance GHC.Show.Show a_994 => GHC.Show.Show (CharacterLiteral a_994) instance AST.Unmarshal.Unmarshal CharacterLiteral instance Data.Foldable.Foldable CharacterLiteral where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor CharacterLiteral where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable CharacterLiteral where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousClass = AST.Token.Token "class" 59 type AnonymousContinue = AST.Token.Token "continue" 72 data DecimalFloatingPointLiteral a = DecimalFloatingPointLiteral { ann :: a, text :: Data.Text.Internal.Text } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_995. AST.Traversable1.Class.Traversable1 a_995 ) instance AST.Unmarshal.SymbolMatching DecimalFloatingPointLiteral where matchedSymbols _ = [6] showFailure _ node_996 = "expected " GHC.Base.<> ( "decimal_floating_point_literal" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_996 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_997 c1_998 = TreeSitter.Node.nodeStartPoint node_996 TreeSitter.Node.TSPoint r2_999 c2_1000 = TreeSitter.Node.nodeEndPoint node_996 deriving instance GHC.Classes.Eq a_1001 => GHC.Classes.Eq (DecimalFloatingPointLiteral a_1001) deriving instance GHC.Classes.Ord a_1002 => GHC.Classes.Ord (DecimalFloatingPointLiteral a_1002) deriving instance GHC.Show.Show a_1003 => GHC.Show.Show (DecimalFloatingPointLiteral a_1003) instance AST.Unmarshal.Unmarshal DecimalFloatingPointLiteral instance Data.Foldable.Foldable DecimalFloatingPointLiteral where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DecimalFloatingPointLiteral where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DecimalFloatingPointLiteral where traverse = AST.Traversable1.Class.traverseDefault1 data DecimalIntegerLiteral a = DecimalIntegerLiteral {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1004. AST.Traversable1.Class.Traversable1 a_1004 ) instance AST.Unmarshal.SymbolMatching DecimalIntegerLiteral where matchedSymbols _ = [2] showFailure _ node_1005 = "expected " GHC.Base.<> ( "decimal_integer_literal" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1005 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1006 c1_1007 = TreeSitter.Node.nodeStartPoint node_1005 TreeSitter.Node.TSPoint r2_1008 c2_1009 = TreeSitter.Node.nodeEndPoint node_1005 deriving instance GHC.Classes.Eq a_1010 => GHC.Classes.Eq (DecimalIntegerLiteral a_1010) deriving instance GHC.Classes.Ord a_1011 => GHC.Classes.Ord (DecimalIntegerLiteral a_1011) deriving instance GHC.Show.Show a_1012 => GHC.Show.Show (DecimalIntegerLiteral a_1012) instance AST.Unmarshal.Unmarshal DecimalIntegerLiteral instance Data.Foldable.Foldable DecimalIntegerLiteral where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DecimalIntegerLiteral where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DecimalIntegerLiteral where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousDefault = AST.Token.Token "default" 68 type AnonymousDo = AST.Token.Token "do" 69 type AnonymousDouble = AST.Token.Token "double" 115 type AnonymousElse = AST.Token.Token "else" 80 type AnonymousEnum = AST.Token.Token "enum" 96 type AnonymousExports = AST.Token.Token "exports" 86 type AnonymousExtends = AST.Token.Token "extends" 61 data False a = False {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1013. AST.Traversable1.Class.Traversable1 a_1013 ) instance AST.Unmarshal.SymbolMatching False where matchedSymbols _ = [9] showFailure _ node_1014 = "expected " GHC.Base.<> ( "false" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1014 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1015 c1_1016 = TreeSitter.Node.nodeStartPoint node_1014 TreeSitter.Node.TSPoint r2_1017 c2_1018 = TreeSitter.Node.nodeEndPoint node_1014 deriving instance GHC.Classes.Eq a_1019 => GHC.Classes.Eq (False a_1019) deriving instance GHC.Classes.Ord a_1020 => GHC.Classes.Ord (False a_1020) deriving instance GHC.Show.Show a_1021 => GHC.Show.Show (False a_1021) instance AST.Unmarshal.Unmarshal False instance Data.Foldable.Foldable False where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor False where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable False where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousFinal = AST.Token.Token "final" 101 type AnonymousFinally = AST.Token.Token "finally" 78 type AnonymousFloat = AST.Token.Token "float" 114 type AnonymousFor = AST.Token.Token "for" 81 data HexFloatingPointLiteral a = HexFloatingPointLiteral { ann :: a, text :: Data.Text.Internal.Text } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1022. AST.Traversable1.Class.Traversable1 a_1022 ) instance AST.Unmarshal.SymbolMatching HexFloatingPointLiteral where matchedSymbols _ = [7] showFailure _ node_1023 = "expected " GHC.Base.<> ( "hex_floating_point_literal" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1023 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1024 c1_1025 = TreeSitter.Node.nodeStartPoint node_1023 TreeSitter.Node.TSPoint r2_1026 c2_1027 = TreeSitter.Node.nodeEndPoint node_1023 deriving instance GHC.Classes.Eq a_1028 => GHC.Classes.Eq (HexFloatingPointLiteral a_1028) deriving instance GHC.Classes.Ord a_1029 => GHC.Classes.Ord (HexFloatingPointLiteral a_1029) deriving instance GHC.Show.Show a_1030 => GHC.Show.Show (HexFloatingPointLiteral a_1030) instance AST.Unmarshal.Unmarshal HexFloatingPointLiteral instance Data.Foldable.Foldable HexFloatingPointLiteral where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor HexFloatingPointLiteral where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable HexFloatingPointLiteral where traverse = AST.Traversable1.Class.traverseDefault1 data HexIntegerLiteral a = HexIntegerLiteral {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1031. AST.Traversable1.Class.Traversable1 a_1031 ) instance AST.Unmarshal.SymbolMatching HexIntegerLiteral where matchedSymbols _ = [3] showFailure _ node_1032 = "expected " GHC.Base.<> ( "hex_integer_literal" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1032 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1033 c1_1034 = TreeSitter.Node.nodeStartPoint node_1032 TreeSitter.Node.TSPoint r2_1035 c2_1036 = TreeSitter.Node.nodeEndPoint node_1032 deriving instance GHC.Classes.Eq a_1037 => GHC.Classes.Eq (HexIntegerLiteral a_1037) deriving instance GHC.Classes.Ord a_1038 => GHC.Classes.Ord (HexIntegerLiteral a_1038) deriving instance GHC.Show.Show a_1039 => GHC.Show.Show (HexIntegerLiteral a_1039) instance AST.Unmarshal.Unmarshal HexIntegerLiteral instance Data.Foldable.Foldable HexIntegerLiteral where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor HexIntegerLiteral where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable HexIntegerLiteral where traverse = AST.Traversable1.Class.traverseDefault1 data Identifier a = Identifier {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1040. AST.Traversable1.Class.Traversable1 a_1040 ) instance AST.Unmarshal.SymbolMatching Identifier where matchedSymbols _ = [1] showFailure _ node_1041 = "expected " GHC.Base.<> ( "identifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1041 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1042 c1_1043 = TreeSitter.Node.nodeStartPoint node_1041 TreeSitter.Node.TSPoint r2_1044 c2_1045 = TreeSitter.Node.nodeEndPoint node_1041 deriving instance GHC.Classes.Eq a_1046 => GHC.Classes.Eq (Identifier a_1046) deriving instance GHC.Classes.Ord a_1047 => GHC.Classes.Ord (Identifier a_1047) deriving instance GHC.Show.Show a_1048 => GHC.Show.Show (Identifier a_1048) instance AST.Unmarshal.Unmarshal Identifier instance Data.Foldable.Foldable Identifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Identifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Identifier where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousIf = AST.Token.Token "if" 79 type AnonymousImplements = AST.Token.Token "implements" 106 type AnonymousImport = AST.Token.Token "import" 95 type AnonymousInstanceof = AST.Token.Token "instanceof" 46 type AnonymousInt = AST.Token.Token "int" 111 type AnonymousInterface = AST.Token.Token "interface" 108 type AnonymousLong = AST.Token.Token "long" 112 type AnonymousModule = AST.Token.Token "module" 84 type AnonymousNative = AST.Token.Token "native" 103 type AnonymousNew = AST.Token.Token "new" 55 data NullLiteral a = NullLiteral {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1049. AST.Traversable1.Class.Traversable1 a_1049 ) instance AST.Unmarshal.SymbolMatching NullLiteral where matchedSymbols _ = [12] showFailure _ node_1050 = "expected " GHC.Base.<> ( "null_literal" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1050 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1051 c1_1052 = TreeSitter.Node.nodeStartPoint node_1050 TreeSitter.Node.TSPoint r2_1053 c2_1054 = TreeSitter.Node.nodeEndPoint node_1050 deriving instance GHC.Classes.Eq a_1055 => GHC.Classes.Eq (NullLiteral a_1055) deriving instance GHC.Classes.Ord a_1056 => GHC.Classes.Ord (NullLiteral a_1056) deriving instance GHC.Show.Show a_1057 => GHC.Show.Show (NullLiteral a_1057) instance AST.Unmarshal.Unmarshal NullLiteral instance Data.Foldable.Foldable NullLiteral where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor NullLiteral where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable NullLiteral where traverse = AST.Traversable1.Class.traverseDefault1 data OctalIntegerLiteral a = OctalIntegerLiteral {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1058. AST.Traversable1.Class.Traversable1 a_1058 ) instance AST.Unmarshal.SymbolMatching OctalIntegerLiteral where matchedSymbols _ = [4] showFailure _ node_1059 = "expected " GHC.Base.<> ( "octal_integer_literal" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1059 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1060 c1_1061 = TreeSitter.Node.nodeStartPoint node_1059 TreeSitter.Node.TSPoint r2_1062 c2_1063 = TreeSitter.Node.nodeEndPoint node_1059 deriving instance GHC.Classes.Eq a_1064 => GHC.Classes.Eq (OctalIntegerLiteral a_1064) deriving instance GHC.Classes.Ord a_1065 => GHC.Classes.Ord (OctalIntegerLiteral a_1065) deriving instance GHC.Show.Show a_1066 => GHC.Show.Show (OctalIntegerLiteral a_1066) instance AST.Unmarshal.Unmarshal OctalIntegerLiteral instance Data.Foldable.Foldable OctalIntegerLiteral where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor OctalIntegerLiteral where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable OctalIntegerLiteral where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousOpen = AST.Token.Token "open" 83 type AnonymousOpens = AST.Token.Token "opens" 88 type AnonymousPackage = AST.Token.Token "package" 94 type AnonymousPrivate = AST.Token.Token "private" 99 type AnonymousProtected = AST.Token.Token "protected" 98 type AnonymousProvides = AST.Token.Token "provides" 90 type AnonymousPublic = AST.Token.Token "public" 97 type AnonymousRequires = AST.Token.Token "requires" 85 type AnonymousReturn = AST.Token.Token "return" 73 type AnonymousShort = AST.Token.Token "short" 110 type AnonymousStatic = AST.Token.Token "static" 93 type AnonymousStrictfp = AST.Token.Token "strictfp" 102 data StringLiteral a = StringLiteral {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1067. AST.Traversable1.Class.Traversable1 a_1067 ) instance AST.Unmarshal.SymbolMatching StringLiteral where matchedSymbols _ = [11] showFailure _ node_1068 = "expected " GHC.Base.<> ( "string_literal" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1068 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1069 c1_1070 = TreeSitter.Node.nodeStartPoint node_1068 TreeSitter.Node.TSPoint r2_1071 c2_1072 = TreeSitter.Node.nodeEndPoint node_1068 deriving instance GHC.Classes.Eq a_1073 => GHC.Classes.Eq (StringLiteral a_1073) deriving instance GHC.Classes.Ord a_1074 => GHC.Classes.Ord (StringLiteral a_1074) deriving instance GHC.Show.Show a_1075 => GHC.Show.Show (StringLiteral a_1075) instance AST.Unmarshal.Unmarshal StringLiteral instance Data.Foldable.Foldable StringLiteral where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor StringLiteral where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable StringLiteral where traverse = AST.Traversable1.Class.traverseDefault1 data Super a = Super {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1076. AST.Traversable1.Class.Traversable1 a_1076 ) instance AST.Unmarshal.SymbolMatching Super where matchedSymbols _ = [121] showFailure _ node_1077 = "expected " GHC.Base.<> ( "super" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1077 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1078 c1_1079 = TreeSitter.Node.nodeStartPoint node_1077 TreeSitter.Node.TSPoint r2_1080 c2_1081 = TreeSitter.Node.nodeEndPoint node_1077 deriving instance GHC.Classes.Eq a_1082 => GHC.Classes.Eq (Super a_1082) deriving instance GHC.Classes.Ord a_1083 => GHC.Classes.Ord (Super a_1083) deriving instance GHC.Show.Show a_1084 => GHC.Show.Show (Super a_1084) instance AST.Unmarshal.Unmarshal Super instance Data.Foldable.Foldable Super where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Super where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Super where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousSwitch = AST.Token.Token "switch" 66 type AnonymousSynchronized = AST.Token.Token "synchronized" 74 data This a = This {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1085. AST.Traversable1.Class.Traversable1 a_1085 ) instance AST.Unmarshal.SymbolMatching This where matchedSymbols _ = [120] showFailure _ node_1086 = "expected " GHC.Base.<> ( "this" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1086 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1087 c1_1088 = TreeSitter.Node.nodeStartPoint node_1086 TreeSitter.Node.TSPoint r2_1089 c2_1090 = TreeSitter.Node.nodeEndPoint node_1086 deriving instance GHC.Classes.Eq a_1091 => GHC.Classes.Eq (This a_1091) deriving instance GHC.Classes.Ord a_1092 => GHC.Classes.Ord (This a_1092) deriving instance GHC.Show.Show a_1093 => GHC.Show.Show (This a_1093) instance AST.Unmarshal.Unmarshal This instance Data.Foldable.Foldable This where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor This where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable This where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousThrow = AST.Token.Token "throw" 75 type AnonymousThrows = AST.Token.Token "throws" 119 type AnonymousTo = AST.Token.Token "to" 87 type AnonymousTransient = AST.Token.Token "transient" 104 type AnonymousTransitive = AST.Token.Token "transitive" 92 data True a = True {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1094. AST.Traversable1.Class.Traversable1 a_1094 ) instance AST.Unmarshal.SymbolMatching True where matchedSymbols _ = [8] showFailure _ node_1095 = "expected " GHC.Base.<> ( "true" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1095 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1096 c1_1097 = TreeSitter.Node.nodeStartPoint node_1095 TreeSitter.Node.TSPoint r2_1098 c2_1099 = TreeSitter.Node.nodeEndPoint node_1095 deriving instance GHC.Classes.Eq a_1100 => GHC.Classes.Eq (True a_1100) deriving instance GHC.Classes.Ord a_1101 => GHC.Classes.Ord (True a_1101) deriving instance GHC.Show.Show a_1102 => GHC.Show.Show (True a_1102) instance AST.Unmarshal.Unmarshal True instance Data.Foldable.Foldable True where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor True where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable True where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousTry = AST.Token.Token "try" 76 data TypeIdentifier a = TypeIdentifier {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1103. AST.Traversable1.Class.Traversable1 a_1103 ) instance AST.Unmarshal.SymbolMatching TypeIdentifier where matchedSymbols _ = [274] showFailure _ node_1104 = "expected " GHC.Base.<> ( "type_identifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1104 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1105 c1_1106 = TreeSitter.Node.nodeStartPoint node_1104 TreeSitter.Node.TSPoint r2_1107 c2_1108 = TreeSitter.Node.nodeEndPoint node_1104 deriving instance GHC.Classes.Eq a_1109 => GHC.Classes.Eq (TypeIdentifier a_1109) deriving instance GHC.Classes.Ord a_1110 => GHC.Classes.Ord (TypeIdentifier a_1110) deriving instance GHC.Show.Show a_1111 => GHC.Show.Show (TypeIdentifier a_1111) instance AST.Unmarshal.Unmarshal TypeIdentifier instance Data.Foldable.Foldable TypeIdentifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeIdentifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeIdentifier where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousUses = AST.Token.Token "uses" 89 data VoidType a = VoidType {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1112. AST.Traversable1.Class.Traversable1 a_1112 ) instance AST.Unmarshal.SymbolMatching VoidType where matchedSymbols _ = [117] showFailure _ node_1113 = "expected " GHC.Base.<> ( "void_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1113 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1114 c1_1115 = TreeSitter.Node.nodeStartPoint node_1113 TreeSitter.Node.TSPoint r2_1116 c2_1117 = TreeSitter.Node.nodeEndPoint node_1113 deriving instance GHC.Classes.Eq a_1118 => GHC.Classes.Eq (VoidType a_1118) deriving instance GHC.Classes.Ord a_1119 => GHC.Classes.Ord (VoidType a_1119) deriving instance GHC.Show.Show a_1120 => GHC.Show.Show (VoidType a_1120) instance AST.Unmarshal.Unmarshal VoidType instance Data.Foldable.Foldable VoidType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor VoidType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable VoidType where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousVolatile = AST.Token.Token "volatile" 105 type AnonymousWhile = AST.Token.Token "while" 70 type AnonymousWith = AST.Token.Token "with" 91 type AnonymousLBrace = AST.Token.Token "{" 63 type AnonymousPipe = AST.Token.Token "|" 40 type AnonymousPipeEqual = AST.Token.Token "|=" 22 type AnonymousPipePipe = AST.Token.Token "||" 35 type AnonymousRBrace = AST.Token.Token "}" 64 type AnonymousTilde = AST.Token.Token "~" 52 ================================================ FILE: semantic-java/src/Language/Java/Grammar.hs ================================================ {-# LANGUAGE TemplateHaskell #-} module Language.Java.Grammar ( tree_sitter_java , Grammar(..) ) where import AST.Grammar.TH import Language.Haskell.TH import TreeSitter.Java (tree_sitter_java) -- | Statically-known rules corresponding to symbols in the grammar. mkStaticallyKnownRuleGrammarData (mkName "Grammar") tree_sitter_java ================================================ FILE: semantic-java/src/Language/Java/Tags.hs ================================================ {-# LANGUAGE DefaultSignatures #-} {-# LANGUAGE DisambiguateRecordFields #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} module Language.Java.Tags ( ToTags (..), ) where import AST.Element import qualified AST.Parse as Parse import AST.Token import AST.Traversable1 import Control.Effect.Reader import Control.Effect.Writer import Control.Effect.State import Data.Foldable import qualified Language.Java.AST as Java import Proto.Semantic as P import Source.Loc import Source.Range import Source.Source as Source import qualified Tags.Tagging.Precise as Tags class ToTags t where tags :: ( Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m ) => t Loc -> m () default tags :: ( Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m, Traversable1 ToTags t ) => t Loc -> m () tags = gtags instance (ToTags l, ToTags r) => ToTags (l :+: r) where tags (L1 l) = tags l tags (R1 r) = tags r instance ToTags (Token sym n) where tags _ = pure () instance ToTags Java.MethodDeclaration where tags t@Java.MethodDeclaration { ann = Loc {byteRange = range}, name = Parse.Success (Java.Identifier {text, ann}), body } = do let srcRange = range { end = case body of Just (Parse.Success (Java.Block {ann = Loc Range {end} _})) -> end Nothing -> end range Just (Parse.Fail _) -> end range } Tags.yield text P.METHOD P.DEFINITION ann srcRange gtags t tags _ = pure () -- TODO: we can coalesce a lot of these instances given proper use of HasField -- to do the equivalent of type-generic pattern-matching. instance ToTags Java.ClassDeclaration where tags t@Java.ClassDeclaration { ann = Loc {byteRange = Range {start}}, name = Parse.Success (Java.Identifier {text, ann}), body = Parse.Success (Java.ClassBody {ann = Loc Range {start = end} _}) } = do Tags.yield text P.CLASS P.DEFINITION ann (Range start end) gtags t tags _ = pure () instance ToTags Java.MethodInvocation where tags t@Java.MethodInvocation { ann = Loc {byteRange = range}, name = Parse.Success (Java.Identifier {text, ann}) } = do Tags.yield text P.CALL P.REFERENCE ann range gtags t tags _ = pure () instance ToTags Java.InterfaceDeclaration where tags t@Java.InterfaceDeclaration { ann = Loc {byteRange}, name = Parse.Success (Java.Identifier {text, ann}) } = do Tags.yield text P.INTERFACE P.DEFINITION ann byteRange gtags t tags _ = pure () instance ToTags Java.InterfaceTypeList where tags t@Java.InterfaceTypeList {extraChildren = interfaces} = do for_ interfaces $ \x -> case x of Parse.Success (Java.Type (Prj (Java.UnannotatedType (Prj (Java.SimpleType (Prj Java.TypeIdentifier {ann = loc@Loc {byteRange = range}, text = name})))))) -> Tags.yield name P.IMPLEMENTATION P.REFERENCE loc range _ -> pure () gtags t gtags :: ( Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m, Traversable1 ToTags t ) => t Loc -> m () gtags = traverse1_ @ToTags (const (pure ())) tags instance ToTags Java.AnnotatedType instance ToTags Java.Annotation instance ToTags Java.AnnotationArgumentList instance ToTags Java.AnnotationTypeBody instance ToTags Java.AnnotationTypeDeclaration instance ToTags Java.AnnotationTypeElementDeclaration instance ToTags Java.ArgumentList instance ToTags Java.ArrayAccess instance ToTags Java.ArrayCreationExpression instance ToTags Java.ArrayInitializer instance ToTags Java.ArrayType instance ToTags Java.AssertStatement instance ToTags Java.AssignmentExpression instance ToTags Java.Asterisk instance ToTags Java.BinaryExpression instance ToTags Java.BinaryIntegerLiteral instance ToTags Java.Block instance ToTags Java.BooleanType instance ToTags Java.BreakStatement instance ToTags Java.CastExpression instance ToTags Java.CatchClause instance ToTags Java.CatchFormalParameter instance ToTags Java.CatchType instance ToTags Java.CharacterLiteral instance ToTags Java.ClassBody -- instance ToTags Java.ClassDeclaration instance ToTags Java.ClassLiteral instance ToTags Java.ConstantDeclaration instance ToTags Java.ConstructorBody instance ToTags Java.ConstructorDeclaration instance ToTags Java.ContinueStatement instance ToTags Java.DecimalFloatingPointLiteral instance ToTags Java.DecimalIntegerLiteral instance ToTags Java.Declaration instance ToTags Java.Dimensions instance ToTags Java.DimensionsExpr instance ToTags Java.DoStatement instance ToTags Java.ElementValueArrayInitializer instance ToTags Java.ElementValuePair instance ToTags Java.EnhancedForStatement instance ToTags Java.EnumBody instance ToTags Java.EnumBodyDeclarations instance ToTags Java.EnumConstant instance ToTags Java.EnumDeclaration instance ToTags Java.ExplicitConstructorInvocation instance ToTags Java.Expression instance ToTags Java.ExpressionStatement instance ToTags Java.ExtendsInterfaces instance ToTags Java.False instance ToTags Java.FieldAccess instance ToTags Java.FieldDeclaration instance ToTags Java.FinallyClause instance ToTags Java.FloatingPointType instance ToTags Java.ForInit instance ToTags Java.ForStatement instance ToTags Java.FormalParameter instance ToTags Java.FormalParameters instance ToTags Java.GenericType instance ToTags Java.HexFloatingPointLiteral instance ToTags Java.HexIntegerLiteral instance ToTags Java.Identifier instance ToTags Java.IfStatement instance ToTags Java.ImportDeclaration instance ToTags Java.InferredParameters instance ToTags Java.InstanceofExpression instance ToTags Java.IntegralType instance ToTags Java.InterfaceBody --instance ToTags Java.InterfaceDeclaration -- instance ToTags Java.InterfaceTypeList instance ToTags Java.LabeledStatement instance ToTags Java.LambdaExpression instance ToTags Java.Literal instance ToTags Java.LocalVariableDeclaration instance ToTags Java.LocalVariableDeclarationStatement instance ToTags Java.MarkerAnnotation -- instance ToTags Java.MethodDeclaration -- instance ToTags Java.MethodInvocation instance ToTags Java.MethodReference instance ToTags Java.Modifiers instance ToTags Java.ModuleDeclaration instance ToTags Java.ModuleDirective instance ToTags Java.ModuleName instance ToTags Java.NullLiteral instance ToTags Java.ObjectCreationExpression instance ToTags Java.OctalIntegerLiteral instance ToTags Java.PackageDeclaration instance ToTags Java.ParenthesizedExpression instance ToTags Java.Primary instance ToTags Java.Program instance ToTags Java.ReceiverParameter instance ToTags Java.RequiresModifier instance ToTags Java.Resource instance ToTags Java.ResourceSpecification instance ToTags Java.ReturnStatement instance ToTags Java.ScopedIdentifier instance ToTags Java.ScopedTypeIdentifier instance ToTags Java.SimpleType instance ToTags Java.SpreadParameter instance ToTags Java.Statement instance ToTags Java.StaticInitializer instance ToTags Java.StringLiteral instance ToTags Java.Super instance ToTags Java.SuperInterfaces instance ToTags Java.Superclass instance ToTags Java.SwitchBlock instance ToTags Java.SwitchLabel instance ToTags Java.SwitchStatement instance ToTags Java.SynchronizedStatement instance ToTags Java.TernaryExpression instance ToTags Java.This instance ToTags Java.ThrowStatement instance ToTags Java.Throws instance ToTags Java.True instance ToTags Java.TryStatement instance ToTags Java.TryWithResourcesStatement instance ToTags Java.Type instance ToTags Java.TypeArguments instance ToTags Java.TypeBound instance ToTags Java.TypeIdentifier instance ToTags Java.TypeParameter instance ToTags Java.TypeParameters instance ToTags Java.UnannotatedType instance ToTags Java.UnaryExpression instance ToTags Java.UpdateExpression instance ToTags Java.VariableDeclarator instance ToTags Java.VoidType instance ToTags Java.WhileStatement instance ToTags Java.Wildcard ================================================ FILE: semantic-java/src/Language/Java.hs ================================================ {-# LANGUAGE GeneralizedNewtypeDeriving #-} -- | Semantic functionality for Java programs. module Language.Java ( Term(..) , Language.Java.Grammar.tree_sitter_java ) where import AST.Marshal.JSON import Data.Proxy import qualified Language.Java.AST as Java import qualified Language.Java.Tags as JavaTags import qualified Tags.Tagging.Precise as Tags import qualified Language.Java.Grammar (tree_sitter_java) import qualified AST.Unmarshal as TS newtype Term a = Term { getTerm :: Java.Program a } deriving MarshalJSON instance TS.SymbolMatching Term where matchedSymbols _ = TS.matchedSymbols (Proxy :: Proxy Java.Program) showFailure _ = TS.showFailure (Proxy :: Proxy Java.Program) instance TS.Unmarshal Term where matchers = fmap (fmap (TS.hoist Term)) TS.matchers instance Tags.ToTags Term where tags src = Tags.runTagging src . JavaTags.tags . getTerm ================================================ FILE: semantic-java/test/PreciseTest.hs ================================================ {-# LANGUAGE CPP #-} {-# LANGUAGE ImplicitParams #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeApplications #-} {-# OPTIONS_GHC -Wno-unused-imports #-} module Main ( main, ) where import AST.TestHelpers import AST.Unmarshal import qualified Language.Java.AST as Java import qualified System.Path.Fixture as Fixture import Test.Tasty import TreeSitter.Java main :: IO () main = do #if BAZEL_BUILD rf <- Fixture.create -- let ?project = "external/tree-sitter-java" ?runfiles = rf let dirs = Fixture.absRelDir "corpus" #else dirs <- Java.getTestCorpusDir #endif readCorpusFiles' dirs >>= traverse (testCorpus parse) >>= defaultMain . tests where parse = parseByteString @Java.Program @() tree_sitter_java tests :: [TestTree] -> TestTree tests = testGroup "tree-sitter-java corpus tests" ================================================ FILE: semantic-json/BUILD.bazel ================================================ package(default_visibility = ["//visibility:public"]) load( "//:build/common.bzl", "semantic_language_library", ) semantic_language_library( name = "semantic-json", srcs = glob(["src/**/*.hs"]), language = "json", ) ================================================ FILE: semantic-json/LICENSE ================================================ MIT License Copyright (c) 2019 GitHub Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: semantic-json/README.md ================================================ # semantic-json Semantic support for JSON. ## Development This project consists of a Haskell package named `semantic-json`. The library’s sources are in [`src`][]. Development of `semantic-json` is typically done using `cabal v2-build`: ```shell cabal v2-build # build the library cabal v2-repl # load the package into ghci cabal v2-test # build and run the doctests ``` [`src`]: https://github.com/github/semantic/tree/master/semantic-json/src ================================================ FILE: semantic-json/Setup.hs ================================================ import Distribution.Simple main = defaultMain ================================================ FILE: semantic-json/semantic-json.cabal ================================================ cabal-version: 2.4 name: semantic-json version: 0.0.0.0 synopsis: Semantic support for JSON description: Semantic support for JSON. homepage: https://github.com/github/semantic/tree/master/semantic-json#readme bug-reports: https://github.com/github/semantic/issues license: MIT license-file: LICENSE author: The Semantic authors maintainer: opensource+semantic@github.com copyright: (c) 2019 GitHub, Inc. category: Language build-type: Simple stability: alpha extra-source-files: README.md tested-with: GHC == 8.6.5 common haskell default-language: Haskell2010 ghc-options: -Weverything -Wno-missing-local-signatures -Wno-missing-import-lists -Wno-implicit-prelude -Wno-safe -Wno-unsafe -Wno-name-shadowing -Wno-monomorphism-restriction -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-star-is-type if (impl(ghc >= 8.8)) ghc-options: -Wno-missing-deriving-strategies if (impl(ghc >= 8.10)) ghc-options: -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module if (impl(ghc >= 9.2)) ghc-options: -Wno-missing-kind-signatures cpp-options: -DBAZEL_BUILD=0 library import: haskell exposed-modules: Language.JSON Language.JSON.AST Language.JSON.Grammar hs-source-dirs: src default-language: Haskell2010 build-depends: , base >= 4.13 && < 5 , semantic-ast , semantic-tags ^>= 0.0 , template-haskell >= 2.15 && < 2.22 , text ^>= 1.2.3 , tree-sitter ^>= 0.9 , tree-sitter-json ^>= 0.7.0.1 test-suite test import: haskell type: exitcode-stdio-1.0 hs-source-dirs: test main-is: PreciseTest.hs build-depends: , base , semantic-ast , semantic-json , tasty ================================================ FILE: semantic-json/src/Language/JSON/AST.hs ================================================ -- Language definition for JSON, generated by ast-generate. Do not edit! {-# LANGUAGE CPP #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE QuantifiedConstraints #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} module Language.JSON.AST (module Language.JSON.AST, getTestCorpusDir) where import qualified AST.Parse import qualified AST.Token import qualified AST.Traversable1.Class import qualified AST.Unmarshal import qualified Data.Foldable import qualified Data.List as Data.OldList import qualified Data.Maybe as GHC.Maybe import qualified Data.Text.Internal import qualified Data.Traversable import qualified GHC.Base import qualified GHC.Generics import qualified GHC.Records import qualified GHC.Show import TreeSitter.JSON (getTestCorpusDir) import qualified TreeSitter.Node import qualified Prelude as GHC.Classes debugSymbolNames :: [GHC.Base.String] debugSymbolNames = debugSymbolNames_0 debugSymbolNames_0 :: [GHC.Base.String] debugSymbolNames_0 = [ "end", "_{", "_,", "_}", "_:", "_[", "_]", "_\"", "_string_content_token1", "escape_sequence", "number", "true", "false", "null", "document", "_value", "object", "pair", "array", "string", "string_content", "_object_repeat1", "_array_repeat1", "_string_content_repeat1" ] newtype Value a = Value {getValue :: ((Array GHC.Generics.:+: False GHC.Generics.:+: Null GHC.Generics.:+: Number GHC.Generics.:+: Object GHC.Generics.:+: String GHC.Generics.:+: True) a)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1. AST.Traversable1.Class.Traversable1 a_1 ) instance GHC.Records.HasField "ann" (Value a_2) a_2 where getField = AST.Unmarshal.gann GHC.Base.. getValue deriving instance GHC.Classes.Eq a_3 => GHC.Classes.Eq (Value a_3) deriving instance GHC.Classes.Ord a_4 => GHC.Classes.Ord (Value a_4) deriving instance GHC.Show.Show a_5 => GHC.Show.Show (Value a_5) instance AST.Unmarshal.Unmarshal Value instance Data.Foldable.Foldable Value where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Value where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Value where traverse = AST.Traversable1.Class.traverseDefault1 data Array a = Array {ann :: a, extraChildren :: ([AST.Parse.Err (Value a)])} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_6. AST.Traversable1.Class.Traversable1 a_6 ) instance AST.Unmarshal.SymbolMatching Array where matchedSymbols _ = [18] showFailure _ node_7 = "expected " GHC.Base.<> ( "array" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_7 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_8 c1_9 = TreeSitter.Node.nodeStartPoint node_7 TreeSitter.Node.TSPoint r2_10 c2_11 = TreeSitter.Node.nodeEndPoint node_7 deriving instance GHC.Classes.Eq a_12 => GHC.Classes.Eq (Array a_12) deriving instance GHC.Classes.Ord a_13 => GHC.Classes.Ord (Array a_13) deriving instance GHC.Show.Show a_14 => GHC.Show.Show (Array a_14) instance AST.Unmarshal.Unmarshal Array instance Data.Foldable.Foldable Array where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Array where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Array where traverse = AST.Traversable1.Class.traverseDefault1 data Document a = Document {ann :: a, extraChildren :: (AST.Parse.Err (Value a))} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_15. AST.Traversable1.Class.Traversable1 a_15 ) instance AST.Unmarshal.SymbolMatching Document where matchedSymbols _ = [14] showFailure _ node_16 = "expected " GHC.Base.<> ( "document" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_16 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_17 c1_18 = TreeSitter.Node.nodeStartPoint node_16 TreeSitter.Node.TSPoint r2_19 c2_20 = TreeSitter.Node.nodeEndPoint node_16 deriving instance GHC.Classes.Eq a_21 => GHC.Classes.Eq (Document a_21) deriving instance GHC.Classes.Ord a_22 => GHC.Classes.Ord (Document a_22) deriving instance GHC.Show.Show a_23 => GHC.Show.Show (Document a_23) instance AST.Unmarshal.Unmarshal Document instance Data.Foldable.Foldable Document where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Document where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Document where traverse = AST.Traversable1.Class.traverseDefault1 data Object a = Object {ann :: a, extraChildren :: ([AST.Parse.Err (Pair a)])} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_24. AST.Traversable1.Class.Traversable1 a_24 ) instance AST.Unmarshal.SymbolMatching Object where matchedSymbols _ = [16] showFailure _ node_25 = "expected " GHC.Base.<> ( "object" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_25 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_26 c1_27 = TreeSitter.Node.nodeStartPoint node_25 TreeSitter.Node.TSPoint r2_28 c2_29 = TreeSitter.Node.nodeEndPoint node_25 deriving instance GHC.Classes.Eq a_30 => GHC.Classes.Eq (Object a_30) deriving instance GHC.Classes.Ord a_31 => GHC.Classes.Ord (Object a_31) deriving instance GHC.Show.Show a_32 => GHC.Show.Show (Object a_32) instance AST.Unmarshal.Unmarshal Object instance Data.Foldable.Foldable Object where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Object where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Object where traverse = AST.Traversable1.Class.traverseDefault1 data Pair a = Pair { ann :: a, value :: (AST.Parse.Err (Value a)), key :: (AST.Parse.Err ((Number GHC.Generics.:+: String) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_33. AST.Traversable1.Class.Traversable1 a_33 ) instance AST.Unmarshal.SymbolMatching Pair where matchedSymbols _ = [17] showFailure _ node_34 = "expected " GHC.Base.<> ( "pair" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_34 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_35 c1_36 = TreeSitter.Node.nodeStartPoint node_34 TreeSitter.Node.TSPoint r2_37 c2_38 = TreeSitter.Node.nodeEndPoint node_34 deriving instance GHC.Classes.Eq a_39 => GHC.Classes.Eq (Pair a_39) deriving instance GHC.Classes.Ord a_40 => GHC.Classes.Ord (Pair a_40) deriving instance GHC.Show.Show a_41 => GHC.Show.Show (Pair a_41) instance AST.Unmarshal.Unmarshal Pair instance Data.Foldable.Foldable Pair where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Pair where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Pair where traverse = AST.Traversable1.Class.traverseDefault1 data String a = String { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (StringContent a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_42. AST.Traversable1.Class.Traversable1 a_42 ) instance AST.Unmarshal.SymbolMatching String where matchedSymbols _ = [19] showFailure _ node_43 = "expected " GHC.Base.<> ( "string" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_43 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_44 c1_45 = TreeSitter.Node.nodeStartPoint node_43 TreeSitter.Node.TSPoint r2_46 c2_47 = TreeSitter.Node.nodeEndPoint node_43 deriving instance GHC.Classes.Eq a_48 => GHC.Classes.Eq (String a_48) deriving instance GHC.Classes.Ord a_49 => GHC.Classes.Ord (String a_49) deriving instance GHC.Show.Show a_50 => GHC.Show.Show (String a_50) instance AST.Unmarshal.Unmarshal String instance Data.Foldable.Foldable String where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor String where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable String where traverse = AST.Traversable1.Class.traverseDefault1 data StringContent a = StringContent { ann :: a, extraChildren :: ([AST.Parse.Err (EscapeSequence a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_51. AST.Traversable1.Class.Traversable1 a_51 ) instance AST.Unmarshal.SymbolMatching StringContent where matchedSymbols _ = [20] showFailure _ node_52 = "expected " GHC.Base.<> ( "string_content" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_52 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_53 c1_54 = TreeSitter.Node.nodeStartPoint node_52 TreeSitter.Node.TSPoint r2_55 c2_56 = TreeSitter.Node.nodeEndPoint node_52 deriving instance GHC.Classes.Eq a_57 => GHC.Classes.Eq (StringContent a_57) deriving instance GHC.Classes.Ord a_58 => GHC.Classes.Ord (StringContent a_58) deriving instance GHC.Show.Show a_59 => GHC.Show.Show (StringContent a_59) instance AST.Unmarshal.Unmarshal StringContent instance Data.Foldable.Foldable StringContent where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor StringContent where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable StringContent where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousDQuote = AST.Token.Token "\"" 7 type AnonymousComma = AST.Token.Token "," 2 type AnonymousColon = AST.Token.Token ":" 4 type AnonymousLBracket = AST.Token.Token "[" 5 type AnonymousRBracket = AST.Token.Token "]" 6 data EscapeSequence a = EscapeSequence {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_60. AST.Traversable1.Class.Traversable1 a_60 ) instance AST.Unmarshal.SymbolMatching EscapeSequence where matchedSymbols _ = [9] showFailure _ node_61 = "expected " GHC.Base.<> ( "escape_sequence" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_61 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_62 c1_63 = TreeSitter.Node.nodeStartPoint node_61 TreeSitter.Node.TSPoint r2_64 c2_65 = TreeSitter.Node.nodeEndPoint node_61 deriving instance GHC.Classes.Eq a_66 => GHC.Classes.Eq (EscapeSequence a_66) deriving instance GHC.Classes.Ord a_67 => GHC.Classes.Ord (EscapeSequence a_67) deriving instance GHC.Show.Show a_68 => GHC.Show.Show (EscapeSequence a_68) instance AST.Unmarshal.Unmarshal EscapeSequence instance Data.Foldable.Foldable EscapeSequence where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor EscapeSequence where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable EscapeSequence where traverse = AST.Traversable1.Class.traverseDefault1 data False a = False {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_69. AST.Traversable1.Class.Traversable1 a_69 ) instance AST.Unmarshal.SymbolMatching False where matchedSymbols _ = [12] showFailure _ node_70 = "expected " GHC.Base.<> ( "false" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_70 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_71 c1_72 = TreeSitter.Node.nodeStartPoint node_70 TreeSitter.Node.TSPoint r2_73 c2_74 = TreeSitter.Node.nodeEndPoint node_70 deriving instance GHC.Classes.Eq a_75 => GHC.Classes.Eq (False a_75) deriving instance GHC.Classes.Ord a_76 => GHC.Classes.Ord (False a_76) deriving instance GHC.Show.Show a_77 => GHC.Show.Show (False a_77) instance AST.Unmarshal.Unmarshal False instance Data.Foldable.Foldable False where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor False where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable False where traverse = AST.Traversable1.Class.traverseDefault1 data Null a = Null {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_78. AST.Traversable1.Class.Traversable1 a_78 ) instance AST.Unmarshal.SymbolMatching Null where matchedSymbols _ = [13] showFailure _ node_79 = "expected " GHC.Base.<> ( "null" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_79 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_80 c1_81 = TreeSitter.Node.nodeStartPoint node_79 TreeSitter.Node.TSPoint r2_82 c2_83 = TreeSitter.Node.nodeEndPoint node_79 deriving instance GHC.Classes.Eq a_84 => GHC.Classes.Eq (Null a_84) deriving instance GHC.Classes.Ord a_85 => GHC.Classes.Ord (Null a_85) deriving instance GHC.Show.Show a_86 => GHC.Show.Show (Null a_86) instance AST.Unmarshal.Unmarshal Null instance Data.Foldable.Foldable Null where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Null where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Null where traverse = AST.Traversable1.Class.traverseDefault1 data Number a = Number {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_87. AST.Traversable1.Class.Traversable1 a_87 ) instance AST.Unmarshal.SymbolMatching Number where matchedSymbols _ = [10] showFailure _ node_88 = "expected " GHC.Base.<> ( "number" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_88 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_89 c1_90 = TreeSitter.Node.nodeStartPoint node_88 TreeSitter.Node.TSPoint r2_91 c2_92 = TreeSitter.Node.nodeEndPoint node_88 deriving instance GHC.Classes.Eq a_93 => GHC.Classes.Eq (Number a_93) deriving instance GHC.Classes.Ord a_94 => GHC.Classes.Ord (Number a_94) deriving instance GHC.Show.Show a_95 => GHC.Show.Show (Number a_95) instance AST.Unmarshal.Unmarshal Number instance Data.Foldable.Foldable Number where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Number where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Number where traverse = AST.Traversable1.Class.traverseDefault1 data True a = True {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_96. AST.Traversable1.Class.Traversable1 a_96 ) instance AST.Unmarshal.SymbolMatching True where matchedSymbols _ = [11] showFailure _ node_97 = "expected " GHC.Base.<> ( "true" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_97 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_98 c1_99 = TreeSitter.Node.nodeStartPoint node_97 TreeSitter.Node.TSPoint r2_100 c2_101 = TreeSitter.Node.nodeEndPoint node_97 deriving instance GHC.Classes.Eq a_102 => GHC.Classes.Eq (True a_102) deriving instance GHC.Classes.Ord a_103 => GHC.Classes.Ord (True a_103) deriving instance GHC.Show.Show a_104 => GHC.Show.Show (True a_104) instance AST.Unmarshal.Unmarshal True instance Data.Foldable.Foldable True where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor True where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable True where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousLBrace = AST.Token.Token "{" 1 type AnonymousRBrace = AST.Token.Token "}" 3 ================================================ FILE: semantic-json/src/Language/JSON/Grammar.hs ================================================ {-# LANGUAGE TemplateHaskell #-} module Language.JSON.Grammar ( tree_sitter_json , Grammar(..) ) where import AST.Grammar.TH import Language.Haskell.TH import TreeSitter.JSON (tree_sitter_json) -- | Statically-known rules corresponding to symbols in the grammar. mkStaticallyKnownRuleGrammarData (mkName "Grammar") tree_sitter_json ================================================ FILE: semantic-json/src/Language/JSON.hs ================================================ {-# LANGUAGE GeneralizedNewtypeDeriving #-} -- | Semantic functionality for JSON programs. module Language.JSON ( Term(..) , TreeSitter.JSON.tree_sitter_json ) where import AST.Marshal.JSON import Data.Proxy import qualified Language.JSON.AST as JSON import qualified Tags.Tagging.Precise as Tags import qualified TreeSitter.JSON (tree_sitter_json) import qualified AST.Unmarshal as TS newtype Term a = Term { getTerm :: JSON.Document a } deriving MarshalJSON instance TS.SymbolMatching Term where matchedSymbols _ = TS.matchedSymbols (Proxy :: Proxy JSON.Document) showFailure _ = TS.showFailure (Proxy :: Proxy JSON.Document) instance TS.Unmarshal Term where matchers = fmap (fmap (TS.hoist Term)) TS.matchers -- | 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. instance Tags.ToTags Term where tags _ _ = [] ================================================ FILE: semantic-json/test/PreciseTest.hs ================================================ {-# LANGUAGE CPP #-} {-# LANGUAGE DisambiguateRecordFields #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeApplications #-} module Main (main) where import AST.TestHelpers import AST.Unmarshal import qualified Language.JSON.AST as JSON import Language.JSON.Grammar import Test.Tasty main :: IO () main = do #if BAZEL_BUILD rf <- Fixture.create let ?project = "external/semantic-json" ?runfiles = rf let dirs = Fixture.absRelDir "corpus" #else dirs <- JSON.getTestCorpusDir #endif readCorpusFiles' dirs >>= traverse (testCorpus parse) >>= defaultMain . tests where parse = parseByteString @(JSON.Document) @() tree_sitter_json tests :: [TestTree] -> TestTree tests = testGroup "tree-sitter-json corpus tests" ================================================ FILE: semantic-parse/BUILD.bazel ================================================ package(default_visibility = ["//visibility:public"]) load( "@rules_haskell//haskell:defs.bzl", "haskell_binary", ) load( "//:build/common.bzl", "GHC_FLAGS", ) haskell_binary( name = "exe", srcs = ["app/Main.hs"], compiler_flags = GHC_FLAGS, deps = [ "//:base", "//:bytestring", "//:text", "//semantic-ast", "//semantic-python", "//semantic-source", "@stackage//:aeson", "@stackage//:aeson-pretty", "@stackage//:optparse-applicative", "@stackage//:pretty-simple", ], ) ================================================ FILE: semantic-parse/CHANGELOG.md ================================================ # Revision history for semantic-parse ## 0.1.0.0 -- YYYY-mm-dd * First version. Released on an unsuspecting world. ================================================ FILE: semantic-parse/LICENSE ================================================ MIT License Copyright (c) 2019 GitHub Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: semantic-parse/README.md ================================================ # semantic-parse This package provides a command line tool that will output ASTs in supported formats. #### CLI To 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`. Filepath: ``` semantic-parse --format [FORMAT] --sourceFile [FILEPATH] ``` Source string: ``` semantic-parse --format [FORMAT] --sourceString [SOURCE] ``` An example command is: ``` semantic-parse -- --format Show --sourceString "a" ``` This will generate an AST ``` Right (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"}))) :| []}))]}) ``` ================================================ FILE: semantic-parse/Setup.hs ================================================ import Distribution.Simple main = defaultMain ================================================ FILE: semantic-parse/app/Main.hs ================================================ {-# LANGUAGE TypeApplications #-} module Main (main) where import AST.Unmarshal import qualified Language.Python.AST as AST import qualified Language.Python.Grammar as Python import Source.Range import Source.Span import Data.Aeson (toJSON) import Data.ByteString.Char8 import Data.ByteString (readFile) import Options.Applicative hiding (style) import Text.Pretty.Simple (pPrint, pPrintNoColor) import Data.Foldable (traverse_) import Control.Monad ((>=>)) import AST.Marshal.JSON (marshal) import Data.ByteString.Lazy.Char8 (putStrLn) import Data.Aeson.Encode.Pretty (encodePretty) data SemanticAST = SemanticAST { _format :: Format , _noColor :: Bool , _source :: Either [FilePath] String } -- Usage: semantic-parse --format ARG [--no-color] (--sourceString STRING | FILEPATHS…) parseAST :: Parser SemanticAST parseAST = SemanticAST <$> option auto ( long "format" <> help "Specify desired output: show, json, sexpression" ) <*> switch ( long "no-color" <> help "Print with color: --color" ) <*> (Left <$> some (Options.Applicative.argument str (metavar "FILEPATH(S)")) <|> Right <$> strOption ( long "sourceString" <> metavar "STRING" <> help "Specify source input to parse" )) main :: IO () main = generateAST =<< execParser opts generateAST :: SemanticAST -> IO () generateAST (SemanticAST format noColor source) = getByteStrings >>= traverse_ go where getByteStrings = case source of Left filePaths -> traverse Data.ByteString.readFile filePaths Right source -> pure [Data.ByteString.Char8.pack source] go = ast >=> display ast = parseByteString @AST.Module @(Range, Span) Python.tree_sitter_python -- TODO: generalize for all languages display = case format of 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 Show -> print Pretty | noColor -> pPrintNoColor | otherwise -> pPrint opts :: ParserInfo SemanticAST opts = info (parseAST <**> helper) ( fullDesc <> progDesc "Parse source code and produce an AST" <> header "semantic-parse is a package used to parse source code" ) -- TODO: Define formats for json, sexpression, etc. data Format = Show | Pretty | Json deriving (Read) ================================================ FILE: semantic-parse/semantic-parse.cabal ================================================ cabal-version: 2.4 -- Initial package description 'semantic-ast.cabal' generated by 'cabal -- init'. For further documentation, see -- http://haskell.org/cabal/users-guide/ name: semantic-parse version: 0.1.0.0 -- synopsis: -- description: -- bug-reports: license: MIT license-file: LICENSE author: The Semantic Authors maintainer: opensource+semantic@github.com copyright: (c) 2019 GitHub, Inc. category: Language extra-source-files: CHANGELOG.md tested-with: GHC == 8.6.5 common haskell default-language: Haskell2010 ghc-options: -Weverything -Wno-missing-local-signatures -Wno-missing-import-lists -Wno-implicit-prelude -Wno-safe -Wno-unsafe -Wno-name-shadowing -Wno-monomorphism-restriction -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-star-is-type if (impl(ghc >= 8.8)) ghc-options: -Wno-missing-deriving-strategies if (impl(ghc >= 8.10)) ghc-options: -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module if (impl(ghc >= 9.2)) ghc-options: -Wno-missing-kind-signatures executable semantic-parse import: haskell main-is: Main.hs -- other-modules: -- other-extensions: build-depends: , aeson , aeson-pretty , base , bytestring , optparse-applicative , pretty-simple , semantic-ast , semantic-python , semantic-source ^>= 0.2 hs-source-dirs: app default-language: Haskell2010 ================================================ FILE: semantic-php/BUILD.bazel ================================================ package(default_visibility = ["//visibility:public"]) load( "//:build/common.bzl", "semantic_language_library", ) semantic_language_library( name = "semantic-php", srcs = glob(["src/**/*.hs"]), language = "php", ) ================================================ FILE: semantic-php/CHANGELOG.md ================================================ # Revision history for semantic-php ## 0.1.0.0 -- YYYY-mm-dd * First version. Released on an unsuspecting world. ================================================ FILE: semantic-php/LICENSE ================================================ MIT License Copyright (c) 2019 GitHub Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: semantic-php/README.md ================================================ # Semantic support for PHP This package implements `semantic` support for PHP. ================================================ FILE: semantic-php/Setup.hs ================================================ import Distribution.Simple main = defaultMain ================================================ FILE: semantic-php/semantic-php.cabal ================================================ cabal-version: 2.4 name: semantic-php version: 0.0.0.0 synopsis: Semantic support for PHP. description: Semantic support for PHP. homepage: https://github.com/github/semantic/tree/master/semantic-php#readme bug-reports: https://github.com/github/semantic/issues license: MIT license-file: LICENSE author: The Semantic authors maintainer: opensource+semantic@github.com copyright: (c) 2019 GitHub, Inc. category: Language build-type: Simple stability: alpha extra-source-files: README.md tested-with: GHC == 8.6.5 common haskell default-language: Haskell2010 ghc-options: -Weverything -Wno-missing-local-signatures -Wno-missing-import-lists -Wno-implicit-prelude -Wno-safe -Wno-unsafe -Wno-name-shadowing -Wno-monomorphism-restriction -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-star-is-type if (impl(ghc >= 8.8)) ghc-options: -Wno-missing-deriving-strategies if (impl(ghc >= 8.10)) ghc-options: -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module if (impl(ghc >= 9.2)) ghc-options: -Wno-missing-kind-signatures library import: haskell exposed-modules: Language.PHP Language.PHP.AST Language.PHP.Grammar Language.PHP.Tags hs-source-dirs: src build-depends: , base >= 4.13 && < 5 , fused-effects ^>= 1.1 , semantic-ast , semantic-proto ^>= 0 , semantic-source ^>= 0.2 , semantic-tags ^>= 0.0 , template-haskell >= 2.15 && < 2.22 , text ^>= 1.2.3 , tree-sitter ^>= 0.9 , tree-sitter-php ^>= 0.5.0.0 ================================================ FILE: semantic-php/src/Language/PHP/AST.hs ================================================ -- Language definition for PHP, generated by ast-generate. Do not edit! {-# LANGUAGE CPP #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE QuantifiedConstraints #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} module Language.PHP.AST (module Language.PHP.AST) where import qualified AST.Parse import qualified AST.Token import qualified AST.Traversable1.Class import qualified AST.Unmarshal import qualified Data.Foldable import qualified Data.List as Data.OldList import qualified Data.Maybe as GHC.Maybe import qualified Data.Text.Internal import qualified Data.Traversable import qualified GHC.Base import qualified GHC.Generics import qualified GHC.Records import qualified GHC.Show import qualified TreeSitter.Node import qualified Prelude as GHC.Classes debugSymbolNames :: [GHC.Base.String] debugSymbolNames = debugSymbolNames_0 debugSymbolNames_0 :: [GHC.Base.String] debugSymbolNames_0 = [ "end", "name", "php_tag", "_?>", "_text_token1", "_text_token2", "_;", "_static", "_,", "_=", "_global", "_namespace", "_use", "_\\", "_function", "_const", "_as", "_{", "_}", "_trait", "_interface", "_extends", "_class", "_abstract", "_final", "_implements", "var_modifier", "_insteadof", "_public", "_protected", "_private", "_&", "_(", "_)", "_...", "_?", "_array", "_callable", "_iterable", "_bool", "_float", "_int", "_string", "_void", "_binary", "_boolean", "_double", "_integer", "_object", "_real", "_unset", "_:", "_echo", "_declare", "_enddeclare", "_ticks", "_encoding", "_strict_types", "float", "_try", "_catch", "_finally", "_goto", "_continue", "_break", "integer", "_return", "_throw", "_while", "_endwhile", "_do", "_for", "_endfor", "_foreach", "_endforeach", "_=>", "_if", "_endif", "_elseif", "_else", "_switch", "_endswitch", "_case", "_default", "_@", "_+", "_-", "_~", "_!", "_**", "_clone", "_::", "_print", "_new", "_++", "_--", "shell_command_expression", "_**=", "_*=", "_/=", "_%=", "_+=", "_-=", "_.=", "_<<=", "_>>=", "_&=", "_^=", "_|=", "_->", "_list", "_self", "_parent", "_[", "_]", "string", "boolean", "null", "_$", "_yield", "_from", "_instanceof", "_??", "_and", "_or", "_xor", "_||", "_&&", "_|", "_^", "_==", "_!=", "_<>", "_===", "_!==", "_<", "_>", "_<=", "_>=", "_<=>", "_<<", "_>>", "_.", "_*", "_/", "_%", "_include", "_include_once", "_require", "_require_once", "comment", "_automatic_semicolon", "heredoc", "_eof", "program", "text_interpolation", "text", "empty_statement", "function_static_declaration", "static_variable_declaration", "global_declaration", "namespace_definition", "namespace_use_declaration", "namespace_function_or_const", "namespace_use_clause", "qualified_name", "namespace_name_as_prefix", "namespace_name", "namespace_aliasing_clause", "namespace_use_group", "namespace_use_group_clause", "trait_declaration", "interface_declaration", "interface_base_clause", "class_declaration", "declaration_list", "class_modifier", "class_base_clause", "class_interface_clause", "_member_declaration", "const_declaration", "property_declaration", "_modifier", "property_element", "property_initializer", "method_declaration", "static_modifier", "use_declaration", "use_list", "use_instead_of_clause", "use_as_clause", "visibility_modifier", "function_definition", "_function_definition_header", "formal_parameters", "simple_parameter", "variadic_parameter", "_type", "optional_type", "primitive_type", "cast_type", "_return_type", "const_element", "echo_statement", "unset_statement", "declare_statement", "declare_directive", "try_statement", "catch_clause", "finally_clause", "_jump_statement", "goto_statement", "continue_statement", "break_statement", "return_statement", "throw_statement", "while_statement", "do_statement", "for_statement", "_expressions", "sequence_expression", "foreach_statement", "pair", "if_statement", "colon_block", "else_if_clause", "else_clause", "else_if_clause", "else_clause", "switch_statement", "switch_block", "case_statement", "default_statement", "compound_statement", "named_label_statement", "expression_statement", "_expression", "_unary_expression", "unary_op_expression", "exponentiation_expression", "clone_expression", "_primary_expression", "parenthesized_expression", "class_constant_access_expression", "print_intrinsic", "anonymous_function_creation_expression", "anonymous_function_use_clause", "object_creation_expression", "update_expression", "cast_expression", "cast_expression", "assignment_expression", "conditional_expression", "augmented_assignment_expression", "member_access_expression", "scoped_property_access_expression", "list_literal", "function_call_expression", "scoped_call_expression", "_scope_resolution_qualifier", "relative_scope", "arguments", "member_call_expression", "variadic_unpacking", "subscript_expression", "_dereferencable_expression", "array_creation_expression", "_string", "dynamic_variable_name", "variable_name", "yield_expression", "array_element_initializer", "binary_expression", "include_expression", "include_once_expression", "require_expression", "require_once_expression", "name", "_program_repeat1", "_text_repeat1", "_function_static_declaration_repeat1", "_global_declaration_repeat1", "_namespace_use_declaration_repeat1", "_namespace_name_repeat1", "_namespace_use_group_repeat1", "_interface_base_clause_repeat1", "_declaration_list_repeat1", "_const_declaration_repeat1", "_property_declaration_repeat1", "_property_declaration_repeat2", "_use_list_repeat1", "_formal_parameters_repeat1", "_unset_statement_repeat1", "_try_statement_repeat1", "_if_statement_repeat1", "_if_statement_repeat2", "_switch_block_repeat1", "_anonymous_function_use_clause_repeat1", "_list_literal_repeat1", "_arguments_repeat1", "_array_creation_expression_repeat1", "type_name" ] newtype 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)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1. AST.Traversable1.Class.Traversable1 a_1 ) instance GHC.Records.HasField "ann" (Expression a_2) a_2 where getField = AST.Unmarshal.gann GHC.Base.. getExpression deriving instance GHC.Classes.Eq a_3 => GHC.Classes.Eq (Expression a_3) deriving instance GHC.Classes.Ord a_4 => GHC.Classes.Ord (Expression a_4) deriving instance GHC.Show.Show a_5 => GHC.Show.Show (Expression a_5) instance AST.Unmarshal.Unmarshal Expression instance Data.Foldable.Foldable Expression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Expression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Expression where traverse = AST.Traversable1.Class.traverseDefault1 newtype Literal a = Literal {getLiteral :: ((Boolean GHC.Generics.:+: Float GHC.Generics.:+: Heredoc GHC.Generics.:+: Integer GHC.Generics.:+: Null GHC.Generics.:+: String) a)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_6. AST.Traversable1.Class.Traversable1 a_6 ) instance GHC.Records.HasField "ann" (Literal a_7) a_7 where getField = AST.Unmarshal.gann GHC.Base.. getLiteral deriving instance GHC.Classes.Eq a_8 => GHC.Classes.Eq (Literal a_8) deriving instance GHC.Classes.Ord a_9 => GHC.Classes.Ord (Literal a_9) deriving instance GHC.Show.Show a_10 => GHC.Show.Show (Literal a_10) instance AST.Unmarshal.Unmarshal Literal instance Data.Foldable.Foldable Literal where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Literal where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Literal where traverse = AST.Traversable1.Class.traverseDefault1 newtype 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)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_11. AST.Traversable1.Class.Traversable1 a_11 ) instance GHC.Records.HasField "ann" (PrimaryExpression a_12) a_12 where getField = AST.Unmarshal.gann GHC.Base.. getPrimaryExpression deriving instance GHC.Classes.Eq a_13 => GHC.Classes.Eq (PrimaryExpression a_13) deriving instance GHC.Classes.Ord a_14 => GHC.Classes.Ord (PrimaryExpression a_14) deriving instance GHC.Show.Show a_15 => GHC.Show.Show (PrimaryExpression a_15) instance AST.Unmarshal.Unmarshal PrimaryExpression instance Data.Foldable.Foldable PrimaryExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor PrimaryExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable PrimaryExpression where traverse = AST.Traversable1.Class.traverseDefault1 newtype 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)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_16. AST.Traversable1.Class.Traversable1 a_16 ) instance GHC.Records.HasField "ann" (Statement a_17) a_17 where getField = AST.Unmarshal.gann GHC.Base.. getStatement deriving instance GHC.Classes.Eq a_18 => GHC.Classes.Eq (Statement a_18) deriving instance GHC.Classes.Ord a_19 => GHC.Classes.Ord (Statement a_19) deriving instance GHC.Show.Show a_20 => GHC.Show.Show (Statement a_20) instance AST.Unmarshal.Unmarshal Statement instance Data.Foldable.Foldable Statement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Statement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Statement where traverse = AST.Traversable1.Class.traverseDefault1 newtype Type a = Type {getType :: ((OptionalType GHC.Generics.:+: PrimitiveType GHC.Generics.:+: TypeName) a)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_21. AST.Traversable1.Class.Traversable1 a_21 ) instance GHC.Records.HasField "ann" (Type a_22) a_22 where getField = AST.Unmarshal.gann GHC.Base.. getType deriving instance GHC.Classes.Eq a_23 => GHC.Classes.Eq (Type a_23) deriving instance GHC.Classes.Ord a_24 => GHC.Classes.Ord (Type a_24) deriving instance GHC.Show.Show a_25 => GHC.Show.Show (Type a_25) instance AST.Unmarshal.Unmarshal Type instance Data.Foldable.Foldable Type where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Type where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Type where traverse = AST.Traversable1.Class.traverseDefault1 data AnonymousFunctionCreationExpression a = AnonymousFunctionCreationExpression { ann :: a, returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (Type a))), body :: (AST.Parse.Err (CompoundStatement a)), parameters :: (AST.Parse.Err (FormalParameters a)), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (AnonymousFunctionUseClause a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_26. AST.Traversable1.Class.Traversable1 a_26 ) instance AST.Unmarshal.SymbolMatching AnonymousFunctionCreationExpression where matchedSymbols _ = [245] showFailure _ node_27 = "expected " GHC.Base.<> ( "anonymous_function_creation_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_27 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_28 c1_29 = TreeSitter.Node.nodeStartPoint node_27 TreeSitter.Node.TSPoint r2_30 c2_31 = TreeSitter.Node.nodeEndPoint node_27 deriving instance GHC.Classes.Eq a_32 => GHC.Classes.Eq (AnonymousFunctionCreationExpression a_32) deriving instance GHC.Classes.Ord a_33 => GHC.Classes.Ord (AnonymousFunctionCreationExpression a_33) deriving instance GHC.Show.Show a_34 => GHC.Show.Show (AnonymousFunctionCreationExpression a_34) instance AST.Unmarshal.Unmarshal AnonymousFunctionCreationExpression instance Data.Foldable.Foldable AnonymousFunctionCreationExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AnonymousFunctionCreationExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AnonymousFunctionCreationExpression where traverse = AST.Traversable1.Class.traverseDefault1 data AnonymousFunctionUseClause a = AnonymousFunctionUseClause { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (VariableName a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_35. AST.Traversable1.Class.Traversable1 a_35 ) instance AST.Unmarshal.SymbolMatching AnonymousFunctionUseClause where matchedSymbols _ = [246] showFailure _ node_36 = "expected " GHC.Base.<> ( "anonymous_function_use_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_36 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_37 c1_38 = TreeSitter.Node.nodeStartPoint node_36 TreeSitter.Node.TSPoint r2_39 c2_40 = TreeSitter.Node.nodeEndPoint node_36 deriving instance GHC.Classes.Eq a_41 => GHC.Classes.Eq (AnonymousFunctionUseClause a_41) deriving instance GHC.Classes.Ord a_42 => GHC.Classes.Ord (AnonymousFunctionUseClause a_42) deriving instance GHC.Show.Show a_43 => GHC.Show.Show (AnonymousFunctionUseClause a_43) instance AST.Unmarshal.Unmarshal AnonymousFunctionUseClause instance Data.Foldable.Foldable AnonymousFunctionUseClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AnonymousFunctionUseClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AnonymousFunctionUseClause where traverse = AST.Traversable1.Class.traverseDefault1 data Arguments a = Arguments { ann :: a, extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: VariadicUnpacking) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_44. AST.Traversable1.Class.Traversable1 a_44 ) instance AST.Unmarshal.SymbolMatching Arguments where matchedSymbols _ = [261] showFailure _ node_45 = "expected " GHC.Base.<> ( "arguments" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_45 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_46 c1_47 = TreeSitter.Node.nodeStartPoint node_45 TreeSitter.Node.TSPoint r2_48 c2_49 = TreeSitter.Node.nodeEndPoint node_45 deriving instance GHC.Classes.Eq a_50 => GHC.Classes.Eq (Arguments a_50) deriving instance GHC.Classes.Ord a_51 => GHC.Classes.Ord (Arguments a_51) deriving instance GHC.Show.Show a_52 => GHC.Show.Show (Arguments a_52) instance AST.Unmarshal.Unmarshal Arguments instance Data.Foldable.Foldable Arguments where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Arguments where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Arguments where traverse = AST.Traversable1.Class.traverseDefault1 data ArrayCreationExpression a = ArrayCreationExpression { ann :: a, extraChildren :: ([AST.Parse.Err (ArrayElementInitializer a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_53. AST.Traversable1.Class.Traversable1 a_53 ) instance AST.Unmarshal.SymbolMatching ArrayCreationExpression where matchedSymbols _ = [266] showFailure _ node_54 = "expected " GHC.Base.<> ( "array_creation_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_54 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_55 c1_56 = TreeSitter.Node.nodeStartPoint node_54 TreeSitter.Node.TSPoint r2_57 c2_58 = TreeSitter.Node.nodeEndPoint node_54 deriving instance GHC.Classes.Eq a_59 => GHC.Classes.Eq (ArrayCreationExpression a_59) deriving instance GHC.Classes.Ord a_60 => GHC.Classes.Ord (ArrayCreationExpression a_60) deriving instance GHC.Show.Show a_61 => GHC.Show.Show (ArrayCreationExpression a_61) instance AST.Unmarshal.Unmarshal ArrayCreationExpression instance Data.Foldable.Foldable ArrayCreationExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ArrayCreationExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ArrayCreationExpression where traverse = AST.Traversable1.Class.traverseDefault1 data ArrayElementInitializer a = ArrayElementInitializer { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Expression a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_62. AST.Traversable1.Class.Traversable1 a_62 ) instance AST.Unmarshal.SymbolMatching ArrayElementInitializer where matchedSymbols _ = [271] showFailure _ node_63 = "expected " GHC.Base.<> ( "array_element_initializer" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_63 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_64 c1_65 = TreeSitter.Node.nodeStartPoint node_63 TreeSitter.Node.TSPoint r2_66 c2_67 = TreeSitter.Node.nodeEndPoint node_63 deriving instance GHC.Classes.Eq a_68 => GHC.Classes.Eq (ArrayElementInitializer a_68) deriving instance GHC.Classes.Ord a_69 => GHC.Classes.Ord (ArrayElementInitializer a_69) deriving instance GHC.Show.Show a_70 => GHC.Show.Show (ArrayElementInitializer a_70) instance AST.Unmarshal.Unmarshal ArrayElementInitializer instance Data.Foldable.Foldable ArrayElementInitializer where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ArrayElementInitializer where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ArrayElementInitializer where traverse = AST.Traversable1.Class.traverseDefault1 data AssignmentExpression a = AssignmentExpression { ann :: a, 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)), right :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_71. AST.Traversable1.Class.Traversable1 a_71 ) instance AST.Unmarshal.SymbolMatching AssignmentExpression where matchedSymbols _ = [251] showFailure _ node_72 = "expected " GHC.Base.<> ( "assignment_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_72 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_73 c1_74 = TreeSitter.Node.nodeStartPoint node_72 TreeSitter.Node.TSPoint r2_75 c2_76 = TreeSitter.Node.nodeEndPoint node_72 deriving instance GHC.Classes.Eq a_77 => GHC.Classes.Eq (AssignmentExpression a_77) deriving instance GHC.Classes.Ord a_78 => GHC.Classes.Ord (AssignmentExpression a_78) deriving instance GHC.Show.Show a_79 => GHC.Show.Show (AssignmentExpression a_79) instance AST.Unmarshal.Unmarshal AssignmentExpression instance Data.Foldable.Foldable AssignmentExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AssignmentExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AssignmentExpression where traverse = AST.Traversable1.Class.traverseDefault1 data AugmentedAssignmentExpression a = AugmentedAssignmentExpression { ann :: a, 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)), 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)), right :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_80. AST.Traversable1.Class.Traversable1 a_80 ) instance AST.Unmarshal.SymbolMatching AugmentedAssignmentExpression where matchedSymbols _ = [253] showFailure _ node_81 = "expected " GHC.Base.<> ( "augmented_assignment_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_81 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_82 c1_83 = TreeSitter.Node.nodeStartPoint node_81 TreeSitter.Node.TSPoint r2_84 c2_85 = TreeSitter.Node.nodeEndPoint node_81 deriving instance GHC.Classes.Eq a_86 => GHC.Classes.Eq (AugmentedAssignmentExpression a_86) deriving instance GHC.Classes.Ord a_87 => GHC.Classes.Ord (AugmentedAssignmentExpression a_87) deriving instance GHC.Show.Show a_88 => GHC.Show.Show (AugmentedAssignmentExpression a_88) instance AST.Unmarshal.Unmarshal AugmentedAssignmentExpression instance Data.Foldable.Foldable AugmentedAssignmentExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AugmentedAssignmentExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AugmentedAssignmentExpression where traverse = AST.Traversable1.Class.traverseDefault1 data BinaryExpression a = BinaryExpression { ann :: a, 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))), left :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))), 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))), extraChildren :: ([AST.Parse.Err (Expression a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_89. AST.Traversable1.Class.Traversable1 a_89 ) instance AST.Unmarshal.SymbolMatching BinaryExpression where matchedSymbols _ = [272] showFailure _ node_90 = "expected " GHC.Base.<> ( "binary_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_90 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_91 c1_92 = TreeSitter.Node.nodeStartPoint node_90 TreeSitter.Node.TSPoint r2_93 c2_94 = TreeSitter.Node.nodeEndPoint node_90 deriving instance GHC.Classes.Eq a_95 => GHC.Classes.Eq (BinaryExpression a_95) deriving instance GHC.Classes.Ord a_96 => GHC.Classes.Ord (BinaryExpression a_96) deriving instance GHC.Show.Show a_97 => GHC.Show.Show (BinaryExpression a_97) instance AST.Unmarshal.Unmarshal BinaryExpression instance Data.Foldable.Foldable BinaryExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor BinaryExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable BinaryExpression where traverse = AST.Traversable1.Class.traverseDefault1 data BreakStatement a = BreakStatement { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_98. AST.Traversable1.Class.Traversable1 a_98 ) instance AST.Unmarshal.SymbolMatching BreakStatement where matchedSymbols _ = [213] showFailure _ node_99 = "expected " GHC.Base.<> ( "break_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_99 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_100 c1_101 = TreeSitter.Node.nodeStartPoint node_99 TreeSitter.Node.TSPoint r2_102 c2_103 = TreeSitter.Node.nodeEndPoint node_99 deriving instance GHC.Classes.Eq a_104 => GHC.Classes.Eq (BreakStatement a_104) deriving instance GHC.Classes.Ord a_105 => GHC.Classes.Ord (BreakStatement a_105) deriving instance GHC.Show.Show a_106 => GHC.Show.Show (BreakStatement a_106) instance AST.Unmarshal.Unmarshal BreakStatement instance Data.Foldable.Foldable BreakStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor BreakStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable BreakStatement where traverse = AST.Traversable1.Class.traverseDefault1 data CaseStatement a = CaseStatement { ann :: a, value :: (AST.Parse.Err (Expression a)), extraChildren :: ([AST.Parse.Err (Statement a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_107. AST.Traversable1.Class.Traversable1 a_107 ) instance AST.Unmarshal.SymbolMatching CaseStatement where matchedSymbols _ = [231] showFailure _ node_108 = "expected " GHC.Base.<> ( "case_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_108 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_109 c1_110 = TreeSitter.Node.nodeStartPoint node_108 TreeSitter.Node.TSPoint r2_111 c2_112 = TreeSitter.Node.nodeEndPoint node_108 deriving instance GHC.Classes.Eq a_113 => GHC.Classes.Eq (CaseStatement a_113) deriving instance GHC.Classes.Ord a_114 => GHC.Classes.Ord (CaseStatement a_114) deriving instance GHC.Show.Show a_115 => GHC.Show.Show (CaseStatement a_115) instance AST.Unmarshal.Unmarshal CaseStatement instance Data.Foldable.Foldable CaseStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor CaseStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable CaseStatement where traverse = AST.Traversable1.Class.traverseDefault1 data CastExpression a = CastExpression { ann :: a, value :: (AST.Parse.Err ((PrimaryExpression GHC.Generics.:+: CloneExpression GHC.Generics.:+: ExponentiationExpression GHC.Generics.:+: UnaryOpExpression) a)), type' :: (AST.Parse.Err (CastType a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_116. AST.Traversable1.Class.Traversable1 a_116 ) instance AST.Unmarshal.SymbolMatching CastExpression where matchedSymbols _ = [249, 250] showFailure _ node_117 = "expected " GHC.Base.<> ( "cast_expression, cast_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_117 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_118 c1_119 = TreeSitter.Node.nodeStartPoint node_117 TreeSitter.Node.TSPoint r2_120 c2_121 = TreeSitter.Node.nodeEndPoint node_117 deriving instance GHC.Classes.Eq a_122 => GHC.Classes.Eq (CastExpression a_122) deriving instance GHC.Classes.Ord a_123 => GHC.Classes.Ord (CastExpression a_123) deriving instance GHC.Show.Show a_124 => GHC.Show.Show (CastExpression a_124) instance AST.Unmarshal.Unmarshal CastExpression instance Data.Foldable.Foldable CastExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor CastExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable CastExpression where traverse = AST.Traversable1.Class.traverseDefault1 data CastType a = CastType {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_125. AST.Traversable1.Class.Traversable1 a_125 ) instance AST.Unmarshal.SymbolMatching CastType where matchedSymbols _ = [200] showFailure _ node_126 = "expected " GHC.Base.<> ( "cast_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_126 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_127 c1_128 = TreeSitter.Node.nodeStartPoint node_126 TreeSitter.Node.TSPoint r2_129 c2_130 = TreeSitter.Node.nodeEndPoint node_126 deriving instance GHC.Classes.Eq a_131 => GHC.Classes.Eq (CastType a_131) deriving instance GHC.Classes.Ord a_132 => GHC.Classes.Ord (CastType a_132) deriving instance GHC.Show.Show a_133 => GHC.Show.Show (CastType a_133) instance AST.Unmarshal.Unmarshal CastType instance Data.Foldable.Foldable CastType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor CastType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable CastType where traverse = AST.Traversable1.Class.traverseDefault1 data CatchClause a = CatchClause { ann :: a, body :: (AST.Parse.Err (CompoundStatement a)), name :: (AST.Parse.Err (VariableName a)), type' :: (AST.Parse.Err (TypeName a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_134. AST.Traversable1.Class.Traversable1 a_134 ) instance AST.Unmarshal.SymbolMatching CatchClause where matchedSymbols _ = [208] showFailure _ node_135 = "expected " GHC.Base.<> ( "catch_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_135 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_136 c1_137 = TreeSitter.Node.nodeStartPoint node_135 TreeSitter.Node.TSPoint r2_138 c2_139 = TreeSitter.Node.nodeEndPoint node_135 deriving instance GHC.Classes.Eq a_140 => GHC.Classes.Eq (CatchClause a_140) deriving instance GHC.Classes.Ord a_141 => GHC.Classes.Ord (CatchClause a_141) deriving instance GHC.Show.Show a_142 => GHC.Show.Show (CatchClause a_142) instance AST.Unmarshal.Unmarshal CatchClause instance Data.Foldable.Foldable CatchClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor CatchClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable CatchClause where traverse = AST.Traversable1.Class.traverseDefault1 data ClassBaseClause a = ClassBaseClause { ann :: a, extraChildren :: (AST.Parse.Err (QualifiedName a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_143. AST.Traversable1.Class.Traversable1 a_143 ) instance AST.Unmarshal.SymbolMatching ClassBaseClause where matchedSymbols _ = [177] showFailure _ node_144 = "expected " GHC.Base.<> ( "class_base_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_144 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_145 c1_146 = TreeSitter.Node.nodeStartPoint node_144 TreeSitter.Node.TSPoint r2_147 c2_148 = TreeSitter.Node.nodeEndPoint node_144 deriving instance GHC.Classes.Eq a_149 => GHC.Classes.Eq (ClassBaseClause a_149) deriving instance GHC.Classes.Ord a_150 => GHC.Classes.Ord (ClassBaseClause a_150) deriving instance GHC.Show.Show a_151 => GHC.Show.Show (ClassBaseClause a_151) instance AST.Unmarshal.Unmarshal ClassBaseClause instance Data.Foldable.Foldable ClassBaseClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ClassBaseClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ClassBaseClause where traverse = AST.Traversable1.Class.traverseDefault1 data ClassConstantAccessExpression a = ClassConstantAccessExpression { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_152. AST.Traversable1.Class.Traversable1 a_152 ) instance AST.Unmarshal.SymbolMatching ClassConstantAccessExpression where matchedSymbols _ = [243] showFailure _ node_153 = "expected " GHC.Base.<> ( "class_constant_access_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_153 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_154 c1_155 = TreeSitter.Node.nodeStartPoint node_153 TreeSitter.Node.TSPoint r2_156 c2_157 = TreeSitter.Node.nodeEndPoint node_153 deriving instance GHC.Classes.Eq a_158 => GHC.Classes.Eq (ClassConstantAccessExpression a_158) deriving instance GHC.Classes.Ord a_159 => GHC.Classes.Ord (ClassConstantAccessExpression a_159) deriving instance GHC.Show.Show a_160 => GHC.Show.Show (ClassConstantAccessExpression a_160) instance AST.Unmarshal.Unmarshal ClassConstantAccessExpression instance Data.Foldable.Foldable ClassConstantAccessExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ClassConstantAccessExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ClassConstantAccessExpression where traverse = AST.Traversable1.Class.traverseDefault1 data ClassDeclaration a = ClassDeclaration { ann :: a, body :: (AST.Parse.Err (DeclarationList a)), name :: (AST.Parse.Err (Name a)), extraChildren :: ([AST.Parse.Err ((ClassBaseClause GHC.Generics.:+: ClassInterfaceClause GHC.Generics.:+: ClassModifier) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_161. AST.Traversable1.Class.Traversable1 a_161 ) instance AST.Unmarshal.SymbolMatching ClassDeclaration where matchedSymbols _ = [174] showFailure _ node_162 = "expected " GHC.Base.<> ( "class_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_162 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_163 c1_164 = TreeSitter.Node.nodeStartPoint node_162 TreeSitter.Node.TSPoint r2_165 c2_166 = TreeSitter.Node.nodeEndPoint node_162 deriving instance GHC.Classes.Eq a_167 => GHC.Classes.Eq (ClassDeclaration a_167) deriving instance GHC.Classes.Ord a_168 => GHC.Classes.Ord (ClassDeclaration a_168) deriving instance GHC.Show.Show a_169 => GHC.Show.Show (ClassDeclaration a_169) instance AST.Unmarshal.Unmarshal ClassDeclaration instance Data.Foldable.Foldable ClassDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ClassDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ClassDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data ClassInterfaceClause a = ClassInterfaceClause { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (QualifiedName a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_170. AST.Traversable1.Class.Traversable1 a_170 ) instance AST.Unmarshal.SymbolMatching ClassInterfaceClause where matchedSymbols _ = [178] showFailure _ node_171 = "expected " GHC.Base.<> ( "class_interface_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_171 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_172 c1_173 = TreeSitter.Node.nodeStartPoint node_171 TreeSitter.Node.TSPoint r2_174 c2_175 = TreeSitter.Node.nodeEndPoint node_171 deriving instance GHC.Classes.Eq a_176 => GHC.Classes.Eq (ClassInterfaceClause a_176) deriving instance GHC.Classes.Ord a_177 => GHC.Classes.Ord (ClassInterfaceClause a_177) deriving instance GHC.Show.Show a_178 => GHC.Show.Show (ClassInterfaceClause a_178) instance AST.Unmarshal.Unmarshal ClassInterfaceClause instance Data.Foldable.Foldable ClassInterfaceClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ClassInterfaceClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ClassInterfaceClause where traverse = AST.Traversable1.Class.traverseDefault1 data ClassModifier a = ClassModifier {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_179. AST.Traversable1.Class.Traversable1 a_179 ) instance AST.Unmarshal.SymbolMatching ClassModifier where matchedSymbols _ = [176] showFailure _ node_180 = "expected " GHC.Base.<> ( "class_modifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_180 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_181 c1_182 = TreeSitter.Node.nodeStartPoint node_180 TreeSitter.Node.TSPoint r2_183 c2_184 = TreeSitter.Node.nodeEndPoint node_180 deriving instance GHC.Classes.Eq a_185 => GHC.Classes.Eq (ClassModifier a_185) deriving instance GHC.Classes.Ord a_186 => GHC.Classes.Ord (ClassModifier a_186) deriving instance GHC.Show.Show a_187 => GHC.Show.Show (ClassModifier a_187) instance AST.Unmarshal.Unmarshal ClassModifier instance Data.Foldable.Foldable ClassModifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ClassModifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ClassModifier where traverse = AST.Traversable1.Class.traverseDefault1 data CloneExpression a = CloneExpression { ann :: a, extraChildren :: (AST.Parse.Err (PrimaryExpression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_188. AST.Traversable1.Class.Traversable1 a_188 ) instance AST.Unmarshal.SymbolMatching CloneExpression where matchedSymbols _ = [240] showFailure _ node_189 = "expected " GHC.Base.<> ( "clone_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_189 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_190 c1_191 = TreeSitter.Node.nodeStartPoint node_189 TreeSitter.Node.TSPoint r2_192 c2_193 = TreeSitter.Node.nodeEndPoint node_189 deriving instance GHC.Classes.Eq a_194 => GHC.Classes.Eq (CloneExpression a_194) deriving instance GHC.Classes.Ord a_195 => GHC.Classes.Ord (CloneExpression a_195) deriving instance GHC.Show.Show a_196 => GHC.Show.Show (CloneExpression a_196) instance AST.Unmarshal.Unmarshal CloneExpression instance Data.Foldable.Foldable CloneExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor CloneExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable CloneExpression where traverse = AST.Traversable1.Class.traverseDefault1 data ColonBlock a = ColonBlock { ann :: a, extraChildren :: ([AST.Parse.Err (Statement a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_197. AST.Traversable1.Class.Traversable1 a_197 ) instance AST.Unmarshal.SymbolMatching ColonBlock where matchedSymbols _ = [224] showFailure _ node_198 = "expected " GHC.Base.<> ( "colon_block" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_198 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_199 c1_200 = TreeSitter.Node.nodeStartPoint node_198 TreeSitter.Node.TSPoint r2_201 c2_202 = TreeSitter.Node.nodeEndPoint node_198 deriving instance GHC.Classes.Eq a_203 => GHC.Classes.Eq (ColonBlock a_203) deriving instance GHC.Classes.Ord a_204 => GHC.Classes.Ord (ColonBlock a_204) deriving instance GHC.Show.Show a_205 => GHC.Show.Show (ColonBlock a_205) instance AST.Unmarshal.Unmarshal ColonBlock instance Data.Foldable.Foldable ColonBlock where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ColonBlock where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ColonBlock where traverse = AST.Traversable1.Class.traverseDefault1 data CompoundStatement a = CompoundStatement { ann :: a, extraChildren :: ([AST.Parse.Err (Statement a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_206. AST.Traversable1.Class.Traversable1 a_206 ) instance AST.Unmarshal.SymbolMatching CompoundStatement where matchedSymbols _ = [233] showFailure _ node_207 = "expected " GHC.Base.<> ( "compound_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_207 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_208 c1_209 = TreeSitter.Node.nodeStartPoint node_207 TreeSitter.Node.TSPoint r2_210 c2_211 = TreeSitter.Node.nodeEndPoint node_207 deriving instance GHC.Classes.Eq a_212 => GHC.Classes.Eq (CompoundStatement a_212) deriving instance GHC.Classes.Ord a_213 => GHC.Classes.Ord (CompoundStatement a_213) deriving instance GHC.Show.Show a_214 => GHC.Show.Show (CompoundStatement a_214) instance AST.Unmarshal.Unmarshal CompoundStatement instance Data.Foldable.Foldable CompoundStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor CompoundStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable CompoundStatement where traverse = AST.Traversable1.Class.traverseDefault1 data ConditionalExpression a = ConditionalExpression { ann :: a, alternative :: (AST.Parse.Err (Expression a)), body :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))), condition :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_215. AST.Traversable1.Class.Traversable1 a_215 ) instance AST.Unmarshal.SymbolMatching ConditionalExpression where matchedSymbols _ = [252] showFailure _ node_216 = "expected " GHC.Base.<> ( "conditional_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_216 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_217 c1_218 = TreeSitter.Node.nodeStartPoint node_216 TreeSitter.Node.TSPoint r2_219 c2_220 = TreeSitter.Node.nodeEndPoint node_216 deriving instance GHC.Classes.Eq a_221 => GHC.Classes.Eq (ConditionalExpression a_221) deriving instance GHC.Classes.Ord a_222 => GHC.Classes.Ord (ConditionalExpression a_222) deriving instance GHC.Show.Show a_223 => GHC.Show.Show (ConditionalExpression a_223) instance AST.Unmarshal.Unmarshal ConditionalExpression instance Data.Foldable.Foldable ConditionalExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ConditionalExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ConditionalExpression where traverse = AST.Traversable1.Class.traverseDefault1 data ConstDeclaration a = ConstDeclaration { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ConstElement GHC.Generics.:+: VisibilityModifier) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_224. AST.Traversable1.Class.Traversable1 a_224 ) instance AST.Unmarshal.SymbolMatching ConstDeclaration where matchedSymbols _ = [180] showFailure _ node_225 = "expected " GHC.Base.<> ( "const_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_225 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_226 c1_227 = TreeSitter.Node.nodeStartPoint node_225 TreeSitter.Node.TSPoint r2_228 c2_229 = TreeSitter.Node.nodeEndPoint node_225 deriving instance GHC.Classes.Eq a_230 => GHC.Classes.Eq (ConstDeclaration a_230) deriving instance GHC.Classes.Ord a_231 => GHC.Classes.Ord (ConstDeclaration a_231) deriving instance GHC.Show.Show a_232 => GHC.Show.Show (ConstDeclaration a_232) instance AST.Unmarshal.Unmarshal ConstDeclaration instance Data.Foldable.Foldable ConstDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ConstDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ConstDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data ConstElement a = ConstElement { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: Name) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_233. AST.Traversable1.Class.Traversable1 a_233 ) instance AST.Unmarshal.SymbolMatching ConstElement where matchedSymbols _ = [202] showFailure _ node_234 = "expected " GHC.Base.<> ( "const_element" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_234 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_235 c1_236 = TreeSitter.Node.nodeStartPoint node_234 TreeSitter.Node.TSPoint r2_237 c2_238 = TreeSitter.Node.nodeEndPoint node_234 deriving instance GHC.Classes.Eq a_239 => GHC.Classes.Eq (ConstElement a_239) deriving instance GHC.Classes.Ord a_240 => GHC.Classes.Ord (ConstElement a_240) deriving instance GHC.Show.Show a_241 => GHC.Show.Show (ConstElement a_241) instance AST.Unmarshal.Unmarshal ConstElement instance Data.Foldable.Foldable ConstElement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ConstElement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ConstElement where traverse = AST.Traversable1.Class.traverseDefault1 data ContinueStatement a = ContinueStatement { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_242. AST.Traversable1.Class.Traversable1 a_242 ) instance AST.Unmarshal.SymbolMatching ContinueStatement where matchedSymbols _ = [212] showFailure _ node_243 = "expected " GHC.Base.<> ( "continue_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_243 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_244 c1_245 = TreeSitter.Node.nodeStartPoint node_243 TreeSitter.Node.TSPoint r2_246 c2_247 = TreeSitter.Node.nodeEndPoint node_243 deriving instance GHC.Classes.Eq a_248 => GHC.Classes.Eq (ContinueStatement a_248) deriving instance GHC.Classes.Ord a_249 => GHC.Classes.Ord (ContinueStatement a_249) deriving instance GHC.Show.Show a_250 => GHC.Show.Show (ContinueStatement a_250) instance AST.Unmarshal.Unmarshal ContinueStatement instance Data.Foldable.Foldable ContinueStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ContinueStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ContinueStatement where traverse = AST.Traversable1.Class.traverseDefault1 data DeclarationList a = DeclarationList { ann :: a, extraChildren :: ([AST.Parse.Err ((ConstDeclaration GHC.Generics.:+: MethodDeclaration GHC.Generics.:+: PropertyDeclaration GHC.Generics.:+: UseDeclaration) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_251. AST.Traversable1.Class.Traversable1 a_251 ) instance AST.Unmarshal.SymbolMatching DeclarationList where matchedSymbols _ = [175] showFailure _ node_252 = "expected " GHC.Base.<> ( "declaration_list" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_252 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_253 c1_254 = TreeSitter.Node.nodeStartPoint node_252 TreeSitter.Node.TSPoint r2_255 c2_256 = TreeSitter.Node.nodeEndPoint node_252 deriving instance GHC.Classes.Eq a_257 => GHC.Classes.Eq (DeclarationList a_257) deriving instance GHC.Classes.Ord a_258 => GHC.Classes.Ord (DeclarationList a_258) deriving instance GHC.Show.Show a_259 => GHC.Show.Show (DeclarationList a_259) instance AST.Unmarshal.Unmarshal DeclarationList instance Data.Foldable.Foldable DeclarationList where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DeclarationList where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DeclarationList where traverse = AST.Traversable1.Class.traverseDefault1 data DeclareDirective a = DeclareDirective { ann :: a, extraChildren :: (AST.Parse.Err (Literal a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_260. AST.Traversable1.Class.Traversable1 a_260 ) instance AST.Unmarshal.SymbolMatching DeclareDirective where matchedSymbols _ = [206] showFailure _ node_261 = "expected " GHC.Base.<> ( "declare_directive" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_261 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_262 c1_263 = TreeSitter.Node.nodeStartPoint node_261 TreeSitter.Node.TSPoint r2_264 c2_265 = TreeSitter.Node.nodeEndPoint node_261 deriving instance GHC.Classes.Eq a_266 => GHC.Classes.Eq (DeclareDirective a_266) deriving instance GHC.Classes.Ord a_267 => GHC.Classes.Ord (DeclareDirective a_267) deriving instance GHC.Show.Show a_268 => GHC.Show.Show (DeclareDirective a_268) instance AST.Unmarshal.Unmarshal DeclareDirective instance Data.Foldable.Foldable DeclareDirective where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DeclareDirective where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DeclareDirective where traverse = AST.Traversable1.Class.traverseDefault1 data DeclareStatement a = DeclareStatement { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Statement GHC.Generics.:+: DeclareDirective) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_269. AST.Traversable1.Class.Traversable1 a_269 ) instance AST.Unmarshal.SymbolMatching DeclareStatement where matchedSymbols _ = [205] showFailure _ node_270 = "expected " GHC.Base.<> ( "declare_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_270 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_271 c1_272 = TreeSitter.Node.nodeStartPoint node_270 TreeSitter.Node.TSPoint r2_273 c2_274 = TreeSitter.Node.nodeEndPoint node_270 deriving instance GHC.Classes.Eq a_275 => GHC.Classes.Eq (DeclareStatement a_275) deriving instance GHC.Classes.Ord a_276 => GHC.Classes.Ord (DeclareStatement a_276) deriving instance GHC.Show.Show a_277 => GHC.Show.Show (DeclareStatement a_277) instance AST.Unmarshal.Unmarshal DeclareStatement instance Data.Foldable.Foldable DeclareStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DeclareStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DeclareStatement where traverse = AST.Traversable1.Class.traverseDefault1 data DefaultStatement a = DefaultStatement { ann :: a, extraChildren :: ([AST.Parse.Err (Statement a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_278. AST.Traversable1.Class.Traversable1 a_278 ) instance AST.Unmarshal.SymbolMatching DefaultStatement where matchedSymbols _ = [232] showFailure _ node_279 = "expected " GHC.Base.<> ( "default_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_279 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_280 c1_281 = TreeSitter.Node.nodeStartPoint node_279 TreeSitter.Node.TSPoint r2_282 c2_283 = TreeSitter.Node.nodeEndPoint node_279 deriving instance GHC.Classes.Eq a_284 => GHC.Classes.Eq (DefaultStatement a_284) deriving instance GHC.Classes.Ord a_285 => GHC.Classes.Ord (DefaultStatement a_285) deriving instance GHC.Show.Show a_286 => GHC.Show.Show (DefaultStatement a_286) instance AST.Unmarshal.Unmarshal DefaultStatement instance Data.Foldable.Foldable DefaultStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DefaultStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DefaultStatement where traverse = AST.Traversable1.Class.traverseDefault1 data DoStatement a = DoStatement { ann :: a, body :: (AST.Parse.Err (Statement a)), condition :: (AST.Parse.Err (ParenthesizedExpression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_287. AST.Traversable1.Class.Traversable1 a_287 ) instance AST.Unmarshal.SymbolMatching DoStatement where matchedSymbols _ = [217] showFailure _ node_288 = "expected " GHC.Base.<> ( "do_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_288 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_289 c1_290 = TreeSitter.Node.nodeStartPoint node_288 TreeSitter.Node.TSPoint r2_291 c2_292 = TreeSitter.Node.nodeEndPoint node_288 deriving instance GHC.Classes.Eq a_293 => GHC.Classes.Eq (DoStatement a_293) deriving instance GHC.Classes.Ord a_294 => GHC.Classes.Ord (DoStatement a_294) deriving instance GHC.Show.Show a_295 => GHC.Show.Show (DoStatement a_295) instance AST.Unmarshal.Unmarshal DoStatement instance Data.Foldable.Foldable DoStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DoStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DoStatement where traverse = AST.Traversable1.Class.traverseDefault1 data DynamicVariableName a = DynamicVariableName { ann :: a, extraChildren :: (AST.Parse.Err ((Expression GHC.Generics.:+: DynamicVariableName GHC.Generics.:+: VariableName) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_296. AST.Traversable1.Class.Traversable1 a_296 ) instance AST.Unmarshal.SymbolMatching DynamicVariableName where matchedSymbols _ = [268] showFailure _ node_297 = "expected " GHC.Base.<> ( "dynamic_variable_name" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_297 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_298 c1_299 = TreeSitter.Node.nodeStartPoint node_297 TreeSitter.Node.TSPoint r2_300 c2_301 = TreeSitter.Node.nodeEndPoint node_297 deriving instance GHC.Classes.Eq a_302 => GHC.Classes.Eq (DynamicVariableName a_302) deriving instance GHC.Classes.Ord a_303 => GHC.Classes.Ord (DynamicVariableName a_303) deriving instance GHC.Show.Show a_304 => GHC.Show.Show (DynamicVariableName a_304) instance AST.Unmarshal.Unmarshal DynamicVariableName instance Data.Foldable.Foldable DynamicVariableName where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DynamicVariableName where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DynamicVariableName where traverse = AST.Traversable1.Class.traverseDefault1 data EchoStatement a = EchoStatement { ann :: a, extraChildren :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_305. AST.Traversable1.Class.Traversable1 a_305 ) instance AST.Unmarshal.SymbolMatching EchoStatement where matchedSymbols _ = [203] showFailure _ node_306 = "expected " GHC.Base.<> ( "echo_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_306 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_307 c1_308 = TreeSitter.Node.nodeStartPoint node_306 TreeSitter.Node.TSPoint r2_309 c2_310 = TreeSitter.Node.nodeEndPoint node_306 deriving instance GHC.Classes.Eq a_311 => GHC.Classes.Eq (EchoStatement a_311) deriving instance GHC.Classes.Ord a_312 => GHC.Classes.Ord (EchoStatement a_312) deriving instance GHC.Show.Show a_313 => GHC.Show.Show (EchoStatement a_313) instance AST.Unmarshal.Unmarshal EchoStatement instance Data.Foldable.Foldable EchoStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor EchoStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable EchoStatement where traverse = AST.Traversable1.Class.traverseDefault1 data ElseClause a = ElseClause { ann :: a, body :: (AST.Parse.Err ((Statement GHC.Generics.:+: ColonBlock) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_314. AST.Traversable1.Class.Traversable1 a_314 ) instance AST.Unmarshal.SymbolMatching ElseClause where matchedSymbols _ = [226, 228] showFailure _ node_315 = "expected " GHC.Base.<> ( "else_clause, else_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_315 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_316 c1_317 = TreeSitter.Node.nodeStartPoint node_315 TreeSitter.Node.TSPoint r2_318 c2_319 = TreeSitter.Node.nodeEndPoint node_315 deriving instance GHC.Classes.Eq a_320 => GHC.Classes.Eq (ElseClause a_320) deriving instance GHC.Classes.Ord a_321 => GHC.Classes.Ord (ElseClause a_321) deriving instance GHC.Show.Show a_322 => GHC.Show.Show (ElseClause a_322) instance AST.Unmarshal.Unmarshal ElseClause instance Data.Foldable.Foldable ElseClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ElseClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ElseClause where traverse = AST.Traversable1.Class.traverseDefault1 data ElseIfClause a = ElseIfClause { ann :: a, body :: (AST.Parse.Err ((Statement GHC.Generics.:+: ColonBlock) a)), condition :: (AST.Parse.Err (ParenthesizedExpression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_323. AST.Traversable1.Class.Traversable1 a_323 ) instance AST.Unmarshal.SymbolMatching ElseIfClause where matchedSymbols _ = [225, 227] showFailure _ node_324 = "expected " GHC.Base.<> ( "else_if_clause, else_if_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_324 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_325 c1_326 = TreeSitter.Node.nodeStartPoint node_324 TreeSitter.Node.TSPoint r2_327 c2_328 = TreeSitter.Node.nodeEndPoint node_324 deriving instance GHC.Classes.Eq a_329 => GHC.Classes.Eq (ElseIfClause a_329) deriving instance GHC.Classes.Ord a_330 => GHC.Classes.Ord (ElseIfClause a_330) deriving instance GHC.Show.Show a_331 => GHC.Show.Show (ElseIfClause a_331) instance AST.Unmarshal.Unmarshal ElseIfClause instance Data.Foldable.Foldable ElseIfClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ElseIfClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ElseIfClause where traverse = AST.Traversable1.Class.traverseDefault1 data EmptyStatement a = EmptyStatement {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_332. AST.Traversable1.Class.Traversable1 a_332 ) instance AST.Unmarshal.SymbolMatching EmptyStatement where matchedSymbols _ = [157] showFailure _ node_333 = "expected " GHC.Base.<> ( "empty_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_333 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_334 c1_335 = TreeSitter.Node.nodeStartPoint node_333 TreeSitter.Node.TSPoint r2_336 c2_337 = TreeSitter.Node.nodeEndPoint node_333 deriving instance GHC.Classes.Eq a_338 => GHC.Classes.Eq (EmptyStatement a_338) deriving instance GHC.Classes.Ord a_339 => GHC.Classes.Ord (EmptyStatement a_339) deriving instance GHC.Show.Show a_340 => GHC.Show.Show (EmptyStatement a_340) instance AST.Unmarshal.Unmarshal EmptyStatement instance Data.Foldable.Foldable EmptyStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor EmptyStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable EmptyStatement where traverse = AST.Traversable1.Class.traverseDefault1 data ExponentiationExpression a = ExponentiationExpression { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((PrimaryExpression GHC.Generics.:+: CloneExpression GHC.Generics.:+: ExponentiationExpression) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_341. AST.Traversable1.Class.Traversable1 a_341 ) instance AST.Unmarshal.SymbolMatching ExponentiationExpression where matchedSymbols _ = [239] showFailure _ node_342 = "expected " GHC.Base.<> ( "exponentiation_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_342 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_343 c1_344 = TreeSitter.Node.nodeStartPoint node_342 TreeSitter.Node.TSPoint r2_345 c2_346 = TreeSitter.Node.nodeEndPoint node_342 deriving instance GHC.Classes.Eq a_347 => GHC.Classes.Eq (ExponentiationExpression a_347) deriving instance GHC.Classes.Ord a_348 => GHC.Classes.Ord (ExponentiationExpression a_348) deriving instance GHC.Show.Show a_349 => GHC.Show.Show (ExponentiationExpression a_349) instance AST.Unmarshal.Unmarshal ExponentiationExpression instance Data.Foldable.Foldable ExponentiationExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ExponentiationExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ExponentiationExpression where traverse = AST.Traversable1.Class.traverseDefault1 data ExpressionStatement a = ExpressionStatement { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_350. AST.Traversable1.Class.Traversable1 a_350 ) instance AST.Unmarshal.SymbolMatching ExpressionStatement where matchedSymbols _ = [235] showFailure _ node_351 = "expected " GHC.Base.<> ( "expression_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_351 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_352 c1_353 = TreeSitter.Node.nodeStartPoint node_351 TreeSitter.Node.TSPoint r2_354 c2_355 = TreeSitter.Node.nodeEndPoint node_351 deriving instance GHC.Classes.Eq a_356 => GHC.Classes.Eq (ExpressionStatement a_356) deriving instance GHC.Classes.Ord a_357 => GHC.Classes.Ord (ExpressionStatement a_357) deriving instance GHC.Show.Show a_358 => GHC.Show.Show (ExpressionStatement a_358) instance AST.Unmarshal.Unmarshal ExpressionStatement instance Data.Foldable.Foldable ExpressionStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ExpressionStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ExpressionStatement where traverse = AST.Traversable1.Class.traverseDefault1 data FinallyClause a = FinallyClause { ann :: a, body :: (AST.Parse.Err (CompoundStatement a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_359. AST.Traversable1.Class.Traversable1 a_359 ) instance AST.Unmarshal.SymbolMatching FinallyClause where matchedSymbols _ = [209] showFailure _ node_360 = "expected " GHC.Base.<> ( "finally_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_360 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_361 c1_362 = TreeSitter.Node.nodeStartPoint node_360 TreeSitter.Node.TSPoint r2_363 c2_364 = TreeSitter.Node.nodeEndPoint node_360 deriving instance GHC.Classes.Eq a_365 => GHC.Classes.Eq (FinallyClause a_365) deriving instance GHC.Classes.Ord a_366 => GHC.Classes.Ord (FinallyClause a_366) deriving instance GHC.Show.Show a_367 => GHC.Show.Show (FinallyClause a_367) instance AST.Unmarshal.Unmarshal FinallyClause instance Data.Foldable.Foldable FinallyClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FinallyClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FinallyClause where traverse = AST.Traversable1.Class.traverseDefault1 data ForStatement a = ForStatement { ann :: a, extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: Statement GHC.Generics.:+: SequenceExpression) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_368. AST.Traversable1.Class.Traversable1 a_368 ) instance AST.Unmarshal.SymbolMatching ForStatement where matchedSymbols _ = [218] showFailure _ node_369 = "expected " GHC.Base.<> ( "for_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_369 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_370 c1_371 = TreeSitter.Node.nodeStartPoint node_369 TreeSitter.Node.TSPoint r2_372 c2_373 = TreeSitter.Node.nodeEndPoint node_369 deriving instance GHC.Classes.Eq a_374 => GHC.Classes.Eq (ForStatement a_374) deriving instance GHC.Classes.Ord a_375 => GHC.Classes.Ord (ForStatement a_375) deriving instance GHC.Show.Show a_376 => GHC.Show.Show (ForStatement a_376) instance AST.Unmarshal.Unmarshal ForStatement instance Data.Foldable.Foldable ForStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ForStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ForStatement where traverse = AST.Traversable1.Class.traverseDefault1 data ForeachStatement a = ForeachStatement { ann :: a, body :: (GHC.Maybe.Maybe (AST.Parse.Err ((Statement GHC.Generics.:+: ColonBlock) a))), extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: ListLiteral GHC.Generics.:+: Pair) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_377. AST.Traversable1.Class.Traversable1 a_377 ) instance AST.Unmarshal.SymbolMatching ForeachStatement where matchedSymbols _ = [221] showFailure _ node_378 = "expected " GHC.Base.<> ( "foreach_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_378 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_379 c1_380 = TreeSitter.Node.nodeStartPoint node_378 TreeSitter.Node.TSPoint r2_381 c2_382 = TreeSitter.Node.nodeEndPoint node_378 deriving instance GHC.Classes.Eq a_383 => GHC.Classes.Eq (ForeachStatement a_383) deriving instance GHC.Classes.Ord a_384 => GHC.Classes.Ord (ForeachStatement a_384) deriving instance GHC.Show.Show a_385 => GHC.Show.Show (ForeachStatement a_385) instance AST.Unmarshal.Unmarshal ForeachStatement instance Data.Foldable.Foldable ForeachStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ForeachStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ForeachStatement where traverse = AST.Traversable1.Class.traverseDefault1 data FormalParameters a = FormalParameters { ann :: a, extraChildren :: ([AST.Parse.Err ((SimpleParameter GHC.Generics.:+: VariadicParameter) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_386. AST.Traversable1.Class.Traversable1 a_386 ) instance AST.Unmarshal.SymbolMatching FormalParameters where matchedSymbols _ = [194] showFailure _ node_387 = "expected " GHC.Base.<> ( "formal_parameters" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_387 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_388 c1_389 = TreeSitter.Node.nodeStartPoint node_387 TreeSitter.Node.TSPoint r2_390 c2_391 = TreeSitter.Node.nodeEndPoint node_387 deriving instance GHC.Classes.Eq a_392 => GHC.Classes.Eq (FormalParameters a_392) deriving instance GHC.Classes.Ord a_393 => GHC.Classes.Ord (FormalParameters a_393) deriving instance GHC.Show.Show a_394 => GHC.Show.Show (FormalParameters a_394) instance AST.Unmarshal.Unmarshal FormalParameters instance Data.Foldable.Foldable FormalParameters where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FormalParameters where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FormalParameters where traverse = AST.Traversable1.Class.traverseDefault1 data FunctionCallExpression a = FunctionCallExpression { ann :: a, 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)), arguments :: (AST.Parse.Err (Arguments a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_395. AST.Traversable1.Class.Traversable1 a_395 ) instance AST.Unmarshal.SymbolMatching FunctionCallExpression where matchedSymbols _ = [257] showFailure _ node_396 = "expected " GHC.Base.<> ( "function_call_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_396 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_397 c1_398 = TreeSitter.Node.nodeStartPoint node_396 TreeSitter.Node.TSPoint r2_399 c2_400 = TreeSitter.Node.nodeEndPoint node_396 deriving instance GHC.Classes.Eq a_401 => GHC.Classes.Eq (FunctionCallExpression a_401) deriving instance GHC.Classes.Ord a_402 => GHC.Classes.Ord (FunctionCallExpression a_402) deriving instance GHC.Show.Show a_403 => GHC.Show.Show (FunctionCallExpression a_403) instance AST.Unmarshal.Unmarshal FunctionCallExpression instance Data.Foldable.Foldable FunctionCallExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FunctionCallExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FunctionCallExpression where traverse = AST.Traversable1.Class.traverseDefault1 data FunctionDefinition a = FunctionDefinition { ann :: a, returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (Type a))), body :: (AST.Parse.Err (CompoundStatement a)), name :: (AST.Parse.Err (Name a)), parameters :: (AST.Parse.Err (FormalParameters a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_404. AST.Traversable1.Class.Traversable1 a_404 ) instance AST.Unmarshal.SymbolMatching FunctionDefinition where matchedSymbols _ = [192] showFailure _ node_405 = "expected " GHC.Base.<> ( "function_definition" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_405 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_406 c1_407 = TreeSitter.Node.nodeStartPoint node_405 TreeSitter.Node.TSPoint r2_408 c2_409 = TreeSitter.Node.nodeEndPoint node_405 deriving instance GHC.Classes.Eq a_410 => GHC.Classes.Eq (FunctionDefinition a_410) deriving instance GHC.Classes.Ord a_411 => GHC.Classes.Ord (FunctionDefinition a_411) deriving instance GHC.Show.Show a_412 => GHC.Show.Show (FunctionDefinition a_412) instance AST.Unmarshal.Unmarshal FunctionDefinition instance Data.Foldable.Foldable FunctionDefinition where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FunctionDefinition where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FunctionDefinition where traverse = AST.Traversable1.Class.traverseDefault1 data FunctionStaticDeclaration a = FunctionStaticDeclaration { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (StaticVariableDeclaration a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_413. AST.Traversable1.Class.Traversable1 a_413 ) instance AST.Unmarshal.SymbolMatching FunctionStaticDeclaration where matchedSymbols _ = [158] showFailure _ node_414 = "expected " GHC.Base.<> ( "function_static_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_414 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_415 c1_416 = TreeSitter.Node.nodeStartPoint node_414 TreeSitter.Node.TSPoint r2_417 c2_418 = TreeSitter.Node.nodeEndPoint node_414 deriving instance GHC.Classes.Eq a_419 => GHC.Classes.Eq (FunctionStaticDeclaration a_419) deriving instance GHC.Classes.Ord a_420 => GHC.Classes.Ord (FunctionStaticDeclaration a_420) deriving instance GHC.Show.Show a_421 => GHC.Show.Show (FunctionStaticDeclaration a_421) instance AST.Unmarshal.Unmarshal FunctionStaticDeclaration instance Data.Foldable.Foldable FunctionStaticDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FunctionStaticDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FunctionStaticDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data GlobalDeclaration a = GlobalDeclaration { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((DynamicVariableName GHC.Generics.:+: VariableName) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_422. AST.Traversable1.Class.Traversable1 a_422 ) instance AST.Unmarshal.SymbolMatching GlobalDeclaration where matchedSymbols _ = [160] showFailure _ node_423 = "expected " GHC.Base.<> ( "global_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_423 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_424 c1_425 = TreeSitter.Node.nodeStartPoint node_423 TreeSitter.Node.TSPoint r2_426 c2_427 = TreeSitter.Node.nodeEndPoint node_423 deriving instance GHC.Classes.Eq a_428 => GHC.Classes.Eq (GlobalDeclaration a_428) deriving instance GHC.Classes.Ord a_429 => GHC.Classes.Ord (GlobalDeclaration a_429) deriving instance GHC.Show.Show a_430 => GHC.Show.Show (GlobalDeclaration a_430) instance AST.Unmarshal.Unmarshal GlobalDeclaration instance Data.Foldable.Foldable GlobalDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor GlobalDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable GlobalDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data GotoStatement a = GotoStatement { ann :: a, extraChildren :: (AST.Parse.Err (Name a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_431. AST.Traversable1.Class.Traversable1 a_431 ) instance AST.Unmarshal.SymbolMatching GotoStatement where matchedSymbols _ = [211] showFailure _ node_432 = "expected " GHC.Base.<> ( "goto_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_432 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_433 c1_434 = TreeSitter.Node.nodeStartPoint node_432 TreeSitter.Node.TSPoint r2_435 c2_436 = TreeSitter.Node.nodeEndPoint node_432 deriving instance GHC.Classes.Eq a_437 => GHC.Classes.Eq (GotoStatement a_437) deriving instance GHC.Classes.Ord a_438 => GHC.Classes.Ord (GotoStatement a_438) deriving instance GHC.Show.Show a_439 => GHC.Show.Show (GotoStatement a_439) instance AST.Unmarshal.Unmarshal GotoStatement instance Data.Foldable.Foldable GotoStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor GotoStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable GotoStatement where traverse = AST.Traversable1.Class.traverseDefault1 data IfStatement a = IfStatement { ann :: a, alternative :: ([AST.Parse.Err ((ElseClause GHC.Generics.:+: ElseIfClause) a)]), body :: (AST.Parse.Err ((Statement GHC.Generics.:+: ColonBlock) a)), condition :: (AST.Parse.Err (ParenthesizedExpression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_440. AST.Traversable1.Class.Traversable1 a_440 ) instance AST.Unmarshal.SymbolMatching IfStatement where matchedSymbols _ = [223] showFailure _ node_441 = "expected " GHC.Base.<> ( "if_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_441 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_442 c1_443 = TreeSitter.Node.nodeStartPoint node_441 TreeSitter.Node.TSPoint r2_444 c2_445 = TreeSitter.Node.nodeEndPoint node_441 deriving instance GHC.Classes.Eq a_446 => GHC.Classes.Eq (IfStatement a_446) deriving instance GHC.Classes.Ord a_447 => GHC.Classes.Ord (IfStatement a_447) deriving instance GHC.Show.Show a_448 => GHC.Show.Show (IfStatement a_448) instance AST.Unmarshal.Unmarshal IfStatement instance Data.Foldable.Foldable IfStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor IfStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable IfStatement where traverse = AST.Traversable1.Class.traverseDefault1 data IncludeExpression a = IncludeExpression { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_449. AST.Traversable1.Class.Traversable1 a_449 ) instance AST.Unmarshal.SymbolMatching IncludeExpression where matchedSymbols _ = [273] showFailure _ node_450 = "expected " GHC.Base.<> ( "include_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_450 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_451 c1_452 = TreeSitter.Node.nodeStartPoint node_450 TreeSitter.Node.TSPoint r2_453 c2_454 = TreeSitter.Node.nodeEndPoint node_450 deriving instance GHC.Classes.Eq a_455 => GHC.Classes.Eq (IncludeExpression a_455) deriving instance GHC.Classes.Ord a_456 => GHC.Classes.Ord (IncludeExpression a_456) deriving instance GHC.Show.Show a_457 => GHC.Show.Show (IncludeExpression a_457) instance AST.Unmarshal.Unmarshal IncludeExpression instance Data.Foldable.Foldable IncludeExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor IncludeExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable IncludeExpression where traverse = AST.Traversable1.Class.traverseDefault1 data IncludeOnceExpression a = IncludeOnceExpression { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_458. AST.Traversable1.Class.Traversable1 a_458 ) instance AST.Unmarshal.SymbolMatching IncludeOnceExpression where matchedSymbols _ = [274] showFailure _ node_459 = "expected " GHC.Base.<> ( "include_once_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_459 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_460 c1_461 = TreeSitter.Node.nodeStartPoint node_459 TreeSitter.Node.TSPoint r2_462 c2_463 = TreeSitter.Node.nodeEndPoint node_459 deriving instance GHC.Classes.Eq a_464 => GHC.Classes.Eq (IncludeOnceExpression a_464) deriving instance GHC.Classes.Ord a_465 => GHC.Classes.Ord (IncludeOnceExpression a_465) deriving instance GHC.Show.Show a_466 => GHC.Show.Show (IncludeOnceExpression a_466) instance AST.Unmarshal.Unmarshal IncludeOnceExpression instance Data.Foldable.Foldable IncludeOnceExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor IncludeOnceExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable IncludeOnceExpression where traverse = AST.Traversable1.Class.traverseDefault1 data InterfaceBaseClause a = InterfaceBaseClause { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (QualifiedName a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_467. AST.Traversable1.Class.Traversable1 a_467 ) instance AST.Unmarshal.SymbolMatching InterfaceBaseClause where matchedSymbols _ = [173] showFailure _ node_468 = "expected " GHC.Base.<> ( "interface_base_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_468 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_469 c1_470 = TreeSitter.Node.nodeStartPoint node_468 TreeSitter.Node.TSPoint r2_471 c2_472 = TreeSitter.Node.nodeEndPoint node_468 deriving instance GHC.Classes.Eq a_473 => GHC.Classes.Eq (InterfaceBaseClause a_473) deriving instance GHC.Classes.Ord a_474 => GHC.Classes.Ord (InterfaceBaseClause a_474) deriving instance GHC.Show.Show a_475 => GHC.Show.Show (InterfaceBaseClause a_475) instance AST.Unmarshal.Unmarshal InterfaceBaseClause instance Data.Foldable.Foldable InterfaceBaseClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor InterfaceBaseClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable InterfaceBaseClause where traverse = AST.Traversable1.Class.traverseDefault1 data InterfaceDeclaration a = InterfaceDeclaration { ann :: a, body :: (AST.Parse.Err (DeclarationList a)), name :: (AST.Parse.Err (Name a)), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (InterfaceBaseClause a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_476. AST.Traversable1.Class.Traversable1 a_476 ) instance AST.Unmarshal.SymbolMatching InterfaceDeclaration where matchedSymbols _ = [172] showFailure _ node_477 = "expected " GHC.Base.<> ( "interface_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_477 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_478 c1_479 = TreeSitter.Node.nodeStartPoint node_477 TreeSitter.Node.TSPoint r2_480 c2_481 = TreeSitter.Node.nodeEndPoint node_477 deriving instance GHC.Classes.Eq a_482 => GHC.Classes.Eq (InterfaceDeclaration a_482) deriving instance GHC.Classes.Ord a_483 => GHC.Classes.Ord (InterfaceDeclaration a_483) deriving instance GHC.Show.Show a_484 => GHC.Show.Show (InterfaceDeclaration a_484) instance AST.Unmarshal.Unmarshal InterfaceDeclaration instance Data.Foldable.Foldable InterfaceDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor InterfaceDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable InterfaceDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data ListLiteral a = ListLiteral { ann :: a, 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)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_485. AST.Traversable1.Class.Traversable1 a_485 ) instance AST.Unmarshal.SymbolMatching ListLiteral where matchedSymbols _ = [256] showFailure _ node_486 = "expected " GHC.Base.<> ( "list_literal" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_486 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_487 c1_488 = TreeSitter.Node.nodeStartPoint node_486 TreeSitter.Node.TSPoint r2_489 c2_490 = TreeSitter.Node.nodeEndPoint node_486 deriving instance GHC.Classes.Eq a_491 => GHC.Classes.Eq (ListLiteral a_491) deriving instance GHC.Classes.Ord a_492 => GHC.Classes.Ord (ListLiteral a_492) deriving instance GHC.Show.Show a_493 => GHC.Show.Show (ListLiteral a_493) instance AST.Unmarshal.Unmarshal ListLiteral instance Data.Foldable.Foldable ListLiteral where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ListLiteral where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ListLiteral where traverse = AST.Traversable1.Class.traverseDefault1 data MemberAccessExpression a = MemberAccessExpression { ann :: a, name :: (AST.Parse.Err ((Expression GHC.Generics.:+: DynamicVariableName GHC.Generics.:+: Name GHC.Generics.:+: VariableName) a)), 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_494. AST.Traversable1.Class.Traversable1 a_494 ) instance AST.Unmarshal.SymbolMatching MemberAccessExpression where matchedSymbols _ = [254] showFailure _ node_495 = "expected " GHC.Base.<> ( "member_access_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_495 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_496 c1_497 = TreeSitter.Node.nodeStartPoint node_495 TreeSitter.Node.TSPoint r2_498 c2_499 = TreeSitter.Node.nodeEndPoint node_495 deriving instance GHC.Classes.Eq a_500 => GHC.Classes.Eq (MemberAccessExpression a_500) deriving instance GHC.Classes.Ord a_501 => GHC.Classes.Ord (MemberAccessExpression a_501) deriving instance GHC.Show.Show a_502 => GHC.Show.Show (MemberAccessExpression a_502) instance AST.Unmarshal.Unmarshal MemberAccessExpression instance Data.Foldable.Foldable MemberAccessExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor MemberAccessExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable MemberAccessExpression where traverse = AST.Traversable1.Class.traverseDefault1 data MemberCallExpression a = MemberCallExpression { ann :: a, arguments :: (AST.Parse.Err (Arguments a)), name :: (AST.Parse.Err ((Expression GHC.Generics.:+: DynamicVariableName GHC.Generics.:+: Name GHC.Generics.:+: VariableName) a)), 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_503. AST.Traversable1.Class.Traversable1 a_503 ) instance AST.Unmarshal.SymbolMatching MemberCallExpression where matchedSymbols _ = [262] showFailure _ node_504 = "expected " GHC.Base.<> ( "member_call_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_504 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_505 c1_506 = TreeSitter.Node.nodeStartPoint node_504 TreeSitter.Node.TSPoint r2_507 c2_508 = TreeSitter.Node.nodeEndPoint node_504 deriving instance GHC.Classes.Eq a_509 => GHC.Classes.Eq (MemberCallExpression a_509) deriving instance GHC.Classes.Ord a_510 => GHC.Classes.Ord (MemberCallExpression a_510) deriving instance GHC.Show.Show a_511 => GHC.Show.Show (MemberCallExpression a_511) instance AST.Unmarshal.Unmarshal MemberCallExpression instance Data.Foldable.Foldable MemberCallExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor MemberCallExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable MemberCallExpression where traverse = AST.Traversable1.Class.traverseDefault1 data MethodDeclaration a = MethodDeclaration { ann :: a, returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (Type a))), body :: (GHC.Maybe.Maybe (AST.Parse.Err (CompoundStatement a))), name :: (AST.Parse.Err (Name a)), parameters :: (AST.Parse.Err (FormalParameters a)), extraChildren :: ([AST.Parse.Err ((ClassModifier GHC.Generics.:+: StaticModifier GHC.Generics.:+: VarModifier GHC.Generics.:+: VisibilityModifier) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_512. AST.Traversable1.Class.Traversable1 a_512 ) instance AST.Unmarshal.SymbolMatching MethodDeclaration where matchedSymbols _ = [185] showFailure _ node_513 = "expected " GHC.Base.<> ( "method_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_513 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_514 c1_515 = TreeSitter.Node.nodeStartPoint node_513 TreeSitter.Node.TSPoint r2_516 c2_517 = TreeSitter.Node.nodeEndPoint node_513 deriving instance GHC.Classes.Eq a_518 => GHC.Classes.Eq (MethodDeclaration a_518) deriving instance GHC.Classes.Ord a_519 => GHC.Classes.Ord (MethodDeclaration a_519) deriving instance GHC.Show.Show a_520 => GHC.Show.Show (MethodDeclaration a_520) instance AST.Unmarshal.Unmarshal MethodDeclaration instance Data.Foldable.Foldable MethodDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor MethodDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable MethodDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data Name a = Name {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_521. AST.Traversable1.Class.Traversable1 a_521 ) instance AST.Unmarshal.SymbolMatching Name where matchedSymbols _ = [1, 277] showFailure _ node_522 = "expected " GHC.Base.<> ( "name, name" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_522 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_523 c1_524 = TreeSitter.Node.nodeStartPoint node_522 TreeSitter.Node.TSPoint r2_525 c2_526 = TreeSitter.Node.nodeEndPoint node_522 deriving instance GHC.Classes.Eq a_527 => GHC.Classes.Eq (Name a_527) deriving instance GHC.Classes.Ord a_528 => GHC.Classes.Ord (Name a_528) deriving instance GHC.Show.Show a_529 => GHC.Show.Show (Name a_529) instance AST.Unmarshal.Unmarshal Name instance Data.Foldable.Foldable Name where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Name where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Name where traverse = AST.Traversable1.Class.traverseDefault1 data NamedLabelStatement a = NamedLabelStatement { ann :: a, extraChildren :: (AST.Parse.Err (Name a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_530. AST.Traversable1.Class.Traversable1 a_530 ) instance AST.Unmarshal.SymbolMatching NamedLabelStatement where matchedSymbols _ = [234] showFailure _ node_531 = "expected " GHC.Base.<> ( "named_label_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_531 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_532 c1_533 = TreeSitter.Node.nodeStartPoint node_531 TreeSitter.Node.TSPoint r2_534 c2_535 = TreeSitter.Node.nodeEndPoint node_531 deriving instance GHC.Classes.Eq a_536 => GHC.Classes.Eq (NamedLabelStatement a_536) deriving instance GHC.Classes.Ord a_537 => GHC.Classes.Ord (NamedLabelStatement a_537) deriving instance GHC.Show.Show a_538 => GHC.Show.Show (NamedLabelStatement a_538) instance AST.Unmarshal.Unmarshal NamedLabelStatement instance Data.Foldable.Foldable NamedLabelStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor NamedLabelStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable NamedLabelStatement where traverse = AST.Traversable1.Class.traverseDefault1 data NamespaceAliasingClause a = NamespaceAliasingClause { ann :: a, extraChildren :: (AST.Parse.Err (Name a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_539. AST.Traversable1.Class.Traversable1 a_539 ) instance AST.Unmarshal.SymbolMatching NamespaceAliasingClause where matchedSymbols _ = [168] showFailure _ node_540 = "expected " GHC.Base.<> ( "namespace_aliasing_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_540 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_541 c1_542 = TreeSitter.Node.nodeStartPoint node_540 TreeSitter.Node.TSPoint r2_543 c2_544 = TreeSitter.Node.nodeEndPoint node_540 deriving instance GHC.Classes.Eq a_545 => GHC.Classes.Eq (NamespaceAliasingClause a_545) deriving instance GHC.Classes.Ord a_546 => GHC.Classes.Ord (NamespaceAliasingClause a_546) deriving instance GHC.Show.Show a_547 => GHC.Show.Show (NamespaceAliasingClause a_547) instance AST.Unmarshal.Unmarshal NamespaceAliasingClause instance Data.Foldable.Foldable NamespaceAliasingClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor NamespaceAliasingClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable NamespaceAliasingClause where traverse = AST.Traversable1.Class.traverseDefault1 data NamespaceDefinition a = NamespaceDefinition { ann :: a, body :: (GHC.Maybe.Maybe (AST.Parse.Err (CompoundStatement a))), name :: (GHC.Maybe.Maybe (AST.Parse.Err (NamespaceName a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_548. AST.Traversable1.Class.Traversable1 a_548 ) instance AST.Unmarshal.SymbolMatching NamespaceDefinition where matchedSymbols _ = [161] showFailure _ node_549 = "expected " GHC.Base.<> ( "namespace_definition" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_549 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_550 c1_551 = TreeSitter.Node.nodeStartPoint node_549 TreeSitter.Node.TSPoint r2_552 c2_553 = TreeSitter.Node.nodeEndPoint node_549 deriving instance GHC.Classes.Eq a_554 => GHC.Classes.Eq (NamespaceDefinition a_554) deriving instance GHC.Classes.Ord a_555 => GHC.Classes.Ord (NamespaceDefinition a_555) deriving instance GHC.Show.Show a_556 => GHC.Show.Show (NamespaceDefinition a_556) instance AST.Unmarshal.Unmarshal NamespaceDefinition instance Data.Foldable.Foldable NamespaceDefinition where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor NamespaceDefinition where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable NamespaceDefinition where traverse = AST.Traversable1.Class.traverseDefault1 data NamespaceFunctionOrConst a = NamespaceFunctionOrConst { ann :: a, text :: Data.Text.Internal.Text } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_557. AST.Traversable1.Class.Traversable1 a_557 ) instance AST.Unmarshal.SymbolMatching NamespaceFunctionOrConst where matchedSymbols _ = [163] showFailure _ node_558 = "expected " GHC.Base.<> ( "namespace_function_or_const" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_558 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_559 c1_560 = TreeSitter.Node.nodeStartPoint node_558 TreeSitter.Node.TSPoint r2_561 c2_562 = TreeSitter.Node.nodeEndPoint node_558 deriving instance GHC.Classes.Eq a_563 => GHC.Classes.Eq (NamespaceFunctionOrConst a_563) deriving instance GHC.Classes.Ord a_564 => GHC.Classes.Ord (NamespaceFunctionOrConst a_564) deriving instance GHC.Show.Show a_565 => GHC.Show.Show (NamespaceFunctionOrConst a_565) instance AST.Unmarshal.Unmarshal NamespaceFunctionOrConst instance Data.Foldable.Foldable NamespaceFunctionOrConst where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor NamespaceFunctionOrConst where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable NamespaceFunctionOrConst where traverse = AST.Traversable1.Class.traverseDefault1 data NamespaceName a = NamespaceName { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Name a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_566. AST.Traversable1.Class.Traversable1 a_566 ) instance AST.Unmarshal.SymbolMatching NamespaceName where matchedSymbols _ = [167] showFailure _ node_567 = "expected " GHC.Base.<> ( "namespace_name" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_567 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_568 c1_569 = TreeSitter.Node.nodeStartPoint node_567 TreeSitter.Node.TSPoint r2_570 c2_571 = TreeSitter.Node.nodeEndPoint node_567 deriving instance GHC.Classes.Eq a_572 => GHC.Classes.Eq (NamespaceName a_572) deriving instance GHC.Classes.Ord a_573 => GHC.Classes.Ord (NamespaceName a_573) deriving instance GHC.Show.Show a_574 => GHC.Show.Show (NamespaceName a_574) instance AST.Unmarshal.Unmarshal NamespaceName instance Data.Foldable.Foldable NamespaceName where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor NamespaceName where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable NamespaceName where traverse = AST.Traversable1.Class.traverseDefault1 data NamespaceNameAsPrefix a = NamespaceNameAsPrefix { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (NamespaceName a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_575. AST.Traversable1.Class.Traversable1 a_575 ) instance AST.Unmarshal.SymbolMatching NamespaceNameAsPrefix where matchedSymbols _ = [166] showFailure _ node_576 = "expected " GHC.Base.<> ( "namespace_name_as_prefix" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_576 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_577 c1_578 = TreeSitter.Node.nodeStartPoint node_576 TreeSitter.Node.TSPoint r2_579 c2_580 = TreeSitter.Node.nodeEndPoint node_576 deriving instance GHC.Classes.Eq a_581 => GHC.Classes.Eq (NamespaceNameAsPrefix a_581) deriving instance GHC.Classes.Ord a_582 => GHC.Classes.Ord (NamespaceNameAsPrefix a_582) deriving instance GHC.Show.Show a_583 => GHC.Show.Show (NamespaceNameAsPrefix a_583) instance AST.Unmarshal.Unmarshal NamespaceNameAsPrefix instance Data.Foldable.Foldable NamespaceNameAsPrefix where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor NamespaceNameAsPrefix where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable NamespaceNameAsPrefix where traverse = AST.Traversable1.Class.traverseDefault1 data NamespaceUseClause a = NamespaceUseClause { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((NamespaceAliasingClause GHC.Generics.:+: QualifiedName) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_584. AST.Traversable1.Class.Traversable1 a_584 ) instance AST.Unmarshal.SymbolMatching NamespaceUseClause where matchedSymbols _ = [164] showFailure _ node_585 = "expected " GHC.Base.<> ( "namespace_use_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_585 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_586 c1_587 = TreeSitter.Node.nodeStartPoint node_585 TreeSitter.Node.TSPoint r2_588 c2_589 = TreeSitter.Node.nodeEndPoint node_585 deriving instance GHC.Classes.Eq a_590 => GHC.Classes.Eq (NamespaceUseClause a_590) deriving instance GHC.Classes.Ord a_591 => GHC.Classes.Ord (NamespaceUseClause a_591) deriving instance GHC.Show.Show a_592 => GHC.Show.Show (NamespaceUseClause a_592) instance AST.Unmarshal.Unmarshal NamespaceUseClause instance Data.Foldable.Foldable NamespaceUseClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor NamespaceUseClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable NamespaceUseClause where traverse = AST.Traversable1.Class.traverseDefault1 data NamespaceUseDeclaration a = NamespaceUseDeclaration { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((NamespaceFunctionOrConst GHC.Generics.:+: NamespaceName GHC.Generics.:+: NamespaceUseClause GHC.Generics.:+: NamespaceUseGroup) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_593. AST.Traversable1.Class.Traversable1 a_593 ) instance AST.Unmarshal.SymbolMatching NamespaceUseDeclaration where matchedSymbols _ = [162] showFailure _ node_594 = "expected " GHC.Base.<> ( "namespace_use_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_594 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_595 c1_596 = TreeSitter.Node.nodeStartPoint node_594 TreeSitter.Node.TSPoint r2_597 c2_598 = TreeSitter.Node.nodeEndPoint node_594 deriving instance GHC.Classes.Eq a_599 => GHC.Classes.Eq (NamespaceUseDeclaration a_599) deriving instance GHC.Classes.Ord a_600 => GHC.Classes.Ord (NamespaceUseDeclaration a_600) deriving instance GHC.Show.Show a_601 => GHC.Show.Show (NamespaceUseDeclaration a_601) instance AST.Unmarshal.Unmarshal NamespaceUseDeclaration instance Data.Foldable.Foldable NamespaceUseDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor NamespaceUseDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable NamespaceUseDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data NamespaceUseGroup a = NamespaceUseGroup { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (NamespaceUseGroupClause a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_602. AST.Traversable1.Class.Traversable1 a_602 ) instance AST.Unmarshal.SymbolMatching NamespaceUseGroup where matchedSymbols _ = [169] showFailure _ node_603 = "expected " GHC.Base.<> ( "namespace_use_group" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_603 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_604 c1_605 = TreeSitter.Node.nodeStartPoint node_603 TreeSitter.Node.TSPoint r2_606 c2_607 = TreeSitter.Node.nodeEndPoint node_603 deriving instance GHC.Classes.Eq a_608 => GHC.Classes.Eq (NamespaceUseGroup a_608) deriving instance GHC.Classes.Ord a_609 => GHC.Classes.Ord (NamespaceUseGroup a_609) deriving instance GHC.Show.Show a_610 => GHC.Show.Show (NamespaceUseGroup a_610) instance AST.Unmarshal.Unmarshal NamespaceUseGroup instance Data.Foldable.Foldable NamespaceUseGroup where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor NamespaceUseGroup where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable NamespaceUseGroup where traverse = AST.Traversable1.Class.traverseDefault1 data NamespaceUseGroupClause a = NamespaceUseGroupClause { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((NamespaceAliasingClause GHC.Generics.:+: NamespaceFunctionOrConst GHC.Generics.:+: NamespaceName) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_611. AST.Traversable1.Class.Traversable1 a_611 ) instance AST.Unmarshal.SymbolMatching NamespaceUseGroupClause where matchedSymbols _ = [170] showFailure _ node_612 = "expected " GHC.Base.<> ( "namespace_use_group_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_612 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_613 c1_614 = TreeSitter.Node.nodeStartPoint node_612 TreeSitter.Node.TSPoint r2_615 c2_616 = TreeSitter.Node.nodeEndPoint node_612 deriving instance GHC.Classes.Eq a_617 => GHC.Classes.Eq (NamespaceUseGroupClause a_617) deriving instance GHC.Classes.Ord a_618 => GHC.Classes.Ord (NamespaceUseGroupClause a_618) deriving instance GHC.Show.Show a_619 => GHC.Show.Show (NamespaceUseGroupClause a_619) instance AST.Unmarshal.Unmarshal NamespaceUseGroupClause instance Data.Foldable.Foldable NamespaceUseGroupClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor NamespaceUseGroupClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable NamespaceUseGroupClause where traverse = AST.Traversable1.Class.traverseDefault1 data ObjectCreationExpression a = ObjectCreationExpression { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_620. AST.Traversable1.Class.Traversable1 a_620 ) instance AST.Unmarshal.SymbolMatching ObjectCreationExpression where matchedSymbols _ = [247] showFailure _ node_621 = "expected " GHC.Base.<> ( "object_creation_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_621 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_622 c1_623 = TreeSitter.Node.nodeStartPoint node_621 TreeSitter.Node.TSPoint r2_624 c2_625 = TreeSitter.Node.nodeEndPoint node_621 deriving instance GHC.Classes.Eq a_626 => GHC.Classes.Eq (ObjectCreationExpression a_626) deriving instance GHC.Classes.Ord a_627 => GHC.Classes.Ord (ObjectCreationExpression a_627) deriving instance GHC.Show.Show a_628 => GHC.Show.Show (ObjectCreationExpression a_628) instance AST.Unmarshal.Unmarshal ObjectCreationExpression instance Data.Foldable.Foldable ObjectCreationExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ObjectCreationExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ObjectCreationExpression where traverse = AST.Traversable1.Class.traverseDefault1 data OptionalType a = OptionalType { ann :: a, extraChildren :: (AST.Parse.Err ((PrimitiveType GHC.Generics.:+: TypeName) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_629. AST.Traversable1.Class.Traversable1 a_629 ) instance AST.Unmarshal.SymbolMatching OptionalType where matchedSymbols _ = [198] showFailure _ node_630 = "expected " GHC.Base.<> ( "optional_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_630 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_631 c1_632 = TreeSitter.Node.nodeStartPoint node_630 TreeSitter.Node.TSPoint r2_633 c2_634 = TreeSitter.Node.nodeEndPoint node_630 deriving instance GHC.Classes.Eq a_635 => GHC.Classes.Eq (OptionalType a_635) deriving instance GHC.Classes.Ord a_636 => GHC.Classes.Ord (OptionalType a_636) deriving instance GHC.Show.Show a_637 => GHC.Show.Show (OptionalType a_637) instance AST.Unmarshal.Unmarshal OptionalType instance Data.Foldable.Foldable OptionalType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor OptionalType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable OptionalType where traverse = AST.Traversable1.Class.traverseDefault1 data Pair a = Pair { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: ListLiteral) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_638. AST.Traversable1.Class.Traversable1 a_638 ) instance AST.Unmarshal.SymbolMatching Pair where matchedSymbols _ = [222] showFailure _ node_639 = "expected " GHC.Base.<> ( "pair" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_639 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_640 c1_641 = TreeSitter.Node.nodeStartPoint node_639 TreeSitter.Node.TSPoint r2_642 c2_643 = TreeSitter.Node.nodeEndPoint node_639 deriving instance GHC.Classes.Eq a_644 => GHC.Classes.Eq (Pair a_644) deriving instance GHC.Classes.Ord a_645 => GHC.Classes.Ord (Pair a_645) deriving instance GHC.Show.Show a_646 => GHC.Show.Show (Pair a_646) instance AST.Unmarshal.Unmarshal Pair instance Data.Foldable.Foldable Pair where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Pair where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Pair where traverse = AST.Traversable1.Class.traverseDefault1 data ParenthesizedExpression a = ParenthesizedExpression { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_647. AST.Traversable1.Class.Traversable1 a_647 ) instance AST.Unmarshal.SymbolMatching ParenthesizedExpression where matchedSymbols _ = [242] showFailure _ node_648 = "expected " GHC.Base.<> ( "parenthesized_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_648 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_649 c1_650 = TreeSitter.Node.nodeStartPoint node_648 TreeSitter.Node.TSPoint r2_651 c2_652 = TreeSitter.Node.nodeEndPoint node_648 deriving instance GHC.Classes.Eq a_653 => GHC.Classes.Eq (ParenthesizedExpression a_653) deriving instance GHC.Classes.Ord a_654 => GHC.Classes.Ord (ParenthesizedExpression a_654) deriving instance GHC.Show.Show a_655 => GHC.Show.Show (ParenthesizedExpression a_655) instance AST.Unmarshal.Unmarshal ParenthesizedExpression instance Data.Foldable.Foldable ParenthesizedExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ParenthesizedExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ParenthesizedExpression where traverse = AST.Traversable1.Class.traverseDefault1 data PrimitiveType a = PrimitiveType {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_656. AST.Traversable1.Class.Traversable1 a_656 ) instance AST.Unmarshal.SymbolMatching PrimitiveType where matchedSymbols _ = [199] showFailure _ node_657 = "expected " GHC.Base.<> ( "primitive_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_657 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_658 c1_659 = TreeSitter.Node.nodeStartPoint node_657 TreeSitter.Node.TSPoint r2_660 c2_661 = TreeSitter.Node.nodeEndPoint node_657 deriving instance GHC.Classes.Eq a_662 => GHC.Classes.Eq (PrimitiveType a_662) deriving instance GHC.Classes.Ord a_663 => GHC.Classes.Ord (PrimitiveType a_663) deriving instance GHC.Show.Show a_664 => GHC.Show.Show (PrimitiveType a_664) instance AST.Unmarshal.Unmarshal PrimitiveType instance Data.Foldable.Foldable PrimitiveType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor PrimitiveType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable PrimitiveType where traverse = AST.Traversable1.Class.traverseDefault1 data PrintIntrinsic a = PrintIntrinsic { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_665. AST.Traversable1.Class.Traversable1 a_665 ) instance AST.Unmarshal.SymbolMatching PrintIntrinsic where matchedSymbols _ = [244] showFailure _ node_666 = "expected " GHC.Base.<> ( "print_intrinsic" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_666 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_667 c1_668 = TreeSitter.Node.nodeStartPoint node_666 TreeSitter.Node.TSPoint r2_669 c2_670 = TreeSitter.Node.nodeEndPoint node_666 deriving instance GHC.Classes.Eq a_671 => GHC.Classes.Eq (PrintIntrinsic a_671) deriving instance GHC.Classes.Ord a_672 => GHC.Classes.Ord (PrintIntrinsic a_672) deriving instance GHC.Show.Show a_673 => GHC.Show.Show (PrintIntrinsic a_673) instance AST.Unmarshal.Unmarshal PrintIntrinsic instance Data.Foldable.Foldable PrintIntrinsic where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor PrintIntrinsic where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable PrintIntrinsic where traverse = AST.Traversable1.Class.traverseDefault1 data Program a = Program { ann :: a, extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: PhpTag GHC.Generics.:+: Text) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_674. AST.Traversable1.Class.Traversable1 a_674 ) instance AST.Unmarshal.SymbolMatching Program where matchedSymbols _ = [154] showFailure _ node_675 = "expected " GHC.Base.<> ( "program" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_675 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_676 c1_677 = TreeSitter.Node.nodeStartPoint node_675 TreeSitter.Node.TSPoint r2_678 c2_679 = TreeSitter.Node.nodeEndPoint node_675 deriving instance GHC.Classes.Eq a_680 => GHC.Classes.Eq (Program a_680) deriving instance GHC.Classes.Ord a_681 => GHC.Classes.Ord (Program a_681) deriving instance GHC.Show.Show a_682 => GHC.Show.Show (Program a_682) instance AST.Unmarshal.Unmarshal Program instance Data.Foldable.Foldable Program where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Program where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Program where traverse = AST.Traversable1.Class.traverseDefault1 data PropertyDeclaration a = PropertyDeclaration { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ClassModifier GHC.Generics.:+: PropertyElement GHC.Generics.:+: StaticModifier GHC.Generics.:+: VarModifier GHC.Generics.:+: VisibilityModifier) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_683. AST.Traversable1.Class.Traversable1 a_683 ) instance AST.Unmarshal.SymbolMatching PropertyDeclaration where matchedSymbols _ = [181] showFailure _ node_684 = "expected " GHC.Base.<> ( "property_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_684 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_685 c1_686 = TreeSitter.Node.nodeStartPoint node_684 TreeSitter.Node.TSPoint r2_687 c2_688 = TreeSitter.Node.nodeEndPoint node_684 deriving instance GHC.Classes.Eq a_689 => GHC.Classes.Eq (PropertyDeclaration a_689) deriving instance GHC.Classes.Ord a_690 => GHC.Classes.Ord (PropertyDeclaration a_690) deriving instance GHC.Show.Show a_691 => GHC.Show.Show (PropertyDeclaration a_691) instance AST.Unmarshal.Unmarshal PropertyDeclaration instance Data.Foldable.Foldable PropertyDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor PropertyDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable PropertyDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data PropertyElement a = PropertyElement { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((PropertyInitializer GHC.Generics.:+: VariableName) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_692. AST.Traversable1.Class.Traversable1 a_692 ) instance AST.Unmarshal.SymbolMatching PropertyElement where matchedSymbols _ = [183] showFailure _ node_693 = "expected " GHC.Base.<> ( "property_element" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_693 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_694 c1_695 = TreeSitter.Node.nodeStartPoint node_693 TreeSitter.Node.TSPoint r2_696 c2_697 = TreeSitter.Node.nodeEndPoint node_693 deriving instance GHC.Classes.Eq a_698 => GHC.Classes.Eq (PropertyElement a_698) deriving instance GHC.Classes.Ord a_699 => GHC.Classes.Ord (PropertyElement a_699) deriving instance GHC.Show.Show a_700 => GHC.Show.Show (PropertyElement a_700) instance AST.Unmarshal.Unmarshal PropertyElement instance Data.Foldable.Foldable PropertyElement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor PropertyElement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable PropertyElement where traverse = AST.Traversable1.Class.traverseDefault1 data PropertyInitializer a = PropertyInitializer { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_701. AST.Traversable1.Class.Traversable1 a_701 ) instance AST.Unmarshal.SymbolMatching PropertyInitializer where matchedSymbols _ = [184] showFailure _ node_702 = "expected " GHC.Base.<> ( "property_initializer" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_702 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_703 c1_704 = TreeSitter.Node.nodeStartPoint node_702 TreeSitter.Node.TSPoint r2_705 c2_706 = TreeSitter.Node.nodeEndPoint node_702 deriving instance GHC.Classes.Eq a_707 => GHC.Classes.Eq (PropertyInitializer a_707) deriving instance GHC.Classes.Ord a_708 => GHC.Classes.Ord (PropertyInitializer a_708) deriving instance GHC.Show.Show a_709 => GHC.Show.Show (PropertyInitializer a_709) instance AST.Unmarshal.Unmarshal PropertyInitializer instance Data.Foldable.Foldable PropertyInitializer where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor PropertyInitializer where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable PropertyInitializer where traverse = AST.Traversable1.Class.traverseDefault1 data QualifiedName a = QualifiedName { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Name GHC.Generics.:+: NamespaceNameAsPrefix) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_710. AST.Traversable1.Class.Traversable1 a_710 ) instance AST.Unmarshal.SymbolMatching QualifiedName where matchedSymbols _ = [165] showFailure _ node_711 = "expected " GHC.Base.<> ( "qualified_name" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_711 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_712 c1_713 = TreeSitter.Node.nodeStartPoint node_711 TreeSitter.Node.TSPoint r2_714 c2_715 = TreeSitter.Node.nodeEndPoint node_711 deriving instance GHC.Classes.Eq a_716 => GHC.Classes.Eq (QualifiedName a_716) deriving instance GHC.Classes.Ord a_717 => GHC.Classes.Ord (QualifiedName a_717) deriving instance GHC.Show.Show a_718 => GHC.Show.Show (QualifiedName a_718) instance AST.Unmarshal.Unmarshal QualifiedName instance Data.Foldable.Foldable QualifiedName where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor QualifiedName where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable QualifiedName where traverse = AST.Traversable1.Class.traverseDefault1 data RelativeScope a = RelativeScope {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_719. AST.Traversable1.Class.Traversable1 a_719 ) instance AST.Unmarshal.SymbolMatching RelativeScope where matchedSymbols _ = [260] showFailure _ node_720 = "expected " GHC.Base.<> ( "relative_scope" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_720 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_721 c1_722 = TreeSitter.Node.nodeStartPoint node_720 TreeSitter.Node.TSPoint r2_723 c2_724 = TreeSitter.Node.nodeEndPoint node_720 deriving instance GHC.Classes.Eq a_725 => GHC.Classes.Eq (RelativeScope a_725) deriving instance GHC.Classes.Ord a_726 => GHC.Classes.Ord (RelativeScope a_726) deriving instance GHC.Show.Show a_727 => GHC.Show.Show (RelativeScope a_727) instance AST.Unmarshal.Unmarshal RelativeScope instance Data.Foldable.Foldable RelativeScope where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor RelativeScope where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable RelativeScope where traverse = AST.Traversable1.Class.traverseDefault1 data RequireExpression a = RequireExpression { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_728. AST.Traversable1.Class.Traversable1 a_728 ) instance AST.Unmarshal.SymbolMatching RequireExpression where matchedSymbols _ = [275] showFailure _ node_729 = "expected " GHC.Base.<> ( "require_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_729 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_730 c1_731 = TreeSitter.Node.nodeStartPoint node_729 TreeSitter.Node.TSPoint r2_732 c2_733 = TreeSitter.Node.nodeEndPoint node_729 deriving instance GHC.Classes.Eq a_734 => GHC.Classes.Eq (RequireExpression a_734) deriving instance GHC.Classes.Ord a_735 => GHC.Classes.Ord (RequireExpression a_735) deriving instance GHC.Show.Show a_736 => GHC.Show.Show (RequireExpression a_736) instance AST.Unmarshal.Unmarshal RequireExpression instance Data.Foldable.Foldable RequireExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor RequireExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable RequireExpression where traverse = AST.Traversable1.Class.traverseDefault1 data RequireOnceExpression a = RequireOnceExpression { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_737. AST.Traversable1.Class.Traversable1 a_737 ) instance AST.Unmarshal.SymbolMatching RequireOnceExpression where matchedSymbols _ = [276] showFailure _ node_738 = "expected " GHC.Base.<> ( "require_once_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_738 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_739 c1_740 = TreeSitter.Node.nodeStartPoint node_738 TreeSitter.Node.TSPoint r2_741 c2_742 = TreeSitter.Node.nodeEndPoint node_738 deriving instance GHC.Classes.Eq a_743 => GHC.Classes.Eq (RequireOnceExpression a_743) deriving instance GHC.Classes.Ord a_744 => GHC.Classes.Ord (RequireOnceExpression a_744) deriving instance GHC.Show.Show a_745 => GHC.Show.Show (RequireOnceExpression a_745) instance AST.Unmarshal.Unmarshal RequireOnceExpression instance Data.Foldable.Foldable RequireOnceExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor RequireOnceExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable RequireOnceExpression where traverse = AST.Traversable1.Class.traverseDefault1 data ReturnStatement a = ReturnStatement { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_746. AST.Traversable1.Class.Traversable1 a_746 ) instance AST.Unmarshal.SymbolMatching ReturnStatement where matchedSymbols _ = [214] showFailure _ node_747 = "expected " GHC.Base.<> ( "return_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_747 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_748 c1_749 = TreeSitter.Node.nodeStartPoint node_747 TreeSitter.Node.TSPoint r2_750 c2_751 = TreeSitter.Node.nodeEndPoint node_747 deriving instance GHC.Classes.Eq a_752 => GHC.Classes.Eq (ReturnStatement a_752) deriving instance GHC.Classes.Ord a_753 => GHC.Classes.Ord (ReturnStatement a_753) deriving instance GHC.Show.Show a_754 => GHC.Show.Show (ReturnStatement a_754) instance AST.Unmarshal.Unmarshal ReturnStatement instance Data.Foldable.Foldable ReturnStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ReturnStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ReturnStatement where traverse = AST.Traversable1.Class.traverseDefault1 data ScopedCallExpression a = ScopedCallExpression { ann :: a, arguments :: (AST.Parse.Err (Arguments a)), name :: (AST.Parse.Err ((Expression GHC.Generics.:+: DynamicVariableName GHC.Generics.:+: Name GHC.Generics.:+: VariableName) a)), 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_755. AST.Traversable1.Class.Traversable1 a_755 ) instance AST.Unmarshal.SymbolMatching ScopedCallExpression where matchedSymbols _ = [258] showFailure _ node_756 = "expected " GHC.Base.<> ( "scoped_call_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_756 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_757 c1_758 = TreeSitter.Node.nodeStartPoint node_756 TreeSitter.Node.TSPoint r2_759 c2_760 = TreeSitter.Node.nodeEndPoint node_756 deriving instance GHC.Classes.Eq a_761 => GHC.Classes.Eq (ScopedCallExpression a_761) deriving instance GHC.Classes.Ord a_762 => GHC.Classes.Ord (ScopedCallExpression a_762) deriving instance GHC.Show.Show a_763 => GHC.Show.Show (ScopedCallExpression a_763) instance AST.Unmarshal.Unmarshal ScopedCallExpression instance Data.Foldable.Foldable ScopedCallExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ScopedCallExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ScopedCallExpression where traverse = AST.Traversable1.Class.traverseDefault1 data ScopedPropertyAccessExpression a = ScopedPropertyAccessExpression { ann :: a, name :: (AST.Parse.Err ((DynamicVariableName GHC.Generics.:+: VariableName) a)), 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_764. AST.Traversable1.Class.Traversable1 a_764 ) instance AST.Unmarshal.SymbolMatching ScopedPropertyAccessExpression where matchedSymbols _ = [255] showFailure _ node_765 = "expected " GHC.Base.<> ( "scoped_property_access_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_765 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_766 c1_767 = TreeSitter.Node.nodeStartPoint node_765 TreeSitter.Node.TSPoint r2_768 c2_769 = TreeSitter.Node.nodeEndPoint node_765 deriving instance GHC.Classes.Eq a_770 => GHC.Classes.Eq (ScopedPropertyAccessExpression a_770) deriving instance GHC.Classes.Ord a_771 => GHC.Classes.Ord (ScopedPropertyAccessExpression a_771) deriving instance GHC.Show.Show a_772 => GHC.Show.Show (ScopedPropertyAccessExpression a_772) instance AST.Unmarshal.Unmarshal ScopedPropertyAccessExpression instance Data.Foldable.Foldable ScopedPropertyAccessExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ScopedPropertyAccessExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ScopedPropertyAccessExpression where traverse = AST.Traversable1.Class.traverseDefault1 data SequenceExpression a = SequenceExpression { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_773. AST.Traversable1.Class.Traversable1 a_773 ) instance AST.Unmarshal.SymbolMatching SequenceExpression where matchedSymbols _ = [220] showFailure _ node_774 = "expected " GHC.Base.<> ( "sequence_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_774 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_775 c1_776 = TreeSitter.Node.nodeStartPoint node_774 TreeSitter.Node.TSPoint r2_777 c2_778 = TreeSitter.Node.nodeEndPoint node_774 deriving instance GHC.Classes.Eq a_779 => GHC.Classes.Eq (SequenceExpression a_779) deriving instance GHC.Classes.Ord a_780 => GHC.Classes.Ord (SequenceExpression a_780) deriving instance GHC.Show.Show a_781 => GHC.Show.Show (SequenceExpression a_781) instance AST.Unmarshal.Unmarshal SequenceExpression instance Data.Foldable.Foldable SequenceExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SequenceExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SequenceExpression where traverse = AST.Traversable1.Class.traverseDefault1 data SimpleParameter a = SimpleParameter { ann :: a, defaultValue :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))), name :: (AST.Parse.Err (VariableName a)), type' :: (GHC.Maybe.Maybe (AST.Parse.Err (Type a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_782. AST.Traversable1.Class.Traversable1 a_782 ) instance AST.Unmarshal.SymbolMatching SimpleParameter where matchedSymbols _ = [195] showFailure _ node_783 = "expected " GHC.Base.<> ( "simple_parameter" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_783 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_784 c1_785 = TreeSitter.Node.nodeStartPoint node_783 TreeSitter.Node.TSPoint r2_786 c2_787 = TreeSitter.Node.nodeEndPoint node_783 deriving instance GHC.Classes.Eq a_788 => GHC.Classes.Eq (SimpleParameter a_788) deriving instance GHC.Classes.Ord a_789 => GHC.Classes.Ord (SimpleParameter a_789) deriving instance GHC.Show.Show a_790 => GHC.Show.Show (SimpleParameter a_790) instance AST.Unmarshal.Unmarshal SimpleParameter instance Data.Foldable.Foldable SimpleParameter where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SimpleParameter where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SimpleParameter where traverse = AST.Traversable1.Class.traverseDefault1 data StaticModifier a = StaticModifier {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_791. AST.Traversable1.Class.Traversable1 a_791 ) instance AST.Unmarshal.SymbolMatching StaticModifier where matchedSymbols _ = [186] showFailure _ node_792 = "expected " GHC.Base.<> ( "static_modifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_792 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_793 c1_794 = TreeSitter.Node.nodeStartPoint node_792 TreeSitter.Node.TSPoint r2_795 c2_796 = TreeSitter.Node.nodeEndPoint node_792 deriving instance GHC.Classes.Eq a_797 => GHC.Classes.Eq (StaticModifier a_797) deriving instance GHC.Classes.Ord a_798 => GHC.Classes.Ord (StaticModifier a_798) deriving instance GHC.Show.Show a_799 => GHC.Show.Show (StaticModifier a_799) instance AST.Unmarshal.Unmarshal StaticModifier instance Data.Foldable.Foldable StaticModifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor StaticModifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable StaticModifier where traverse = AST.Traversable1.Class.traverseDefault1 data StaticVariableDeclaration a = StaticVariableDeclaration { ann :: a, value :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))), name :: (AST.Parse.Err (VariableName a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_800. AST.Traversable1.Class.Traversable1 a_800 ) instance AST.Unmarshal.SymbolMatching StaticVariableDeclaration where matchedSymbols _ = [159] showFailure _ node_801 = "expected " GHC.Base.<> ( "static_variable_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_801 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_802 c1_803 = TreeSitter.Node.nodeStartPoint node_801 TreeSitter.Node.TSPoint r2_804 c2_805 = TreeSitter.Node.nodeEndPoint node_801 deriving instance GHC.Classes.Eq a_806 => GHC.Classes.Eq (StaticVariableDeclaration a_806) deriving instance GHC.Classes.Ord a_807 => GHC.Classes.Ord (StaticVariableDeclaration a_807) deriving instance GHC.Show.Show a_808 => GHC.Show.Show (StaticVariableDeclaration a_808) instance AST.Unmarshal.Unmarshal StaticVariableDeclaration instance Data.Foldable.Foldable StaticVariableDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor StaticVariableDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable StaticVariableDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data SubscriptExpression a = SubscriptExpression { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_809. AST.Traversable1.Class.Traversable1 a_809 ) instance AST.Unmarshal.SymbolMatching SubscriptExpression where matchedSymbols _ = [264] showFailure _ node_810 = "expected " GHC.Base.<> ( "subscript_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_810 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_811 c1_812 = TreeSitter.Node.nodeStartPoint node_810 TreeSitter.Node.TSPoint r2_813 c2_814 = TreeSitter.Node.nodeEndPoint node_810 deriving instance GHC.Classes.Eq a_815 => GHC.Classes.Eq (SubscriptExpression a_815) deriving instance GHC.Classes.Ord a_816 => GHC.Classes.Ord (SubscriptExpression a_816) deriving instance GHC.Show.Show a_817 => GHC.Show.Show (SubscriptExpression a_817) instance AST.Unmarshal.Unmarshal SubscriptExpression instance Data.Foldable.Foldable SubscriptExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SubscriptExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SubscriptExpression where traverse = AST.Traversable1.Class.traverseDefault1 data SwitchBlock a = SwitchBlock { ann :: a, extraChildren :: ([AST.Parse.Err ((CaseStatement GHC.Generics.:+: DefaultStatement) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_818. AST.Traversable1.Class.Traversable1 a_818 ) instance AST.Unmarshal.SymbolMatching SwitchBlock where matchedSymbols _ = [230] showFailure _ node_819 = "expected " GHC.Base.<> ( "switch_block" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_819 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_820 c1_821 = TreeSitter.Node.nodeStartPoint node_819 TreeSitter.Node.TSPoint r2_822 c2_823 = TreeSitter.Node.nodeEndPoint node_819 deriving instance GHC.Classes.Eq a_824 => GHC.Classes.Eq (SwitchBlock a_824) deriving instance GHC.Classes.Ord a_825 => GHC.Classes.Ord (SwitchBlock a_825) deriving instance GHC.Show.Show a_826 => GHC.Show.Show (SwitchBlock a_826) instance AST.Unmarshal.Unmarshal SwitchBlock instance Data.Foldable.Foldable SwitchBlock where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SwitchBlock where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SwitchBlock where traverse = AST.Traversable1.Class.traverseDefault1 data SwitchStatement a = SwitchStatement { ann :: a, body :: (AST.Parse.Err (SwitchBlock a)), condition :: (AST.Parse.Err (ParenthesizedExpression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_827. AST.Traversable1.Class.Traversable1 a_827 ) instance AST.Unmarshal.SymbolMatching SwitchStatement where matchedSymbols _ = [229] showFailure _ node_828 = "expected " GHC.Base.<> ( "switch_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_828 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_829 c1_830 = TreeSitter.Node.nodeStartPoint node_828 TreeSitter.Node.TSPoint r2_831 c2_832 = TreeSitter.Node.nodeEndPoint node_828 deriving instance GHC.Classes.Eq a_833 => GHC.Classes.Eq (SwitchStatement a_833) deriving instance GHC.Classes.Ord a_834 => GHC.Classes.Ord (SwitchStatement a_834) deriving instance GHC.Show.Show a_835 => GHC.Show.Show (SwitchStatement a_835) instance AST.Unmarshal.Unmarshal SwitchStatement instance Data.Foldable.Foldable SwitchStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SwitchStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SwitchStatement where traverse = AST.Traversable1.Class.traverseDefault1 data Text a = Text {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_836. AST.Traversable1.Class.Traversable1 a_836 ) instance AST.Unmarshal.SymbolMatching Text where matchedSymbols _ = [156] showFailure _ node_837 = "expected " GHC.Base.<> ( "text" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_837 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_838 c1_839 = TreeSitter.Node.nodeStartPoint node_837 TreeSitter.Node.TSPoint r2_840 c2_841 = TreeSitter.Node.nodeEndPoint node_837 deriving instance GHC.Classes.Eq a_842 => GHC.Classes.Eq (Text a_842) deriving instance GHC.Classes.Ord a_843 => GHC.Classes.Ord (Text a_843) deriving instance GHC.Show.Show a_844 => GHC.Show.Show (Text a_844) instance AST.Unmarshal.Unmarshal Text instance Data.Foldable.Foldable Text where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Text where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Text where traverse = AST.Traversable1.Class.traverseDefault1 data ThrowStatement a = ThrowStatement { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_845. AST.Traversable1.Class.Traversable1 a_845 ) instance AST.Unmarshal.SymbolMatching ThrowStatement where matchedSymbols _ = [215] showFailure _ node_846 = "expected " GHC.Base.<> ( "throw_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_846 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_847 c1_848 = TreeSitter.Node.nodeStartPoint node_846 TreeSitter.Node.TSPoint r2_849 c2_850 = TreeSitter.Node.nodeEndPoint node_846 deriving instance GHC.Classes.Eq a_851 => GHC.Classes.Eq (ThrowStatement a_851) deriving instance GHC.Classes.Ord a_852 => GHC.Classes.Ord (ThrowStatement a_852) deriving instance GHC.Show.Show a_853 => GHC.Show.Show (ThrowStatement a_853) instance AST.Unmarshal.Unmarshal ThrowStatement instance Data.Foldable.Foldable ThrowStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ThrowStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ThrowStatement where traverse = AST.Traversable1.Class.traverseDefault1 data TraitDeclaration a = TraitDeclaration { ann :: a, body :: (AST.Parse.Err (DeclarationList a)), name :: (AST.Parse.Err (Name a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_854. AST.Traversable1.Class.Traversable1 a_854 ) instance AST.Unmarshal.SymbolMatching TraitDeclaration where matchedSymbols _ = [171] showFailure _ node_855 = "expected " GHC.Base.<> ( "trait_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_855 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_856 c1_857 = TreeSitter.Node.nodeStartPoint node_855 TreeSitter.Node.TSPoint r2_858 c2_859 = TreeSitter.Node.nodeEndPoint node_855 deriving instance GHC.Classes.Eq a_860 => GHC.Classes.Eq (TraitDeclaration a_860) deriving instance GHC.Classes.Ord a_861 => GHC.Classes.Ord (TraitDeclaration a_861) deriving instance GHC.Show.Show a_862 => GHC.Show.Show (TraitDeclaration a_862) instance AST.Unmarshal.Unmarshal TraitDeclaration instance Data.Foldable.Foldable TraitDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TraitDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TraitDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data TryStatement a = TryStatement { ann :: a, body :: (AST.Parse.Err (CompoundStatement a)), extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((CatchClause GHC.Generics.:+: FinallyClause) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_863. AST.Traversable1.Class.Traversable1 a_863 ) instance AST.Unmarshal.SymbolMatching TryStatement where matchedSymbols _ = [207] showFailure _ node_864 = "expected " GHC.Base.<> ( "try_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_864 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_865 c1_866 = TreeSitter.Node.nodeStartPoint node_864 TreeSitter.Node.TSPoint r2_867 c2_868 = TreeSitter.Node.nodeEndPoint node_864 deriving instance GHC.Classes.Eq a_869 => GHC.Classes.Eq (TryStatement a_869) deriving instance GHC.Classes.Ord a_870 => GHC.Classes.Ord (TryStatement a_870) deriving instance GHC.Show.Show a_871 => GHC.Show.Show (TryStatement a_871) instance AST.Unmarshal.Unmarshal TryStatement instance Data.Foldable.Foldable TryStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TryStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TryStatement where traverse = AST.Traversable1.Class.traverseDefault1 data TypeName a = TypeName { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Name GHC.Generics.:+: NamespaceNameAsPrefix) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_872. AST.Traversable1.Class.Traversable1 a_872 ) instance AST.Unmarshal.SymbolMatching TypeName where matchedSymbols _ = [301] showFailure _ node_873 = "expected " GHC.Base.<> ( "type_name" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_873 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_874 c1_875 = TreeSitter.Node.nodeStartPoint node_873 TreeSitter.Node.TSPoint r2_876 c2_877 = TreeSitter.Node.nodeEndPoint node_873 deriving instance GHC.Classes.Eq a_878 => GHC.Classes.Eq (TypeName a_878) deriving instance GHC.Classes.Ord a_879 => GHC.Classes.Ord (TypeName a_879) deriving instance GHC.Show.Show a_880 => GHC.Show.Show (TypeName a_880) instance AST.Unmarshal.Unmarshal TypeName instance Data.Foldable.Foldable TypeName where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeName where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeName where traverse = AST.Traversable1.Class.traverseDefault1 data UnaryOpExpression a = UnaryOpExpression { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_881. AST.Traversable1.Class.Traversable1 a_881 ) instance AST.Unmarshal.SymbolMatching UnaryOpExpression where matchedSymbols _ = [238] showFailure _ node_882 = "expected " GHC.Base.<> ( "unary_op_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_882 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_883 c1_884 = TreeSitter.Node.nodeStartPoint node_882 TreeSitter.Node.TSPoint r2_885 c2_886 = TreeSitter.Node.nodeEndPoint node_882 deriving instance GHC.Classes.Eq a_887 => GHC.Classes.Eq (UnaryOpExpression a_887) deriving instance GHC.Classes.Ord a_888 => GHC.Classes.Ord (UnaryOpExpression a_888) deriving instance GHC.Show.Show a_889 => GHC.Show.Show (UnaryOpExpression a_889) instance AST.Unmarshal.Unmarshal UnaryOpExpression instance Data.Foldable.Foldable UnaryOpExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor UnaryOpExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable UnaryOpExpression where traverse = AST.Traversable1.Class.traverseDefault1 data UnsetStatement a = UnsetStatement { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_890. AST.Traversable1.Class.Traversable1 a_890 ) instance AST.Unmarshal.SymbolMatching UnsetStatement where matchedSymbols _ = [204] showFailure _ node_891 = "expected " GHC.Base.<> ( "unset_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_891 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_892 c1_893 = TreeSitter.Node.nodeStartPoint node_891 TreeSitter.Node.TSPoint r2_894 c2_895 = TreeSitter.Node.nodeEndPoint node_891 deriving instance GHC.Classes.Eq a_896 => GHC.Classes.Eq (UnsetStatement a_896) deriving instance GHC.Classes.Ord a_897 => GHC.Classes.Ord (UnsetStatement a_897) deriving instance GHC.Show.Show a_898 => GHC.Show.Show (UnsetStatement a_898) instance AST.Unmarshal.Unmarshal UnsetStatement instance Data.Foldable.Foldable UnsetStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor UnsetStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable UnsetStatement where traverse = AST.Traversable1.Class.traverseDefault1 data UpdateExpression a = UpdateExpression { ann :: a, 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_899. AST.Traversable1.Class.Traversable1 a_899 ) instance AST.Unmarshal.SymbolMatching UpdateExpression where matchedSymbols _ = [248] showFailure _ node_900 = "expected " GHC.Base.<> ( "update_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_900 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_901 c1_902 = TreeSitter.Node.nodeStartPoint node_900 TreeSitter.Node.TSPoint r2_903 c2_904 = TreeSitter.Node.nodeEndPoint node_900 deriving instance GHC.Classes.Eq a_905 => GHC.Classes.Eq (UpdateExpression a_905) deriving instance GHC.Classes.Ord a_906 => GHC.Classes.Ord (UpdateExpression a_906) deriving instance GHC.Show.Show a_907 => GHC.Show.Show (UpdateExpression a_907) instance AST.Unmarshal.Unmarshal UpdateExpression instance Data.Foldable.Foldable UpdateExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor UpdateExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable UpdateExpression where traverse = AST.Traversable1.Class.traverseDefault1 data UseAsClause a = UseAsClause { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ClassConstantAccessExpression GHC.Generics.:+: Name GHC.Generics.:+: VisibilityModifier) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_908. AST.Traversable1.Class.Traversable1 a_908 ) instance AST.Unmarshal.SymbolMatching UseAsClause where matchedSymbols _ = [190] showFailure _ node_909 = "expected " GHC.Base.<> ( "use_as_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_909 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_910 c1_911 = TreeSitter.Node.nodeStartPoint node_909 TreeSitter.Node.TSPoint r2_912 c2_913 = TreeSitter.Node.nodeEndPoint node_909 deriving instance GHC.Classes.Eq a_914 => GHC.Classes.Eq (UseAsClause a_914) deriving instance GHC.Classes.Ord a_915 => GHC.Classes.Ord (UseAsClause a_915) deriving instance GHC.Show.Show a_916 => GHC.Show.Show (UseAsClause a_916) instance AST.Unmarshal.Unmarshal UseAsClause instance Data.Foldable.Foldable UseAsClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor UseAsClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable UseAsClause where traverse = AST.Traversable1.Class.traverseDefault1 data UseDeclaration a = UseDeclaration { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((QualifiedName GHC.Generics.:+: UseList) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_917. AST.Traversable1.Class.Traversable1 a_917 ) instance AST.Unmarshal.SymbolMatching UseDeclaration where matchedSymbols _ = [187] showFailure _ node_918 = "expected " GHC.Base.<> ( "use_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_918 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_919 c1_920 = TreeSitter.Node.nodeStartPoint node_918 TreeSitter.Node.TSPoint r2_921 c2_922 = TreeSitter.Node.nodeEndPoint node_918 deriving instance GHC.Classes.Eq a_923 => GHC.Classes.Eq (UseDeclaration a_923) deriving instance GHC.Classes.Ord a_924 => GHC.Classes.Ord (UseDeclaration a_924) deriving instance GHC.Show.Show a_925 => GHC.Show.Show (UseDeclaration a_925) instance AST.Unmarshal.Unmarshal UseDeclaration instance Data.Foldable.Foldable UseDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor UseDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable UseDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data UseInsteadOfClause a = UseInsteadOfClause { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ClassConstantAccessExpression GHC.Generics.:+: Name) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_926. AST.Traversable1.Class.Traversable1 a_926 ) instance AST.Unmarshal.SymbolMatching UseInsteadOfClause where matchedSymbols _ = [189] showFailure _ node_927 = "expected " GHC.Base.<> ( "use_instead_of_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_927 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_928 c1_929 = TreeSitter.Node.nodeStartPoint node_927 TreeSitter.Node.TSPoint r2_930 c2_931 = TreeSitter.Node.nodeEndPoint node_927 deriving instance GHC.Classes.Eq a_932 => GHC.Classes.Eq (UseInsteadOfClause a_932) deriving instance GHC.Classes.Ord a_933 => GHC.Classes.Ord (UseInsteadOfClause a_933) deriving instance GHC.Show.Show a_934 => GHC.Show.Show (UseInsteadOfClause a_934) instance AST.Unmarshal.Unmarshal UseInsteadOfClause instance Data.Foldable.Foldable UseInsteadOfClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor UseInsteadOfClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable UseInsteadOfClause where traverse = AST.Traversable1.Class.traverseDefault1 data UseList a = UseList { ann :: a, extraChildren :: ([AST.Parse.Err ((UseAsClause GHC.Generics.:+: UseInsteadOfClause) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_935. AST.Traversable1.Class.Traversable1 a_935 ) instance AST.Unmarshal.SymbolMatching UseList where matchedSymbols _ = [188] showFailure _ node_936 = "expected " GHC.Base.<> ( "use_list" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_936 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_937 c1_938 = TreeSitter.Node.nodeStartPoint node_936 TreeSitter.Node.TSPoint r2_939 c2_940 = TreeSitter.Node.nodeEndPoint node_936 deriving instance GHC.Classes.Eq a_941 => GHC.Classes.Eq (UseList a_941) deriving instance GHC.Classes.Ord a_942 => GHC.Classes.Ord (UseList a_942) deriving instance GHC.Show.Show a_943 => GHC.Show.Show (UseList a_943) instance AST.Unmarshal.Unmarshal UseList instance Data.Foldable.Foldable UseList where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor UseList where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable UseList where traverse = AST.Traversable1.Class.traverseDefault1 data VariableName a = VariableName { ann :: a, extraChildren :: (AST.Parse.Err (Name a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_944. AST.Traversable1.Class.Traversable1 a_944 ) instance AST.Unmarshal.SymbolMatching VariableName where matchedSymbols _ = [269] showFailure _ node_945 = "expected " GHC.Base.<> ( "variable_name" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_945 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_946 c1_947 = TreeSitter.Node.nodeStartPoint node_945 TreeSitter.Node.TSPoint r2_948 c2_949 = TreeSitter.Node.nodeEndPoint node_945 deriving instance GHC.Classes.Eq a_950 => GHC.Classes.Eq (VariableName a_950) deriving instance GHC.Classes.Ord a_951 => GHC.Classes.Ord (VariableName a_951) deriving instance GHC.Show.Show a_952 => GHC.Show.Show (VariableName a_952) instance AST.Unmarshal.Unmarshal VariableName instance Data.Foldable.Foldable VariableName where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor VariableName where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable VariableName where traverse = AST.Traversable1.Class.traverseDefault1 data VariadicParameter a = VariadicParameter { ann :: a, name :: (AST.Parse.Err (VariableName a)), type' :: (GHC.Maybe.Maybe (AST.Parse.Err (Type a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_953. AST.Traversable1.Class.Traversable1 a_953 ) instance AST.Unmarshal.SymbolMatching VariadicParameter where matchedSymbols _ = [196] showFailure _ node_954 = "expected " GHC.Base.<> ( "variadic_parameter" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_954 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_955 c1_956 = TreeSitter.Node.nodeStartPoint node_954 TreeSitter.Node.TSPoint r2_957 c2_958 = TreeSitter.Node.nodeEndPoint node_954 deriving instance GHC.Classes.Eq a_959 => GHC.Classes.Eq (VariadicParameter a_959) deriving instance GHC.Classes.Ord a_960 => GHC.Classes.Ord (VariadicParameter a_960) deriving instance GHC.Show.Show a_961 => GHC.Show.Show (VariadicParameter a_961) instance AST.Unmarshal.Unmarshal VariadicParameter instance Data.Foldable.Foldable VariadicParameter where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor VariadicParameter where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable VariadicParameter where traverse = AST.Traversable1.Class.traverseDefault1 data VariadicUnpacking a = VariadicUnpacking { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_962. AST.Traversable1.Class.Traversable1 a_962 ) instance AST.Unmarshal.SymbolMatching VariadicUnpacking where matchedSymbols _ = [263] showFailure _ node_963 = "expected " GHC.Base.<> ( "variadic_unpacking" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_963 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_964 c1_965 = TreeSitter.Node.nodeStartPoint node_963 TreeSitter.Node.TSPoint r2_966 c2_967 = TreeSitter.Node.nodeEndPoint node_963 deriving instance GHC.Classes.Eq a_968 => GHC.Classes.Eq (VariadicUnpacking a_968) deriving instance GHC.Classes.Ord a_969 => GHC.Classes.Ord (VariadicUnpacking a_969) deriving instance GHC.Show.Show a_970 => GHC.Show.Show (VariadicUnpacking a_970) instance AST.Unmarshal.Unmarshal VariadicUnpacking instance Data.Foldable.Foldable VariadicUnpacking where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor VariadicUnpacking where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable VariadicUnpacking where traverse = AST.Traversable1.Class.traverseDefault1 data VisibilityModifier a = VisibilityModifier {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_971. AST.Traversable1.Class.Traversable1 a_971 ) instance AST.Unmarshal.SymbolMatching VisibilityModifier where matchedSymbols _ = [191] showFailure _ node_972 = "expected " GHC.Base.<> ( "visibility_modifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_972 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_973 c1_974 = TreeSitter.Node.nodeStartPoint node_972 TreeSitter.Node.TSPoint r2_975 c2_976 = TreeSitter.Node.nodeEndPoint node_972 deriving instance GHC.Classes.Eq a_977 => GHC.Classes.Eq (VisibilityModifier a_977) deriving instance GHC.Classes.Ord a_978 => GHC.Classes.Ord (VisibilityModifier a_978) deriving instance GHC.Show.Show a_979 => GHC.Show.Show (VisibilityModifier a_979) instance AST.Unmarshal.Unmarshal VisibilityModifier instance Data.Foldable.Foldable VisibilityModifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor VisibilityModifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable VisibilityModifier where traverse = AST.Traversable1.Class.traverseDefault1 data WhileStatement a = WhileStatement { ann :: a, body :: (AST.Parse.Err ((Statement GHC.Generics.:+: ColonBlock) a)), condition :: (AST.Parse.Err (ParenthesizedExpression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_980. AST.Traversable1.Class.Traversable1 a_980 ) instance AST.Unmarshal.SymbolMatching WhileStatement where matchedSymbols _ = [216] showFailure _ node_981 = "expected " GHC.Base.<> ( "while_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_981 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_982 c1_983 = TreeSitter.Node.nodeStartPoint node_981 TreeSitter.Node.TSPoint r2_984 c2_985 = TreeSitter.Node.nodeEndPoint node_981 deriving instance GHC.Classes.Eq a_986 => GHC.Classes.Eq (WhileStatement a_986) deriving instance GHC.Classes.Ord a_987 => GHC.Classes.Ord (WhileStatement a_987) deriving instance GHC.Show.Show a_988 => GHC.Show.Show (WhileStatement a_988) instance AST.Unmarshal.Unmarshal WhileStatement instance Data.Foldable.Foldable WhileStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor WhileStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable WhileStatement where traverse = AST.Traversable1.Class.traverseDefault1 data YieldExpression a = YieldExpression { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err ((Expression GHC.Generics.:+: ArrayElementInitializer) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_989. AST.Traversable1.Class.Traversable1 a_989 ) instance AST.Unmarshal.SymbolMatching YieldExpression where matchedSymbols _ = [270] showFailure _ node_990 = "expected " GHC.Base.<> ( "yield_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_990 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_991 c1_992 = TreeSitter.Node.nodeStartPoint node_990 TreeSitter.Node.TSPoint r2_993 c2_994 = TreeSitter.Node.nodeEndPoint node_990 deriving instance GHC.Classes.Eq a_995 => GHC.Classes.Eq (YieldExpression a_995) deriving instance GHC.Classes.Ord a_996 => GHC.Classes.Ord (YieldExpression a_996) deriving instance GHC.Show.Show a_997 => GHC.Show.Show (YieldExpression a_997) instance AST.Unmarshal.Unmarshal YieldExpression instance Data.Foldable.Foldable YieldExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor YieldExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable YieldExpression where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousBang = AST.Token.Token "!" 88 type AnonymousBangEqual = AST.Token.Token "!=" 131 type AnonymousBangEqualEqual = AST.Token.Token "!==" 134 type AnonymousDollar = AST.Token.Token "$" 118 type AnonymousPercent = AST.Token.Token "%" 145 type AnonymousPercentEqual = AST.Token.Token "%=" 100 type AnonymousAmpersand = AST.Token.Token "&" 31 type AnonymousAmpersandAmpersand = AST.Token.Token "&&" 127 type AnonymousAmpersandEqual = AST.Token.Token "&=" 106 type AnonymousLParen = AST.Token.Token "(" 32 type AnonymousRParen = AST.Token.Token ")" 33 type AnonymousStar = AST.Token.Token "*" 143 type AnonymousStarStar = AST.Token.Token "**" 89 type AnonymousStarStarEqual = AST.Token.Token "**=" 97 type AnonymousStarEqual = AST.Token.Token "*=" 98 type AnonymousPlus = AST.Token.Token "+" 85 type AnonymousPlusPlus = AST.Token.Token "++" 94 type AnonymousPlusEqual = AST.Token.Token "+=" 101 type AnonymousComma = AST.Token.Token "," 8 type AnonymousMinus = AST.Token.Token "-" 86 type AnonymousMinusMinus = AST.Token.Token "--" 95 type AnonymousMinusEqual = AST.Token.Token "-=" 102 type AnonymousMinusRAngle = AST.Token.Token "->" 109 type AnonymousDot = AST.Token.Token "." 142 type AnonymousDotDotDot = AST.Token.Token "..." 34 type AnonymousDotEqual = AST.Token.Token ".=" 103 type AnonymousSlash = AST.Token.Token "/" 144 type AnonymousSlashEqual = AST.Token.Token "/=" 99 type AnonymousColon = AST.Token.Token ":" 51 type AnonymousColonColon = AST.Token.Token "::" 91 type AnonymousSemicolon = AST.Token.Token ";" 6 type AnonymousLAngle = AST.Token.Token "<" 135 type AnonymousLAngleLAngle = AST.Token.Token "<<" 140 type AnonymousLAngleLAngleEqual = AST.Token.Token "<<=" 104 type AnonymousLAngleEqual = AST.Token.Token "<=" 137 type AnonymousLAngleEqualRAngle = AST.Token.Token "<=>" 139 type AnonymousLAngleRAngle = AST.Token.Token "<>" 132 type AnonymousEqual = AST.Token.Token "=" 9 type AnonymousEqualEqual = AST.Token.Token "==" 130 type AnonymousEqualEqualEqual = AST.Token.Token "===" 133 type AnonymousEqualRAngle = AST.Token.Token "=>" 75 type AnonymousRAngle = AST.Token.Token ">" 136 type AnonymousRAngleEqual = AST.Token.Token ">=" 138 type AnonymousRAngleRAngle = AST.Token.Token ">>" 141 type AnonymousRAngleRAngleEqual = AST.Token.Token ">>=" 105 type AnonymousQuestion = AST.Token.Token "?" 35 type AnonymousQuestionRAngle = AST.Token.Token "?>" 3 type AnonymousQuestionQuestion = AST.Token.Token "??" 122 type AnonymousAt = AST.Token.Token "@" 84 type AnonymousLBracket = AST.Token.Token "[" 113 type AnonymousBackslash = AST.Token.Token "\\" 13 type AnonymousRBracket = AST.Token.Token "]" 114 type AnonymousCaret = AST.Token.Token "^" 129 type AnonymousCaretEqual = AST.Token.Token "^=" 107 type AnonymousAbstract = AST.Token.Token "abstract" 23 type AnonymousAnd = AST.Token.Token "and" 123 type AnonymousArray = AST.Token.Token "array" 36 type AnonymousAs = AST.Token.Token "as" 16 type AnonymousBinary = AST.Token.Token "binary" 44 type AnonymousBool = AST.Token.Token "bool" 39 data Boolean a = Boolean {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_998. AST.Traversable1.Class.Traversable1 a_998 ) instance AST.Unmarshal.SymbolMatching Boolean where matchedSymbols _ = [116] showFailure _ node_999 = "expected " GHC.Base.<> ( "boolean" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_999 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1000 c1_1001 = TreeSitter.Node.nodeStartPoint node_999 TreeSitter.Node.TSPoint r2_1002 c2_1003 = TreeSitter.Node.nodeEndPoint node_999 deriving instance GHC.Classes.Eq a_1004 => GHC.Classes.Eq (Boolean a_1004) deriving instance GHC.Classes.Ord a_1005 => GHC.Classes.Ord (Boolean a_1005) deriving instance GHC.Show.Show a_1006 => GHC.Show.Show (Boolean a_1006) instance AST.Unmarshal.Unmarshal Boolean instance Data.Foldable.Foldable Boolean where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Boolean where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Boolean where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousBoolean = AST.Token.Token "boolean" 45 type AnonymousBreak = AST.Token.Token "break" 64 type AnonymousCallable = AST.Token.Token "callable" 37 type AnonymousCase = AST.Token.Token "case" 82 type AnonymousCatch = AST.Token.Token "catch" 60 type AnonymousClass = AST.Token.Token "class" 22 type AnonymousClone = AST.Token.Token "clone" 90 type AnonymousConst = AST.Token.Token "const" 15 type AnonymousContinue = AST.Token.Token "continue" 63 type AnonymousDeclare = AST.Token.Token "declare" 53 type AnonymousDefault = AST.Token.Token "default" 83 type AnonymousDo = AST.Token.Token "do" 70 type AnonymousDouble = AST.Token.Token "double" 46 type AnonymousEcho = AST.Token.Token "echo" 52 type AnonymousElse = AST.Token.Token "else" 79 type AnonymousElseif = AST.Token.Token "elseif" 78 type AnonymousEncoding = AST.Token.Token "encoding" 56 type AnonymousEnddeclare = AST.Token.Token "enddeclare" 54 type AnonymousEndfor = AST.Token.Token "endfor" 72 type AnonymousEndforeach = AST.Token.Token "endforeach" 74 type AnonymousEndif = AST.Token.Token "endif" 77 type AnonymousEndswitch = AST.Token.Token "endswitch" 81 type AnonymousEndwhile = AST.Token.Token "endwhile" 69 type AnonymousExtends = AST.Token.Token "extends" 21 type AnonymousFinal = AST.Token.Token "final" 24 type AnonymousFinally = AST.Token.Token "finally" 61 type AnonymousFloat = AST.Token.Token "float" 40 data Float a = Float {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1007. AST.Traversable1.Class.Traversable1 a_1007 ) instance AST.Unmarshal.SymbolMatching Float where matchedSymbols _ = [58] showFailure _ node_1008 = "expected " GHC.Base.<> ( "float" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1008 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1009 c1_1010 = TreeSitter.Node.nodeStartPoint node_1008 TreeSitter.Node.TSPoint r2_1011 c2_1012 = TreeSitter.Node.nodeEndPoint node_1008 deriving instance GHC.Classes.Eq a_1013 => GHC.Classes.Eq (Float a_1013) deriving instance GHC.Classes.Ord a_1014 => GHC.Classes.Ord (Float a_1014) deriving instance GHC.Show.Show a_1015 => GHC.Show.Show (Float a_1015) instance AST.Unmarshal.Unmarshal Float instance Data.Foldable.Foldable Float where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Float where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Float where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousFor = AST.Token.Token "for" 71 type AnonymousForeach = AST.Token.Token "foreach" 73 type AnonymousFrom = AST.Token.Token "from" 120 type AnonymousFunction = AST.Token.Token "function" 14 type AnonymousGlobal = AST.Token.Token "global" 10 type AnonymousGoto = AST.Token.Token "goto" 62 data Heredoc a = Heredoc {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1016. AST.Traversable1.Class.Traversable1 a_1016 ) instance AST.Unmarshal.SymbolMatching Heredoc where matchedSymbols _ = [152] showFailure _ node_1017 = "expected " GHC.Base.<> ( "heredoc" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1017 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1018 c1_1019 = TreeSitter.Node.nodeStartPoint node_1017 TreeSitter.Node.TSPoint r2_1020 c2_1021 = TreeSitter.Node.nodeEndPoint node_1017 deriving instance GHC.Classes.Eq a_1022 => GHC.Classes.Eq (Heredoc a_1022) deriving instance GHC.Classes.Ord a_1023 => GHC.Classes.Ord (Heredoc a_1023) deriving instance GHC.Show.Show a_1024 => GHC.Show.Show (Heredoc a_1024) instance AST.Unmarshal.Unmarshal Heredoc instance Data.Foldable.Foldable Heredoc where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Heredoc where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Heredoc where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousIf = AST.Token.Token "if" 76 type AnonymousImplements = AST.Token.Token "implements" 25 type AnonymousInclude = AST.Token.Token "include" 146 type AnonymousIncludeOnce = AST.Token.Token "include_once" 147 type AnonymousInstanceof = AST.Token.Token "instanceof" 121 type AnonymousInsteadof = AST.Token.Token "insteadof" 27 type AnonymousInt = AST.Token.Token "int" 41 type AnonymousInteger = AST.Token.Token "integer" 47 data Integer a = Integer {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1025. AST.Traversable1.Class.Traversable1 a_1025 ) instance AST.Unmarshal.SymbolMatching Integer where matchedSymbols _ = [65] showFailure _ node_1026 = "expected " GHC.Base.<> ( "integer" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1026 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1027 c1_1028 = TreeSitter.Node.nodeStartPoint node_1026 TreeSitter.Node.TSPoint r2_1029 c2_1030 = TreeSitter.Node.nodeEndPoint node_1026 deriving instance GHC.Classes.Eq a_1031 => GHC.Classes.Eq (Integer a_1031) deriving instance GHC.Classes.Ord a_1032 => GHC.Classes.Ord (Integer a_1032) deriving instance GHC.Show.Show a_1033 => GHC.Show.Show (Integer a_1033) instance AST.Unmarshal.Unmarshal Integer instance Data.Foldable.Foldable Integer where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Integer where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Integer where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousInterface = AST.Token.Token "interface" 20 type AnonymousIterable = AST.Token.Token "iterable" 38 type AnonymousList = AST.Token.Token "list" 110 type AnonymousNamespace = AST.Token.Token "namespace" 11 type AnonymousNew = AST.Token.Token "new" 93 data Null a = Null {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1034. AST.Traversable1.Class.Traversable1 a_1034 ) instance AST.Unmarshal.SymbolMatching Null where matchedSymbols _ = [117] showFailure _ node_1035 = "expected " GHC.Base.<> ( "null" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1035 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1036 c1_1037 = TreeSitter.Node.nodeStartPoint node_1035 TreeSitter.Node.TSPoint r2_1038 c2_1039 = TreeSitter.Node.nodeEndPoint node_1035 deriving instance GHC.Classes.Eq a_1040 => GHC.Classes.Eq (Null a_1040) deriving instance GHC.Classes.Ord a_1041 => GHC.Classes.Ord (Null a_1041) deriving instance GHC.Show.Show a_1042 => GHC.Show.Show (Null a_1042) instance AST.Unmarshal.Unmarshal Null instance Data.Foldable.Foldable Null where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Null where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Null where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousObject = AST.Token.Token "object" 48 type AnonymousOr = AST.Token.Token "or" 124 type AnonymousParent = AST.Token.Token "parent" 112 data PhpTag a = PhpTag {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1043. AST.Traversable1.Class.Traversable1 a_1043 ) instance AST.Unmarshal.SymbolMatching PhpTag where matchedSymbols _ = [2] showFailure _ node_1044 = "expected " GHC.Base.<> ( "php_tag" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1044 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1045 c1_1046 = TreeSitter.Node.nodeStartPoint node_1044 TreeSitter.Node.TSPoint r2_1047 c2_1048 = TreeSitter.Node.nodeEndPoint node_1044 deriving instance GHC.Classes.Eq a_1049 => GHC.Classes.Eq (PhpTag a_1049) deriving instance GHC.Classes.Ord a_1050 => GHC.Classes.Ord (PhpTag a_1050) deriving instance GHC.Show.Show a_1051 => GHC.Show.Show (PhpTag a_1051) instance AST.Unmarshal.Unmarshal PhpTag instance Data.Foldable.Foldable PhpTag where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor PhpTag where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable PhpTag where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousPrint = AST.Token.Token "print" 92 type AnonymousPrivate = AST.Token.Token "private" 30 type AnonymousProtected = AST.Token.Token "protected" 29 type AnonymousPublic = AST.Token.Token "public" 28 type AnonymousReal = AST.Token.Token "real" 49 type AnonymousRequire = AST.Token.Token "require" 148 type AnonymousRequireOnce = AST.Token.Token "require_once" 149 type AnonymousReturn = AST.Token.Token "return" 66 type AnonymousSelf = AST.Token.Token "self" 111 data ShellCommandExpression a = ShellCommandExpression { ann :: a, text :: Data.Text.Internal.Text } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1052. AST.Traversable1.Class.Traversable1 a_1052 ) instance AST.Unmarshal.SymbolMatching ShellCommandExpression where matchedSymbols _ = [96] showFailure _ node_1053 = "expected " GHC.Base.<> ( "shell_command_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1053 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1054 c1_1055 = TreeSitter.Node.nodeStartPoint node_1053 TreeSitter.Node.TSPoint r2_1056 c2_1057 = TreeSitter.Node.nodeEndPoint node_1053 deriving instance GHC.Classes.Eq a_1058 => GHC.Classes.Eq (ShellCommandExpression a_1058) deriving instance GHC.Classes.Ord a_1059 => GHC.Classes.Ord (ShellCommandExpression a_1059) deriving instance GHC.Show.Show a_1060 => GHC.Show.Show (ShellCommandExpression a_1060) instance AST.Unmarshal.Unmarshal ShellCommandExpression instance Data.Foldable.Foldable ShellCommandExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ShellCommandExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ShellCommandExpression where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousStatic = AST.Token.Token "static" 7 type AnonymousStrictTypes = AST.Token.Token "strict_types" 57 type AnonymousString = AST.Token.Token "string" 42 data String a = String {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1061. AST.Traversable1.Class.Traversable1 a_1061 ) instance AST.Unmarshal.SymbolMatching String where matchedSymbols _ = [115] showFailure _ node_1062 = "expected " GHC.Base.<> ( "string" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1062 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1063 c1_1064 = TreeSitter.Node.nodeStartPoint node_1062 TreeSitter.Node.TSPoint r2_1065 c2_1066 = TreeSitter.Node.nodeEndPoint node_1062 deriving instance GHC.Classes.Eq a_1067 => GHC.Classes.Eq (String a_1067) deriving instance GHC.Classes.Ord a_1068 => GHC.Classes.Ord (String a_1068) deriving instance GHC.Show.Show a_1069 => GHC.Show.Show (String a_1069) instance AST.Unmarshal.Unmarshal String instance Data.Foldable.Foldable String where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor String where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable String where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousSwitch = AST.Token.Token "switch" 80 type AnonymousThrow = AST.Token.Token "throw" 67 type AnonymousTicks = AST.Token.Token "ticks" 55 type AnonymousTrait = AST.Token.Token "trait" 19 type AnonymousTry = AST.Token.Token "try" 59 type AnonymousUnset = AST.Token.Token "unset" 50 type AnonymousUse = AST.Token.Token "use" 12 data VarModifier a = VarModifier {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1070. AST.Traversable1.Class.Traversable1 a_1070 ) instance AST.Unmarshal.SymbolMatching VarModifier where matchedSymbols _ = [26] showFailure _ node_1071 = "expected " GHC.Base.<> ( "var_modifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1071 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1072 c1_1073 = TreeSitter.Node.nodeStartPoint node_1071 TreeSitter.Node.TSPoint r2_1074 c2_1075 = TreeSitter.Node.nodeEndPoint node_1071 deriving instance GHC.Classes.Eq a_1076 => GHC.Classes.Eq (VarModifier a_1076) deriving instance GHC.Classes.Ord a_1077 => GHC.Classes.Ord (VarModifier a_1077) deriving instance GHC.Show.Show a_1078 => GHC.Show.Show (VarModifier a_1078) instance AST.Unmarshal.Unmarshal VarModifier instance Data.Foldable.Foldable VarModifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor VarModifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable VarModifier where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousVoid = AST.Token.Token "void" 43 type AnonymousWhile = AST.Token.Token "while" 68 type AnonymousXor = AST.Token.Token "xor" 125 type AnonymousYield = AST.Token.Token "yield" 119 type AnonymousLBrace = AST.Token.Token "{" 17 type AnonymousPipe = AST.Token.Token "|" 128 type AnonymousPipeEqual = AST.Token.Token "|=" 108 type AnonymousPipePipe = AST.Token.Token "||" 126 type AnonymousRBrace = AST.Token.Token "}" 18 type AnonymousTilde = AST.Token.Token "~" 87 ================================================ FILE: semantic-php/src/Language/PHP/Grammar.hs ================================================ {-# LANGUAGE TemplateHaskell #-} module Language.PHP.Grammar ( tree_sitter_php , Grammar(..) ) where import AST.Grammar.TH import Language.Haskell.TH import TreeSitter.PHP (tree_sitter_php) -- | Statically-known rules corresponding to symbols in the grammar. mkStaticallyKnownRuleGrammarData (mkName "Grammar") tree_sitter_php ================================================ FILE: semantic-php/src/Language/PHP/Tags.hs ================================================ {-# LANGUAGE DefaultSignatures #-} {-# LANGUAGE DisambiguateRecordFields #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedLists #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} module Language.PHP.Tags ( tags, ) where import AST.Element import qualified AST.Parse as Parse import AST.Token import AST.Traversable1 import Control.Effect.Reader import Control.Effect.Writer import Control.Effect.State import qualified Language.PHP.AST as PHP import Proto.Semantic as P import Source.Loc import Source.Source as Source import qualified Tags.Tagging.Precise as Tags class ToTags t where tags :: ( Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m ) => t Loc -> m () default tags :: ( Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m, Traversable1 ToTags t ) => t Loc -> m () tags = gtags instance ToTags (Token sym n) where tags _ = pure () instance (ToTags l, ToTags r) => ToTags (l :+: r) where tags (L1 l) = tags l tags (R1 r) = tags r gtags :: ( Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m, Traversable1 ToTags t ) => t Loc -> m () gtags = traverse1_ @ToTags (const (pure ())) tags instance ToTags PHP.FunctionDefinition where tags t@PHP.FunctionDefinition { PHP.ann = Loc {byteRange}, PHP.name = Parse.Success (PHP.Name {text, ann}) } = Tags.yield text P.METHOD P.DEFINITION ann byteRange >> gtags t tags _ = pure () instance ToTags PHP.MethodDeclaration where tags t@PHP.MethodDeclaration { PHP.ann = Loc {byteRange}, PHP.name = Parse.Success (PHP.Name {text, ann}) } = Tags.yield text P.FUNCTION P.DEFINITION ann byteRange >> gtags t tags _ = pure () instance ToTags PHP.FunctionCallExpression where tags t@PHP.FunctionCallExpression { PHP.ann = Loc {byteRange}, PHP.function = func } = match func where yield name loc = Tags.yield name P.CALL P.REFERENCE loc byteRange >> gtags t match expr = case expr of EPrj PHP.VariableName {extraChildren = Parse.Success (PHP.Name {text, ann})} -> yield text ann *> gtags t EPrj PHP.QualifiedName {extraChildren = [EPrj PHP.Name {text, ann}]} -> yield text ann *> gtags t _ -> gtags t instance ToTags PHP.MemberCallExpression where tags t@PHP.MemberCallExpression { PHP.ann = Loc {byteRange}, PHP.name = Parse.Success (Prj PHP.Name {text, ann}) } = Tags.yield text P.CALL P.REFERENCE ann byteRange >> gtags t tags t = gtags t instance ToTags PHP.AnonymousFunctionCreationExpression instance ToTags PHP.AnonymousFunctionUseClause instance ToTags PHP.Arguments instance ToTags PHP.ArrayCreationExpression instance ToTags PHP.ArrayElementInitializer instance ToTags PHP.AssignmentExpression instance ToTags PHP.AugmentedAssignmentExpression instance ToTags PHP.BinaryExpression instance ToTags PHP.Boolean instance ToTags PHP.BreakStatement instance ToTags PHP.CaseStatement instance ToTags PHP.CastExpression instance ToTags PHP.CastType instance ToTags PHP.CatchClause instance ToTags PHP.ClassBaseClause instance ToTags PHP.ClassConstantAccessExpression instance ToTags PHP.ClassDeclaration instance ToTags PHP.ClassInterfaceClause instance ToTags PHP.ClassModifier instance ToTags PHP.CloneExpression instance ToTags PHP.ColonBlock instance ToTags PHP.CompoundStatement instance ToTags PHP.ConditionalExpression instance ToTags PHP.ConstDeclaration instance ToTags PHP.ConstElement instance ToTags PHP.ContinueStatement instance ToTags PHP.DeclarationList instance ToTags PHP.DeclareDirective instance ToTags PHP.DeclareStatement instance ToTags PHP.DefaultStatement instance ToTags PHP.DoStatement instance ToTags PHP.DynamicVariableName instance ToTags PHP.EchoStatement instance ToTags PHP.ElseClause instance ToTags PHP.ElseIfClause instance ToTags PHP.EmptyStatement instance ToTags PHP.ExponentiationExpression instance ToTags PHP.Expression instance ToTags PHP.ExpressionStatement instance ToTags PHP.FinallyClause instance ToTags PHP.Float instance ToTags PHP.ForStatement instance ToTags PHP.ForeachStatement instance ToTags PHP.FormalParameters instance ToTags PHP.FunctionStaticDeclaration instance ToTags PHP.GlobalDeclaration instance ToTags PHP.GotoStatement instance ToTags PHP.Heredoc instance ToTags PHP.IfStatement instance ToTags PHP.IncludeExpression instance ToTags PHP.IncludeOnceExpression instance ToTags PHP.InterfaceBaseClause instance ToTags PHP.InterfaceDeclaration instance ToTags PHP.ListLiteral instance ToTags PHP.Literal instance ToTags PHP.MemberAccessExpression instance ToTags PHP.Name instance ToTags PHP.NamedLabelStatement instance ToTags PHP.NamespaceAliasingClause instance ToTags PHP.NamespaceDefinition instance ToTags PHP.NamespaceFunctionOrConst instance ToTags PHP.NamespaceName instance ToTags PHP.NamespaceNameAsPrefix instance ToTags PHP.NamespaceUseClause instance ToTags PHP.NamespaceUseDeclaration instance ToTags PHP.NamespaceUseGroup instance ToTags PHP.NamespaceUseGroupClause instance ToTags PHP.Null instance ToTags PHP.ObjectCreationExpression instance ToTags PHP.OptionalType instance ToTags PHP.Pair instance ToTags PHP.ParenthesizedExpression instance ToTags PHP.PhpTag instance ToTags PHP.PrimaryExpression instance ToTags PHP.PrimitiveType instance ToTags PHP.PrintIntrinsic instance ToTags PHP.Program instance ToTags PHP.PropertyDeclaration instance ToTags PHP.PropertyElement instance ToTags PHP.PropertyInitializer instance ToTags PHP.QualifiedName instance ToTags PHP.RelativeScope instance ToTags PHP.RequireExpression instance ToTags PHP.RequireOnceExpression instance ToTags PHP.ReturnStatement instance ToTags PHP.ScopedCallExpression instance ToTags PHP.ScopedPropertyAccessExpression instance ToTags PHP.SequenceExpression instance ToTags PHP.ShellCommandExpression instance ToTags PHP.SimpleParameter instance ToTags PHP.Statement instance ToTags PHP.StaticModifier instance ToTags PHP.StaticVariableDeclaration instance ToTags PHP.String instance ToTags PHP.SubscriptExpression instance ToTags PHP.SwitchBlock instance ToTags PHP.SwitchStatement instance ToTags PHP.Text instance ToTags PHP.ThrowStatement instance ToTags PHP.TraitDeclaration instance ToTags PHP.TryStatement instance ToTags PHP.Type instance ToTags PHP.TypeName instance ToTags PHP.UnaryOpExpression instance ToTags PHP.UnsetStatement instance ToTags PHP.UpdateExpression instance ToTags PHP.UseAsClause instance ToTags PHP.UseDeclaration instance ToTags PHP.UseInsteadOfClause instance ToTags PHP.UseList instance ToTags PHP.VarModifier instance ToTags PHP.VariableName instance ToTags PHP.VariadicParameter instance ToTags PHP.VariadicUnpacking instance ToTags PHP.VisibilityModifier instance ToTags PHP.WhileStatement instance ToTags PHP.YieldExpression instance ToTags PHP.Integer ================================================ FILE: semantic-php/src/Language/PHP.hs ================================================ {-# LANGUAGE GeneralizedNewtypeDeriving #-} -- | Semantic functionality for PHP programs. module Language.PHP ( Term(..) , TreeSitter.PHP.tree_sitter_php ) where import AST.Marshal.JSON import qualified AST.Unmarshal as TS import Data.Proxy import qualified Language.PHP.AST as PHP import qualified Language.PHP.Tags as PHPTags import qualified Tags.Tagging.Precise as Tags import qualified TreeSitter.PHP (tree_sitter_php) newtype Term a = Term { getTerm :: PHP.Program a } deriving MarshalJSON instance TS.SymbolMatching Term where matchedSymbols _ = TS.matchedSymbols (Proxy :: Proxy PHP.Program) showFailure _ = TS.showFailure (Proxy :: Proxy PHP.Program) instance TS.Unmarshal Term where matchers = fmap (fmap (TS.hoist Term)) TS.matchers instance Tags.ToTags Term where tags src = Tags.runTagging src . PHPTags.tags . getTerm ================================================ FILE: semantic-proto/BUILD.bazel ================================================ package(default_visibility = ["//visibility:public"]) load( "@rules_haskell//haskell:defs.bzl", "haskell_binary", "haskell_library", ) load( "@rules_haskell//haskell:cabal.bzl", "haskell_cabal_binary", "haskell_cabal_library", ) haskell_library( name = "semantic-proto", srcs = glob(["src/**/*.hs"]), compiler_flags = ["-XOverloadedStrings"], deps = [ "//:base", "//:text", "@stackage//:aeson", "@stackage//:proto-lens", "@stackage//:proto-lens-jsonpb", "@stackage//:proto-lens-runtime", ], ) ================================================ FILE: semantic-proto/LICENSE ================================================ MIT License Copyright (c) 2019 GitHub Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: semantic-proto/README.md ================================================ # semantic-proto Datatypes generated from the protobuf schema ## Development This project consists of a Haskell package named `semantic-proto`. The library’s sources are in [`src`][]. Development of `semantic-proto` is typically done using `cabal v2-build`: ```shell cabal v2-build # build the library cabal v2-repl # load the package into ghci cabal v2-test # build and run the doctests ``` [`src`]: https://github.com/github/semantic/tree/master/semantic-proto/src ================================================ FILE: semantic-proto/Setup.hs ================================================ import Distribution.Simple main = defaultMain ================================================ FILE: semantic-proto/semantic-proto.cabal ================================================ cabal-version: 2.4 name: semantic-proto version: 0.0.0.0 synopsis: Datatypes generated from protobuf schema description: Datatypes generated from protobuf schema homepage: https://github.com/github/semantic/tree/master/semantic-proto#readme bug-reports: https://github.com/github/semantic/issues license: MIT license-file: LICENSE author: The Semantic authors maintainer: opensource+semantic@github.com copyright: (c) 2019 GitHub, Inc. category: Language build-type: Simple stability: alpha extra-source-files: README.md tested-with: GHC == 8.6.5 library exposed-modules: Proto.Semantic , Proto.Semantic_Fields , Proto.Semantic_JSON build-depends: , base >= 4.13 && < 5 , aeson >= 1.4.2.0 && < 3 , text ^>= 1.2.3.1 , proto-lens >= 0.5 && < 0.8 , proto-lens-jsonpb , proto-lens-runtime >= 0.5 && <0.8 hs-source-dirs: src default-language: Haskell2010 default-extensions: OverloadedStrings ghc-options: -Weverything -Wno-missing-local-signatures -Wno-missing-import-lists -Wno-implicit-prelude -Wno-safe -Wno-unsafe -Wno-name-shadowing -Wno-monomorphism-restriction -Wno-missing-export-lists -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-star-is-type -Wno-missing-export-lists if (impl(ghc >= 8.8)) ghc-options: -Wno-missing-deriving-strategies if (impl(ghc >= 8.10)) ghc-options: -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module if (impl(ghc >= 9.2)) ghc-options: -Wno-missing-kind-signatures ================================================ FILE: semantic-proto/src/Proto/Semantic.hs ================================================ {- This file was auto-generated from semantic.proto by the proto-lens-protoc program. -} {-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies, UndecidableInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances, PatternSynonyms, MagicHash, NoImplicitPrelude, DataKinds, BangPatterns, TypeApplications, OverloadedStrings, DerivingStrategies#-} {-# OPTIONS_GHC -Wno-unused-imports#-} {-# OPTIONS_GHC -Wno-duplicate-exports#-} {-# OPTIONS_GHC -Wno-dodgy-exports#-} module Proto.Semantic ( Blob(), ByteRange(), Docstring(), File(), NodeType(..), NodeType(), NodeType'UnrecognizedValue, ParseError(), ParseTreeRequest(), ParseTreeSymbolResponse(), PingRequest(), PingResponse(), Position(), Span(), StackGraphFile(), StackGraphNode(), StackGraphPath(), StackGraphRequest(), StackGraphResponse(), Symbol(), SyntaxType(..), SyntaxType(), SyntaxType'UnrecognizedValue ) where import qualified Data.ProtoLens.Runtime.Control.DeepSeq as Control.DeepSeq import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Prism as Data.ProtoLens.Prism import qualified Data.ProtoLens.Runtime.Prelude as Prelude import qualified Data.ProtoLens.Runtime.Data.Int as Data.Int import qualified Data.ProtoLens.Runtime.Data.Monoid as Data.Monoid import qualified Data.ProtoLens.Runtime.Data.Word as Data.Word import qualified Data.ProtoLens.Runtime.Data.ProtoLens as Data.ProtoLens import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Bytes as Data.ProtoLens.Encoding.Bytes import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Growing as Data.ProtoLens.Encoding.Growing import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Parser.Unsafe as Data.ProtoLens.Encoding.Parser.Unsafe import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Wire as Data.ProtoLens.Encoding.Wire import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Field as Data.ProtoLens.Field import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Message.Enum as Data.ProtoLens.Message.Enum import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Service.Types as Data.ProtoLens.Service.Types import qualified Data.ProtoLens.Runtime.Lens.Family2 as Lens.Family2 import qualified Data.ProtoLens.Runtime.Lens.Family2.Unchecked as Lens.Family2.Unchecked import qualified Data.ProtoLens.Runtime.Data.Text as Data.Text import qualified Data.ProtoLens.Runtime.Data.Map as Data.Map import qualified Data.ProtoLens.Runtime.Data.ByteString as Data.ByteString import qualified Data.ProtoLens.Runtime.Data.ByteString.Char8 as Data.ByteString.Char8 import qualified Data.ProtoLens.Runtime.Data.Text.Encoding as Data.Text.Encoding import qualified Data.ProtoLens.Runtime.Data.Vector as Data.Vector import qualified Data.ProtoLens.Runtime.Data.Vector.Generic as Data.Vector.Generic import qualified Data.ProtoLens.Runtime.Data.Vector.Unboxed as Data.Vector.Unboxed import qualified Data.ProtoLens.Runtime.Text.Read as Text.Read {- | Fields : * 'Proto.Semantic_Fields.content' @:: Lens' Blob Data.Text.Text@ * 'Proto.Semantic_Fields.path' @:: Lens' Blob Data.Text.Text@ * 'Proto.Semantic_Fields.language' @:: Lens' Blob Data.Text.Text@ -} data Blob = Blob'_constructor {_Blob'content :: !Data.Text.Text, _Blob'path :: !Data.Text.Text, _Blob'language :: !Data.Text.Text, _Blob'_unknownFields :: !Data.ProtoLens.FieldSet} deriving stock (Prelude.Eq, Prelude.Ord) instance Prelude.Show Blob where showsPrec _ __x __s = Prelude.showChar '{' (Prelude.showString (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s)) instance Data.ProtoLens.Field.HasField Blob "content" Data.Text.Text where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _Blob'content (\ x__ y__ -> x__ {_Blob'content = y__})) Prelude.id instance Data.ProtoLens.Field.HasField Blob "path" Data.Text.Text where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _Blob'path (\ x__ y__ -> x__ {_Blob'path = y__})) Prelude.id instance Data.ProtoLens.Field.HasField Blob "language" Data.Text.Text where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _Blob'language (\ x__ y__ -> x__ {_Blob'language = y__})) Prelude.id instance Data.ProtoLens.Message Blob where messageName _ = Data.Text.pack "github.semantic.Blob" packedMessageDescriptor _ = "\n\ \\EOTBlob\DC2\CAN\n\ \\acontent\CAN\SOH \SOH(\tR\acontent\DC2\DC2\n\ \\EOTpath\CAN\STX \SOH(\tR\EOTpath\DC2\SUB\n\ \\blanguage\CAN\ETX \SOH(\tR\blanguage" packedFileDescriptor _ = packedFileDescriptor fieldsByTag = let content__field_descriptor = Data.ProtoLens.FieldDescriptor "content" (Data.ProtoLens.ScalarField Data.ProtoLens.StringField :: Data.ProtoLens.FieldTypeDescriptor Data.Text.Text) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"content")) :: Data.ProtoLens.FieldDescriptor Blob path__field_descriptor = Data.ProtoLens.FieldDescriptor "path" (Data.ProtoLens.ScalarField Data.ProtoLens.StringField :: Data.ProtoLens.FieldTypeDescriptor Data.Text.Text) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"path")) :: Data.ProtoLens.FieldDescriptor Blob language__field_descriptor = Data.ProtoLens.FieldDescriptor "language" (Data.ProtoLens.ScalarField Data.ProtoLens.StringField :: Data.ProtoLens.FieldTypeDescriptor Data.Text.Text) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"language")) :: Data.ProtoLens.FieldDescriptor Blob in Data.Map.fromList [(Data.ProtoLens.Tag 1, content__field_descriptor), (Data.ProtoLens.Tag 2, path__field_descriptor), (Data.ProtoLens.Tag 3, language__field_descriptor)] unknownFields = Lens.Family2.Unchecked.lens _Blob'_unknownFields (\ x__ y__ -> x__ {_Blob'_unknownFields = y__}) defMessage = Blob'_constructor {_Blob'content = Data.ProtoLens.fieldDefault, _Blob'path = Data.ProtoLens.fieldDefault, _Blob'language = Data.ProtoLens.fieldDefault, _Blob'_unknownFields = []} parseMessage = let loop :: Blob -> Data.ProtoLens.Encoding.Bytes.Parser Blob loop x = do end <- Data.ProtoLens.Encoding.Bytes.atEnd if end then do (let missing = [] in if Prelude.null missing then Prelude.return () else Prelude.fail ((Prelude.++) "Missing required fields: " (Prelude.show (missing :: [Prelude.String])))) Prelude.return (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x) else do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt case tag of 10 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.getBytes (Prelude.fromIntegral len) Data.ProtoLens.Encoding.Bytes.runEither (case Data.Text.Encoding.decodeUtf8' value of (Prelude.Left err) -> Prelude.Left (Prelude.show err) (Prelude.Right r) -> Prelude.Right r)) "content" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"content") y x) 18 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.getBytes (Prelude.fromIntegral len) Data.ProtoLens.Encoding.Bytes.runEither (case Data.Text.Encoding.decodeUtf8' value of (Prelude.Left err) -> Prelude.Left (Prelude.show err) (Prelude.Right r) -> Prelude.Right r)) "path" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"path") y x) 26 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.getBytes (Prelude.fromIntegral len) Data.ProtoLens.Encoding.Bytes.runEither (case Data.Text.Encoding.decodeUtf8' value of (Prelude.Left err) -> Prelude.Left (Prelude.show err) (Prelude.Right r) -> Prelude.Right r)) "language" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"language") y x) wire -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire wire loop (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) in (Data.ProtoLens.Encoding.Bytes.) (do loop Data.ProtoLens.defMessage) "Blob" buildMessage = \ _x -> (Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"content") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 10) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.Text.Encoding.encodeUtf8 _v)) ((Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"path") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 18) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.Text.Encoding.encodeUtf8 _v)) ((Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"language") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 26) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.Text.Encoding.encodeUtf8 _v)) (Data.ProtoLens.Encoding.Wire.buildFieldSet (Lens.Family2.view Data.ProtoLens.unknownFields _x)))) instance Control.DeepSeq.NFData Blob where rnf = \ x__ -> Control.DeepSeq.deepseq (_Blob'_unknownFields x__) (Control.DeepSeq.deepseq (_Blob'content x__) (Control.DeepSeq.deepseq (_Blob'path x__) (Control.DeepSeq.deepseq (_Blob'language x__) ()))) {- | Fields : * 'Proto.Semantic_Fields.start' @:: Lens' ByteRange Data.Int.Int32@ * 'Proto.Semantic_Fields.end' @:: Lens' ByteRange Data.Int.Int32@ -} data ByteRange = ByteRange'_constructor {_ByteRange'start :: !Data.Int.Int32, _ByteRange'end :: !Data.Int.Int32, _ByteRange'_unknownFields :: !Data.ProtoLens.FieldSet} deriving stock (Prelude.Eq, Prelude.Ord) instance Prelude.Show ByteRange where showsPrec _ __x __s = Prelude.showChar '{' (Prelude.showString (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s)) instance Data.ProtoLens.Field.HasField ByteRange "start" Data.Int.Int32 where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _ByteRange'start (\ x__ y__ -> x__ {_ByteRange'start = y__})) Prelude.id instance Data.ProtoLens.Field.HasField ByteRange "end" Data.Int.Int32 where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _ByteRange'end (\ x__ y__ -> x__ {_ByteRange'end = y__})) Prelude.id instance Data.ProtoLens.Message ByteRange where messageName _ = Data.Text.pack "github.semantic.ByteRange" packedMessageDescriptor _ = "\n\ \\tByteRange\DC2\DC4\n\ \\ENQstart\CAN\SOH \SOH(\ENQR\ENQstart\DC2\DLE\n\ \\ETXend\CAN\STX \SOH(\ENQR\ETXend" packedFileDescriptor _ = packedFileDescriptor fieldsByTag = let start__field_descriptor = Data.ProtoLens.FieldDescriptor "start" (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field :: Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"start")) :: Data.ProtoLens.FieldDescriptor ByteRange end__field_descriptor = Data.ProtoLens.FieldDescriptor "end" (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field :: Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"end")) :: Data.ProtoLens.FieldDescriptor ByteRange in Data.Map.fromList [(Data.ProtoLens.Tag 1, start__field_descriptor), (Data.ProtoLens.Tag 2, end__field_descriptor)] unknownFields = Lens.Family2.Unchecked.lens _ByteRange'_unknownFields (\ x__ y__ -> x__ {_ByteRange'_unknownFields = y__}) defMessage = ByteRange'_constructor {_ByteRange'start = Data.ProtoLens.fieldDefault, _ByteRange'end = Data.ProtoLens.fieldDefault, _ByteRange'_unknownFields = []} parseMessage = let loop :: ByteRange -> Data.ProtoLens.Encoding.Bytes.Parser ByteRange loop x = do end <- Data.ProtoLens.Encoding.Bytes.atEnd if end then do (let missing = [] in if Prelude.null missing then Prelude.return () else Prelude.fail ((Prelude.++) "Missing required fields: " (Prelude.show (missing :: [Prelude.String])))) Prelude.return (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x) else do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt case tag of 8 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (Prelude.fmap Prelude.fromIntegral Data.ProtoLens.Encoding.Bytes.getVarInt) "start" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"start") y x) 16 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (Prelude.fmap Prelude.fromIntegral Data.ProtoLens.Encoding.Bytes.getVarInt) "end" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"end") y x) wire -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire wire loop (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) in (Data.ProtoLens.Encoding.Bytes.) (do loop Data.ProtoLens.defMessage) "ByteRange" buildMessage = \ _x -> (Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"start") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 8) ((Prelude..) Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v)) ((Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"end") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 16) ((Prelude..) Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v)) (Data.ProtoLens.Encoding.Wire.buildFieldSet (Lens.Family2.view Data.ProtoLens.unknownFields _x))) instance Control.DeepSeq.NFData ByteRange where rnf = \ x__ -> Control.DeepSeq.deepseq (_ByteRange'_unknownFields x__) (Control.DeepSeq.deepseq (_ByteRange'start x__) (Control.DeepSeq.deepseq (_ByteRange'end x__) ())) {- | Fields : * 'Proto.Semantic_Fields.docstring' @:: Lens' Docstring Data.Text.Text@ -} data Docstring = Docstring'_constructor {_Docstring'docstring :: !Data.Text.Text, _Docstring'_unknownFields :: !Data.ProtoLens.FieldSet} deriving stock (Prelude.Eq, Prelude.Ord) instance Prelude.Show Docstring where showsPrec _ __x __s = Prelude.showChar '{' (Prelude.showString (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s)) instance Data.ProtoLens.Field.HasField Docstring "docstring" Data.Text.Text where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _Docstring'docstring (\ x__ y__ -> x__ {_Docstring'docstring = y__})) Prelude.id instance Data.ProtoLens.Message Docstring where messageName _ = Data.Text.pack "github.semantic.Docstring" packedMessageDescriptor _ = "\n\ \\tDocstring\DC2\FS\n\ \\tdocstring\CAN\SOH \SOH(\tR\tdocstring" packedFileDescriptor _ = packedFileDescriptor fieldsByTag = let docstring__field_descriptor = Data.ProtoLens.FieldDescriptor "docstring" (Data.ProtoLens.ScalarField Data.ProtoLens.StringField :: Data.ProtoLens.FieldTypeDescriptor Data.Text.Text) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"docstring")) :: Data.ProtoLens.FieldDescriptor Docstring in Data.Map.fromList [(Data.ProtoLens.Tag 1, docstring__field_descriptor)] unknownFields = Lens.Family2.Unchecked.lens _Docstring'_unknownFields (\ x__ y__ -> x__ {_Docstring'_unknownFields = y__}) defMessage = Docstring'_constructor {_Docstring'docstring = Data.ProtoLens.fieldDefault, _Docstring'_unknownFields = []} parseMessage = let loop :: Docstring -> Data.ProtoLens.Encoding.Bytes.Parser Docstring loop x = do end <- Data.ProtoLens.Encoding.Bytes.atEnd if end then do (let missing = [] in if Prelude.null missing then Prelude.return () else Prelude.fail ((Prelude.++) "Missing required fields: " (Prelude.show (missing :: [Prelude.String])))) Prelude.return (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x) else do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt case tag of 10 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.getBytes (Prelude.fromIntegral len) Data.ProtoLens.Encoding.Bytes.runEither (case Data.Text.Encoding.decodeUtf8' value of (Prelude.Left err) -> Prelude.Left (Prelude.show err) (Prelude.Right r) -> Prelude.Right r)) "docstring" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"docstring") y x) wire -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire wire loop (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) in (Data.ProtoLens.Encoding.Bytes.) (do loop Data.ProtoLens.defMessage) "Docstring" buildMessage = \ _x -> (Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"docstring") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 10) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.Text.Encoding.encodeUtf8 _v)) (Data.ProtoLens.Encoding.Wire.buildFieldSet (Lens.Family2.view Data.ProtoLens.unknownFields _x)) instance Control.DeepSeq.NFData Docstring where rnf = \ x__ -> Control.DeepSeq.deepseq (_Docstring'_unknownFields x__) (Control.DeepSeq.deepseq (_Docstring'docstring x__) ()) {- | Fields : * 'Proto.Semantic_Fields.path' @:: Lens' File Data.Text.Text@ * 'Proto.Semantic_Fields.language' @:: Lens' File Data.Text.Text@ * 'Proto.Semantic_Fields.symbols' @:: Lens' File [Symbol]@ * 'Proto.Semantic_Fields.vec'symbols' @:: Lens' File (Data.Vector.Vector Symbol)@ * 'Proto.Semantic_Fields.errors' @:: Lens' File [ParseError]@ * 'Proto.Semantic_Fields.vec'errors' @:: Lens' File (Data.Vector.Vector ParseError)@ * 'Proto.Semantic_Fields.blobOid' @:: Lens' File Data.Text.Text@ -} data File = File'_constructor {_File'path :: !Data.Text.Text, _File'language :: !Data.Text.Text, _File'symbols :: !(Data.Vector.Vector Symbol), _File'errors :: !(Data.Vector.Vector ParseError), _File'blobOid :: !Data.Text.Text, _File'_unknownFields :: !Data.ProtoLens.FieldSet} deriving stock (Prelude.Eq, Prelude.Ord) instance Prelude.Show File where showsPrec _ __x __s = Prelude.showChar '{' (Prelude.showString (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s)) instance Data.ProtoLens.Field.HasField File "path" Data.Text.Text where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _File'path (\ x__ y__ -> x__ {_File'path = y__})) Prelude.id instance Data.ProtoLens.Field.HasField File "language" Data.Text.Text where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _File'language (\ x__ y__ -> x__ {_File'language = y__})) Prelude.id instance Data.ProtoLens.Field.HasField File "symbols" [Symbol] where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _File'symbols (\ x__ y__ -> x__ {_File'symbols = y__})) (Lens.Family2.Unchecked.lens Data.Vector.Generic.toList (\ _ y__ -> Data.Vector.Generic.fromList y__)) instance Data.ProtoLens.Field.HasField File "vec'symbols" (Data.Vector.Vector Symbol) where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _File'symbols (\ x__ y__ -> x__ {_File'symbols = y__})) Prelude.id instance Data.ProtoLens.Field.HasField File "errors" [ParseError] where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _File'errors (\ x__ y__ -> x__ {_File'errors = y__})) (Lens.Family2.Unchecked.lens Data.Vector.Generic.toList (\ _ y__ -> Data.Vector.Generic.fromList y__)) instance Data.ProtoLens.Field.HasField File "vec'errors" (Data.Vector.Vector ParseError) where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _File'errors (\ x__ y__ -> x__ {_File'errors = y__})) Prelude.id instance Data.ProtoLens.Field.HasField File "blobOid" Data.Text.Text where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _File'blobOid (\ x__ y__ -> x__ {_File'blobOid = y__})) Prelude.id instance Data.ProtoLens.Message File where messageName _ = Data.Text.pack "github.semantic.File" packedMessageDescriptor _ = "\n\ \\EOTFile\DC2\DC2\n\ \\EOTpath\CAN\SOH \SOH(\tR\EOTpath\DC2\SUB\n\ \\blanguage\CAN\STX \SOH(\tR\blanguage\DC21\n\ \\asymbols\CAN\ETX \ETX(\v2\ETB.github.semantic.SymbolR\asymbols\DC23\n\ \\ACKerrors\CAN\EOT \ETX(\v2\ESC.github.semantic.ParseErrorR\ACKerrors\DC2\EM\n\ \\bblob_oid\CAN\ENQ \SOH(\tR\ablobOid" packedFileDescriptor _ = packedFileDescriptor fieldsByTag = let path__field_descriptor = Data.ProtoLens.FieldDescriptor "path" (Data.ProtoLens.ScalarField Data.ProtoLens.StringField :: Data.ProtoLens.FieldTypeDescriptor Data.Text.Text) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"path")) :: Data.ProtoLens.FieldDescriptor File language__field_descriptor = Data.ProtoLens.FieldDescriptor "language" (Data.ProtoLens.ScalarField Data.ProtoLens.StringField :: Data.ProtoLens.FieldTypeDescriptor Data.Text.Text) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"language")) :: Data.ProtoLens.FieldDescriptor File symbols__field_descriptor = Data.ProtoLens.FieldDescriptor "symbols" (Data.ProtoLens.MessageField Data.ProtoLens.MessageType :: Data.ProtoLens.FieldTypeDescriptor Symbol) (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"symbols")) :: Data.ProtoLens.FieldDescriptor File errors__field_descriptor = Data.ProtoLens.FieldDescriptor "errors" (Data.ProtoLens.MessageField Data.ProtoLens.MessageType :: Data.ProtoLens.FieldTypeDescriptor ParseError) (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"errors")) :: Data.ProtoLens.FieldDescriptor File blobOid__field_descriptor = Data.ProtoLens.FieldDescriptor "blob_oid" (Data.ProtoLens.ScalarField Data.ProtoLens.StringField :: Data.ProtoLens.FieldTypeDescriptor Data.Text.Text) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"blobOid")) :: Data.ProtoLens.FieldDescriptor File in Data.Map.fromList [(Data.ProtoLens.Tag 1, path__field_descriptor), (Data.ProtoLens.Tag 2, language__field_descriptor), (Data.ProtoLens.Tag 3, symbols__field_descriptor), (Data.ProtoLens.Tag 4, errors__field_descriptor), (Data.ProtoLens.Tag 5, blobOid__field_descriptor)] unknownFields = Lens.Family2.Unchecked.lens _File'_unknownFields (\ x__ y__ -> x__ {_File'_unknownFields = y__}) defMessage = File'_constructor {_File'path = Data.ProtoLens.fieldDefault, _File'language = Data.ProtoLens.fieldDefault, _File'symbols = Data.Vector.Generic.empty, _File'errors = Data.Vector.Generic.empty, _File'blobOid = Data.ProtoLens.fieldDefault, _File'_unknownFields = []} parseMessage = let loop :: File -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld ParseError -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Symbol -> Data.ProtoLens.Encoding.Bytes.Parser File loop x mutable'errors mutable'symbols = do end <- Data.ProtoLens.Encoding.Bytes.atEnd if end then do frozen'errors <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'errors) frozen'symbols <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'symbols) (let missing = [] in if Prelude.null missing then Prelude.return () else Prelude.fail ((Prelude.++) "Missing required fields: " (Prelude.show (missing :: [Prelude.String])))) Prelude.return (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) (Lens.Family2.set (Data.ProtoLens.Field.field @"vec'errors") frozen'errors (Lens.Family2.set (Data.ProtoLens.Field.field @"vec'symbols") frozen'symbols x))) else do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt case tag of 10 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.getBytes (Prelude.fromIntegral len) Data.ProtoLens.Encoding.Bytes.runEither (case Data.Text.Encoding.decodeUtf8' value of (Prelude.Left err) -> Prelude.Left (Prelude.show err) (Prelude.Right r) -> Prelude.Right r)) "path" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"path") y x) mutable'errors mutable'symbols 18 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.getBytes (Prelude.fromIntegral len) Data.ProtoLens.Encoding.Bytes.runEither (case Data.Text.Encoding.decodeUtf8' value of (Prelude.Left err) -> Prelude.Left (Prelude.show err) (Prelude.Right r) -> Prelude.Right r)) "language" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"language") y x) mutable'errors mutable'symbols 26 -> do !y <- (Data.ProtoLens.Encoding.Bytes.) (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.isolate (Prelude.fromIntegral len) Data.ProtoLens.parseMessage) "symbols" v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.append mutable'symbols y) loop x mutable'errors v 34 -> do !y <- (Data.ProtoLens.Encoding.Bytes.) (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.isolate (Prelude.fromIntegral len) Data.ProtoLens.parseMessage) "errors" v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.append mutable'errors y) loop x v mutable'symbols 42 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.getBytes (Prelude.fromIntegral len) Data.ProtoLens.Encoding.Bytes.runEither (case Data.Text.Encoding.decodeUtf8' value of (Prelude.Left err) -> Prelude.Left (Prelude.show err) (Prelude.Right r) -> Prelude.Right r)) "blob_oid" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"blobOid") y x) mutable'errors mutable'symbols wire -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire wire loop (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) mutable'errors mutable'symbols in (Data.ProtoLens.Encoding.Bytes.) (do mutable'errors <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO Data.ProtoLens.Encoding.Growing.new mutable'symbols <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO Data.ProtoLens.Encoding.Growing.new loop Data.ProtoLens.defMessage mutable'errors mutable'symbols) "File" buildMessage = \ _x -> (Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"path") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 10) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.Text.Encoding.encodeUtf8 _v)) ((Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"language") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 18) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.Text.Encoding.encodeUtf8 _v)) ((Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.foldMapBuilder (\ _v -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 26) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.ProtoLens.encodeMessage _v)) (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'symbols") _x)) ((Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.foldMapBuilder (\ _v -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 34) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.ProtoLens.encodeMessage _v)) (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'errors") _x)) ((Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"blobOid") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 42) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.Text.Encoding.encodeUtf8 _v)) (Data.ProtoLens.Encoding.Wire.buildFieldSet (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))) instance Control.DeepSeq.NFData File where rnf = \ x__ -> Control.DeepSeq.deepseq (_File'_unknownFields x__) (Control.DeepSeq.deepseq (_File'path x__) (Control.DeepSeq.deepseq (_File'language x__) (Control.DeepSeq.deepseq (_File'symbols x__) (Control.DeepSeq.deepseq (_File'errors x__) (Control.DeepSeq.deepseq (_File'blobOid x__) ()))))) newtype NodeType'UnrecognizedValue = NodeType'UnrecognizedValue Data.Int.Int32 deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show) data NodeType = ROOT_SCOPE | JUMP_TO_SCOPE | EXPORTED_SCOPE | DEFINITION | REFERENCE | NodeType'Unrecognized !NodeType'UnrecognizedValue deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord) instance Data.ProtoLens.MessageEnum NodeType where maybeToEnum 0 = Prelude.Just ROOT_SCOPE maybeToEnum 1 = Prelude.Just JUMP_TO_SCOPE maybeToEnum 2 = Prelude.Just EXPORTED_SCOPE maybeToEnum 3 = Prelude.Just DEFINITION maybeToEnum 4 = Prelude.Just REFERENCE maybeToEnum k = Prelude.Just (NodeType'Unrecognized (NodeType'UnrecognizedValue (Prelude.fromIntegral k))) showEnum ROOT_SCOPE = "ROOT_SCOPE" showEnum JUMP_TO_SCOPE = "JUMP_TO_SCOPE" showEnum EXPORTED_SCOPE = "EXPORTED_SCOPE" showEnum DEFINITION = "DEFINITION" showEnum REFERENCE = "REFERENCE" showEnum (NodeType'Unrecognized (NodeType'UnrecognizedValue k)) = Prelude.show k readEnum k | (Prelude.==) k "ROOT_SCOPE" = Prelude.Just ROOT_SCOPE | (Prelude.==) k "JUMP_TO_SCOPE" = Prelude.Just JUMP_TO_SCOPE | (Prelude.==) k "EXPORTED_SCOPE" = Prelude.Just EXPORTED_SCOPE | (Prelude.==) k "DEFINITION" = Prelude.Just DEFINITION | (Prelude.==) k "REFERENCE" = Prelude.Just REFERENCE | Prelude.otherwise = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum instance Prelude.Bounded NodeType where minBound = ROOT_SCOPE maxBound = REFERENCE instance Prelude.Enum NodeType where toEnum k__ = Prelude.maybe (Prelude.error ((Prelude.++) "toEnum: unknown value for enum NodeType: " (Prelude.show k__))) Prelude.id (Data.ProtoLens.maybeToEnum k__) fromEnum ROOT_SCOPE = 0 fromEnum JUMP_TO_SCOPE = 1 fromEnum EXPORTED_SCOPE = 2 fromEnum DEFINITION = 3 fromEnum REFERENCE = 4 fromEnum (NodeType'Unrecognized (NodeType'UnrecognizedValue k)) = Prelude.fromIntegral k succ REFERENCE = Prelude.error "NodeType.succ: bad argument REFERENCE. This value would be out of bounds." succ ROOT_SCOPE = JUMP_TO_SCOPE succ JUMP_TO_SCOPE = EXPORTED_SCOPE succ EXPORTED_SCOPE = DEFINITION succ DEFINITION = REFERENCE succ (NodeType'Unrecognized _) = Prelude.error "NodeType.succ: bad argument: unrecognized value" pred ROOT_SCOPE = Prelude.error "NodeType.pred: bad argument ROOT_SCOPE. This value would be out of bounds." pred JUMP_TO_SCOPE = ROOT_SCOPE pred EXPORTED_SCOPE = JUMP_TO_SCOPE pred DEFINITION = EXPORTED_SCOPE pred REFERENCE = DEFINITION pred (NodeType'Unrecognized _) = Prelude.error "NodeType.pred: bad argument: unrecognized value" enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo instance Data.ProtoLens.FieldDefault NodeType where fieldDefault = ROOT_SCOPE instance Control.DeepSeq.NFData NodeType where rnf x__ = Prelude.seq x__ () {- | Fields : * 'Proto.Semantic_Fields.error' @:: Lens' ParseError Data.Text.Text@ -} data ParseError = ParseError'_constructor {_ParseError'error :: !Data.Text.Text, _ParseError'_unknownFields :: !Data.ProtoLens.FieldSet} deriving stock (Prelude.Eq, Prelude.Ord) instance Prelude.Show ParseError where showsPrec _ __x __s = Prelude.showChar '{' (Prelude.showString (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s)) instance Data.ProtoLens.Field.HasField ParseError "error" Data.Text.Text where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _ParseError'error (\ x__ y__ -> x__ {_ParseError'error = y__})) Prelude.id instance Data.ProtoLens.Message ParseError where messageName _ = Data.Text.pack "github.semantic.ParseError" packedMessageDescriptor _ = "\n\ \\n\ \ParseError\DC2\DC4\n\ \\ENQerror\CAN\SOH \SOH(\tR\ENQerror" packedFileDescriptor _ = packedFileDescriptor fieldsByTag = let error__field_descriptor = Data.ProtoLens.FieldDescriptor "error" (Data.ProtoLens.ScalarField Data.ProtoLens.StringField :: Data.ProtoLens.FieldTypeDescriptor Data.Text.Text) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"error")) :: Data.ProtoLens.FieldDescriptor ParseError in Data.Map.fromList [(Data.ProtoLens.Tag 1, error__field_descriptor)] unknownFields = Lens.Family2.Unchecked.lens _ParseError'_unknownFields (\ x__ y__ -> x__ {_ParseError'_unknownFields = y__}) defMessage = ParseError'_constructor {_ParseError'error = Data.ProtoLens.fieldDefault, _ParseError'_unknownFields = []} parseMessage = let loop :: ParseError -> Data.ProtoLens.Encoding.Bytes.Parser ParseError loop x = do end <- Data.ProtoLens.Encoding.Bytes.atEnd if end then do (let missing = [] in if Prelude.null missing then Prelude.return () else Prelude.fail ((Prelude.++) "Missing required fields: " (Prelude.show (missing :: [Prelude.String])))) Prelude.return (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x) else do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt case tag of 10 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.getBytes (Prelude.fromIntegral len) Data.ProtoLens.Encoding.Bytes.runEither (case Data.Text.Encoding.decodeUtf8' value of (Prelude.Left err) -> Prelude.Left (Prelude.show err) (Prelude.Right r) -> Prelude.Right r)) "error" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"error") y x) wire -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire wire loop (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) in (Data.ProtoLens.Encoding.Bytes.) (do loop Data.ProtoLens.defMessage) "ParseError" buildMessage = \ _x -> (Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"error") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 10) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.Text.Encoding.encodeUtf8 _v)) (Data.ProtoLens.Encoding.Wire.buildFieldSet (Lens.Family2.view Data.ProtoLens.unknownFields _x)) instance Control.DeepSeq.NFData ParseError where rnf = \ x__ -> Control.DeepSeq.deepseq (_ParseError'_unknownFields x__) (Control.DeepSeq.deepseq (_ParseError'error x__) ()) {- | Fields : * 'Proto.Semantic_Fields.blobs' @:: Lens' ParseTreeRequest [Blob]@ * 'Proto.Semantic_Fields.vec'blobs' @:: Lens' ParseTreeRequest (Data.Vector.Vector Blob)@ -} data ParseTreeRequest = ParseTreeRequest'_constructor {_ParseTreeRequest'blobs :: !(Data.Vector.Vector Blob), _ParseTreeRequest'_unknownFields :: !Data.ProtoLens.FieldSet} deriving stock (Prelude.Eq, Prelude.Ord) instance Prelude.Show ParseTreeRequest where showsPrec _ __x __s = Prelude.showChar '{' (Prelude.showString (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s)) instance Data.ProtoLens.Field.HasField ParseTreeRequest "blobs" [Blob] where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _ParseTreeRequest'blobs (\ x__ y__ -> x__ {_ParseTreeRequest'blobs = y__})) (Lens.Family2.Unchecked.lens Data.Vector.Generic.toList (\ _ y__ -> Data.Vector.Generic.fromList y__)) instance Data.ProtoLens.Field.HasField ParseTreeRequest "vec'blobs" (Data.Vector.Vector Blob) where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _ParseTreeRequest'blobs (\ x__ y__ -> x__ {_ParseTreeRequest'blobs = y__})) Prelude.id instance Data.ProtoLens.Message ParseTreeRequest where messageName _ = Data.Text.pack "github.semantic.ParseTreeRequest" packedMessageDescriptor _ = "\n\ \\DLEParseTreeRequest\DC2+\n\ \\ENQblobs\CAN\SOH \ETX(\v2\NAK.github.semantic.BlobR\ENQblobs" packedFileDescriptor _ = packedFileDescriptor fieldsByTag = let blobs__field_descriptor = Data.ProtoLens.FieldDescriptor "blobs" (Data.ProtoLens.MessageField Data.ProtoLens.MessageType :: Data.ProtoLens.FieldTypeDescriptor Blob) (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"blobs")) :: Data.ProtoLens.FieldDescriptor ParseTreeRequest in Data.Map.fromList [(Data.ProtoLens.Tag 1, blobs__field_descriptor)] unknownFields = Lens.Family2.Unchecked.lens _ParseTreeRequest'_unknownFields (\ x__ y__ -> x__ {_ParseTreeRequest'_unknownFields = y__}) defMessage = ParseTreeRequest'_constructor {_ParseTreeRequest'blobs = Data.Vector.Generic.empty, _ParseTreeRequest'_unknownFields = []} parseMessage = let loop :: ParseTreeRequest -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Blob -> Data.ProtoLens.Encoding.Bytes.Parser ParseTreeRequest loop x mutable'blobs = do end <- Data.ProtoLens.Encoding.Bytes.atEnd if end then do frozen'blobs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'blobs) (let missing = [] in if Prelude.null missing then Prelude.return () else Prelude.fail ((Prelude.++) "Missing required fields: " (Prelude.show (missing :: [Prelude.String])))) Prelude.return (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) (Lens.Family2.set (Data.ProtoLens.Field.field @"vec'blobs") frozen'blobs x)) else do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt case tag of 10 -> do !y <- (Data.ProtoLens.Encoding.Bytes.) (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.isolate (Prelude.fromIntegral len) Data.ProtoLens.parseMessage) "blobs" v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.append mutable'blobs y) loop x v wire -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire wire loop (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) mutable'blobs in (Data.ProtoLens.Encoding.Bytes.) (do mutable'blobs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO Data.ProtoLens.Encoding.Growing.new loop Data.ProtoLens.defMessage mutable'blobs) "ParseTreeRequest" buildMessage = \ _x -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.foldMapBuilder (\ _v -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 10) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.ProtoLens.encodeMessage _v)) (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'blobs") _x)) (Data.ProtoLens.Encoding.Wire.buildFieldSet (Lens.Family2.view Data.ProtoLens.unknownFields _x)) instance Control.DeepSeq.NFData ParseTreeRequest where rnf = \ x__ -> Control.DeepSeq.deepseq (_ParseTreeRequest'_unknownFields x__) (Control.DeepSeq.deepseq (_ParseTreeRequest'blobs x__) ()) {- | Fields : * 'Proto.Semantic_Fields.files' @:: Lens' ParseTreeSymbolResponse [File]@ * 'Proto.Semantic_Fields.vec'files' @:: Lens' ParseTreeSymbolResponse (Data.Vector.Vector File)@ -} data ParseTreeSymbolResponse = ParseTreeSymbolResponse'_constructor {_ParseTreeSymbolResponse'files :: !(Data.Vector.Vector File), _ParseTreeSymbolResponse'_unknownFields :: !Data.ProtoLens.FieldSet} deriving stock (Prelude.Eq, Prelude.Ord) instance Prelude.Show ParseTreeSymbolResponse where showsPrec _ __x __s = Prelude.showChar '{' (Prelude.showString (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s)) instance Data.ProtoLens.Field.HasField ParseTreeSymbolResponse "files" [File] where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _ParseTreeSymbolResponse'files (\ x__ y__ -> x__ {_ParseTreeSymbolResponse'files = y__})) (Lens.Family2.Unchecked.lens Data.Vector.Generic.toList (\ _ y__ -> Data.Vector.Generic.fromList y__)) instance Data.ProtoLens.Field.HasField ParseTreeSymbolResponse "vec'files" (Data.Vector.Vector File) where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _ParseTreeSymbolResponse'files (\ x__ y__ -> x__ {_ParseTreeSymbolResponse'files = y__})) Prelude.id instance Data.ProtoLens.Message ParseTreeSymbolResponse where messageName _ = Data.Text.pack "github.semantic.ParseTreeSymbolResponse" packedMessageDescriptor _ = "\n\ \\ETBParseTreeSymbolResponse\DC2+\n\ \\ENQfiles\CAN\SOH \ETX(\v2\NAK.github.semantic.FileR\ENQfiles" packedFileDescriptor _ = packedFileDescriptor fieldsByTag = let files__field_descriptor = Data.ProtoLens.FieldDescriptor "files" (Data.ProtoLens.MessageField Data.ProtoLens.MessageType :: Data.ProtoLens.FieldTypeDescriptor File) (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"files")) :: Data.ProtoLens.FieldDescriptor ParseTreeSymbolResponse in Data.Map.fromList [(Data.ProtoLens.Tag 1, files__field_descriptor)] unknownFields = Lens.Family2.Unchecked.lens _ParseTreeSymbolResponse'_unknownFields (\ x__ y__ -> x__ {_ParseTreeSymbolResponse'_unknownFields = y__}) defMessage = ParseTreeSymbolResponse'_constructor {_ParseTreeSymbolResponse'files = Data.Vector.Generic.empty, _ParseTreeSymbolResponse'_unknownFields = []} parseMessage = let loop :: ParseTreeSymbolResponse -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld File -> Data.ProtoLens.Encoding.Bytes.Parser ParseTreeSymbolResponse loop x mutable'files = do end <- Data.ProtoLens.Encoding.Bytes.atEnd if end then do frozen'files <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'files) (let missing = [] in if Prelude.null missing then Prelude.return () else Prelude.fail ((Prelude.++) "Missing required fields: " (Prelude.show (missing :: [Prelude.String])))) Prelude.return (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) (Lens.Family2.set (Data.ProtoLens.Field.field @"vec'files") frozen'files x)) else do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt case tag of 10 -> do !y <- (Data.ProtoLens.Encoding.Bytes.) (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.isolate (Prelude.fromIntegral len) Data.ProtoLens.parseMessage) "files" v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.append mutable'files y) loop x v wire -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire wire loop (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) mutable'files in (Data.ProtoLens.Encoding.Bytes.) (do mutable'files <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO Data.ProtoLens.Encoding.Growing.new loop Data.ProtoLens.defMessage mutable'files) "ParseTreeSymbolResponse" buildMessage = \ _x -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.foldMapBuilder (\ _v -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 10) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.ProtoLens.encodeMessage _v)) (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'files") _x)) (Data.ProtoLens.Encoding.Wire.buildFieldSet (Lens.Family2.view Data.ProtoLens.unknownFields _x)) instance Control.DeepSeq.NFData ParseTreeSymbolResponse where rnf = \ x__ -> Control.DeepSeq.deepseq (_ParseTreeSymbolResponse'_unknownFields x__) (Control.DeepSeq.deepseq (_ParseTreeSymbolResponse'files x__) ()) {- | Fields : * 'Proto.Semantic_Fields.service' @:: Lens' PingRequest Data.Text.Text@ -} data PingRequest = PingRequest'_constructor {_PingRequest'service :: !Data.Text.Text, _PingRequest'_unknownFields :: !Data.ProtoLens.FieldSet} deriving stock (Prelude.Eq, Prelude.Ord) instance Prelude.Show PingRequest where showsPrec _ __x __s = Prelude.showChar '{' (Prelude.showString (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s)) instance Data.ProtoLens.Field.HasField PingRequest "service" Data.Text.Text where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _PingRequest'service (\ x__ y__ -> x__ {_PingRequest'service = y__})) Prelude.id instance Data.ProtoLens.Message PingRequest where messageName _ = Data.Text.pack "github.semantic.PingRequest" packedMessageDescriptor _ = "\n\ \\vPingRequest\DC2\CAN\n\ \\aservice\CAN\SOH \SOH(\tR\aservice" packedFileDescriptor _ = packedFileDescriptor fieldsByTag = let service__field_descriptor = Data.ProtoLens.FieldDescriptor "service" (Data.ProtoLens.ScalarField Data.ProtoLens.StringField :: Data.ProtoLens.FieldTypeDescriptor Data.Text.Text) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"service")) :: Data.ProtoLens.FieldDescriptor PingRequest in Data.Map.fromList [(Data.ProtoLens.Tag 1, service__field_descriptor)] unknownFields = Lens.Family2.Unchecked.lens _PingRequest'_unknownFields (\ x__ y__ -> x__ {_PingRequest'_unknownFields = y__}) defMessage = PingRequest'_constructor {_PingRequest'service = Data.ProtoLens.fieldDefault, _PingRequest'_unknownFields = []} parseMessage = let loop :: PingRequest -> Data.ProtoLens.Encoding.Bytes.Parser PingRequest loop x = do end <- Data.ProtoLens.Encoding.Bytes.atEnd if end then do (let missing = [] in if Prelude.null missing then Prelude.return () else Prelude.fail ((Prelude.++) "Missing required fields: " (Prelude.show (missing :: [Prelude.String])))) Prelude.return (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x) else do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt case tag of 10 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.getBytes (Prelude.fromIntegral len) Data.ProtoLens.Encoding.Bytes.runEither (case Data.Text.Encoding.decodeUtf8' value of (Prelude.Left err) -> Prelude.Left (Prelude.show err) (Prelude.Right r) -> Prelude.Right r)) "service" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"service") y x) wire -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire wire loop (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) in (Data.ProtoLens.Encoding.Bytes.) (do loop Data.ProtoLens.defMessage) "PingRequest" buildMessage = \ _x -> (Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"service") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 10) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.Text.Encoding.encodeUtf8 _v)) (Data.ProtoLens.Encoding.Wire.buildFieldSet (Lens.Family2.view Data.ProtoLens.unknownFields _x)) instance Control.DeepSeq.NFData PingRequest where rnf = \ x__ -> Control.DeepSeq.deepseq (_PingRequest'_unknownFields x__) (Control.DeepSeq.deepseq (_PingRequest'service x__) ()) {- | Fields : * 'Proto.Semantic_Fields.status' @:: Lens' PingResponse Data.Text.Text@ * 'Proto.Semantic_Fields.hostname' @:: Lens' PingResponse Data.Text.Text@ * 'Proto.Semantic_Fields.timestamp' @:: Lens' PingResponse Data.Text.Text@ * 'Proto.Semantic_Fields.sha' @:: Lens' PingResponse Data.Text.Text@ -} data PingResponse = PingResponse'_constructor {_PingResponse'status :: !Data.Text.Text, _PingResponse'hostname :: !Data.Text.Text, _PingResponse'timestamp :: !Data.Text.Text, _PingResponse'sha :: !Data.Text.Text, _PingResponse'_unknownFields :: !Data.ProtoLens.FieldSet} deriving stock (Prelude.Eq, Prelude.Ord) instance Prelude.Show PingResponse where showsPrec _ __x __s = Prelude.showChar '{' (Prelude.showString (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s)) instance Data.ProtoLens.Field.HasField PingResponse "status" Data.Text.Text where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _PingResponse'status (\ x__ y__ -> x__ {_PingResponse'status = y__})) Prelude.id instance Data.ProtoLens.Field.HasField PingResponse "hostname" Data.Text.Text where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _PingResponse'hostname (\ x__ y__ -> x__ {_PingResponse'hostname = y__})) Prelude.id instance Data.ProtoLens.Field.HasField PingResponse "timestamp" Data.Text.Text where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _PingResponse'timestamp (\ x__ y__ -> x__ {_PingResponse'timestamp = y__})) Prelude.id instance Data.ProtoLens.Field.HasField PingResponse "sha" Data.Text.Text where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _PingResponse'sha (\ x__ y__ -> x__ {_PingResponse'sha = y__})) Prelude.id instance Data.ProtoLens.Message PingResponse where messageName _ = Data.Text.pack "github.semantic.PingResponse" packedMessageDescriptor _ = "\n\ \\fPingResponse\DC2\SYN\n\ \\ACKstatus\CAN\SOH \SOH(\tR\ACKstatus\DC2\SUB\n\ \\bhostname\CAN\STX \SOH(\tR\bhostname\DC2\FS\n\ \\ttimestamp\CAN\ETX \SOH(\tR\ttimestamp\DC2\DLE\n\ \\ETXsha\CAN\EOT \SOH(\tR\ETXsha" packedFileDescriptor _ = packedFileDescriptor fieldsByTag = let status__field_descriptor = Data.ProtoLens.FieldDescriptor "status" (Data.ProtoLens.ScalarField Data.ProtoLens.StringField :: Data.ProtoLens.FieldTypeDescriptor Data.Text.Text) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"status")) :: Data.ProtoLens.FieldDescriptor PingResponse hostname__field_descriptor = Data.ProtoLens.FieldDescriptor "hostname" (Data.ProtoLens.ScalarField Data.ProtoLens.StringField :: Data.ProtoLens.FieldTypeDescriptor Data.Text.Text) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"hostname")) :: Data.ProtoLens.FieldDescriptor PingResponse timestamp__field_descriptor = Data.ProtoLens.FieldDescriptor "timestamp" (Data.ProtoLens.ScalarField Data.ProtoLens.StringField :: Data.ProtoLens.FieldTypeDescriptor Data.Text.Text) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"timestamp")) :: Data.ProtoLens.FieldDescriptor PingResponse sha__field_descriptor = Data.ProtoLens.FieldDescriptor "sha" (Data.ProtoLens.ScalarField Data.ProtoLens.StringField :: Data.ProtoLens.FieldTypeDescriptor Data.Text.Text) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"sha")) :: Data.ProtoLens.FieldDescriptor PingResponse in Data.Map.fromList [(Data.ProtoLens.Tag 1, status__field_descriptor), (Data.ProtoLens.Tag 2, hostname__field_descriptor), (Data.ProtoLens.Tag 3, timestamp__field_descriptor), (Data.ProtoLens.Tag 4, sha__field_descriptor)] unknownFields = Lens.Family2.Unchecked.lens _PingResponse'_unknownFields (\ x__ y__ -> x__ {_PingResponse'_unknownFields = y__}) defMessage = PingResponse'_constructor {_PingResponse'status = Data.ProtoLens.fieldDefault, _PingResponse'hostname = Data.ProtoLens.fieldDefault, _PingResponse'timestamp = Data.ProtoLens.fieldDefault, _PingResponse'sha = Data.ProtoLens.fieldDefault, _PingResponse'_unknownFields = []} parseMessage = let loop :: PingResponse -> Data.ProtoLens.Encoding.Bytes.Parser PingResponse loop x = do end <- Data.ProtoLens.Encoding.Bytes.atEnd if end then do (let missing = [] in if Prelude.null missing then Prelude.return () else Prelude.fail ((Prelude.++) "Missing required fields: " (Prelude.show (missing :: [Prelude.String])))) Prelude.return (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x) else do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt case tag of 10 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.getBytes (Prelude.fromIntegral len) Data.ProtoLens.Encoding.Bytes.runEither (case Data.Text.Encoding.decodeUtf8' value of (Prelude.Left err) -> Prelude.Left (Prelude.show err) (Prelude.Right r) -> Prelude.Right r)) "status" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"status") y x) 18 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.getBytes (Prelude.fromIntegral len) Data.ProtoLens.Encoding.Bytes.runEither (case Data.Text.Encoding.decodeUtf8' value of (Prelude.Left err) -> Prelude.Left (Prelude.show err) (Prelude.Right r) -> Prelude.Right r)) "hostname" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"hostname") y x) 26 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.getBytes (Prelude.fromIntegral len) Data.ProtoLens.Encoding.Bytes.runEither (case Data.Text.Encoding.decodeUtf8' value of (Prelude.Left err) -> Prelude.Left (Prelude.show err) (Prelude.Right r) -> Prelude.Right r)) "timestamp" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"timestamp") y x) 34 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.getBytes (Prelude.fromIntegral len) Data.ProtoLens.Encoding.Bytes.runEither (case Data.Text.Encoding.decodeUtf8' value of (Prelude.Left err) -> Prelude.Left (Prelude.show err) (Prelude.Right r) -> Prelude.Right r)) "sha" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"sha") y x) wire -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire wire loop (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) in (Data.ProtoLens.Encoding.Bytes.) (do loop Data.ProtoLens.defMessage) "PingResponse" buildMessage = \ _x -> (Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"status") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 10) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.Text.Encoding.encodeUtf8 _v)) ((Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"hostname") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 18) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.Text.Encoding.encodeUtf8 _v)) ((Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"timestamp") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 26) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.Text.Encoding.encodeUtf8 _v)) ((Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"sha") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 34) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.Text.Encoding.encodeUtf8 _v)) (Data.ProtoLens.Encoding.Wire.buildFieldSet (Lens.Family2.view Data.ProtoLens.unknownFields _x))))) instance Control.DeepSeq.NFData PingResponse where rnf = \ x__ -> Control.DeepSeq.deepseq (_PingResponse'_unknownFields x__) (Control.DeepSeq.deepseq (_PingResponse'status x__) (Control.DeepSeq.deepseq (_PingResponse'hostname x__) (Control.DeepSeq.deepseq (_PingResponse'timestamp x__) (Control.DeepSeq.deepseq (_PingResponse'sha x__) ())))) {- | Fields : * 'Proto.Semantic_Fields.line' @:: Lens' Position Data.Int.Int32@ * 'Proto.Semantic_Fields.column' @:: Lens' Position Data.Int.Int32@ -} data Position = Position'_constructor {_Position'line :: !Data.Int.Int32, _Position'column :: !Data.Int.Int32, _Position'_unknownFields :: !Data.ProtoLens.FieldSet} deriving stock (Prelude.Eq, Prelude.Ord) instance Prelude.Show Position where showsPrec _ __x __s = Prelude.showChar '{' (Prelude.showString (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s)) instance Data.ProtoLens.Field.HasField Position "line" Data.Int.Int32 where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _Position'line (\ x__ y__ -> x__ {_Position'line = y__})) Prelude.id instance Data.ProtoLens.Field.HasField Position "column" Data.Int.Int32 where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _Position'column (\ x__ y__ -> x__ {_Position'column = y__})) Prelude.id instance Data.ProtoLens.Message Position where messageName _ = Data.Text.pack "github.semantic.Position" packedMessageDescriptor _ = "\n\ \\bPosition\DC2\DC2\n\ \\EOTline\CAN\SOH \SOH(\ENQR\EOTline\DC2\SYN\n\ \\ACKcolumn\CAN\STX \SOH(\ENQR\ACKcolumn" packedFileDescriptor _ = packedFileDescriptor fieldsByTag = let line__field_descriptor = Data.ProtoLens.FieldDescriptor "line" (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field :: Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"line")) :: Data.ProtoLens.FieldDescriptor Position column__field_descriptor = Data.ProtoLens.FieldDescriptor "column" (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field :: Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"column")) :: Data.ProtoLens.FieldDescriptor Position in Data.Map.fromList [(Data.ProtoLens.Tag 1, line__field_descriptor), (Data.ProtoLens.Tag 2, column__field_descriptor)] unknownFields = Lens.Family2.Unchecked.lens _Position'_unknownFields (\ x__ y__ -> x__ {_Position'_unknownFields = y__}) defMessage = Position'_constructor {_Position'line = Data.ProtoLens.fieldDefault, _Position'column = Data.ProtoLens.fieldDefault, _Position'_unknownFields = []} parseMessage = let loop :: Position -> Data.ProtoLens.Encoding.Bytes.Parser Position loop x = do end <- Data.ProtoLens.Encoding.Bytes.atEnd if end then do (let missing = [] in if Prelude.null missing then Prelude.return () else Prelude.fail ((Prelude.++) "Missing required fields: " (Prelude.show (missing :: [Prelude.String])))) Prelude.return (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x) else do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt case tag of 8 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (Prelude.fmap Prelude.fromIntegral Data.ProtoLens.Encoding.Bytes.getVarInt) "line" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"line") y x) 16 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (Prelude.fmap Prelude.fromIntegral Data.ProtoLens.Encoding.Bytes.getVarInt) "column" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"column") y x) wire -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire wire loop (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) in (Data.ProtoLens.Encoding.Bytes.) (do loop Data.ProtoLens.defMessage) "Position" buildMessage = \ _x -> (Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"line") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 8) ((Prelude..) Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v)) ((Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"column") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 16) ((Prelude..) Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v)) (Data.ProtoLens.Encoding.Wire.buildFieldSet (Lens.Family2.view Data.ProtoLens.unknownFields _x))) instance Control.DeepSeq.NFData Position where rnf = \ x__ -> Control.DeepSeq.deepseq (_Position'_unknownFields x__) (Control.DeepSeq.deepseq (_Position'line x__) (Control.DeepSeq.deepseq (_Position'column x__) ())) {- | Fields : * 'Proto.Semantic_Fields.start' @:: Lens' Span Position@ * 'Proto.Semantic_Fields.maybe'start' @:: Lens' Span (Prelude.Maybe Position)@ * 'Proto.Semantic_Fields.end' @:: Lens' Span Position@ * 'Proto.Semantic_Fields.maybe'end' @:: Lens' Span (Prelude.Maybe Position)@ -} data Span = Span'_constructor {_Span'start :: !(Prelude.Maybe Position), _Span'end :: !(Prelude.Maybe Position), _Span'_unknownFields :: !Data.ProtoLens.FieldSet} deriving stock (Prelude.Eq, Prelude.Ord) instance Prelude.Show Span where showsPrec _ __x __s = Prelude.showChar '{' (Prelude.showString (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s)) instance Data.ProtoLens.Field.HasField Span "start" Position where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _Span'start (\ x__ y__ -> x__ {_Span'start = y__})) (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage) instance Data.ProtoLens.Field.HasField Span "maybe'start" (Prelude.Maybe Position) where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _Span'start (\ x__ y__ -> x__ {_Span'start = y__})) Prelude.id instance Data.ProtoLens.Field.HasField Span "end" Position where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _Span'end (\ x__ y__ -> x__ {_Span'end = y__})) (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage) instance Data.ProtoLens.Field.HasField Span "maybe'end" (Prelude.Maybe Position) where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _Span'end (\ x__ y__ -> x__ {_Span'end = y__})) Prelude.id instance Data.ProtoLens.Message Span where messageName _ = Data.Text.pack "github.semantic.Span" packedMessageDescriptor _ = "\n\ \\EOTSpan\DC2/\n\ \\ENQstart\CAN\SOH \SOH(\v2\EM.github.semantic.PositionR\ENQstart\DC2+\n\ \\ETXend\CAN\STX \SOH(\v2\EM.github.semantic.PositionR\ETXend" packedFileDescriptor _ = packedFileDescriptor fieldsByTag = let start__field_descriptor = Data.ProtoLens.FieldDescriptor "start" (Data.ProtoLens.MessageField Data.ProtoLens.MessageType :: Data.ProtoLens.FieldTypeDescriptor Position) (Data.ProtoLens.OptionalField (Data.ProtoLens.Field.field @"maybe'start")) :: Data.ProtoLens.FieldDescriptor Span end__field_descriptor = Data.ProtoLens.FieldDescriptor "end" (Data.ProtoLens.MessageField Data.ProtoLens.MessageType :: Data.ProtoLens.FieldTypeDescriptor Position) (Data.ProtoLens.OptionalField (Data.ProtoLens.Field.field @"maybe'end")) :: Data.ProtoLens.FieldDescriptor Span in Data.Map.fromList [(Data.ProtoLens.Tag 1, start__field_descriptor), (Data.ProtoLens.Tag 2, end__field_descriptor)] unknownFields = Lens.Family2.Unchecked.lens _Span'_unknownFields (\ x__ y__ -> x__ {_Span'_unknownFields = y__}) defMessage = Span'_constructor {_Span'start = Prelude.Nothing, _Span'end = Prelude.Nothing, _Span'_unknownFields = []} parseMessage = let loop :: Span -> Data.ProtoLens.Encoding.Bytes.Parser Span loop x = do end <- Data.ProtoLens.Encoding.Bytes.atEnd if end then do (let missing = [] in if Prelude.null missing then Prelude.return () else Prelude.fail ((Prelude.++) "Missing required fields: " (Prelude.show (missing :: [Prelude.String])))) Prelude.return (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x) else do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt case tag of 10 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.isolate (Prelude.fromIntegral len) Data.ProtoLens.parseMessage) "start" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"start") y x) 18 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.isolate (Prelude.fromIntegral len) Data.ProtoLens.parseMessage) "end" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"end") y x) wire -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire wire loop (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) in (Data.ProtoLens.Encoding.Bytes.) (do loop Data.ProtoLens.defMessage) "Span" buildMessage = \ _x -> (Data.Monoid.<>) (case Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'start") _x of Prelude.Nothing -> Data.Monoid.mempty (Prelude.Just _v) -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 10) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.ProtoLens.encodeMessage _v)) ((Data.Monoid.<>) (case Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'end") _x of Prelude.Nothing -> Data.Monoid.mempty (Prelude.Just _v) -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 18) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.ProtoLens.encodeMessage _v)) (Data.ProtoLens.Encoding.Wire.buildFieldSet (Lens.Family2.view Data.ProtoLens.unknownFields _x))) instance Control.DeepSeq.NFData Span where rnf = \ x__ -> Control.DeepSeq.deepseq (_Span'_unknownFields x__) (Control.DeepSeq.deepseq (_Span'start x__) (Control.DeepSeq.deepseq (_Span'end x__) ())) {- | Fields : * 'Proto.Semantic_Fields.path' @:: Lens' StackGraphFile Data.Text.Text@ * 'Proto.Semantic_Fields.language' @:: Lens' StackGraphFile Data.Text.Text@ * 'Proto.Semantic_Fields.nodes' @:: Lens' StackGraphFile [StackGraphNode]@ * 'Proto.Semantic_Fields.vec'nodes' @:: Lens' StackGraphFile (Data.Vector.Vector StackGraphNode)@ * 'Proto.Semantic_Fields.paths' @:: Lens' StackGraphFile [StackGraphPath]@ * 'Proto.Semantic_Fields.vec'paths' @:: Lens' StackGraphFile (Data.Vector.Vector StackGraphPath)@ * 'Proto.Semantic_Fields.errors' @:: Lens' StackGraphFile [ParseError]@ * 'Proto.Semantic_Fields.vec'errors' @:: Lens' StackGraphFile (Data.Vector.Vector ParseError)@ -} data StackGraphFile = StackGraphFile'_constructor {_StackGraphFile'path :: !Data.Text.Text, _StackGraphFile'language :: !Data.Text.Text, _StackGraphFile'nodes :: !(Data.Vector.Vector StackGraphNode), _StackGraphFile'paths :: !(Data.Vector.Vector StackGraphPath), _StackGraphFile'errors :: !(Data.Vector.Vector ParseError), _StackGraphFile'_unknownFields :: !Data.ProtoLens.FieldSet} deriving stock (Prelude.Eq, Prelude.Ord) instance Prelude.Show StackGraphFile where showsPrec _ __x __s = Prelude.showChar '{' (Prelude.showString (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s)) instance Data.ProtoLens.Field.HasField StackGraphFile "path" Data.Text.Text where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphFile'path (\ x__ y__ -> x__ {_StackGraphFile'path = y__})) Prelude.id instance Data.ProtoLens.Field.HasField StackGraphFile "language" Data.Text.Text where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphFile'language (\ x__ y__ -> x__ {_StackGraphFile'language = y__})) Prelude.id instance Data.ProtoLens.Field.HasField StackGraphFile "nodes" [StackGraphNode] where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphFile'nodes (\ x__ y__ -> x__ {_StackGraphFile'nodes = y__})) (Lens.Family2.Unchecked.lens Data.Vector.Generic.toList (\ _ y__ -> Data.Vector.Generic.fromList y__)) instance Data.ProtoLens.Field.HasField StackGraphFile "vec'nodes" (Data.Vector.Vector StackGraphNode) where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphFile'nodes (\ x__ y__ -> x__ {_StackGraphFile'nodes = y__})) Prelude.id instance Data.ProtoLens.Field.HasField StackGraphFile "paths" [StackGraphPath] where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphFile'paths (\ x__ y__ -> x__ {_StackGraphFile'paths = y__})) (Lens.Family2.Unchecked.lens Data.Vector.Generic.toList (\ _ y__ -> Data.Vector.Generic.fromList y__)) instance Data.ProtoLens.Field.HasField StackGraphFile "vec'paths" (Data.Vector.Vector StackGraphPath) where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphFile'paths (\ x__ y__ -> x__ {_StackGraphFile'paths = y__})) Prelude.id instance Data.ProtoLens.Field.HasField StackGraphFile "errors" [ParseError] where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphFile'errors (\ x__ y__ -> x__ {_StackGraphFile'errors = y__})) (Lens.Family2.Unchecked.lens Data.Vector.Generic.toList (\ _ y__ -> Data.Vector.Generic.fromList y__)) instance Data.ProtoLens.Field.HasField StackGraphFile "vec'errors" (Data.Vector.Vector ParseError) where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphFile'errors (\ x__ y__ -> x__ {_StackGraphFile'errors = y__})) Prelude.id instance Data.ProtoLens.Message StackGraphFile where messageName _ = Data.Text.pack "github.semantic.StackGraphFile" packedMessageDescriptor _ = "\n\ \\SOStackGraphFile\DC2\DC2\n\ \\EOTpath\CAN\SOH \SOH(\tR\EOTpath\DC2\SUB\n\ \\blanguage\CAN\STX \SOH(\tR\blanguage\DC25\n\ \\ENQnodes\CAN\ETX \ETX(\v2\US.github.semantic.StackGraphNodeR\ENQnodes\DC25\n\ \\ENQpaths\CAN\EOT \ETX(\v2\US.github.semantic.StackGraphPathR\ENQpaths\DC23\n\ \\ACKerrors\CAN\ENQ \ETX(\v2\ESC.github.semantic.ParseErrorR\ACKerrors" packedFileDescriptor _ = packedFileDescriptor fieldsByTag = let path__field_descriptor = Data.ProtoLens.FieldDescriptor "path" (Data.ProtoLens.ScalarField Data.ProtoLens.StringField :: Data.ProtoLens.FieldTypeDescriptor Data.Text.Text) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"path")) :: Data.ProtoLens.FieldDescriptor StackGraphFile language__field_descriptor = Data.ProtoLens.FieldDescriptor "language" (Data.ProtoLens.ScalarField Data.ProtoLens.StringField :: Data.ProtoLens.FieldTypeDescriptor Data.Text.Text) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"language")) :: Data.ProtoLens.FieldDescriptor StackGraphFile nodes__field_descriptor = Data.ProtoLens.FieldDescriptor "nodes" (Data.ProtoLens.MessageField Data.ProtoLens.MessageType :: Data.ProtoLens.FieldTypeDescriptor StackGraphNode) (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"nodes")) :: Data.ProtoLens.FieldDescriptor StackGraphFile paths__field_descriptor = Data.ProtoLens.FieldDescriptor "paths" (Data.ProtoLens.MessageField Data.ProtoLens.MessageType :: Data.ProtoLens.FieldTypeDescriptor StackGraphPath) (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"paths")) :: Data.ProtoLens.FieldDescriptor StackGraphFile errors__field_descriptor = Data.ProtoLens.FieldDescriptor "errors" (Data.ProtoLens.MessageField Data.ProtoLens.MessageType :: Data.ProtoLens.FieldTypeDescriptor ParseError) (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"errors")) :: Data.ProtoLens.FieldDescriptor StackGraphFile in Data.Map.fromList [(Data.ProtoLens.Tag 1, path__field_descriptor), (Data.ProtoLens.Tag 2, language__field_descriptor), (Data.ProtoLens.Tag 3, nodes__field_descriptor), (Data.ProtoLens.Tag 4, paths__field_descriptor), (Data.ProtoLens.Tag 5, errors__field_descriptor)] unknownFields = Lens.Family2.Unchecked.lens _StackGraphFile'_unknownFields (\ x__ y__ -> x__ {_StackGraphFile'_unknownFields = y__}) defMessage = StackGraphFile'_constructor {_StackGraphFile'path = Data.ProtoLens.fieldDefault, _StackGraphFile'language = Data.ProtoLens.fieldDefault, _StackGraphFile'nodes = Data.Vector.Generic.empty, _StackGraphFile'paths = Data.Vector.Generic.empty, _StackGraphFile'errors = Data.Vector.Generic.empty, _StackGraphFile'_unknownFields = []} parseMessage = let loop :: StackGraphFile -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld ParseError -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld StackGraphNode -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld StackGraphPath -> Data.ProtoLens.Encoding.Bytes.Parser StackGraphFile loop x mutable'errors mutable'nodes mutable'paths = do end <- Data.ProtoLens.Encoding.Bytes.atEnd if end then do frozen'errors <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'errors) frozen'nodes <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'nodes) frozen'paths <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'paths) (let missing = [] in if Prelude.null missing then Prelude.return () else Prelude.fail ((Prelude.++) "Missing required fields: " (Prelude.show (missing :: [Prelude.String])))) Prelude.return (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) (Lens.Family2.set (Data.ProtoLens.Field.field @"vec'errors") frozen'errors (Lens.Family2.set (Data.ProtoLens.Field.field @"vec'nodes") frozen'nodes (Lens.Family2.set (Data.ProtoLens.Field.field @"vec'paths") frozen'paths x)))) else do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt case tag of 10 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.getBytes (Prelude.fromIntegral len) Data.ProtoLens.Encoding.Bytes.runEither (case Data.Text.Encoding.decodeUtf8' value of (Prelude.Left err) -> Prelude.Left (Prelude.show err) (Prelude.Right r) -> Prelude.Right r)) "path" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"path") y x) mutable'errors mutable'nodes mutable'paths 18 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.getBytes (Prelude.fromIntegral len) Data.ProtoLens.Encoding.Bytes.runEither (case Data.Text.Encoding.decodeUtf8' value of (Prelude.Left err) -> Prelude.Left (Prelude.show err) (Prelude.Right r) -> Prelude.Right r)) "language" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"language") y x) mutable'errors mutable'nodes mutable'paths 26 -> do !y <- (Data.ProtoLens.Encoding.Bytes.) (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.isolate (Prelude.fromIntegral len) Data.ProtoLens.parseMessage) "nodes" v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.append mutable'nodes y) loop x mutable'errors v mutable'paths 34 -> do !y <- (Data.ProtoLens.Encoding.Bytes.) (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.isolate (Prelude.fromIntegral len) Data.ProtoLens.parseMessage) "paths" v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.append mutable'paths y) loop x mutable'errors mutable'nodes v 42 -> do !y <- (Data.ProtoLens.Encoding.Bytes.) (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.isolate (Prelude.fromIntegral len) Data.ProtoLens.parseMessage) "errors" v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.append mutable'errors y) loop x v mutable'nodes mutable'paths wire -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire wire loop (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) mutable'errors mutable'nodes mutable'paths in (Data.ProtoLens.Encoding.Bytes.) (do mutable'errors <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO Data.ProtoLens.Encoding.Growing.new mutable'nodes <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO Data.ProtoLens.Encoding.Growing.new mutable'paths <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO Data.ProtoLens.Encoding.Growing.new loop Data.ProtoLens.defMessage mutable'errors mutable'nodes mutable'paths) "StackGraphFile" buildMessage = \ _x -> (Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"path") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 10) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.Text.Encoding.encodeUtf8 _v)) ((Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"language") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 18) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.Text.Encoding.encodeUtf8 _v)) ((Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.foldMapBuilder (\ _v -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 26) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.ProtoLens.encodeMessage _v)) (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'nodes") _x)) ((Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.foldMapBuilder (\ _v -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 34) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.ProtoLens.encodeMessage _v)) (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'paths") _x)) ((Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.foldMapBuilder (\ _v -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 42) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.ProtoLens.encodeMessage _v)) (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'errors") _x)) (Data.ProtoLens.Encoding.Wire.buildFieldSet (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))) instance Control.DeepSeq.NFData StackGraphFile where rnf = \ x__ -> Control.DeepSeq.deepseq (_StackGraphFile'_unknownFields x__) (Control.DeepSeq.deepseq (_StackGraphFile'path x__) (Control.DeepSeq.deepseq (_StackGraphFile'language x__) (Control.DeepSeq.deepseq (_StackGraphFile'nodes x__) (Control.DeepSeq.deepseq (_StackGraphFile'paths x__) (Control.DeepSeq.deepseq (_StackGraphFile'errors x__) ()))))) {- | Fields : * 'Proto.Semantic_Fields.id' @:: Lens' StackGraphNode Data.Int.Int64@ * 'Proto.Semantic_Fields.name' @:: Lens' StackGraphNode Data.Text.Text@ * 'Proto.Semantic_Fields.line' @:: Lens' StackGraphNode Data.Text.Text@ * 'Proto.Semantic_Fields.span' @:: Lens' StackGraphNode Span@ * 'Proto.Semantic_Fields.maybe'span' @:: Lens' StackGraphNode (Prelude.Maybe Span)@ * 'Proto.Semantic_Fields.syntaxType' @:: Lens' StackGraphNode SyntaxType@ * 'Proto.Semantic_Fields.nodeType' @:: Lens' StackGraphNode NodeType@ -} data StackGraphNode = StackGraphNode'_constructor {_StackGraphNode'id :: !Data.Int.Int64, _StackGraphNode'name :: !Data.Text.Text, _StackGraphNode'line :: !Data.Text.Text, _StackGraphNode'span :: !(Prelude.Maybe Span), _StackGraphNode'syntaxType :: !SyntaxType, _StackGraphNode'nodeType :: !NodeType, _StackGraphNode'_unknownFields :: !Data.ProtoLens.FieldSet} deriving stock (Prelude.Eq, Prelude.Ord) instance Prelude.Show StackGraphNode where showsPrec _ __x __s = Prelude.showChar '{' (Prelude.showString (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s)) instance Data.ProtoLens.Field.HasField StackGraphNode "id" Data.Int.Int64 where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphNode'id (\ x__ y__ -> x__ {_StackGraphNode'id = y__})) Prelude.id instance Data.ProtoLens.Field.HasField StackGraphNode "name" Data.Text.Text where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphNode'name (\ x__ y__ -> x__ {_StackGraphNode'name = y__})) Prelude.id instance Data.ProtoLens.Field.HasField StackGraphNode "line" Data.Text.Text where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphNode'line (\ x__ y__ -> x__ {_StackGraphNode'line = y__})) Prelude.id instance Data.ProtoLens.Field.HasField StackGraphNode "span" Span where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphNode'span (\ x__ y__ -> x__ {_StackGraphNode'span = y__})) (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage) instance Data.ProtoLens.Field.HasField StackGraphNode "maybe'span" (Prelude.Maybe Span) where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphNode'span (\ x__ y__ -> x__ {_StackGraphNode'span = y__})) Prelude.id instance Data.ProtoLens.Field.HasField StackGraphNode "syntaxType" SyntaxType where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphNode'syntaxType (\ x__ y__ -> x__ {_StackGraphNode'syntaxType = y__})) Prelude.id instance Data.ProtoLens.Field.HasField StackGraphNode "nodeType" NodeType where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphNode'nodeType (\ x__ y__ -> x__ {_StackGraphNode'nodeType = y__})) Prelude.id instance Data.ProtoLens.Message StackGraphNode where messageName _ = Data.Text.pack "github.semantic.StackGraphNode" packedMessageDescriptor _ = "\n\ \\SOStackGraphNode\DC2\SO\n\ \\STXid\CAN\SOH \SOH(\ETXR\STXid\DC2\DC2\n\ \\EOTname\CAN\STX \SOH(\tR\EOTname\DC2\DC2\n\ \\EOTline\CAN\ETX \SOH(\tR\EOTline\DC2)\n\ \\EOTspan\CAN\EOT \SOH(\v2\NAK.github.semantic.SpanR\EOTspan\DC2<\n\ \\vsyntax_type\CAN\ENQ \SOH(\SO2\ESC.github.semantic.SyntaxTypeR\n\ \syntaxType\DC26\n\ \\tnode_type\CAN\ACK \SOH(\SO2\EM.github.semantic.NodeTypeR\bnodeType" packedFileDescriptor _ = packedFileDescriptor fieldsByTag = let id__field_descriptor = Data.ProtoLens.FieldDescriptor "id" (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field :: Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"id")) :: Data.ProtoLens.FieldDescriptor StackGraphNode name__field_descriptor = Data.ProtoLens.FieldDescriptor "name" (Data.ProtoLens.ScalarField Data.ProtoLens.StringField :: Data.ProtoLens.FieldTypeDescriptor Data.Text.Text) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"name")) :: Data.ProtoLens.FieldDescriptor StackGraphNode line__field_descriptor = Data.ProtoLens.FieldDescriptor "line" (Data.ProtoLens.ScalarField Data.ProtoLens.StringField :: Data.ProtoLens.FieldTypeDescriptor Data.Text.Text) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"line")) :: Data.ProtoLens.FieldDescriptor StackGraphNode span__field_descriptor = Data.ProtoLens.FieldDescriptor "span" (Data.ProtoLens.MessageField Data.ProtoLens.MessageType :: Data.ProtoLens.FieldTypeDescriptor Span) (Data.ProtoLens.OptionalField (Data.ProtoLens.Field.field @"maybe'span")) :: Data.ProtoLens.FieldDescriptor StackGraphNode syntaxType__field_descriptor = Data.ProtoLens.FieldDescriptor "syntax_type" (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField :: Data.ProtoLens.FieldTypeDescriptor SyntaxType) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"syntaxType")) :: Data.ProtoLens.FieldDescriptor StackGraphNode nodeType__field_descriptor = Data.ProtoLens.FieldDescriptor "node_type" (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField :: Data.ProtoLens.FieldTypeDescriptor NodeType) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"nodeType")) :: Data.ProtoLens.FieldDescriptor StackGraphNode in Data.Map.fromList [(Data.ProtoLens.Tag 1, id__field_descriptor), (Data.ProtoLens.Tag 2, name__field_descriptor), (Data.ProtoLens.Tag 3, line__field_descriptor), (Data.ProtoLens.Tag 4, span__field_descriptor), (Data.ProtoLens.Tag 5, syntaxType__field_descriptor), (Data.ProtoLens.Tag 6, nodeType__field_descriptor)] unknownFields = Lens.Family2.Unchecked.lens _StackGraphNode'_unknownFields (\ x__ y__ -> x__ {_StackGraphNode'_unknownFields = y__}) defMessage = StackGraphNode'_constructor {_StackGraphNode'id = Data.ProtoLens.fieldDefault, _StackGraphNode'name = Data.ProtoLens.fieldDefault, _StackGraphNode'line = Data.ProtoLens.fieldDefault, _StackGraphNode'span = Prelude.Nothing, _StackGraphNode'syntaxType = Data.ProtoLens.fieldDefault, _StackGraphNode'nodeType = Data.ProtoLens.fieldDefault, _StackGraphNode'_unknownFields = []} parseMessage = let loop :: StackGraphNode -> Data.ProtoLens.Encoding.Bytes.Parser StackGraphNode loop x = do end <- Data.ProtoLens.Encoding.Bytes.atEnd if end then do (let missing = [] in if Prelude.null missing then Prelude.return () else Prelude.fail ((Prelude.++) "Missing required fields: " (Prelude.show (missing :: [Prelude.String])))) Prelude.return (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x) else do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt case tag of 8 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (Prelude.fmap Prelude.fromIntegral Data.ProtoLens.Encoding.Bytes.getVarInt) "id" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"id") y x) 18 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.getBytes (Prelude.fromIntegral len) Data.ProtoLens.Encoding.Bytes.runEither (case Data.Text.Encoding.decodeUtf8' value of (Prelude.Left err) -> Prelude.Left (Prelude.show err) (Prelude.Right r) -> Prelude.Right r)) "name" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"name") y x) 26 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.getBytes (Prelude.fromIntegral len) Data.ProtoLens.Encoding.Bytes.runEither (case Data.Text.Encoding.decodeUtf8' value of (Prelude.Left err) -> Prelude.Left (Prelude.show err) (Prelude.Right r) -> Prelude.Right r)) "line" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"line") y x) 34 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.isolate (Prelude.fromIntegral len) Data.ProtoLens.parseMessage) "span" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"span") y x) 40 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (Prelude.fmap Prelude.toEnum (Prelude.fmap Prelude.fromIntegral Data.ProtoLens.Encoding.Bytes.getVarInt)) "syntax_type" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"syntaxType") y x) 48 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (Prelude.fmap Prelude.toEnum (Prelude.fmap Prelude.fromIntegral Data.ProtoLens.Encoding.Bytes.getVarInt)) "node_type" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"nodeType") y x) wire -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire wire loop (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) in (Data.ProtoLens.Encoding.Bytes.) (do loop Data.ProtoLens.defMessage) "StackGraphNode" buildMessage = \ _x -> (Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"id") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 8) ((Prelude..) Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v)) ((Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"name") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 18) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.Text.Encoding.encodeUtf8 _v)) ((Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"line") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 26) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.Text.Encoding.encodeUtf8 _v)) ((Data.Monoid.<>) (case Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'span") _x of Prelude.Nothing -> Data.Monoid.mempty (Prelude.Just _v) -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 34) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.ProtoLens.encodeMessage _v)) ((Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"syntaxType") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 40) ((Prelude..) ((Prelude..) Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral) Prelude.fromEnum _v)) ((Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"nodeType") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 48) ((Prelude..) ((Prelude..) Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral) Prelude.fromEnum _v)) (Data.ProtoLens.Encoding.Wire.buildFieldSet (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))) instance Control.DeepSeq.NFData StackGraphNode where rnf = \ x__ -> Control.DeepSeq.deepseq (_StackGraphNode'_unknownFields x__) (Control.DeepSeq.deepseq (_StackGraphNode'id x__) (Control.DeepSeq.deepseq (_StackGraphNode'name x__) (Control.DeepSeq.deepseq (_StackGraphNode'line x__) (Control.DeepSeq.deepseq (_StackGraphNode'span x__) (Control.DeepSeq.deepseq (_StackGraphNode'syntaxType x__) (Control.DeepSeq.deepseq (_StackGraphNode'nodeType x__) ())))))) {- | Fields : * 'Proto.Semantic_Fields.startingSymbolStack' @:: Lens' StackGraphPath [Data.Text.Text]@ * 'Proto.Semantic_Fields.vec'startingSymbolStack' @:: Lens' StackGraphPath (Data.Vector.Vector Data.Text.Text)@ * 'Proto.Semantic_Fields.startingScopeStackSize' @:: Lens' StackGraphPath Data.Int.Int64@ * 'Proto.Semantic_Fields.from' @:: Lens' StackGraphPath Data.Int.Int64@ * 'Proto.Semantic_Fields.edges' @:: Lens' StackGraphPath Data.Text.Text@ * 'Proto.Semantic_Fields.to' @:: Lens' StackGraphPath Data.Int.Int64@ * 'Proto.Semantic_Fields.endingScopeStack' @:: Lens' StackGraphPath [Data.Int.Int64]@ * 'Proto.Semantic_Fields.vec'endingScopeStack' @:: Lens' StackGraphPath (Data.Vector.Unboxed.Vector Data.Int.Int64)@ * 'Proto.Semantic_Fields.endingSymbolStack' @:: Lens' StackGraphPath [Data.Text.Text]@ * 'Proto.Semantic_Fields.vec'endingSymbolStack' @:: Lens' StackGraphPath (Data.Vector.Vector Data.Text.Text)@ -} data StackGraphPath = StackGraphPath'_constructor {_StackGraphPath'startingSymbolStack :: !(Data.Vector.Vector Data.Text.Text), _StackGraphPath'startingScopeStackSize :: !Data.Int.Int64, _StackGraphPath'from :: !Data.Int.Int64, _StackGraphPath'edges :: !Data.Text.Text, _StackGraphPath'to :: !Data.Int.Int64, _StackGraphPath'endingScopeStack :: !(Data.Vector.Unboxed.Vector Data.Int.Int64), _StackGraphPath'endingSymbolStack :: !(Data.Vector.Vector Data.Text.Text), _StackGraphPath'_unknownFields :: !Data.ProtoLens.FieldSet} deriving stock (Prelude.Eq, Prelude.Ord) instance Prelude.Show StackGraphPath where showsPrec _ __x __s = Prelude.showChar '{' (Prelude.showString (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s)) instance Data.ProtoLens.Field.HasField StackGraphPath "startingSymbolStack" [Data.Text.Text] where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphPath'startingSymbolStack (\ x__ y__ -> x__ {_StackGraphPath'startingSymbolStack = y__})) (Lens.Family2.Unchecked.lens Data.Vector.Generic.toList (\ _ y__ -> Data.Vector.Generic.fromList y__)) instance Data.ProtoLens.Field.HasField StackGraphPath "vec'startingSymbolStack" (Data.Vector.Vector Data.Text.Text) where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphPath'startingSymbolStack (\ x__ y__ -> x__ {_StackGraphPath'startingSymbolStack = y__})) Prelude.id instance Data.ProtoLens.Field.HasField StackGraphPath "startingScopeStackSize" Data.Int.Int64 where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphPath'startingScopeStackSize (\ x__ y__ -> x__ {_StackGraphPath'startingScopeStackSize = y__})) Prelude.id instance Data.ProtoLens.Field.HasField StackGraphPath "from" Data.Int.Int64 where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphPath'from (\ x__ y__ -> x__ {_StackGraphPath'from = y__})) Prelude.id instance Data.ProtoLens.Field.HasField StackGraphPath "edges" Data.Text.Text where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphPath'edges (\ x__ y__ -> x__ {_StackGraphPath'edges = y__})) Prelude.id instance Data.ProtoLens.Field.HasField StackGraphPath "to" Data.Int.Int64 where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphPath'to (\ x__ y__ -> x__ {_StackGraphPath'to = y__})) Prelude.id instance Data.ProtoLens.Field.HasField StackGraphPath "endingScopeStack" [Data.Int.Int64] where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphPath'endingScopeStack (\ x__ y__ -> x__ {_StackGraphPath'endingScopeStack = y__})) (Lens.Family2.Unchecked.lens Data.Vector.Generic.toList (\ _ y__ -> Data.Vector.Generic.fromList y__)) instance Data.ProtoLens.Field.HasField StackGraphPath "vec'endingScopeStack" (Data.Vector.Unboxed.Vector Data.Int.Int64) where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphPath'endingScopeStack (\ x__ y__ -> x__ {_StackGraphPath'endingScopeStack = y__})) Prelude.id instance Data.ProtoLens.Field.HasField StackGraphPath "endingSymbolStack" [Data.Text.Text] where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphPath'endingSymbolStack (\ x__ y__ -> x__ {_StackGraphPath'endingSymbolStack = y__})) (Lens.Family2.Unchecked.lens Data.Vector.Generic.toList (\ _ y__ -> Data.Vector.Generic.fromList y__)) instance Data.ProtoLens.Field.HasField StackGraphPath "vec'endingSymbolStack" (Data.Vector.Vector Data.Text.Text) where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphPath'endingSymbolStack (\ x__ y__ -> x__ {_StackGraphPath'endingSymbolStack = y__})) Prelude.id instance Data.ProtoLens.Message StackGraphPath where messageName _ = Data.Text.pack "github.semantic.StackGraphPath" packedMessageDescriptor _ = "\n\ \\SOStackGraphPath\DC22\n\ \\NAKstarting_symbol_stack\CAN\SOH \ETX(\tR\DC3startingSymbolStack\DC29\n\ \\EMstarting_scope_stack_size\CAN\STX \SOH(\ETXR\SYNstartingScopeStackSize\DC2\DC2\n\ \\EOTfrom\CAN\ETX \SOH(\ETXR\EOTfrom\DC2\DC4\n\ \\ENQedges\CAN\EOT \SOH(\tR\ENQedges\DC2\SO\n\ \\STXto\CAN\ENQ \SOH(\ETXR\STXto\DC2,\n\ \\DC2ending_scope_stack\CAN\ACK \ETX(\ETXR\DLEendingScopeStack\DC2.\n\ \\DC3ending_symbol_stack\CAN\a \ETX(\tR\DC1endingSymbolStack" packedFileDescriptor _ = packedFileDescriptor fieldsByTag = let startingSymbolStack__field_descriptor = Data.ProtoLens.FieldDescriptor "starting_symbol_stack" (Data.ProtoLens.ScalarField Data.ProtoLens.StringField :: Data.ProtoLens.FieldTypeDescriptor Data.Text.Text) (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"startingSymbolStack")) :: Data.ProtoLens.FieldDescriptor StackGraphPath startingScopeStackSize__field_descriptor = Data.ProtoLens.FieldDescriptor "starting_scope_stack_size" (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field :: Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"startingScopeStackSize")) :: Data.ProtoLens.FieldDescriptor StackGraphPath from__field_descriptor = Data.ProtoLens.FieldDescriptor "from" (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field :: Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"from")) :: Data.ProtoLens.FieldDescriptor StackGraphPath edges__field_descriptor = Data.ProtoLens.FieldDescriptor "edges" (Data.ProtoLens.ScalarField Data.ProtoLens.StringField :: Data.ProtoLens.FieldTypeDescriptor Data.Text.Text) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"edges")) :: Data.ProtoLens.FieldDescriptor StackGraphPath to__field_descriptor = Data.ProtoLens.FieldDescriptor "to" (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field :: Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"to")) :: Data.ProtoLens.FieldDescriptor StackGraphPath endingScopeStack__field_descriptor = Data.ProtoLens.FieldDescriptor "ending_scope_stack" (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field :: Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64) (Data.ProtoLens.RepeatedField Data.ProtoLens.Packed (Data.ProtoLens.Field.field @"endingScopeStack")) :: Data.ProtoLens.FieldDescriptor StackGraphPath endingSymbolStack__field_descriptor = Data.ProtoLens.FieldDescriptor "ending_symbol_stack" (Data.ProtoLens.ScalarField Data.ProtoLens.StringField :: Data.ProtoLens.FieldTypeDescriptor Data.Text.Text) (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"endingSymbolStack")) :: Data.ProtoLens.FieldDescriptor StackGraphPath in Data.Map.fromList [(Data.ProtoLens.Tag 1, startingSymbolStack__field_descriptor), (Data.ProtoLens.Tag 2, startingScopeStackSize__field_descriptor), (Data.ProtoLens.Tag 3, from__field_descriptor), (Data.ProtoLens.Tag 4, edges__field_descriptor), (Data.ProtoLens.Tag 5, to__field_descriptor), (Data.ProtoLens.Tag 6, endingScopeStack__field_descriptor), (Data.ProtoLens.Tag 7, endingSymbolStack__field_descriptor)] unknownFields = Lens.Family2.Unchecked.lens _StackGraphPath'_unknownFields (\ x__ y__ -> x__ {_StackGraphPath'_unknownFields = y__}) defMessage = StackGraphPath'_constructor {_StackGraphPath'startingSymbolStack = Data.Vector.Generic.empty, _StackGraphPath'startingScopeStackSize = Data.ProtoLens.fieldDefault, _StackGraphPath'from = Data.ProtoLens.fieldDefault, _StackGraphPath'edges = Data.ProtoLens.fieldDefault, _StackGraphPath'to = Data.ProtoLens.fieldDefault, _StackGraphPath'endingScopeStack = Data.Vector.Generic.empty, _StackGraphPath'endingSymbolStack = Data.Vector.Generic.empty, _StackGraphPath'_unknownFields = []} parseMessage = let loop :: StackGraphPath -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Unboxed.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Int.Int64 -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Text.Text -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Text.Text -> Data.ProtoLens.Encoding.Bytes.Parser StackGraphPath loop x mutable'endingScopeStack mutable'endingSymbolStack mutable'startingSymbolStack = do end <- Data.ProtoLens.Encoding.Bytes.atEnd if end then do frozen'endingScopeStack <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'endingScopeStack) frozen'endingSymbolStack <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'endingSymbolStack) frozen'startingSymbolStack <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'startingSymbolStack) (let missing = [] in if Prelude.null missing then Prelude.return () else Prelude.fail ((Prelude.++) "Missing required fields: " (Prelude.show (missing :: [Prelude.String])))) Prelude.return (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) (Lens.Family2.set (Data.ProtoLens.Field.field @"vec'endingScopeStack") frozen'endingScopeStack (Lens.Family2.set (Data.ProtoLens.Field.field @"vec'endingSymbolStack") frozen'endingSymbolStack (Lens.Family2.set (Data.ProtoLens.Field.field @"vec'startingSymbolStack") frozen'startingSymbolStack x)))) else do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt case tag of 10 -> do !y <- (Data.ProtoLens.Encoding.Bytes.) (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.getBytes (Prelude.fromIntegral len) Data.ProtoLens.Encoding.Bytes.runEither (case Data.Text.Encoding.decodeUtf8' value of (Prelude.Left err) -> Prelude.Left (Prelude.show err) (Prelude.Right r) -> Prelude.Right r)) "starting_symbol_stack" v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.append mutable'startingSymbolStack y) loop x mutable'endingScopeStack mutable'endingSymbolStack v 16 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (Prelude.fmap Prelude.fromIntegral Data.ProtoLens.Encoding.Bytes.getVarInt) "starting_scope_stack_size" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"startingScopeStackSize") y x) mutable'endingScopeStack mutable'endingSymbolStack mutable'startingSymbolStack 24 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (Prelude.fmap Prelude.fromIntegral Data.ProtoLens.Encoding.Bytes.getVarInt) "from" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"from") y x) mutable'endingScopeStack mutable'endingSymbolStack mutable'startingSymbolStack 34 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.getBytes (Prelude.fromIntegral len) Data.ProtoLens.Encoding.Bytes.runEither (case Data.Text.Encoding.decodeUtf8' value of (Prelude.Left err) -> Prelude.Left (Prelude.show err) (Prelude.Right r) -> Prelude.Right r)) "edges" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"edges") y x) mutable'endingScopeStack mutable'endingSymbolStack mutable'startingSymbolStack 40 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (Prelude.fmap Prelude.fromIntegral Data.ProtoLens.Encoding.Bytes.getVarInt) "to" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"to") y x) mutable'endingScopeStack mutable'endingSymbolStack mutable'startingSymbolStack 48 -> do !y <- (Data.ProtoLens.Encoding.Bytes.) (Prelude.fmap Prelude.fromIntegral Data.ProtoLens.Encoding.Bytes.getVarInt) "ending_scope_stack" v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.append mutable'endingScopeStack y) loop x v mutable'endingSymbolStack mutable'startingSymbolStack 50 -> do y <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.isolate (Prelude.fromIntegral len) ((let ploop qs = do packedEnd <- Data.ProtoLens.Encoding.Bytes.atEnd if packedEnd then Prelude.return qs else do !q <- (Data.ProtoLens.Encoding.Bytes.) (Prelude.fmap Prelude.fromIntegral Data.ProtoLens.Encoding.Bytes.getVarInt) "ending_scope_stack" qs' <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.append qs q) ploop qs' in ploop) mutable'endingScopeStack) loop x y mutable'endingSymbolStack mutable'startingSymbolStack 58 -> do !y <- (Data.ProtoLens.Encoding.Bytes.) (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.getBytes (Prelude.fromIntegral len) Data.ProtoLens.Encoding.Bytes.runEither (case Data.Text.Encoding.decodeUtf8' value of (Prelude.Left err) -> Prelude.Left (Prelude.show err) (Prelude.Right r) -> Prelude.Right r)) "ending_symbol_stack" v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.append mutable'endingSymbolStack y) loop x mutable'endingScopeStack v mutable'startingSymbolStack wire -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire wire loop (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) mutable'endingScopeStack mutable'endingSymbolStack mutable'startingSymbolStack in (Data.ProtoLens.Encoding.Bytes.) (do mutable'endingScopeStack <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO Data.ProtoLens.Encoding.Growing.new mutable'endingSymbolStack <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO Data.ProtoLens.Encoding.Growing.new mutable'startingSymbolStack <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO Data.ProtoLens.Encoding.Growing.new loop Data.ProtoLens.defMessage mutable'endingScopeStack mutable'endingSymbolStack mutable'startingSymbolStack) "StackGraphPath" buildMessage = \ _x -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.foldMapBuilder (\ _v -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 10) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.Text.Encoding.encodeUtf8 _v)) (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'startingSymbolStack") _x)) ((Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"startingScopeStackSize") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 16) ((Prelude..) Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v)) ((Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"from") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 24) ((Prelude..) Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v)) ((Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"edges") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 34) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.Text.Encoding.encodeUtf8 _v)) ((Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"to") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 40) ((Prelude..) Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v)) ((Data.Monoid.<>) (let p = Lens.Family2.view (Data.ProtoLens.Field.field @"vec'endingScopeStack") _x in if Data.Vector.Generic.null p then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 50) ((\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) (Data.ProtoLens.Encoding.Bytes.runBuilder (Data.ProtoLens.Encoding.Bytes.foldMapBuilder ((Prelude..) Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral) p)))) ((Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.foldMapBuilder (\ _v -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 58) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.Text.Encoding.encodeUtf8 _v)) (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'endingSymbolStack") _x)) (Data.ProtoLens.Encoding.Wire.buildFieldSet (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))))) instance Control.DeepSeq.NFData StackGraphPath where rnf = \ x__ -> Control.DeepSeq.deepseq (_StackGraphPath'_unknownFields x__) (Control.DeepSeq.deepseq (_StackGraphPath'startingSymbolStack x__) (Control.DeepSeq.deepseq (_StackGraphPath'startingScopeStackSize x__) (Control.DeepSeq.deepseq (_StackGraphPath'from x__) (Control.DeepSeq.deepseq (_StackGraphPath'edges x__) (Control.DeepSeq.deepseq (_StackGraphPath'to x__) (Control.DeepSeq.deepseq (_StackGraphPath'endingScopeStack x__) (Control.DeepSeq.deepseq (_StackGraphPath'endingSymbolStack x__) ()))))))) {- | Fields : * 'Proto.Semantic_Fields.blobs' @:: Lens' StackGraphRequest [Blob]@ * 'Proto.Semantic_Fields.vec'blobs' @:: Lens' StackGraphRequest (Data.Vector.Vector Blob)@ -} data StackGraphRequest = StackGraphRequest'_constructor {_StackGraphRequest'blobs :: !(Data.Vector.Vector Blob), _StackGraphRequest'_unknownFields :: !Data.ProtoLens.FieldSet} deriving stock (Prelude.Eq, Prelude.Ord) instance Prelude.Show StackGraphRequest where showsPrec _ __x __s = Prelude.showChar '{' (Prelude.showString (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s)) instance Data.ProtoLens.Field.HasField StackGraphRequest "blobs" [Blob] where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphRequest'blobs (\ x__ y__ -> x__ {_StackGraphRequest'blobs = y__})) (Lens.Family2.Unchecked.lens Data.Vector.Generic.toList (\ _ y__ -> Data.Vector.Generic.fromList y__)) instance Data.ProtoLens.Field.HasField StackGraphRequest "vec'blobs" (Data.Vector.Vector Blob) where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphRequest'blobs (\ x__ y__ -> x__ {_StackGraphRequest'blobs = y__})) Prelude.id instance Data.ProtoLens.Message StackGraphRequest where messageName _ = Data.Text.pack "github.semantic.StackGraphRequest" packedMessageDescriptor _ = "\n\ \\DC1StackGraphRequest\DC2+\n\ \\ENQblobs\CAN\SOH \ETX(\v2\NAK.github.semantic.BlobR\ENQblobs" packedFileDescriptor _ = packedFileDescriptor fieldsByTag = let blobs__field_descriptor = Data.ProtoLens.FieldDescriptor "blobs" (Data.ProtoLens.MessageField Data.ProtoLens.MessageType :: Data.ProtoLens.FieldTypeDescriptor Blob) (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"blobs")) :: Data.ProtoLens.FieldDescriptor StackGraphRequest in Data.Map.fromList [(Data.ProtoLens.Tag 1, blobs__field_descriptor)] unknownFields = Lens.Family2.Unchecked.lens _StackGraphRequest'_unknownFields (\ x__ y__ -> x__ {_StackGraphRequest'_unknownFields = y__}) defMessage = StackGraphRequest'_constructor {_StackGraphRequest'blobs = Data.Vector.Generic.empty, _StackGraphRequest'_unknownFields = []} parseMessage = let loop :: StackGraphRequest -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Blob -> Data.ProtoLens.Encoding.Bytes.Parser StackGraphRequest loop x mutable'blobs = do end <- Data.ProtoLens.Encoding.Bytes.atEnd if end then do frozen'blobs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'blobs) (let missing = [] in if Prelude.null missing then Prelude.return () else Prelude.fail ((Prelude.++) "Missing required fields: " (Prelude.show (missing :: [Prelude.String])))) Prelude.return (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) (Lens.Family2.set (Data.ProtoLens.Field.field @"vec'blobs") frozen'blobs x)) else do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt case tag of 10 -> do !y <- (Data.ProtoLens.Encoding.Bytes.) (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.isolate (Prelude.fromIntegral len) Data.ProtoLens.parseMessage) "blobs" v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.append mutable'blobs y) loop x v wire -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire wire loop (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) mutable'blobs in (Data.ProtoLens.Encoding.Bytes.) (do mutable'blobs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO Data.ProtoLens.Encoding.Growing.new loop Data.ProtoLens.defMessage mutable'blobs) "StackGraphRequest" buildMessage = \ _x -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.foldMapBuilder (\ _v -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 10) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.ProtoLens.encodeMessage _v)) (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'blobs") _x)) (Data.ProtoLens.Encoding.Wire.buildFieldSet (Lens.Family2.view Data.ProtoLens.unknownFields _x)) instance Control.DeepSeq.NFData StackGraphRequest where rnf = \ x__ -> Control.DeepSeq.deepseq (_StackGraphRequest'_unknownFields x__) (Control.DeepSeq.deepseq (_StackGraphRequest'blobs x__) ()) {- | Fields : * 'Proto.Semantic_Fields.files' @:: Lens' StackGraphResponse [StackGraphFile]@ * 'Proto.Semantic_Fields.vec'files' @:: Lens' StackGraphResponse (Data.Vector.Vector StackGraphFile)@ -} data StackGraphResponse = StackGraphResponse'_constructor {_StackGraphResponse'files :: !(Data.Vector.Vector StackGraphFile), _StackGraphResponse'_unknownFields :: !Data.ProtoLens.FieldSet} deriving stock (Prelude.Eq, Prelude.Ord) instance Prelude.Show StackGraphResponse where showsPrec _ __x __s = Prelude.showChar '{' (Prelude.showString (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s)) instance Data.ProtoLens.Field.HasField StackGraphResponse "files" [StackGraphFile] where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphResponse'files (\ x__ y__ -> x__ {_StackGraphResponse'files = y__})) (Lens.Family2.Unchecked.lens Data.Vector.Generic.toList (\ _ y__ -> Data.Vector.Generic.fromList y__)) instance Data.ProtoLens.Field.HasField StackGraphResponse "vec'files" (Data.Vector.Vector StackGraphFile) where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _StackGraphResponse'files (\ x__ y__ -> x__ {_StackGraphResponse'files = y__})) Prelude.id instance Data.ProtoLens.Message StackGraphResponse where messageName _ = Data.Text.pack "github.semantic.StackGraphResponse" packedMessageDescriptor _ = "\n\ \\DC2StackGraphResponse\DC25\n\ \\ENQfiles\CAN\SOH \ETX(\v2\US.github.semantic.StackGraphFileR\ENQfiles" packedFileDescriptor _ = packedFileDescriptor fieldsByTag = let files__field_descriptor = Data.ProtoLens.FieldDescriptor "files" (Data.ProtoLens.MessageField Data.ProtoLens.MessageType :: Data.ProtoLens.FieldTypeDescriptor StackGraphFile) (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"files")) :: Data.ProtoLens.FieldDescriptor StackGraphResponse in Data.Map.fromList [(Data.ProtoLens.Tag 1, files__field_descriptor)] unknownFields = Lens.Family2.Unchecked.lens _StackGraphResponse'_unknownFields (\ x__ y__ -> x__ {_StackGraphResponse'_unknownFields = y__}) defMessage = StackGraphResponse'_constructor {_StackGraphResponse'files = Data.Vector.Generic.empty, _StackGraphResponse'_unknownFields = []} parseMessage = let loop :: StackGraphResponse -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld StackGraphFile -> Data.ProtoLens.Encoding.Bytes.Parser StackGraphResponse loop x mutable'files = do end <- Data.ProtoLens.Encoding.Bytes.atEnd if end then do frozen'files <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'files) (let missing = [] in if Prelude.null missing then Prelude.return () else Prelude.fail ((Prelude.++) "Missing required fields: " (Prelude.show (missing :: [Prelude.String])))) Prelude.return (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) (Lens.Family2.set (Data.ProtoLens.Field.field @"vec'files") frozen'files x)) else do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt case tag of 10 -> do !y <- (Data.ProtoLens.Encoding.Bytes.) (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.isolate (Prelude.fromIntegral len) Data.ProtoLens.parseMessage) "files" v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.append mutable'files y) loop x v wire -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire wire loop (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) mutable'files in (Data.ProtoLens.Encoding.Bytes.) (do mutable'files <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO Data.ProtoLens.Encoding.Growing.new loop Data.ProtoLens.defMessage mutable'files) "StackGraphResponse" buildMessage = \ _x -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.foldMapBuilder (\ _v -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 10) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.ProtoLens.encodeMessage _v)) (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'files") _x)) (Data.ProtoLens.Encoding.Wire.buildFieldSet (Lens.Family2.view Data.ProtoLens.unknownFields _x)) instance Control.DeepSeq.NFData StackGraphResponse where rnf = \ x__ -> Control.DeepSeq.deepseq (_StackGraphResponse'_unknownFields x__) (Control.DeepSeq.deepseq (_StackGraphResponse'files x__) ()) {- | Fields : * 'Proto.Semantic_Fields.symbol' @:: Lens' Symbol Data.Text.Text@ * 'Proto.Semantic_Fields.kind' @:: Lens' Symbol Data.Text.Text@ * 'Proto.Semantic_Fields.line' @:: Lens' Symbol Data.Text.Text@ * 'Proto.Semantic_Fields.span' @:: Lens' Symbol Span@ * 'Proto.Semantic_Fields.maybe'span' @:: Lens' Symbol (Prelude.Maybe Span)@ * 'Proto.Semantic_Fields.docs' @:: Lens' Symbol Docstring@ * 'Proto.Semantic_Fields.maybe'docs' @:: Lens' Symbol (Prelude.Maybe Docstring)@ * 'Proto.Semantic_Fields.nodeType' @:: Lens' Symbol NodeType@ * 'Proto.Semantic_Fields.syntaxType' @:: Lens' Symbol SyntaxType@ * 'Proto.Semantic_Fields.utf16CodeUnitSpan' @:: Lens' Symbol Span@ * 'Proto.Semantic_Fields.maybe'utf16CodeUnitSpan' @:: Lens' Symbol (Prelude.Maybe Span)@ * 'Proto.Semantic_Fields.byteRange' @:: Lens' Symbol ByteRange@ * 'Proto.Semantic_Fields.maybe'byteRange' @:: Lens' Symbol (Prelude.Maybe ByteRange)@ -} data Symbol = Symbol'_constructor {_Symbol'symbol :: !Data.Text.Text, _Symbol'kind :: !Data.Text.Text, _Symbol'line :: !Data.Text.Text, _Symbol'span :: !(Prelude.Maybe Span), _Symbol'docs :: !(Prelude.Maybe Docstring), _Symbol'nodeType :: !NodeType, _Symbol'syntaxType :: !SyntaxType, _Symbol'utf16CodeUnitSpan :: !(Prelude.Maybe Span), _Symbol'byteRange :: !(Prelude.Maybe ByteRange), _Symbol'_unknownFields :: !Data.ProtoLens.FieldSet} deriving stock (Prelude.Eq, Prelude.Ord) instance Prelude.Show Symbol where showsPrec _ __x __s = Prelude.showChar '{' (Prelude.showString (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s)) instance Data.ProtoLens.Field.HasField Symbol "symbol" Data.Text.Text where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _Symbol'symbol (\ x__ y__ -> x__ {_Symbol'symbol = y__})) Prelude.id instance Data.ProtoLens.Field.HasField Symbol "kind" Data.Text.Text where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _Symbol'kind (\ x__ y__ -> x__ {_Symbol'kind = y__})) Prelude.id instance Data.ProtoLens.Field.HasField Symbol "line" Data.Text.Text where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _Symbol'line (\ x__ y__ -> x__ {_Symbol'line = y__})) Prelude.id instance Data.ProtoLens.Field.HasField Symbol "span" Span where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _Symbol'span (\ x__ y__ -> x__ {_Symbol'span = y__})) (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage) instance Data.ProtoLens.Field.HasField Symbol "maybe'span" (Prelude.Maybe Span) where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _Symbol'span (\ x__ y__ -> x__ {_Symbol'span = y__})) Prelude.id instance Data.ProtoLens.Field.HasField Symbol "docs" Docstring where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _Symbol'docs (\ x__ y__ -> x__ {_Symbol'docs = y__})) (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage) instance Data.ProtoLens.Field.HasField Symbol "maybe'docs" (Prelude.Maybe Docstring) where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _Symbol'docs (\ x__ y__ -> x__ {_Symbol'docs = y__})) Prelude.id instance Data.ProtoLens.Field.HasField Symbol "nodeType" NodeType where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _Symbol'nodeType (\ x__ y__ -> x__ {_Symbol'nodeType = y__})) Prelude.id instance Data.ProtoLens.Field.HasField Symbol "syntaxType" SyntaxType where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _Symbol'syntaxType (\ x__ y__ -> x__ {_Symbol'syntaxType = y__})) Prelude.id instance Data.ProtoLens.Field.HasField Symbol "utf16CodeUnitSpan" Span where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _Symbol'utf16CodeUnitSpan (\ x__ y__ -> x__ {_Symbol'utf16CodeUnitSpan = y__})) (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage) instance Data.ProtoLens.Field.HasField Symbol "maybe'utf16CodeUnitSpan" (Prelude.Maybe Span) where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _Symbol'utf16CodeUnitSpan (\ x__ y__ -> x__ {_Symbol'utf16CodeUnitSpan = y__})) Prelude.id instance Data.ProtoLens.Field.HasField Symbol "byteRange" ByteRange where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _Symbol'byteRange (\ x__ y__ -> x__ {_Symbol'byteRange = y__})) (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage) instance Data.ProtoLens.Field.HasField Symbol "maybe'byteRange" (Prelude.Maybe ByteRange) where fieldOf _ = (Prelude..) (Lens.Family2.Unchecked.lens _Symbol'byteRange (\ x__ y__ -> x__ {_Symbol'byteRange = y__})) Prelude.id instance Data.ProtoLens.Message Symbol where messageName _ = Data.Text.pack "github.semantic.Symbol" packedMessageDescriptor _ = "\n\ \\ACKSymbol\DC2\SYN\n\ \\ACKsymbol\CAN\SOH \SOH(\tR\ACKsymbol\DC2\DC2\n\ \\EOTkind\CAN\STX \SOH(\tR\EOTkind\DC2\DC2\n\ \\EOTline\CAN\ETX \SOH(\tR\EOTline\DC2)\n\ \\EOTspan\CAN\EOT \SOH(\v2\NAK.github.semantic.SpanR\EOTspan\DC2.\n\ \\EOTdocs\CAN\ENQ \SOH(\v2\SUB.github.semantic.DocstringR\EOTdocs\DC26\n\ \\tnode_type\CAN\ACK \SOH(\SO2\EM.github.semantic.NodeTypeR\bnodeType\DC2<\n\ \\vsyntax_type\CAN\a \SOH(\SO2\ESC.github.semantic.SyntaxTypeR\n\ \syntaxType\DC2F\n\ \\DC4utf16_code_unit_span\CAN\b \SOH(\v2\NAK.github.semantic.SpanR\DC1utf16CodeUnitSpan\DC29\n\ \\n\ \byte_range\CAN\t \SOH(\v2\SUB.github.semantic.ByteRangeR\tbyteRange" packedFileDescriptor _ = packedFileDescriptor fieldsByTag = let symbol__field_descriptor = Data.ProtoLens.FieldDescriptor "symbol" (Data.ProtoLens.ScalarField Data.ProtoLens.StringField :: Data.ProtoLens.FieldTypeDescriptor Data.Text.Text) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"symbol")) :: Data.ProtoLens.FieldDescriptor Symbol kind__field_descriptor = Data.ProtoLens.FieldDescriptor "kind" (Data.ProtoLens.ScalarField Data.ProtoLens.StringField :: Data.ProtoLens.FieldTypeDescriptor Data.Text.Text) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"kind")) :: Data.ProtoLens.FieldDescriptor Symbol line__field_descriptor = Data.ProtoLens.FieldDescriptor "line" (Data.ProtoLens.ScalarField Data.ProtoLens.StringField :: Data.ProtoLens.FieldTypeDescriptor Data.Text.Text) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"line")) :: Data.ProtoLens.FieldDescriptor Symbol span__field_descriptor = Data.ProtoLens.FieldDescriptor "span" (Data.ProtoLens.MessageField Data.ProtoLens.MessageType :: Data.ProtoLens.FieldTypeDescriptor Span) (Data.ProtoLens.OptionalField (Data.ProtoLens.Field.field @"maybe'span")) :: Data.ProtoLens.FieldDescriptor Symbol docs__field_descriptor = Data.ProtoLens.FieldDescriptor "docs" (Data.ProtoLens.MessageField Data.ProtoLens.MessageType :: Data.ProtoLens.FieldTypeDescriptor Docstring) (Data.ProtoLens.OptionalField (Data.ProtoLens.Field.field @"maybe'docs")) :: Data.ProtoLens.FieldDescriptor Symbol nodeType__field_descriptor = Data.ProtoLens.FieldDescriptor "node_type" (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField :: Data.ProtoLens.FieldTypeDescriptor NodeType) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"nodeType")) :: Data.ProtoLens.FieldDescriptor Symbol syntaxType__field_descriptor = Data.ProtoLens.FieldDescriptor "syntax_type" (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField :: Data.ProtoLens.FieldTypeDescriptor SyntaxType) (Data.ProtoLens.PlainField Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"syntaxType")) :: Data.ProtoLens.FieldDescriptor Symbol utf16CodeUnitSpan__field_descriptor = Data.ProtoLens.FieldDescriptor "utf16_code_unit_span" (Data.ProtoLens.MessageField Data.ProtoLens.MessageType :: Data.ProtoLens.FieldTypeDescriptor Span) (Data.ProtoLens.OptionalField (Data.ProtoLens.Field.field @"maybe'utf16CodeUnitSpan")) :: Data.ProtoLens.FieldDescriptor Symbol byteRange__field_descriptor = Data.ProtoLens.FieldDescriptor "byte_range" (Data.ProtoLens.MessageField Data.ProtoLens.MessageType :: Data.ProtoLens.FieldTypeDescriptor ByteRange) (Data.ProtoLens.OptionalField (Data.ProtoLens.Field.field @"maybe'byteRange")) :: Data.ProtoLens.FieldDescriptor Symbol in Data.Map.fromList [(Data.ProtoLens.Tag 1, symbol__field_descriptor), (Data.ProtoLens.Tag 2, kind__field_descriptor), (Data.ProtoLens.Tag 3, line__field_descriptor), (Data.ProtoLens.Tag 4, span__field_descriptor), (Data.ProtoLens.Tag 5, docs__field_descriptor), (Data.ProtoLens.Tag 6, nodeType__field_descriptor), (Data.ProtoLens.Tag 7, syntaxType__field_descriptor), (Data.ProtoLens.Tag 8, utf16CodeUnitSpan__field_descriptor), (Data.ProtoLens.Tag 9, byteRange__field_descriptor)] unknownFields = Lens.Family2.Unchecked.lens _Symbol'_unknownFields (\ x__ y__ -> x__ {_Symbol'_unknownFields = y__}) defMessage = Symbol'_constructor {_Symbol'symbol = Data.ProtoLens.fieldDefault, _Symbol'kind = Data.ProtoLens.fieldDefault, _Symbol'line = Data.ProtoLens.fieldDefault, _Symbol'span = Prelude.Nothing, _Symbol'docs = Prelude.Nothing, _Symbol'nodeType = Data.ProtoLens.fieldDefault, _Symbol'syntaxType = Data.ProtoLens.fieldDefault, _Symbol'utf16CodeUnitSpan = Prelude.Nothing, _Symbol'byteRange = Prelude.Nothing, _Symbol'_unknownFields = []} parseMessage = let loop :: Symbol -> Data.ProtoLens.Encoding.Bytes.Parser Symbol loop x = do end <- Data.ProtoLens.Encoding.Bytes.atEnd if end then do (let missing = [] in if Prelude.null missing then Prelude.return () else Prelude.fail ((Prelude.++) "Missing required fields: " (Prelude.show (missing :: [Prelude.String])))) Prelude.return (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x) else do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt case tag of 10 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.getBytes (Prelude.fromIntegral len) Data.ProtoLens.Encoding.Bytes.runEither (case Data.Text.Encoding.decodeUtf8' value of (Prelude.Left err) -> Prelude.Left (Prelude.show err) (Prelude.Right r) -> Prelude.Right r)) "symbol" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"symbol") y x) 18 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.getBytes (Prelude.fromIntegral len) Data.ProtoLens.Encoding.Bytes.runEither (case Data.Text.Encoding.decodeUtf8' value of (Prelude.Left err) -> Prelude.Left (Prelude.show err) (Prelude.Right r) -> Prelude.Right r)) "kind" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"kind") y x) 26 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.getBytes (Prelude.fromIntegral len) Data.ProtoLens.Encoding.Bytes.runEither (case Data.Text.Encoding.decodeUtf8' value of (Prelude.Left err) -> Prelude.Left (Prelude.show err) (Prelude.Right r) -> Prelude.Right r)) "line" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"line") y x) 34 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.isolate (Prelude.fromIntegral len) Data.ProtoLens.parseMessage) "span" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"span") y x) 42 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.isolate (Prelude.fromIntegral len) Data.ProtoLens.parseMessage) "docs" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"docs") y x) 48 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (Prelude.fmap Prelude.toEnum (Prelude.fmap Prelude.fromIntegral Data.ProtoLens.Encoding.Bytes.getVarInt)) "node_type" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"nodeType") y x) 56 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (Prelude.fmap Prelude.toEnum (Prelude.fmap Prelude.fromIntegral Data.ProtoLens.Encoding.Bytes.getVarInt)) "syntax_type" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"syntaxType") y x) 66 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.isolate (Prelude.fromIntegral len) Data.ProtoLens.parseMessage) "utf16_code_unit_span" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"utf16CodeUnitSpan") y x) 74 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt Data.ProtoLens.Encoding.Bytes.isolate (Prelude.fromIntegral len) Data.ProtoLens.parseMessage) "byte_range" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"byteRange") y x) wire -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire wire loop (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) in (Data.ProtoLens.Encoding.Bytes.) (do loop Data.ProtoLens.defMessage) "Symbol" buildMessage = \ _x -> (Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"symbol") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 10) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.Text.Encoding.encodeUtf8 _v)) ((Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"kind") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 18) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.Text.Encoding.encodeUtf8 _v)) ((Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"line") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 26) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.Text.Encoding.encodeUtf8 _v)) ((Data.Monoid.<>) (case Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'span") _x of Prelude.Nothing -> Data.Monoid.mempty (Prelude.Just _v) -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 34) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.ProtoLens.encodeMessage _v)) ((Data.Monoid.<>) (case Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'docs") _x of Prelude.Nothing -> Data.Monoid.mempty (Prelude.Just _v) -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 42) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.ProtoLens.encodeMessage _v)) ((Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"nodeType") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 48) ((Prelude..) ((Prelude..) Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral) Prelude.fromEnum _v)) ((Data.Monoid.<>) (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"syntaxType") _x in if (Prelude.==) _v Data.ProtoLens.fieldDefault then Data.Monoid.mempty else (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 56) ((Prelude..) ((Prelude..) Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral) Prelude.fromEnum _v)) ((Data.Monoid.<>) (case Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'utf16CodeUnitSpan") _x of Prelude.Nothing -> Data.Monoid.mempty (Prelude.Just _v) -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 66) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.ProtoLens.encodeMessage _v)) ((Data.Monoid.<>) (case Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'byteRange") _x of Prelude.Nothing -> Data.Monoid.mempty (Prelude.Just _v) -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt 74) ((Prelude..) (\ bs -> (Data.Monoid.<>) (Data.ProtoLens.Encoding.Bytes.putVarInt (Prelude.fromIntegral (Data.ByteString.length bs))) (Data.ProtoLens.Encoding.Bytes.putBytes bs)) Data.ProtoLens.encodeMessage _v)) (Data.ProtoLens.Encoding.Wire.buildFieldSet (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))))))) instance Control.DeepSeq.NFData Symbol where rnf = \ x__ -> Control.DeepSeq.deepseq (_Symbol'_unknownFields x__) (Control.DeepSeq.deepseq (_Symbol'symbol x__) (Control.DeepSeq.deepseq (_Symbol'kind x__) (Control.DeepSeq.deepseq (_Symbol'line x__) (Control.DeepSeq.deepseq (_Symbol'span x__) (Control.DeepSeq.deepseq (_Symbol'docs x__) (Control.DeepSeq.deepseq (_Symbol'nodeType x__) (Control.DeepSeq.deepseq (_Symbol'syntaxType x__) (Control.DeepSeq.deepseq (_Symbol'utf16CodeUnitSpan x__) (Control.DeepSeq.deepseq (_Symbol'byteRange x__) ()))))))))) newtype SyntaxType'UnrecognizedValue = SyntaxType'UnrecognizedValue Data.Int.Int32 deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show) data SyntaxType = FUNCTION | METHOD | CLASS | MODULE | CALL | TYPE | INTERFACE | IMPLEMENTATION | SyntaxType'Unrecognized !SyntaxType'UnrecognizedValue deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord) instance Data.ProtoLens.MessageEnum SyntaxType where maybeToEnum 0 = Prelude.Just FUNCTION maybeToEnum 1 = Prelude.Just METHOD maybeToEnum 2 = Prelude.Just CLASS maybeToEnum 3 = Prelude.Just MODULE maybeToEnum 4 = Prelude.Just CALL maybeToEnum 5 = Prelude.Just TYPE maybeToEnum 6 = Prelude.Just INTERFACE maybeToEnum 7 = Prelude.Just IMPLEMENTATION maybeToEnum k = Prelude.Just (SyntaxType'Unrecognized (SyntaxType'UnrecognizedValue (Prelude.fromIntegral k))) showEnum FUNCTION = "FUNCTION" showEnum METHOD = "METHOD" showEnum CLASS = "CLASS" showEnum MODULE = "MODULE" showEnum CALL = "CALL" showEnum TYPE = "TYPE" showEnum INTERFACE = "INTERFACE" showEnum IMPLEMENTATION = "IMPLEMENTATION" showEnum (SyntaxType'Unrecognized (SyntaxType'UnrecognizedValue k)) = Prelude.show k readEnum k | (Prelude.==) k "FUNCTION" = Prelude.Just FUNCTION | (Prelude.==) k "METHOD" = Prelude.Just METHOD | (Prelude.==) k "CLASS" = Prelude.Just CLASS | (Prelude.==) k "MODULE" = Prelude.Just MODULE | (Prelude.==) k "CALL" = Prelude.Just CALL | (Prelude.==) k "TYPE" = Prelude.Just TYPE | (Prelude.==) k "INTERFACE" = Prelude.Just INTERFACE | (Prelude.==) k "IMPLEMENTATION" = Prelude.Just IMPLEMENTATION | Prelude.otherwise = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum instance Prelude.Bounded SyntaxType where minBound = FUNCTION maxBound = IMPLEMENTATION instance Prelude.Enum SyntaxType where toEnum k__ = Prelude.maybe (Prelude.error ((Prelude.++) "toEnum: unknown value for enum SyntaxType: " (Prelude.show k__))) Prelude.id (Data.ProtoLens.maybeToEnum k__) fromEnum FUNCTION = 0 fromEnum METHOD = 1 fromEnum CLASS = 2 fromEnum MODULE = 3 fromEnum CALL = 4 fromEnum TYPE = 5 fromEnum INTERFACE = 6 fromEnum IMPLEMENTATION = 7 fromEnum (SyntaxType'Unrecognized (SyntaxType'UnrecognizedValue k)) = Prelude.fromIntegral k succ IMPLEMENTATION = Prelude.error "SyntaxType.succ: bad argument IMPLEMENTATION. This value would be out of bounds." succ FUNCTION = METHOD succ METHOD = CLASS succ CLASS = MODULE succ MODULE = CALL succ CALL = TYPE succ TYPE = INTERFACE succ INTERFACE = IMPLEMENTATION succ (SyntaxType'Unrecognized _) = Prelude.error "SyntaxType.succ: bad argument: unrecognized value" pred FUNCTION = Prelude.error "SyntaxType.pred: bad argument FUNCTION. This value would be out of bounds." pred METHOD = FUNCTION pred CLASS = METHOD pred MODULE = CLASS pred CALL = MODULE pred TYPE = CALL pred INTERFACE = TYPE pred IMPLEMENTATION = INTERFACE pred (SyntaxType'Unrecognized _) = Prelude.error "SyntaxType.pred: bad argument: unrecognized value" enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo instance Data.ProtoLens.FieldDefault SyntaxType where fieldDefault = FUNCTION instance Control.DeepSeq.NFData SyntaxType where rnf x__ = Prelude.seq x__ () packedFileDescriptor :: Data.ByteString.ByteString packedFileDescriptor = "\n\ \\SOsemantic.proto\DC2\SIgithub.semantic\"'\n\ \\vPingRequest\DC2\CAN\n\ \\aservice\CAN\SOH \SOH(\tR\aservice\"r\n\ \\fPingResponse\DC2\SYN\n\ \\ACKstatus\CAN\SOH \SOH(\tR\ACKstatus\DC2\SUB\n\ \\bhostname\CAN\STX \SOH(\tR\bhostname\DC2\FS\n\ \\ttimestamp\CAN\ETX \SOH(\tR\ttimestamp\DC2\DLE\n\ \\ETXsha\CAN\EOT \SOH(\tR\ETXsha\"?\n\ \\DLEParseTreeRequest\DC2+\n\ \\ENQblobs\CAN\SOH \ETX(\v2\NAK.github.semantic.BlobR\ENQblobs\"F\n\ \\ETBParseTreeSymbolResponse\DC2+\n\ \\ENQfiles\CAN\SOH \ETX(\v2\NAK.github.semantic.FileR\ENQfiles\"@\n\ \\DC1StackGraphRequest\DC2+\n\ \\ENQblobs\CAN\SOH \ETX(\v2\NAK.github.semantic.BlobR\ENQblobs\"K\n\ \\DC2StackGraphResponse\DC25\n\ \\ENQfiles\CAN\SOH \ETX(\v2\US.github.semantic.StackGraphFileR\ENQfiles\"\"\n\ \\n\ \ParseError\DC2\DC4\n\ \\ENQerror\CAN\SOH \SOH(\tR\ENQerror\"P\n\ \\EOTBlob\DC2\CAN\n\ \\acontent\CAN\SOH \SOH(\tR\acontent\DC2\DC2\n\ \\EOTpath\CAN\STX \SOH(\tR\EOTpath\DC2\SUB\n\ \\blanguage\CAN\ETX \SOH(\tR\blanguage\"\185\SOH\n\ \\EOTFile\DC2\DC2\n\ \\EOTpath\CAN\SOH \SOH(\tR\EOTpath\DC2\SUB\n\ \\blanguage\CAN\STX \SOH(\tR\blanguage\DC21\n\ \\asymbols\CAN\ETX \ETX(\v2\ETB.github.semantic.SymbolR\asymbols\DC23\n\ \\ACKerrors\CAN\EOT \ETX(\v2\ESC.github.semantic.ParseErrorR\ACKerrors\DC2\EM\n\ \\bblob_oid\CAN\ENQ \SOH(\tR\ablobOid\"\156\ETX\n\ \\ACKSymbol\DC2\SYN\n\ \\ACKsymbol\CAN\SOH \SOH(\tR\ACKsymbol\DC2\DC2\n\ \\EOTkind\CAN\STX \SOH(\tR\EOTkind\DC2\DC2\n\ \\EOTline\CAN\ETX \SOH(\tR\EOTline\DC2)\n\ \\EOTspan\CAN\EOT \SOH(\v2\NAK.github.semantic.SpanR\EOTspan\DC2.\n\ \\EOTdocs\CAN\ENQ \SOH(\v2\SUB.github.semantic.DocstringR\EOTdocs\DC26\n\ \\tnode_type\CAN\ACK \SOH(\SO2\EM.github.semantic.NodeTypeR\bnodeType\DC2<\n\ \\vsyntax_type\CAN\a \SOH(\SO2\ESC.github.semantic.SyntaxTypeR\n\ \syntaxType\DC2F\n\ \\DC4utf16_code_unit_span\CAN\b \SOH(\v2\NAK.github.semantic.SpanR\DC1utf16CodeUnitSpan\DC29\n\ \\n\ \byte_range\CAN\t \SOH(\v2\SUB.github.semantic.ByteRangeR\tbyteRange\")\n\ \\tDocstring\DC2\FS\n\ \\tdocstring\CAN\SOH \SOH(\tR\tdocstring\"6\n\ \\bPosition\DC2\DC2\n\ \\EOTline\CAN\SOH \SOH(\ENQR\EOTline\DC2\SYN\n\ \\ACKcolumn\CAN\STX \SOH(\ENQR\ACKcolumn\"d\n\ \\EOTSpan\DC2/\n\ \\ENQstart\CAN\SOH \SOH(\v2\EM.github.semantic.PositionR\ENQstart\DC2+\n\ \\ETXend\CAN\STX \SOH(\v2\EM.github.semantic.PositionR\ETXend\"3\n\ \\tByteRange\DC2\DC4\n\ \\ENQstart\CAN\SOH \SOH(\ENQR\ENQstart\DC2\DLE\n\ \\ETXend\CAN\STX \SOH(\ENQR\ETXend\"\227\SOH\n\ \\SOStackGraphFile\DC2\DC2\n\ \\EOTpath\CAN\SOH \SOH(\tR\EOTpath\DC2\SUB\n\ \\blanguage\CAN\STX \SOH(\tR\blanguage\DC25\n\ \\ENQnodes\CAN\ETX \ETX(\v2\US.github.semantic.StackGraphNodeR\ENQnodes\DC25\n\ \\ENQpaths\CAN\EOT \ETX(\v2\US.github.semantic.StackGraphPathR\ENQpaths\DC23\n\ \\ACKerrors\CAN\ENQ \ETX(\v2\ESC.github.semantic.ParseErrorR\ACKerrors\"\233\SOH\n\ \\SOStackGraphNode\DC2\SO\n\ \\STXid\CAN\SOH \SOH(\ETXR\STXid\DC2\DC2\n\ \\EOTname\CAN\STX \SOH(\tR\EOTname\DC2\DC2\n\ \\EOTline\CAN\ETX \SOH(\tR\EOTline\DC2)\n\ \\EOTspan\CAN\EOT \SOH(\v2\NAK.github.semantic.SpanR\EOTspan\DC2<\n\ \\vsyntax_type\CAN\ENQ \SOH(\SO2\ESC.github.semantic.SyntaxTypeR\n\ \syntaxType\DC26\n\ \\tnode_type\CAN\ACK \SOH(\SO2\EM.github.semantic.NodeTypeR\bnodeType\"\151\STX\n\ \\SOStackGraphPath\DC22\n\ \\NAKstarting_symbol_stack\CAN\SOH \ETX(\tR\DC3startingSymbolStack\DC29\n\ \\EMstarting_scope_stack_size\CAN\STX \SOH(\ETXR\SYNstartingScopeStackSize\DC2\DC2\n\ \\EOTfrom\CAN\ETX \SOH(\ETXR\EOTfrom\DC2\DC4\n\ \\ENQedges\CAN\EOT \SOH(\tR\ENQedges\DC2\SO\n\ \\STXto\CAN\ENQ \SOH(\ETXR\STXto\DC2,\n\ \\DC2ending_scope_stack\CAN\ACK \ETX(\ETXR\DLEendingScopeStack\DC2.\n\ \\DC3ending_symbol_stack\CAN\a \ETX(\tR\DC1endingSymbolStack*`\n\ \\bNodeType\DC2\SO\n\ \\n\ \ROOT_SCOPE\DLE\NUL\DC2\DC1\n\ \\rJUMP_TO_SCOPE\DLE\SOH\DC2\DC2\n\ \\SOEXPORTED_SCOPE\DLE\STX\DC2\SO\n\ \\n\ \DEFINITION\DLE\ETX\DC2\r\n\ \\tREFERENCE\DLE\EOT*t\n\ \\n\ \SyntaxType\DC2\f\n\ \\bFUNCTION\DLE\NUL\DC2\n\ \\n\ \\ACKMETHOD\DLE\SOH\DC2\t\n\ \\ENQCLASS\DLE\STX\DC2\n\ \\n\ \\ACKMODULE\DLE\ETX\DC2\b\n\ \\EOTCALL\DLE\EOT\DC2\b\n\ \\EOTTYPE\DLE\ENQ\DC2\r\n\ \\tINTERFACE\DLE\ACK\DC2\DC2\n\ \\SOIMPLEMENTATION\DLE\aB\DC2\234\STX\SISemantic::ProtoJ\186$\n\ \\ACK\DC2\EOT\NUL\NUL~\SOH\n\ \\b\n\ \\SOH\f\DC2\ETX\NUL\NUL\DC2\n\ \\b\n\ \\SOH\STX\DC2\ETX\STX\NUL\CAN\n\ \\b\n\ \\SOH\b\DC2\ETX\EOT\NUL(\n\ \\t\n\ \\STX\b-\DC2\ETX\EOT\NUL(\n\ \\n\ \\n\ \\STX\EOT\NUL\DC2\EOT\ACK\NUL\b\SOH\n\ \\n\ \\n\ \\ETX\EOT\NUL\SOH\DC2\ETX\ACK\b\DC3\n\ \\v\n\ \\EOT\EOT\NUL\STX\NUL\DC2\ETX\a\STX\NAK\n\ \\r\n\ \\ENQ\EOT\NUL\STX\NUL\EOT\DC2\EOT\a\STX\ACK\NAK\n\ \\f\n\ \\ENQ\EOT\NUL\STX\NUL\ENQ\DC2\ETX\a\STX\b\n\ \\f\n\ \\ENQ\EOT\NUL\STX\NUL\SOH\DC2\ETX\a\t\DLE\n\ \\f\n\ \\ENQ\EOT\NUL\STX\NUL\ETX\DC2\ETX\a\DC3\DC4\n\ \\n\ \\n\ \\STX\EOT\SOH\DC2\EOT\n\ \\NUL\SI\SOH\n\ \\n\ \\n\ \\ETX\EOT\SOH\SOH\DC2\ETX\n\ \\b\DC4\n\ \\v\n\ \\EOT\EOT\SOH\STX\NUL\DC2\ETX\v\STX\DC4\n\ \\r\n\ \\ENQ\EOT\SOH\STX\NUL\EOT\DC2\EOT\v\STX\n\ \\SYN\n\ \\f\n\ \\ENQ\EOT\SOH\STX\NUL\ENQ\DC2\ETX\v\STX\b\n\ \\f\n\ \\ENQ\EOT\SOH\STX\NUL\SOH\DC2\ETX\v\t\SI\n\ \\f\n\ \\ENQ\EOT\SOH\STX\NUL\ETX\DC2\ETX\v\DC2\DC3\n\ \\v\n\ \\EOT\EOT\SOH\STX\SOH\DC2\ETX\f\STX\SYN\n\ \\r\n\ \\ENQ\EOT\SOH\STX\SOH\EOT\DC2\EOT\f\STX\v\DC4\n\ \\f\n\ \\ENQ\EOT\SOH\STX\SOH\ENQ\DC2\ETX\f\STX\b\n\ \\f\n\ \\ENQ\EOT\SOH\STX\SOH\SOH\DC2\ETX\f\t\DC1\n\ \\f\n\ \\ENQ\EOT\SOH\STX\SOH\ETX\DC2\ETX\f\DC4\NAK\n\ \\v\n\ \\EOT\EOT\SOH\STX\STX\DC2\ETX\r\STX\ETB\n\ \\r\n\ \\ENQ\EOT\SOH\STX\STX\EOT\DC2\EOT\r\STX\f\SYN\n\ \\f\n\ \\ENQ\EOT\SOH\STX\STX\ENQ\DC2\ETX\r\STX\b\n\ \\f\n\ \\ENQ\EOT\SOH\STX\STX\SOH\DC2\ETX\r\t\DC2\n\ \\f\n\ \\ENQ\EOT\SOH\STX\STX\ETX\DC2\ETX\r\NAK\SYN\n\ \\v\n\ \\EOT\EOT\SOH\STX\ETX\DC2\ETX\SO\STX\DC1\n\ \\r\n\ \\ENQ\EOT\SOH\STX\ETX\EOT\DC2\EOT\SO\STX\r\ETB\n\ \\f\n\ \\ENQ\EOT\SOH\STX\ETX\ENQ\DC2\ETX\SO\STX\b\n\ \\f\n\ \\ENQ\EOT\SOH\STX\ETX\SOH\DC2\ETX\SO\t\f\n\ \\f\n\ \\ENQ\EOT\SOH\STX\ETX\ETX\DC2\ETX\SO\SI\DLE\n\ \\n\ \\n\ \\STX\EOT\STX\DC2\EOT\DC1\NUL\DC3\SOH\n\ \\n\ \\n\ \\ETX\EOT\STX\SOH\DC2\ETX\DC1\b\CAN\n\ \\v\n\ \\EOT\EOT\STX\STX\NUL\DC2\ETX\DC2\STX\SUB\n\ \\f\n\ \\ENQ\EOT\STX\STX\NUL\EOT\DC2\ETX\DC2\STX\n\ \\n\ \\f\n\ \\ENQ\EOT\STX\STX\NUL\ACK\DC2\ETX\DC2\v\SI\n\ \\f\n\ \\ENQ\EOT\STX\STX\NUL\SOH\DC2\ETX\DC2\DLE\NAK\n\ \\f\n\ \\ENQ\EOT\STX\STX\NUL\ETX\DC2\ETX\DC2\CAN\EM\n\ \\n\ \\n\ \\STX\EOT\ETX\DC2\EOT\NAK\NUL\ETB\SOH\n\ \\n\ \\n\ \\ETX\EOT\ETX\SOH\DC2\ETX\NAK\b\US\n\ \\v\n\ \\EOT\EOT\ETX\STX\NUL\DC2\ETX\SYN\STX\SUB\n\ \\f\n\ \\ENQ\EOT\ETX\STX\NUL\EOT\DC2\ETX\SYN\STX\n\ \\n\ \\f\n\ \\ENQ\EOT\ETX\STX\NUL\ACK\DC2\ETX\SYN\v\SI\n\ \\f\n\ \\ENQ\EOT\ETX\STX\NUL\SOH\DC2\ETX\SYN\DLE\NAK\n\ \\f\n\ \\ENQ\EOT\ETX\STX\NUL\ETX\DC2\ETX\SYN\CAN\EM\n\ \\n\ \\n\ \\STX\EOT\EOT\DC2\EOT\EM\NUL\ESC\SOH\n\ \\n\ \\n\ \\ETX\EOT\EOT\SOH\DC2\ETX\EM\b\EM\n\ \\v\n\ \\EOT\EOT\EOT\STX\NUL\DC2\ETX\SUB\STX\SUB\n\ \\f\n\ \\ENQ\EOT\EOT\STX\NUL\EOT\DC2\ETX\SUB\STX\n\ \\n\ \\f\n\ \\ENQ\EOT\EOT\STX\NUL\ACK\DC2\ETX\SUB\v\SI\n\ \\f\n\ \\ENQ\EOT\EOT\STX\NUL\SOH\DC2\ETX\SUB\DLE\NAK\n\ \\f\n\ \\ENQ\EOT\EOT\STX\NUL\ETX\DC2\ETX\SUB\CAN\EM\n\ \\n\ \\n\ \\STX\EOT\ENQ\DC2\EOT\GS\NUL\US\SOH\n\ \\n\ \\n\ \\ETX\EOT\ENQ\SOH\DC2\ETX\GS\b\SUB\n\ \\v\n\ \\EOT\EOT\ENQ\STX\NUL\DC2\ETX\RS\STX$\n\ \\f\n\ \\ENQ\EOT\ENQ\STX\NUL\EOT\DC2\ETX\RS\STX\n\ \\n\ \\f\n\ \\ENQ\EOT\ENQ\STX\NUL\ACK\DC2\ETX\RS\v\EM\n\ \\f\n\ \\ENQ\EOT\ENQ\STX\NUL\SOH\DC2\ETX\RS\SUB\US\n\ \\f\n\ \\ENQ\EOT\ENQ\STX\NUL\ETX\DC2\ETX\RS\"#\n\ \\n\ \\n\ \\STX\EOT\ACK\DC2\EOT!\NUL#\SOH\n\ \\n\ \\n\ \\ETX\EOT\ACK\SOH\DC2\ETX!\b\DC2\n\ \\v\n\ \\EOT\EOT\ACK\STX\NUL\DC2\ETX\"\STX\DC3\n\ \\r\n\ \\ENQ\EOT\ACK\STX\NUL\EOT\DC2\EOT\"\STX!\DC4\n\ \\f\n\ \\ENQ\EOT\ACK\STX\NUL\ENQ\DC2\ETX\"\STX\b\n\ \\f\n\ \\ENQ\EOT\ACK\STX\NUL\SOH\DC2\ETX\"\t\SO\n\ \\f\n\ \\ENQ\EOT\ACK\STX\NUL\ETX\DC2\ETX\"\DC1\DC2\n\ \\n\ \\n\ \\STX\EOT\a\DC2\EOT%\NUL)\SOH\n\ \\n\ \\n\ \\ETX\EOT\a\SOH\DC2\ETX%\b\f\n\ \\v\n\ \\EOT\EOT\a\STX\NUL\DC2\ETX&\STX\NAK\n\ \\r\n\ \\ENQ\EOT\a\STX\NUL\EOT\DC2\EOT&\STX%\SO\n\ \\f\n\ \\ENQ\EOT\a\STX\NUL\ENQ\DC2\ETX&\STX\b\n\ \\f\n\ \\ENQ\EOT\a\STX\NUL\SOH\DC2\ETX&\t\DLE\n\ \\f\n\ \\ENQ\EOT\a\STX\NUL\ETX\DC2\ETX&\DC3\DC4\n\ \\v\n\ \\EOT\EOT\a\STX\SOH\DC2\ETX'\STX\DC2\n\ \\r\n\ \\ENQ\EOT\a\STX\SOH\EOT\DC2\EOT'\STX&\NAK\n\ \\f\n\ \\ENQ\EOT\a\STX\SOH\ENQ\DC2\ETX'\STX\b\n\ \\f\n\ \\ENQ\EOT\a\STX\SOH\SOH\DC2\ETX'\t\r\n\ \\f\n\ \\ENQ\EOT\a\STX\SOH\ETX\DC2\ETX'\DLE\DC1\n\ \\v\n\ \\EOT\EOT\a\STX\STX\DC2\ETX(\STX\SYN\n\ \\r\n\ \\ENQ\EOT\a\STX\STX\EOT\DC2\EOT(\STX'\DC2\n\ \\f\n\ \\ENQ\EOT\a\STX\STX\ENQ\DC2\ETX(\STX\b\n\ \\f\n\ \\ENQ\EOT\a\STX\STX\SOH\DC2\ETX(\t\DC1\n\ \\f\n\ \\ENQ\EOT\a\STX\STX\ETX\DC2\ETX(\DC4\NAK\n\ \\n\ \\n\ \\STX\EOT\b\DC2\EOT+\NUL1\SOH\n\ \\n\ \\n\ \\ETX\EOT\b\SOH\DC2\ETX+\b\f\n\ \\v\n\ \\EOT\EOT\b\STX\NUL\DC2\ETX,\STX\DC2\n\ \\r\n\ \\ENQ\EOT\b\STX\NUL\EOT\DC2\EOT,\STX+\SO\n\ \\f\n\ \\ENQ\EOT\b\STX\NUL\ENQ\DC2\ETX,\STX\b\n\ \\f\n\ \\ENQ\EOT\b\STX\NUL\SOH\DC2\ETX,\t\r\n\ \\f\n\ \\ENQ\EOT\b\STX\NUL\ETX\DC2\ETX,\DLE\DC1\n\ \\v\n\ \\EOT\EOT\b\STX\SOH\DC2\ETX-\STX\SYN\n\ \\r\n\ \\ENQ\EOT\b\STX\SOH\EOT\DC2\EOT-\STX,\DC2\n\ \\f\n\ \\ENQ\EOT\b\STX\SOH\ENQ\DC2\ETX-\STX\b\n\ \\f\n\ \\ENQ\EOT\b\STX\SOH\SOH\DC2\ETX-\t\DC1\n\ \\f\n\ \\ENQ\EOT\b\STX\SOH\ETX\DC2\ETX-\DC4\NAK\n\ \\v\n\ \\EOT\EOT\b\STX\STX\DC2\ETX.\STX\RS\n\ \\f\n\ \\ENQ\EOT\b\STX\STX\EOT\DC2\ETX.\STX\n\ \\n\ \\f\n\ \\ENQ\EOT\b\STX\STX\ACK\DC2\ETX.\v\DC1\n\ \\f\n\ \\ENQ\EOT\b\STX\STX\SOH\DC2\ETX.\DC2\EM\n\ \\f\n\ \\ENQ\EOT\b\STX\STX\ETX\DC2\ETX.\FS\GS\n\ \\v\n\ \\EOT\EOT\b\STX\ETX\DC2\ETX/\STX!\n\ \\f\n\ \\ENQ\EOT\b\STX\ETX\EOT\DC2\ETX/\STX\n\ \\n\ \\f\n\ \\ENQ\EOT\b\STX\ETX\ACK\DC2\ETX/\v\NAK\n\ \\f\n\ \\ENQ\EOT\b\STX\ETX\SOH\DC2\ETX/\SYN\FS\n\ \\f\n\ \\ENQ\EOT\b\STX\ETX\ETX\DC2\ETX/\US \n\ \\v\n\ \\EOT\EOT\b\STX\EOT\DC2\ETX0\STX\SYN\n\ \\r\n\ \\ENQ\EOT\b\STX\EOT\EOT\DC2\EOT0\STX/!\n\ \\f\n\ \\ENQ\EOT\b\STX\EOT\ENQ\DC2\ETX0\STX\b\n\ \\f\n\ \\ENQ\EOT\b\STX\EOT\SOH\DC2\ETX0\t\DC1\n\ \\f\n\ \\ENQ\EOT\b\STX\EOT\ETX\DC2\ETX0\DC4\NAK\n\ \\n\ \\n\ \\STX\EOT\t\DC2\EOT3\NUL=\SOH\n\ \\n\ \\n\ \\ETX\EOT\t\SOH\DC2\ETX3\b\SO\n\ \\v\n\ \\EOT\EOT\t\STX\NUL\DC2\ETX4\STX\DC4\n\ \\r\n\ \\ENQ\EOT\t\STX\NUL\EOT\DC2\EOT4\STX3\DLE\n\ \\f\n\ \\ENQ\EOT\t\STX\NUL\ENQ\DC2\ETX4\STX\b\n\ \\f\n\ \\ENQ\EOT\t\STX\NUL\SOH\DC2\ETX4\t\SI\n\ \\f\n\ \\ENQ\EOT\t\STX\NUL\ETX\DC2\ETX4\DC2\DC3\n\ \\v\n\ \\EOT\EOT\t\STX\SOH\DC2\ETX5\STX\DC2\n\ \\r\n\ \\ENQ\EOT\t\STX\SOH\EOT\DC2\EOT5\STX4\DC4\n\ \\f\n\ \\ENQ\EOT\t\STX\SOH\ENQ\DC2\ETX5\STX\b\n\ \\f\n\ \\ENQ\EOT\t\STX\SOH\SOH\DC2\ETX5\t\r\n\ \\f\n\ \\ENQ\EOT\t\STX\SOH\ETX\DC2\ETX5\DLE\DC1\n\ \\v\n\ \\EOT\EOT\t\STX\STX\DC2\ETX6\STX\DC2\n\ \\r\n\ \\ENQ\EOT\t\STX\STX\EOT\DC2\EOT6\STX5\DC2\n\ \\f\n\ \\ENQ\EOT\t\STX\STX\ENQ\DC2\ETX6\STX\b\n\ \\f\n\ \\ENQ\EOT\t\STX\STX\SOH\DC2\ETX6\t\r\n\ \\f\n\ \\ENQ\EOT\t\STX\STX\ETX\DC2\ETX6\DLE\DC1\n\ \\v\n\ \\EOT\EOT\t\STX\ETX\DC2\ETX7\STX\DLE\n\ \\r\n\ \\ENQ\EOT\t\STX\ETX\EOT\DC2\EOT7\STX6\DC2\n\ \\f\n\ \\ENQ\EOT\t\STX\ETX\ACK\DC2\ETX7\STX\ACK\n\ \\f\n\ \\ENQ\EOT\t\STX\ETX\SOH\DC2\ETX7\a\v\n\ \\f\n\ \\ENQ\EOT\t\STX\ETX\ETX\DC2\ETX7\SO\SI\n\ \\v\n\ \\EOT\EOT\t\STX\EOT\DC2\ETX8\STX\NAK\n\ \\r\n\ \\ENQ\EOT\t\STX\EOT\EOT\DC2\EOT8\STX7\DLE\n\ \\f\n\ \\ENQ\EOT\t\STX\EOT\ACK\DC2\ETX8\STX\v\n\ \\f\n\ \\ENQ\EOT\t\STX\EOT\SOH\DC2\ETX8\f\DLE\n\ \\f\n\ \\ENQ\EOT\t\STX\EOT\ETX\DC2\ETX8\DC3\DC4\n\ \\v\n\ \\EOT\EOT\t\STX\ENQ\DC2\ETX9\STX\EM\n\ \\r\n\ \\ENQ\EOT\t\STX\ENQ\EOT\DC2\EOT9\STX8\NAK\n\ \\f\n\ \\ENQ\EOT\t\STX\ENQ\ACK\DC2\ETX9\STX\n\ \\n\ \\f\n\ \\ENQ\EOT\t\STX\ENQ\SOH\DC2\ETX9\v\DC4\n\ \\f\n\ \\ENQ\EOT\t\STX\ENQ\ETX\DC2\ETX9\ETB\CAN\n\ \\v\n\ \\EOT\EOT\t\STX\ACK\DC2\ETX:\STX\GS\n\ \\r\n\ \\ENQ\EOT\t\STX\ACK\EOT\DC2\EOT:\STX9\EM\n\ \\f\n\ \\ENQ\EOT\t\STX\ACK\ACK\DC2\ETX:\STX\f\n\ \\f\n\ \\ENQ\EOT\t\STX\ACK\SOH\DC2\ETX:\r\CAN\n\ \\f\n\ \\ENQ\EOT\t\STX\ACK\ETX\DC2\ETX:\ESC\FS\n\ \\v\n\ \\EOT\EOT\t\STX\a\DC2\ETX;\STX \n\ \\r\n\ \\ENQ\EOT\t\STX\a\EOT\DC2\EOT;\STX:\GS\n\ \\f\n\ \\ENQ\EOT\t\STX\a\ACK\DC2\ETX;\STX\ACK\n\ \\f\n\ \\ENQ\EOT\t\STX\a\SOH\DC2\ETX;\a\ESC\n\ \\f\n\ \\ENQ\EOT\t\STX\a\ETX\DC2\ETX;\RS\US\n\ \\v\n\ \\EOT\EOT\t\STX\b\DC2\ETX<\STX\ESC\n\ \\r\n\ \\ENQ\EOT\t\STX\b\EOT\DC2\EOT<\STX; \n\ \\f\n\ \\ENQ\EOT\t\STX\b\ACK\DC2\ETX<\STX\v\n\ \\f\n\ \\ENQ\EOT\t\STX\b\SOH\DC2\ETX<\f\SYN\n\ \\f\n\ \\ENQ\EOT\t\STX\b\ETX\DC2\ETX<\EM\SUB\n\ \\n\ \\n\ \\STX\EOT\n\ \\DC2\EOT?\NULA\SOH\n\ \\n\ \\n\ \\ETX\EOT\n\ \\SOH\DC2\ETX?\b\DC1\n\ \\v\n\ \\EOT\EOT\n\ \\STX\NUL\DC2\ETX@\STX\ETB\n\ \\r\n\ \\ENQ\EOT\n\ \\STX\NUL\EOT\DC2\EOT@\STX?\DC3\n\ \\f\n\ \\ENQ\EOT\n\ \\STX\NUL\ENQ\DC2\ETX@\STX\b\n\ \\f\n\ \\ENQ\EOT\n\ \\STX\NUL\SOH\DC2\ETX@\t\DC2\n\ \\f\n\ \\ENQ\EOT\n\ \\STX\NUL\ETX\DC2\ETX@\NAK\SYN\n\ \\n\ \\n\ \\STX\EOT\v\DC2\EOTC\NULF\SOH\n\ \\n\ \\n\ \\ETX\EOT\v\SOH\DC2\ETXC\b\DLE\n\ \\v\n\ \\EOT\EOT\v\STX\NUL\DC2\ETXD\STX\DC1\n\ \\r\n\ \\ENQ\EOT\v\STX\NUL\EOT\DC2\EOTD\STXC\DC2\n\ \\f\n\ \\ENQ\EOT\v\STX\NUL\ENQ\DC2\ETXD\STX\a\n\ \\f\n\ \\ENQ\EOT\v\STX\NUL\SOH\DC2\ETXD\b\f\n\ \\f\n\ \\ENQ\EOT\v\STX\NUL\ETX\DC2\ETXD\SI\DLE\n\ \\v\n\ \\EOT\EOT\v\STX\SOH\DC2\ETXE\STX\DC3\n\ \\r\n\ \\ENQ\EOT\v\STX\SOH\EOT\DC2\EOTE\STXD\DC1\n\ \\f\n\ \\ENQ\EOT\v\STX\SOH\ENQ\DC2\ETXE\STX\a\n\ \\f\n\ \\ENQ\EOT\v\STX\SOH\SOH\DC2\ETXE\b\SO\n\ \\f\n\ \\ENQ\EOT\v\STX\SOH\ETX\DC2\ETXE\DC1\DC2\n\ \\n\ \\n\ \\STX\EOT\f\DC2\EOTH\NULK\SOH\n\ \\n\ \\n\ \\ETX\EOT\f\SOH\DC2\ETXH\b\f\n\ \\v\n\ \\EOT\EOT\f\STX\NUL\DC2\ETXI\STX\NAK\n\ \\r\n\ \\ENQ\EOT\f\STX\NUL\EOT\DC2\EOTI\STXH\SO\n\ \\f\n\ \\ENQ\EOT\f\STX\NUL\ACK\DC2\ETXI\STX\n\ \\n\ \\f\n\ \\ENQ\EOT\f\STX\NUL\SOH\DC2\ETXI\v\DLE\n\ \\f\n\ \\ENQ\EOT\f\STX\NUL\ETX\DC2\ETXI\DC3\DC4\n\ \\v\n\ \\EOT\EOT\f\STX\SOH\DC2\ETXJ\STX\DC3\n\ \\r\n\ \\ENQ\EOT\f\STX\SOH\EOT\DC2\EOTJ\STXI\NAK\n\ \\f\n\ \\ENQ\EOT\f\STX\SOH\ACK\DC2\ETXJ\STX\n\ \\n\ \\f\n\ \\ENQ\EOT\f\STX\SOH\SOH\DC2\ETXJ\v\SO\n\ \\f\n\ \\ENQ\EOT\f\STX\SOH\ETX\DC2\ETXJ\DC1\DC2\n\ \\n\ \\n\ \\STX\EOT\r\DC2\EOTM\NULP\SOH\n\ \\n\ \\n\ \\ETX\EOT\r\SOH\DC2\ETXM\b\DC1\n\ \\v\n\ \\EOT\EOT\r\STX\NUL\DC2\ETXN\STX\DC2\n\ \\r\n\ \\ENQ\EOT\r\STX\NUL\EOT\DC2\EOTN\STXM\DC3\n\ \\f\n\ \\ENQ\EOT\r\STX\NUL\ENQ\DC2\ETXN\STX\a\n\ \\f\n\ \\ENQ\EOT\r\STX\NUL\SOH\DC2\ETXN\b\r\n\ \\f\n\ \\ENQ\EOT\r\STX\NUL\ETX\DC2\ETXN\DLE\DC1\n\ \\v\n\ \\EOT\EOT\r\STX\SOH\DC2\ETXO\STX\DLE\n\ \\r\n\ \\ENQ\EOT\r\STX\SOH\EOT\DC2\EOTO\STXN\DC2\n\ \\f\n\ \\ENQ\EOT\r\STX\SOH\ENQ\DC2\ETXO\STX\a\n\ \\f\n\ \\ENQ\EOT\r\STX\SOH\SOH\DC2\ETXO\b\v\n\ \\f\n\ \\ENQ\EOT\r\STX\SOH\ETX\DC2\ETXO\SO\SI\n\ \\n\ \\n\ \\STX\EOT\SO\DC2\EOTR\NULX\SOH\n\ \\n\ \\n\ \\ETX\EOT\SO\SOH\DC2\ETXR\b\SYN\n\ \\v\n\ \\EOT\EOT\SO\STX\NUL\DC2\ETXS\STX\DC2\n\ \\r\n\ \\ENQ\EOT\SO\STX\NUL\EOT\DC2\EOTS\STXR\CAN\n\ \\f\n\ \\ENQ\EOT\SO\STX\NUL\ENQ\DC2\ETXS\STX\b\n\ \\f\n\ \\ENQ\EOT\SO\STX\NUL\SOH\DC2\ETXS\t\r\n\ \\f\n\ \\ENQ\EOT\SO\STX\NUL\ETX\DC2\ETXS\DLE\DC1\n\ \\v\n\ \\EOT\EOT\SO\STX\SOH\DC2\ETXT\STX\SYN\n\ \\r\n\ \\ENQ\EOT\SO\STX\SOH\EOT\DC2\EOTT\STXS\DC2\n\ \\f\n\ \\ENQ\EOT\SO\STX\SOH\ENQ\DC2\ETXT\STX\b\n\ \\f\n\ \\ENQ\EOT\SO\STX\SOH\SOH\DC2\ETXT\t\DC1\n\ \\f\n\ \\ENQ\EOT\SO\STX\SOH\ETX\DC2\ETXT\DC4\NAK\n\ \\v\n\ \\EOT\EOT\SO\STX\STX\DC2\ETXU\STX$\n\ \\f\n\ \\ENQ\EOT\SO\STX\STX\EOT\DC2\ETXU\STX\n\ \\n\ \\f\n\ \\ENQ\EOT\SO\STX\STX\ACK\DC2\ETXU\v\EM\n\ \\f\n\ \\ENQ\EOT\SO\STX\STX\SOH\DC2\ETXU\SUB\US\n\ \\f\n\ \\ENQ\EOT\SO\STX\STX\ETX\DC2\ETXU\"#\n\ \\v\n\ \\EOT\EOT\SO\STX\ETX\DC2\ETXV\STX$\n\ \\f\n\ \\ENQ\EOT\SO\STX\ETX\EOT\DC2\ETXV\STX\n\ \\n\ \\f\n\ \\ENQ\EOT\SO\STX\ETX\ACK\DC2\ETXV\v\EM\n\ \\f\n\ \\ENQ\EOT\SO\STX\ETX\SOH\DC2\ETXV\SUB\US\n\ \\f\n\ \\ENQ\EOT\SO\STX\ETX\ETX\DC2\ETXV\"#\n\ \\v\n\ \\EOT\EOT\SO\STX\EOT\DC2\ETXW\STX!\n\ \\f\n\ \\ENQ\EOT\SO\STX\EOT\EOT\DC2\ETXW\STX\n\ \\n\ \\f\n\ \\ENQ\EOT\SO\STX\EOT\ACK\DC2\ETXW\v\NAK\n\ \\f\n\ \\ENQ\EOT\SO\STX\EOT\SOH\DC2\ETXW\SYN\FS\n\ \\f\n\ \\ENQ\EOT\SO\STX\EOT\ETX\DC2\ETXW\US \n\ \\n\ \\n\ \\STX\ENQ\NUL\DC2\EOTZ\NUL`\SOH\n\ \\n\ \\n\ \\ETX\ENQ\NUL\SOH\DC2\ETXZ\ENQ\r\n\ \\v\n\ \\EOT\ENQ\NUL\STX\NUL\DC2\ETX[\STX\DC1\n\ \\f\n\ \\ENQ\ENQ\NUL\STX\NUL\SOH\DC2\ETX[\STX\f\n\ \\f\n\ \\ENQ\ENQ\NUL\STX\NUL\STX\DC2\ETX[\SI\DLE\n\ \\v\n\ \\EOT\ENQ\NUL\STX\SOH\DC2\ETX\\\STX\DC4\n\ \\f\n\ \\ENQ\ENQ\NUL\STX\SOH\SOH\DC2\ETX\\\STX\SI\n\ \\f\n\ \\ENQ\ENQ\NUL\STX\SOH\STX\DC2\ETX\\\DC2\DC3\n\ \\v\n\ \\EOT\ENQ\NUL\STX\STX\DC2\ETX]\STX\NAK\n\ \\f\n\ \\ENQ\ENQ\NUL\STX\STX\SOH\DC2\ETX]\STX\DLE\n\ \\f\n\ \\ENQ\ENQ\NUL\STX\STX\STX\DC2\ETX]\DC3\DC4\n\ \\v\n\ \\EOT\ENQ\NUL\STX\ETX\DC2\ETX^\STX\DC1\n\ \\f\n\ \\ENQ\ENQ\NUL\STX\ETX\SOH\DC2\ETX^\STX\f\n\ \\f\n\ \\ENQ\ENQ\NUL\STX\ETX\STX\DC2\ETX^\SI\DLE\n\ \\v\n\ \\EOT\ENQ\NUL\STX\EOT\DC2\ETX_\STX\DLE\n\ \\f\n\ \\ENQ\ENQ\NUL\STX\EOT\SOH\DC2\ETX_\STX\v\n\ \\f\n\ \\ENQ\ENQ\NUL\STX\EOT\STX\DC2\ETX_\SO\SI\n\ \\n\ \\n\ \\STX\ENQ\SOH\DC2\EOTb\NULk\SOH\n\ \\n\ \\n\ \\ETX\ENQ\SOH\SOH\DC2\ETXb\ENQ\SI\n\ \\v\n\ \\EOT\ENQ\SOH\STX\NUL\DC2\ETXc\STX\SI\n\ \\f\n\ \\ENQ\ENQ\SOH\STX\NUL\SOH\DC2\ETXc\STX\n\ \\n\ \\f\n\ \\ENQ\ENQ\SOH\STX\NUL\STX\DC2\ETXc\r\SO\n\ \\v\n\ \\EOT\ENQ\SOH\STX\SOH\DC2\ETXd\STX\r\n\ \\f\n\ \\ENQ\ENQ\SOH\STX\SOH\SOH\DC2\ETXd\STX\b\n\ \\f\n\ \\ENQ\ENQ\SOH\STX\SOH\STX\DC2\ETXd\v\f\n\ \\v\n\ \\EOT\ENQ\SOH\STX\STX\DC2\ETXe\STX\f\n\ \\f\n\ \\ENQ\ENQ\SOH\STX\STX\SOH\DC2\ETXe\STX\a\n\ \\f\n\ \\ENQ\ENQ\SOH\STX\STX\STX\DC2\ETXe\n\ \\v\n\ \\v\n\ \\EOT\ENQ\SOH\STX\ETX\DC2\ETXf\STX\r\n\ \\f\n\ \\ENQ\ENQ\SOH\STX\ETX\SOH\DC2\ETXf\STX\b\n\ \\f\n\ \\ENQ\ENQ\SOH\STX\ETX\STX\DC2\ETXf\v\f\n\ \\v\n\ \\EOT\ENQ\SOH\STX\EOT\DC2\ETXg\STX\v\n\ \\f\n\ \\ENQ\ENQ\SOH\STX\EOT\SOH\DC2\ETXg\STX\ACK\n\ \\f\n\ \\ENQ\ENQ\SOH\STX\EOT\STX\DC2\ETXg\t\n\ \\n\ \\v\n\ \\EOT\ENQ\SOH\STX\ENQ\DC2\ETXh\STX\v\n\ \\f\n\ \\ENQ\ENQ\SOH\STX\ENQ\SOH\DC2\ETXh\STX\ACK\n\ \\f\n\ \\ENQ\ENQ\SOH\STX\ENQ\STX\DC2\ETXh\t\n\ \\n\ \\v\n\ \\EOT\ENQ\SOH\STX\ACK\DC2\ETXi\STX\DLE\n\ \\f\n\ \\ENQ\ENQ\SOH\STX\ACK\SOH\DC2\ETXi\STX\v\n\ \\f\n\ \\ENQ\ENQ\SOH\STX\ACK\STX\DC2\ETXi\SO\SI\n\ \\v\n\ \\EOT\ENQ\SOH\STX\a\DC2\ETXj\STX\NAK\n\ \\f\n\ \\ENQ\ENQ\SOH\STX\a\SOH\DC2\ETXj\STX\DLE\n\ \\f\n\ \\ENQ\ENQ\SOH\STX\a\STX\DC2\ETXj\DC3\DC4\n\ \\n\ \\n\ \\STX\EOT\SI\DC2\EOTm\NULt\SOH\n\ \\n\ \\n\ \\ETX\EOT\SI\SOH\DC2\ETXm\b\SYN\n\ \\v\n\ \\EOT\EOT\SI\STX\NUL\DC2\ETXn\STX\SI\n\ \\r\n\ \\ENQ\EOT\SI\STX\NUL\EOT\DC2\EOTn\STXm\CAN\n\ \\f\n\ \\ENQ\EOT\SI\STX\NUL\ENQ\DC2\ETXn\STX\a\n\ \\f\n\ \\ENQ\EOT\SI\STX\NUL\SOH\DC2\ETXn\b\n\ \\n\ \\f\n\ \\ENQ\EOT\SI\STX\NUL\ETX\DC2\ETXn\r\SO\n\ \\v\n\ \\EOT\EOT\SI\STX\SOH\DC2\ETXo\STX\DC2\n\ \\r\n\ \\ENQ\EOT\SI\STX\SOH\EOT\DC2\EOTo\STXn\SI\n\ \\f\n\ \\ENQ\EOT\SI\STX\SOH\ENQ\DC2\ETXo\STX\b\n\ \\f\n\ \\ENQ\EOT\SI\STX\SOH\SOH\DC2\ETXo\t\r\n\ \\f\n\ \\ENQ\EOT\SI\STX\SOH\ETX\DC2\ETXo\DLE\DC1\n\ \\v\n\ \\EOT\EOT\SI\STX\STX\DC2\ETXp\STX\DC2\n\ \\r\n\ \\ENQ\EOT\SI\STX\STX\EOT\DC2\EOTp\STXo\DC2\n\ \\f\n\ \\ENQ\EOT\SI\STX\STX\ENQ\DC2\ETXp\STX\b\n\ \\f\n\ \\ENQ\EOT\SI\STX\STX\SOH\DC2\ETXp\t\r\n\ \\f\n\ \\ENQ\EOT\SI\STX\STX\ETX\DC2\ETXp\DLE\DC1\n\ \\v\n\ \\EOT\EOT\SI\STX\ETX\DC2\ETXq\STX\DLE\n\ \\r\n\ \\ENQ\EOT\SI\STX\ETX\EOT\DC2\EOTq\STXp\DC2\n\ \\f\n\ \\ENQ\EOT\SI\STX\ETX\ACK\DC2\ETXq\STX\ACK\n\ \\f\n\ \\ENQ\EOT\SI\STX\ETX\SOH\DC2\ETXq\a\v\n\ \\f\n\ \\ENQ\EOT\SI\STX\ETX\ETX\DC2\ETXq\SO\SI\n\ \\v\n\ \\EOT\EOT\SI\STX\EOT\DC2\ETXr\STX\GS\n\ \\r\n\ \\ENQ\EOT\SI\STX\EOT\EOT\DC2\EOTr\STXq\DLE\n\ \\f\n\ \\ENQ\EOT\SI\STX\EOT\ACK\DC2\ETXr\STX\f\n\ \\f\n\ \\ENQ\EOT\SI\STX\EOT\SOH\DC2\ETXr\r\CAN\n\ \\f\n\ \\ENQ\EOT\SI\STX\EOT\ETX\DC2\ETXr\ESC\FS\n\ \\v\n\ \\EOT\EOT\SI\STX\ENQ\DC2\ETXs\STX\EM\n\ \\r\n\ \\ENQ\EOT\SI\STX\ENQ\EOT\DC2\EOTs\STXr\GS\n\ \\f\n\ \\ENQ\EOT\SI\STX\ENQ\ACK\DC2\ETXs\STX\n\ \\n\ \\f\n\ \\ENQ\EOT\SI\STX\ENQ\SOH\DC2\ETXs\v\DC4\n\ \\f\n\ \\ENQ\EOT\SI\STX\ENQ\ETX\DC2\ETXs\ETB\CAN\n\ \\n\ \\n\ \\STX\EOT\DLE\DC2\EOTv\NUL~\SOH\n\ \\n\ \\n\ \\ETX\EOT\DLE\SOH\DC2\ETXv\b\SYN\n\ \\v\n\ \\EOT\EOT\DLE\STX\NUL\DC2\ETXw\STX,\n\ \\f\n\ \\ENQ\EOT\DLE\STX\NUL\EOT\DC2\ETXw\STX\n\ \\n\ \\f\n\ \\ENQ\EOT\DLE\STX\NUL\ENQ\DC2\ETXw\v\DC1\n\ \\f\n\ \\ENQ\EOT\DLE\STX\NUL\SOH\DC2\ETXw\DC2'\n\ \\f\n\ \\ENQ\EOT\DLE\STX\NUL\ETX\DC2\ETXw*+\n\ \\v\n\ \\EOT\EOT\DLE\STX\SOH\DC2\ETXx\STX&\n\ \\r\n\ \\ENQ\EOT\DLE\STX\SOH\EOT\DC2\EOTx\STXw,\n\ \\f\n\ \\ENQ\EOT\DLE\STX\SOH\ENQ\DC2\ETXx\STX\a\n\ \\f\n\ \\ENQ\EOT\DLE\STX\SOH\SOH\DC2\ETXx\b!\n\ \\f\n\ \\ENQ\EOT\DLE\STX\SOH\ETX\DC2\ETXx$%\n\ \\v\n\ \\EOT\EOT\DLE\STX\STX\DC2\ETXy\STX\DC1\n\ \\r\n\ \\ENQ\EOT\DLE\STX\STX\EOT\DC2\EOTy\STXx&\n\ \\f\n\ \\ENQ\EOT\DLE\STX\STX\ENQ\DC2\ETXy\STX\a\n\ \\f\n\ \\ENQ\EOT\DLE\STX\STX\SOH\DC2\ETXy\b\f\n\ \\f\n\ \\ENQ\EOT\DLE\STX\STX\ETX\DC2\ETXy\SI\DLE\n\ \\v\n\ \\EOT\EOT\DLE\STX\ETX\DC2\ETXz\STX\DC3\n\ \\r\n\ \\ENQ\EOT\DLE\STX\ETX\EOT\DC2\EOTz\STXy\DC1\n\ \\f\n\ \\ENQ\EOT\DLE\STX\ETX\ENQ\DC2\ETXz\STX\b\n\ \\f\n\ \\ENQ\EOT\DLE\STX\ETX\SOH\DC2\ETXz\t\SO\n\ \\f\n\ \\ENQ\EOT\DLE\STX\ETX\ETX\DC2\ETXz\DC1\DC2\n\ \\v\n\ \\EOT\EOT\DLE\STX\EOT\DC2\ETX{\STX\SI\n\ \\r\n\ \\ENQ\EOT\DLE\STX\EOT\EOT\DC2\EOT{\STXz\DC3\n\ \\f\n\ \\ENQ\EOT\DLE\STX\EOT\ENQ\DC2\ETX{\STX\a\n\ \\f\n\ \\ENQ\EOT\DLE\STX\EOT\SOH\DC2\ETX{\b\n\ \\n\ \\f\n\ \\ENQ\EOT\DLE\STX\EOT\ETX\DC2\ETX{\r\SO\n\ \\v\n\ \\EOT\EOT\DLE\STX\ENQ\DC2\ETX|\STX(\n\ \\f\n\ \\ENQ\EOT\DLE\STX\ENQ\EOT\DC2\ETX|\STX\n\ \\n\ \\f\n\ \\ENQ\EOT\DLE\STX\ENQ\ENQ\DC2\ETX|\v\DLE\n\ \\f\n\ \\ENQ\EOT\DLE\STX\ENQ\SOH\DC2\ETX|\DC1#\n\ \\f\n\ \\ENQ\EOT\DLE\STX\ENQ\ETX\DC2\ETX|&'\n\ \\v\n\ \\EOT\EOT\DLE\STX\ACK\DC2\ETX}\STX*\n\ \\f\n\ \\ENQ\EOT\DLE\STX\ACK\EOT\DC2\ETX}\STX\n\ \\n\ \\f\n\ \\ENQ\EOT\DLE\STX\ACK\ENQ\DC2\ETX}\v\DC1\n\ \\f\n\ \\ENQ\EOT\DLE\STX\ACK\SOH\DC2\ETX}\DC2%\n\ \\f\n\ \\ENQ\EOT\DLE\STX\ACK\ETX\DC2\ETX}()b\ACKproto3" ================================================ FILE: semantic-proto/src/Proto/Semantic_Fields.hs ================================================ {- This file was auto-generated from semantic.proto by the proto-lens-protoc program. -} {-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies, UndecidableInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances, PatternSynonyms, MagicHash, NoImplicitPrelude, DataKinds, BangPatterns, TypeApplications, OverloadedStrings, DerivingStrategies#-} {-# OPTIONS_GHC -Wno-unused-imports#-} {-# OPTIONS_GHC -Wno-duplicate-exports#-} {-# OPTIONS_GHC -Wno-dodgy-exports#-} module Proto.Semantic_Fields where import qualified Data.ProtoLens.Runtime.Prelude as Prelude import qualified Data.ProtoLens.Runtime.Data.Int as Data.Int import qualified Data.ProtoLens.Runtime.Data.Monoid as Data.Monoid import qualified Data.ProtoLens.Runtime.Data.Word as Data.Word import qualified Data.ProtoLens.Runtime.Data.ProtoLens as Data.ProtoLens import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Bytes as Data.ProtoLens.Encoding.Bytes import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Growing as Data.ProtoLens.Encoding.Growing import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Parser.Unsafe as Data.ProtoLens.Encoding.Parser.Unsafe import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Wire as Data.ProtoLens.Encoding.Wire import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Field as Data.ProtoLens.Field import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Message.Enum as Data.ProtoLens.Message.Enum import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Service.Types as Data.ProtoLens.Service.Types import qualified Data.ProtoLens.Runtime.Lens.Family2 as Lens.Family2 import qualified Data.ProtoLens.Runtime.Lens.Family2.Unchecked as Lens.Family2.Unchecked import qualified Data.ProtoLens.Runtime.Data.Text as Data.Text import qualified Data.ProtoLens.Runtime.Data.Map as Data.Map import qualified Data.ProtoLens.Runtime.Data.ByteString as Data.ByteString import qualified Data.ProtoLens.Runtime.Data.ByteString.Char8 as Data.ByteString.Char8 import qualified Data.ProtoLens.Runtime.Data.Text.Encoding as Data.Text.Encoding import qualified Data.ProtoLens.Runtime.Data.Vector as Data.Vector import qualified Data.ProtoLens.Runtime.Data.Vector.Generic as Data.Vector.Generic import qualified Data.ProtoLens.Runtime.Data.Vector.Unboxed as Data.Vector.Unboxed import qualified Data.ProtoLens.Runtime.Text.Read as Text.Read blobOid :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "blobOid" a) => Lens.Family2.LensLike' f s a blobOid = Data.ProtoLens.Field.field @"blobOid" blobs :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "blobs" a) => Lens.Family2.LensLike' f s a blobs = Data.ProtoLens.Field.field @"blobs" byteRange :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "byteRange" a) => Lens.Family2.LensLike' f s a byteRange = Data.ProtoLens.Field.field @"byteRange" column :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "column" a) => Lens.Family2.LensLike' f s a column = Data.ProtoLens.Field.field @"column" content :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "content" a) => Lens.Family2.LensLike' f s a content = Data.ProtoLens.Field.field @"content" docs :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "docs" a) => Lens.Family2.LensLike' f s a docs = Data.ProtoLens.Field.field @"docs" docstring :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "docstring" a) => Lens.Family2.LensLike' f s a docstring = Data.ProtoLens.Field.field @"docstring" edges :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "edges" a) => Lens.Family2.LensLike' f s a edges = Data.ProtoLens.Field.field @"edges" end :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "end" a) => Lens.Family2.LensLike' f s a end = Data.ProtoLens.Field.field @"end" endingScopeStack :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "endingScopeStack" a) => Lens.Family2.LensLike' f s a endingScopeStack = Data.ProtoLens.Field.field @"endingScopeStack" endingSymbolStack :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "endingSymbolStack" a) => Lens.Family2.LensLike' f s a endingSymbolStack = Data.ProtoLens.Field.field @"endingSymbolStack" error :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "error" a) => Lens.Family2.LensLike' f s a error = Data.ProtoLens.Field.field @"error" errors :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "errors" a) => Lens.Family2.LensLike' f s a errors = Data.ProtoLens.Field.field @"errors" files :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "files" a) => Lens.Family2.LensLike' f s a files = Data.ProtoLens.Field.field @"files" from :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "from" a) => Lens.Family2.LensLike' f s a from = Data.ProtoLens.Field.field @"from" hostname :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "hostname" a) => Lens.Family2.LensLike' f s a hostname = Data.ProtoLens.Field.field @"hostname" id :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "id" a) => Lens.Family2.LensLike' f s a id = Data.ProtoLens.Field.field @"id" kind :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "kind" a) => Lens.Family2.LensLike' f s a kind = Data.ProtoLens.Field.field @"kind" language :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "language" a) => Lens.Family2.LensLike' f s a language = Data.ProtoLens.Field.field @"language" line :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "line" a) => Lens.Family2.LensLike' f s a line = Data.ProtoLens.Field.field @"line" maybe'byteRange :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "maybe'byteRange" a) => Lens.Family2.LensLike' f s a maybe'byteRange = Data.ProtoLens.Field.field @"maybe'byteRange" maybe'docs :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "maybe'docs" a) => Lens.Family2.LensLike' f s a maybe'docs = Data.ProtoLens.Field.field @"maybe'docs" maybe'end :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "maybe'end" a) => Lens.Family2.LensLike' f s a maybe'end = Data.ProtoLens.Field.field @"maybe'end" maybe'span :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "maybe'span" a) => Lens.Family2.LensLike' f s a maybe'span = Data.ProtoLens.Field.field @"maybe'span" maybe'start :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "maybe'start" a) => Lens.Family2.LensLike' f s a maybe'start = Data.ProtoLens.Field.field @"maybe'start" maybe'utf16CodeUnitSpan :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "maybe'utf16CodeUnitSpan" a) => Lens.Family2.LensLike' f s a maybe'utf16CodeUnitSpan = Data.ProtoLens.Field.field @"maybe'utf16CodeUnitSpan" name :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "name" a) => Lens.Family2.LensLike' f s a name = Data.ProtoLens.Field.field @"name" nodeType :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "nodeType" a) => Lens.Family2.LensLike' f s a nodeType = Data.ProtoLens.Field.field @"nodeType" nodes :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "nodes" a) => Lens.Family2.LensLike' f s a nodes = Data.ProtoLens.Field.field @"nodes" path :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "path" a) => Lens.Family2.LensLike' f s a path = Data.ProtoLens.Field.field @"path" paths :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "paths" a) => Lens.Family2.LensLike' f s a paths = Data.ProtoLens.Field.field @"paths" service :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "service" a) => Lens.Family2.LensLike' f s a service = Data.ProtoLens.Field.field @"service" sha :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "sha" a) => Lens.Family2.LensLike' f s a sha = Data.ProtoLens.Field.field @"sha" span :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "span" a) => Lens.Family2.LensLike' f s a span = Data.ProtoLens.Field.field @"span" start :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "start" a) => Lens.Family2.LensLike' f s a start = Data.ProtoLens.Field.field @"start" startingScopeStackSize :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "startingScopeStackSize" a) => Lens.Family2.LensLike' f s a startingScopeStackSize = Data.ProtoLens.Field.field @"startingScopeStackSize" startingSymbolStack :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "startingSymbolStack" a) => Lens.Family2.LensLike' f s a startingSymbolStack = Data.ProtoLens.Field.field @"startingSymbolStack" status :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "status" a) => Lens.Family2.LensLike' f s a status = Data.ProtoLens.Field.field @"status" symbol :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "symbol" a) => Lens.Family2.LensLike' f s a symbol = Data.ProtoLens.Field.field @"symbol" symbols :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "symbols" a) => Lens.Family2.LensLike' f s a symbols = Data.ProtoLens.Field.field @"symbols" syntaxType :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "syntaxType" a) => Lens.Family2.LensLike' f s a syntaxType = Data.ProtoLens.Field.field @"syntaxType" timestamp :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "timestamp" a) => Lens.Family2.LensLike' f s a timestamp = Data.ProtoLens.Field.field @"timestamp" to :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "to" a) => Lens.Family2.LensLike' f s a to = Data.ProtoLens.Field.field @"to" utf16CodeUnitSpan :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "utf16CodeUnitSpan" a) => Lens.Family2.LensLike' f s a utf16CodeUnitSpan = Data.ProtoLens.Field.field @"utf16CodeUnitSpan" vec'blobs :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "vec'blobs" a) => Lens.Family2.LensLike' f s a vec'blobs = Data.ProtoLens.Field.field @"vec'blobs" vec'endingScopeStack :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "vec'endingScopeStack" a) => Lens.Family2.LensLike' f s a vec'endingScopeStack = Data.ProtoLens.Field.field @"vec'endingScopeStack" vec'endingSymbolStack :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "vec'endingSymbolStack" a) => Lens.Family2.LensLike' f s a vec'endingSymbolStack = Data.ProtoLens.Field.field @"vec'endingSymbolStack" vec'errors :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "vec'errors" a) => Lens.Family2.LensLike' f s a vec'errors = Data.ProtoLens.Field.field @"vec'errors" vec'files :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "vec'files" a) => Lens.Family2.LensLike' f s a vec'files = Data.ProtoLens.Field.field @"vec'files" vec'nodes :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "vec'nodes" a) => Lens.Family2.LensLike' f s a vec'nodes = Data.ProtoLens.Field.field @"vec'nodes" vec'paths :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "vec'paths" a) => Lens.Family2.LensLike' f s a vec'paths = Data.ProtoLens.Field.field @"vec'paths" vec'startingSymbolStack :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "vec'startingSymbolStack" a) => Lens.Family2.LensLike' f s a vec'startingSymbolStack = Data.ProtoLens.Field.field @"vec'startingSymbolStack" vec'symbols :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "vec'symbols" a) => Lens.Family2.LensLike' f s a vec'symbols = Data.ProtoLens.Field.field @"vec'symbols" ================================================ FILE: semantic-proto/src/Proto/Semantic_JSON.hs ================================================ -- Code generated by protoc-gen-jsonpb_haskell 0.1.0, DO NOT EDIT. {-# OPTIONS_GHC -Wno-orphans -Wno-unused-imports -Wno-missing-export-lists #-} module Proto.Semantic_JSON where import Prelude(($), (.), (<$>), pure, show, Maybe(..)) import Data.ProtoLens.Runtime.Lens.Family2 ((^.), (.~), (&)) import Data.Monoid (mconcat) import Control.Monad (msum) import Data.ProtoLens (defMessage) import qualified Data.Aeson as A import qualified Data.Aeson.Encoding as E import Data.ProtoLens.JSONPB as JSONPB import qualified Data.Text as T import Proto.Semantic as P import Proto.Semantic_Fields as P instance FromJSONPB PingRequest where parseJSONPB = withObject "PingRequest" $ \obj -> do service' <- obj .: "service" pure $ defMessage & P.service .~ service' instance ToJSONPB PingRequest where toJSONPB x = object [ "service" .= (x^.service) ] toEncodingPB x = pairs [ "service" .= (x^.service) ] instance FromJSON PingRequest where parseJSON = parseJSONPB instance ToJSON PingRequest where toJSON = toAesonValue toEncoding = toAesonEncoding instance FromJSONPB PingResponse where parseJSONPB = withObject "PingResponse" $ \obj -> do status' <- obj .: "status" hostname' <- obj .: "hostname" timestamp' <- obj .: "timestamp" sha' <- obj .: "sha" pure $ defMessage & P.status .~ status' & P.hostname .~ hostname' & P.timestamp .~ timestamp' & P.sha .~ sha' instance ToJSONPB PingResponse where toJSONPB x = object [ "status" .= (x^.status) , "hostname" .= (x^.hostname) , "timestamp" .= (x^.timestamp) , "sha" .= (x^.sha) ] toEncodingPB x = pairs [ "status" .= (x^.status) , "hostname" .= (x^.hostname) , "timestamp" .= (x^.timestamp) , "sha" .= (x^.sha) ] instance FromJSON PingResponse where parseJSON = parseJSONPB instance ToJSON PingResponse where toJSON = toAesonValue toEncoding = toAesonEncoding instance FromJSONPB ParseTreeRequest where parseJSONPB = withObject "ParseTreeRequest" $ \obj -> do blobs' <- obj .: "blobs" pure $ defMessage & P.blobs .~ blobs' instance ToJSONPB ParseTreeRequest where toJSONPB x = object [ "blobs" .= (x^.blobs) ] toEncodingPB x = pairs [ "blobs" .= (x^.blobs) ] instance FromJSON ParseTreeRequest where parseJSON = parseJSONPB instance ToJSON ParseTreeRequest where toJSON = toAesonValue toEncoding = toAesonEncoding instance FromJSONPB ParseTreeSymbolResponse where parseJSONPB = withObject "ParseTreeSymbolResponse" $ \obj -> do files' <- obj .: "files" pure $ defMessage & P.files .~ files' instance ToJSONPB ParseTreeSymbolResponse where toJSONPB x = object [ "files" .= (x^.files) ] toEncodingPB x = pairs [ "files" .= (x^.files) ] instance FromJSON ParseTreeSymbolResponse where parseJSON = parseJSONPB instance ToJSON ParseTreeSymbolResponse where toJSON = toAesonValue toEncoding = toAesonEncoding instance FromJSONPB StackGraphRequest where parseJSONPB = withObject "StackGraphRequest" $ \obj -> do blobs' <- obj .: "blobs" pure $ defMessage & P.blobs .~ blobs' instance ToJSONPB StackGraphRequest where toJSONPB x = object [ "blobs" .= (x^.blobs) ] toEncodingPB x = pairs [ "blobs" .= (x^.blobs) ] instance FromJSON StackGraphRequest where parseJSON = parseJSONPB instance ToJSON StackGraphRequest where toJSON = toAesonValue toEncoding = toAesonEncoding instance FromJSONPB StackGraphResponse where parseJSONPB = withObject "StackGraphResponse" $ \obj -> do files' <- obj .: "files" pure $ defMessage & P.files .~ files' instance ToJSONPB StackGraphResponse where toJSONPB x = object [ "files" .= (x^.files) ] toEncodingPB x = pairs [ "files" .= (x^.files) ] instance FromJSON StackGraphResponse where parseJSON = parseJSONPB instance ToJSON StackGraphResponse where toJSON = toAesonValue toEncoding = toAesonEncoding instance FromJSONPB ParseError where parseJSONPB = withObject "ParseError" $ \obj -> do error' <- obj .: "error" pure $ defMessage & P.error .~ error' instance ToJSONPB ParseError where toJSONPB x = object [ "error" .= (x^.error) ] toEncodingPB x = pairs [ "error" .= (x^.error) ] instance FromJSON ParseError where parseJSON = parseJSONPB instance ToJSON ParseError where toJSON = toAesonValue toEncoding = toAesonEncoding instance FromJSONPB Blob where parseJSONPB = withObject "Blob" $ \obj -> do content' <- obj .: "content" path' <- obj .: "path" language' <- obj .: "language" pure $ defMessage & P.content .~ content' & P.path .~ path' & P.language .~ language' instance ToJSONPB Blob where toJSONPB x = object [ "content" .= (x^.content) , "path" .= (x^.path) , "language" .= (x^.language) ] toEncodingPB x = pairs [ "content" .= (x^.content) , "path" .= (x^.path) , "language" .= (x^.language) ] instance FromJSON Blob where parseJSON = parseJSONPB instance ToJSON Blob where toJSON = toAesonValue toEncoding = toAesonEncoding instance FromJSONPB File where parseJSONPB = withObject "File" $ \obj -> do path' <- obj .: "path" language' <- obj .: "language" symbols' <- obj .: "symbols" errors' <- obj .: "errors" blobOid' <- obj .: "blobOid" pure $ defMessage & P.path .~ path' & P.language .~ language' & P.symbols .~ symbols' & P.errors .~ errors' & P.blobOid .~ blobOid' instance ToJSONPB File where toJSONPB x = object [ "path" .= (x^.path) , "language" .= (x^.language) , "symbols" .= (x^.symbols) , "errors" .= (x^.errors) , "blobOid" .= (x^.blobOid) ] toEncodingPB x = pairs [ "path" .= (x^.path) , "language" .= (x^.language) , "symbols" .= (x^.symbols) , "errors" .= (x^.errors) , "blobOid" .= (x^.blobOid) ] instance FromJSON File where parseJSON = parseJSONPB instance ToJSON File where toJSON = toAesonValue toEncoding = toAesonEncoding instance FromJSONPB Symbol where parseJSONPB = withObject "Symbol" $ \obj -> do symbol' <- obj .: "symbol" kind' <- obj .: "kind" line' <- obj .: "line" span' <- obj A..:? "span" docs' <- obj A..:? "docs" nodeType' <- obj .: "nodeType" syntaxType' <- obj .: "syntaxType" utf16CodeUnitSpan' <- obj A..:? "utf16CodeUnitSpan" byteRange' <- obj A..:? "byteRange" pure $ defMessage & P.symbol .~ symbol' & P.kind .~ kind' & P.line .~ line' & P.maybe'span .~ span' & P.maybe'docs .~ docs' & P.nodeType .~ nodeType' & P.syntaxType .~ syntaxType' & P.maybe'utf16CodeUnitSpan .~ utf16CodeUnitSpan' & P.maybe'byteRange .~ byteRange' instance ToJSONPB Symbol where toJSONPB x = object [ "symbol" .= (x^.symbol) , "kind" .= (x^.kind) , "line" .= (x^.line) , "span" .= (x^.maybe'span) , "docs" .= (x^.maybe'docs) , "nodeType" .= (x^.nodeType) , "syntaxType" .= (x^.syntaxType) , "utf16CodeUnitSpan" .= (x^.maybe'utf16CodeUnitSpan) , "byteRange" .= (x^.maybe'byteRange) ] toEncodingPB x = pairs [ "symbol" .= (x^.symbol) , "kind" .= (x^.kind) , "line" .= (x^.line) , "span" .= (x^.maybe'span) , "docs" .= (x^.maybe'docs) , "nodeType" .= (x^.nodeType) , "syntaxType" .= (x^.syntaxType) , "utf16CodeUnitSpan" .= (x^.maybe'utf16CodeUnitSpan) , "byteRange" .= (x^.maybe'byteRange) ] instance FromJSON Symbol where parseJSON = parseJSONPB instance ToJSON Symbol where toJSON = toAesonValue toEncoding = toAesonEncoding instance FromJSONPB Docstring where parseJSONPB = withObject "Docstring" $ \obj -> do docstring' <- obj .: "docstring" pure $ defMessage & P.docstring .~ docstring' instance ToJSONPB Docstring where toJSONPB x = object [ "docstring" .= (x^.docstring) ] toEncodingPB x = pairs [ "docstring" .= (x^.docstring) ] instance FromJSON Docstring where parseJSON = parseJSONPB instance ToJSON Docstring where toJSON = toAesonValue toEncoding = toAesonEncoding instance FromJSONPB Position where parseJSONPB = withObject "Position" $ \obj -> do line' <- obj .: "line" column' <- obj .: "column" pure $ defMessage & P.line .~ line' & P.column .~ column' instance ToJSONPB Position where toJSONPB x = object [ "line" .= (x^.line) , "column" .= (x^.column) ] toEncodingPB x = pairs [ "line" .= (x^.line) , "column" .= (x^.column) ] instance FromJSON Position where parseJSON = parseJSONPB instance ToJSON Position where toJSON = toAesonValue toEncoding = toAesonEncoding instance FromJSONPB Span where parseJSONPB = withObject "Span" $ \obj -> do start' <- obj A..:? "start" end' <- obj A..:? "end" pure $ defMessage & P.maybe'start .~ start' & P.maybe'end .~ end' instance ToJSONPB Span where toJSONPB x = object [ "start" .= (x^.maybe'start) , "end" .= (x^.maybe'end) ] toEncodingPB x = pairs [ "start" .= (x^.maybe'start) , "end" .= (x^.maybe'end) ] instance FromJSON Span where parseJSON = parseJSONPB instance ToJSON Span where toJSON = toAesonValue toEncoding = toAesonEncoding instance FromJSONPB ByteRange where parseJSONPB = withObject "ByteRange" $ \obj -> do start' <- obj .: "start" end' <- obj .: "end" pure $ defMessage & P.start .~ start' & P.end .~ end' instance ToJSONPB ByteRange where toJSONPB x = object [ "start" .= (x^.start) , "end" .= (x^.end) ] toEncodingPB x = pairs [ "start" .= (x^.start) , "end" .= (x^.end) ] instance FromJSON ByteRange where parseJSON = parseJSONPB instance ToJSON ByteRange where toJSON = toAesonValue toEncoding = toAesonEncoding instance FromJSONPB StackGraphFile where parseJSONPB = withObject "StackGraphFile" $ \obj -> do path' <- obj .: "path" language' <- obj .: "language" nodes' <- obj .: "nodes" paths' <- obj .: "paths" errors' <- obj .: "errors" pure $ defMessage & P.path .~ path' & P.language .~ language' & P.nodes .~ nodes' & P.paths .~ paths' & P.errors .~ errors' instance ToJSONPB StackGraphFile where toJSONPB x = object [ "path" .= (x^.path) , "language" .= (x^.language) , "nodes" .= (x^.nodes) , "paths" .= (x^.paths) , "errors" .= (x^.errors) ] toEncodingPB x = pairs [ "path" .= (x^.path) , "language" .= (x^.language) , "nodes" .= (x^.nodes) , "paths" .= (x^.paths) , "errors" .= (x^.errors) ] instance FromJSON StackGraphFile where parseJSON = parseJSONPB instance ToJSON StackGraphFile where toJSON = toAesonValue toEncoding = toAesonEncoding instance FromJSONPB StackGraphNode where parseJSONPB = withObject "StackGraphNode" $ \obj -> do id' <- obj .: "id" name' <- obj .: "name" line' <- obj .: "line" span' <- obj A..:? "span" syntaxType' <- obj .: "syntaxType" nodeType' <- obj .: "nodeType" pure $ defMessage & P.id .~ id' & P.name .~ name' & P.line .~ line' & P.maybe'span .~ span' & P.syntaxType .~ syntaxType' & P.nodeType .~ nodeType' instance ToJSONPB StackGraphNode where toJSONPB x = object [ "id" .= (x^.id) , "name" .= (x^.name) , "line" .= (x^.line) , "span" .= (x^.maybe'span) , "syntaxType" .= (x^.syntaxType) , "nodeType" .= (x^.nodeType) ] toEncodingPB x = pairs [ "id" .= (x^.id) , "name" .= (x^.name) , "line" .= (x^.line) , "span" .= (x^.maybe'span) , "syntaxType" .= (x^.syntaxType) , "nodeType" .= (x^.nodeType) ] instance FromJSON StackGraphNode where parseJSON = parseJSONPB instance ToJSON StackGraphNode where toJSON = toAesonValue toEncoding = toAesonEncoding instance FromJSONPB StackGraphPath where parseJSONPB = withObject "StackGraphPath" $ \obj -> do startingSymbolStack' <- obj .: "startingSymbolStack" startingScopeStackSize' <- obj .: "startingScopeStackSize" from' <- obj .: "from" edges' <- obj .: "edges" to' <- obj .: "to" endingScopeStack' <- obj .: "endingScopeStack" endingSymbolStack' <- obj .: "endingSymbolStack" pure $ defMessage & P.startingSymbolStack .~ startingSymbolStack' & P.startingScopeStackSize .~ startingScopeStackSize' & P.from .~ from' & P.edges .~ edges' & P.to .~ to' & P.endingScopeStack .~ endingScopeStack' & P.endingSymbolStack .~ endingSymbolStack' instance ToJSONPB StackGraphPath where toJSONPB x = object [ "startingSymbolStack" .= (x^.startingSymbolStack) , "startingScopeStackSize" .= (x^.startingScopeStackSize) , "from" .= (x^.from) , "edges" .= (x^.edges) , "to" .= (x^.to) , "endingScopeStack" .= (x^.endingScopeStack) , "endingSymbolStack" .= (x^.endingSymbolStack) ] toEncodingPB x = pairs [ "startingSymbolStack" .= (x^.startingSymbolStack) , "startingScopeStackSize" .= (x^.startingScopeStackSize) , "from" .= (x^.from) , "edges" .= (x^.edges) , "to" .= (x^.to) , "endingScopeStack" .= (x^.endingScopeStack) , "endingSymbolStack" .= (x^.endingSymbolStack) ] instance FromJSON StackGraphPath where parseJSON = parseJSONPB instance ToJSON StackGraphPath where toJSON = toAesonValue toEncoding = toAesonEncoding instance FromJSONPB NodeType where parseJSONPB (JSONPB.String "ROOT_SCOPE") = pure ROOT_SCOPE parseJSONPB (JSONPB.String "JUMP_TO_SCOPE") = pure JUMP_TO_SCOPE parseJSONPB (JSONPB.String "EXPORTED_SCOPE") = pure EXPORTED_SCOPE parseJSONPB (JSONPB.String "DEFINITION") = pure DEFINITION parseJSONPB (JSONPB.String "REFERENCE") = pure REFERENCE parseJSONPB x = typeMismatch "NodeType" x instance ToJSONPB NodeType where toJSONPB x _ = A.String . T.toUpper . T.pack $ show x toEncodingPB x _ = E.text . T.toUpper . T.pack $ show x instance FromJSON NodeType where parseJSON = parseJSONPB instance ToJSON NodeType where toJSON = toAesonValue toEncoding = toAesonEncoding instance FromJSONPB SyntaxType where parseJSONPB (JSONPB.String "FUNCTION") = pure FUNCTION parseJSONPB (JSONPB.String "METHOD") = pure METHOD parseJSONPB (JSONPB.String "CLASS") = pure CLASS parseJSONPB (JSONPB.String "MODULE") = pure MODULE parseJSONPB (JSONPB.String "CALL") = pure CALL parseJSONPB (JSONPB.String "TYPE") = pure TYPE parseJSONPB (JSONPB.String "INTERFACE") = pure INTERFACE parseJSONPB (JSONPB.String "IMPLEMENTATION") = pure IMPLEMENTATION parseJSONPB x = typeMismatch "SyntaxType" x instance ToJSONPB SyntaxType where toJSONPB x _ = A.String . T.toUpper . T.pack $ show x toEncodingPB x _ = E.text . T.toUpper . T.pack $ show x instance FromJSON SyntaxType where parseJSON = parseJSONPB instance ToJSON SyntaxType where toJSON = toAesonValue toEncoding = toAesonEncoding ================================================ FILE: semantic-python/BUILD.bazel ================================================ package(default_visibility = ["//visibility:public"]) load( "//:build/common.bzl", "semantic_language_library", "semantic_language_parsing_test", ) load( "@rules_haskell//haskell:defs.bzl", "haskell_binary", ) semantic_language_library( name = "semantic-python", srcs = glob( include = ["src/**/*.hs"], exclude = [ "src/Language/Python/Core.hs", "src/Language/Python/Failure.hs", "src/Language/Python/ScopeGraph.hs", ], ), language = "python", ) semantic_language_parsing_test(language = "python") haskell_binary( name = "bench", srcs = glob(["bench/**/*.hs"]), deps = [ ":semantic-python", "//:base", "//:bytestring", "//semantic-ast", "@stackage//:gauge", ], ) ================================================ FILE: semantic-python/LICENSE ================================================ MIT License Copyright (c) 2019 GitHub Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: semantic-python/README.md ================================================ # Semantic support for Python This package implements `semantic` support for Python. ================================================ FILE: semantic-python/Setup.hs ================================================ import Distribution.Simple main = defaultMain ================================================ FILE: semantic-python/bench/Bench.hs ================================================ {-# LANGUAGE TypeApplications #-} module Main ( main ) where import Control.Monad import qualified Data.ByteString as B import Gauge import System.Exit (die) import System.Environment (getArgs) import qualified Language.Python.AST as Py import Language.Python.Grammar import AST.Unmarshal main :: IO () main = do getArgs >>= defaultMain . map (bench <*> nfIO . (() <$) . parseFile) parseFile :: FilePath -> IO (Py.Module ()) parseFile = either die pure <=< parseByteString @Py.Module @() tree_sitter_python <=< B.readFile ================================================ FILE: semantic-python/semantic-python.cabal ================================================ cabal-version: 2.4 name: semantic-python version: 0.0.0.0 synopsis: Semantic support for Python. description: Semantic support for Python. homepage: https://github.com/github/semantic/tree/master/semantic-python#readme bug-reports: https://github.com/github/semantic/issues license: MIT license-file: LICENSE author: The Semantic authors maintainer: opensource+semantic@github.com copyright: (c) 2019 GitHub, Inc. category: Language build-type: Simple stability: alpha extra-source-files: README.md tested-with: GHC == 8.6.5 common haskell default-language: Haskell2010 ghc-options: -Weverything -Wno-missing-local-signatures -Wno-missing-import-lists -Wno-implicit-prelude -Wno-safe -Wno-unsafe -Wno-name-shadowing -Wno-monomorphism-restriction -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-star-is-type if (impl(ghc >= 8.8)) ghc-options: -Wno-missing-deriving-strategies if (impl(ghc >= 8.10)) ghc-options: -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module if (impl(ghc >= 9.2)) ghc-options: -Wno-missing-kind-signatures cpp-options: -DBAZEL_BUILD=0 library import: haskell exposed-modules: Language.Python Language.Python.AST -- Language.Python.Core Language.Python.Grammar -- Language.Python.Failure Language.Python.Patterns -- Language.Python.ScopeGraph Language.Python.Tags hs-source-dirs: src build-depends: , base >= 4.13 && < 5 , fused-effects ^>= 1.1 , semantic-analysis ^>= 0 , semantic-ast , semantic-proto ^>= 0 , semantic-source ^>= 0.2 , semantic-tags ^>= 0.0 , template-haskell >= 2.15 && < 2.22 , text ^>= 1.2.3 , tree-sitter ^>= 0.9 , tree-sitter-python ^>= 0.9.0.2 -- test-suite compiling -- import: haskell -- type: exitcode-stdio-1.0 -- hs-source-dirs: test -- main-is: CoreTest.hs -- ghc-options: -threaded -- build-depends: semantic-python -- , aeson ^>= 1.4.4 -- , aeson-pretty ^>= 0.8.7 -- , bytestring ^>= 0.10.8.2 -- , containers ^>= 0.6 -- , directory ^>= 1.3.3 -- , exceptions ^>= 0.10.2 -- , pretty-show ^>= 1.9.5 -- , process ^>= 1.6.5 -- , resourcet ^>= 1.2.2 -- , semantic-analysis ^>= 0 -- , streaming ^>= 0.2.2 -- , streaming-process ^>= 0.1 -- , streaming-bytestring ^>= 0.1.6 -- , tasty ^>= 1.2.3 -- , tasty-hunit ^>= 0.10.0.2 -- , trifecta >= 2 && <3 -- , unordered-containers ^>= 0.2.10 -- other-modules: -- Instances -- , Directive -- test-suite graphing -- import: haskell -- type: exitcode-stdio-1.0 -- hs-source-dirs: test-graphing -- main-is: GraphTest.hs -- ghc-options: -threaded -- build-depends: base -- , semantic-python -- -- , semantic-scope-graph -- , bytestring -- , tasty -- , tasty-hunit test-suite test import: haskell type: exitcode-stdio-1.0 hs-source-dirs: test main-is: PreciseTest.hs build-depends: , base , semantic-ast , semantic-python , tasty , tree-sitter-python ^>= 0.9.0.2 executable benchmark import: haskell hs-source-dirs: bench ghc-options: -threaded -rtsopts "-with-rtsopts=-N -A4m -n2m" main-is: Bench.hs build-depends: , base , bytestring , gauge ^>= 0.2.5 , semantic-ast , semantic-python ================================================ FILE: semantic-python/src/Language/Python/AST.hs ================================================ -- Language definition for Python, generated by ast-generate. Do not edit! {-# LANGUAGE CPP #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE QuantifiedConstraints #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} module Language.Python.AST (module Language.Python.AST, getTestCorpusDir) where import qualified AST.Parse import qualified AST.Token import qualified AST.Traversable1.Class import qualified AST.Unmarshal import qualified Data.Foldable import qualified Data.List as Data.OldList import qualified Data.Maybe as GHC.Maybe import qualified Data.Text.Internal import qualified Data.Traversable import qualified GHC.Base import qualified GHC.Generics import qualified GHC.Records import qualified GHC.Show import qualified TreeSitter.Node import TreeSitter.Python (getTestCorpusDir) import qualified Prelude as GHC.Classes debugSymbolNames :: [GHC.Base.String] debugSymbolNames = debugSymbolNames_0 debugSymbolNames_0 :: [GHC.Base.String] debugSymbolNames_0 = [ "end", "identifier", "_import", "_.", "_from", "___future__", "_(", "_)", "_,", "_as", "_*", "_print", "_>>", "_assert", "_:=", "_return", "_del", "_raise", "_pass", "_break", "_continue", "_if", "_:", "_elif", "_else", "_async", "_for", "_in", "_while", "_try", "_except", "_finally", "_with", "_def", "_->", "_=", "_**", "_global", "_nonlocal", "_exec", "_class", "_@", "_not", "_and", "_or", "_+", "_-", "_/", "_%", "_//", "_|", "_&", "_^", "_<<", "_~", "_<", "_<=", "_==", "_!=", "_>=", "_>", "_<>", "_is", "_lambda", "_+=", "_-=", "_*=", "_/=", "_@=", "_//=", "_%=", "_**=", "_>>=", "_<<=", "_&=", "_^=", "_|=", "_yield", "_[", "_]", "ellipsis", "_{", "_}", "escape_sequence", "_not_escape_sequence", "_format_specifier_token1", "type_conversion", "integer", "float", "true", "false", "none", "_await", "comment", "_semicolon", "_newline", "_indent", "_dedent", "_\"", "_string_content", "_\"", "module", "_statement", "_simple_statements", "import_statement", "import_prefix", "relative_import", "future_import_statement", "import_from_statement", "_import_list", "aliased_import", "wildcard_import", "print_statement", "chevron", "assert_statement", "expression_statement", "named_expression", "return_statement", "delete_statement", "raise_statement", "pass_statement", "break_statement", "continue_statement", "if_statement", "elif_clause", "else_clause", "for_statement", "while_statement", "try_statement", "except_clause", "finally_clause", "with_statement", "with_item", "function_definition", "parameters", "lambda_parameters", "_parameters", "default_parameter", "typed_default_parameter", "list_splat", "dictionary_splat", "global_statement", "nonlocal_statement", "exec_statement", "class_definition", "parenthesized_expression", "argument_list", "decorated_definition", "decorator", "block", "variables", "expression_list", "dotted_name", "_expression_within_for_in_clause", "_expression", "_primary_expression", "not_operator", "boolean_operator", "binary_operator", "unary_operator", "comparison_operator", "lambda", "lambda", "assignment", "augmented_assignment", "_right_hand_side", "yield", "attribute", "subscript", "slice", "call", "typed_parameter", "type", "keyword_argument", "list", "_comprehension_clauses", "list_comprehension", "dictionary", "dictionary_comprehension", "pair", "set", "set_comprehension", "parenthesized_expression", "tuple", "generator_expression", "for_in_clause", "if_clause", "conditional_expression", "concatenated_string", "string", "interpolation", "format_specifier", "format_expression", "await", "_module_repeat1", "__simple_statements_repeat1", "_import_prefix_repeat1", "__import_list_repeat1", "_print_statement_repeat1", "_assert_statement_repeat1", "_if_statement_repeat1", "_try_statement_repeat1", "_with_statement_repeat1", "__parameters_repeat1", "_global_statement_repeat1", "_argument_list_repeat1", "_decorated_definition_repeat1", "_variables_repeat1", "_dotted_name_repeat1", "_comparison_operator_repeat1", "_subscript_repeat1", "_list_repeat1", "__comprehension_clauses_repeat1", "_dictionary_repeat1", "_tuple_repeat1", "_for_in_clause_repeat1", "_concatenated_string_repeat1", "_string_repeat1", "_format_specifier_repeat1" ] newtype 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)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1. AST.Traversable1.Class.Traversable1 a_1 ) instance GHC.Records.HasField "ann" (CompoundStatement a_2) a_2 where getField = AST.Unmarshal.gann GHC.Base.. getCompoundStatement deriving instance GHC.Classes.Eq a_3 => GHC.Classes.Eq (CompoundStatement a_3) deriving instance GHC.Classes.Ord a_4 => GHC.Classes.Ord (CompoundStatement a_4) deriving instance GHC.Show.Show a_5 => GHC.Show.Show (CompoundStatement a_5) instance AST.Unmarshal.Unmarshal CompoundStatement instance Data.Foldable.Foldable CompoundStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor CompoundStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable CompoundStatement where traverse = AST.Traversable1.Class.traverseDefault1 newtype 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)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_6. AST.Traversable1.Class.Traversable1 a_6 ) instance GHC.Records.HasField "ann" (Expression a_7) a_7 where getField = AST.Unmarshal.gann GHC.Base.. getExpression deriving instance GHC.Classes.Eq a_8 => GHC.Classes.Eq (Expression a_8) deriving instance GHC.Classes.Ord a_9 => GHC.Classes.Ord (Expression a_9) deriving instance GHC.Show.Show a_10 => GHC.Show.Show (Expression a_10) instance AST.Unmarshal.Unmarshal Expression instance Data.Foldable.Foldable Expression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Expression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Expression where traverse = AST.Traversable1.Class.traverseDefault1 newtype Parameter a = Parameter {getParameter :: ((DefaultParameter GHC.Generics.:+: DictionarySplat GHC.Generics.:+: Identifier GHC.Generics.:+: ListSplat GHC.Generics.:+: Tuple GHC.Generics.:+: TypedDefaultParameter GHC.Generics.:+: TypedParameter) a)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_11. AST.Traversable1.Class.Traversable1 a_11 ) instance GHC.Records.HasField "ann" (Parameter a_12) a_12 where getField = AST.Unmarshal.gann GHC.Base.. getParameter deriving instance GHC.Classes.Eq a_13 => GHC.Classes.Eq (Parameter a_13) deriving instance GHC.Classes.Ord a_14 => GHC.Classes.Ord (Parameter a_14) deriving instance GHC.Show.Show a_15 => GHC.Show.Show (Parameter a_15) instance AST.Unmarshal.Unmarshal Parameter instance Data.Foldable.Foldable Parameter where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Parameter where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Parameter where traverse = AST.Traversable1.Class.traverseDefault1 newtype 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)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_16. AST.Traversable1.Class.Traversable1 a_16 ) instance GHC.Records.HasField "ann" (PrimaryExpression a_17) a_17 where getField = AST.Unmarshal.gann GHC.Base.. getPrimaryExpression deriving instance GHC.Classes.Eq a_18 => GHC.Classes.Eq (PrimaryExpression a_18) deriving instance GHC.Classes.Ord a_19 => GHC.Classes.Ord (PrimaryExpression a_19) deriving instance GHC.Show.Show a_20 => GHC.Show.Show (PrimaryExpression a_20) instance AST.Unmarshal.Unmarshal PrimaryExpression instance Data.Foldable.Foldable PrimaryExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor PrimaryExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable PrimaryExpression where traverse = AST.Traversable1.Class.traverseDefault1 newtype 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)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_21. AST.Traversable1.Class.Traversable1 a_21 ) instance GHC.Records.HasField "ann" (SimpleStatement a_22) a_22 where getField = AST.Unmarshal.gann GHC.Base.. getSimpleStatement deriving instance GHC.Classes.Eq a_23 => GHC.Classes.Eq (SimpleStatement a_23) deriving instance GHC.Classes.Ord a_24 => GHC.Classes.Ord (SimpleStatement a_24) deriving instance GHC.Show.Show a_25 => GHC.Show.Show (SimpleStatement a_25) instance AST.Unmarshal.Unmarshal SimpleStatement instance Data.Foldable.Foldable SimpleStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SimpleStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SimpleStatement where traverse = AST.Traversable1.Class.traverseDefault1 data AliasedImport a = AliasedImport { ann :: a, alias :: (AST.Parse.Err (Identifier a)), name :: (AST.Parse.Err (DottedName a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_26. AST.Traversable1.Class.Traversable1 a_26 ) instance AST.Unmarshal.SymbolMatching AliasedImport where matchedSymbols _ = [110] showFailure _ node_27 = "expected " GHC.Base.<> ( "aliased_import" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_27 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_28 c1_29 = TreeSitter.Node.nodeStartPoint node_27 TreeSitter.Node.TSPoint r2_30 c2_31 = TreeSitter.Node.nodeEndPoint node_27 deriving instance GHC.Classes.Eq a_32 => GHC.Classes.Eq (AliasedImport a_32) deriving instance GHC.Classes.Ord a_33 => GHC.Classes.Ord (AliasedImport a_33) deriving instance GHC.Show.Show a_34 => GHC.Show.Show (AliasedImport a_34) instance AST.Unmarshal.Unmarshal AliasedImport instance Data.Foldable.Foldable AliasedImport where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AliasedImport where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AliasedImport where traverse = AST.Traversable1.Class.traverseDefault1 data ArgumentList a = ArgumentList { ann :: a, extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: DictionarySplat GHC.Generics.:+: KeywordArgument GHC.Generics.:+: ListSplat GHC.Generics.:+: ParenthesizedExpression) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_35. AST.Traversable1.Class.Traversable1 a_35 ) instance AST.Unmarshal.SymbolMatching ArgumentList where matchedSymbols _ = [146] showFailure _ node_36 = "expected " GHC.Base.<> ( "argument_list" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_36 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_37 c1_38 = TreeSitter.Node.nodeStartPoint node_36 TreeSitter.Node.TSPoint r2_39 c2_40 = TreeSitter.Node.nodeEndPoint node_36 deriving instance GHC.Classes.Eq a_41 => GHC.Classes.Eq (ArgumentList a_41) deriving instance GHC.Classes.Ord a_42 => GHC.Classes.Ord (ArgumentList a_42) deriving instance GHC.Show.Show a_43 => GHC.Show.Show (ArgumentList a_43) instance AST.Unmarshal.Unmarshal ArgumentList instance Data.Foldable.Foldable ArgumentList where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ArgumentList where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ArgumentList where traverse = AST.Traversable1.Class.traverseDefault1 data AssertStatement a = AssertStatement { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Expression a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_44. AST.Traversable1.Class.Traversable1 a_44 ) instance AST.Unmarshal.SymbolMatching AssertStatement where matchedSymbols _ = [114] showFailure _ node_45 = "expected " GHC.Base.<> ( "assert_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_45 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_46 c1_47 = TreeSitter.Node.nodeStartPoint node_45 TreeSitter.Node.TSPoint r2_48 c2_49 = TreeSitter.Node.nodeEndPoint node_45 deriving instance GHC.Classes.Eq a_50 => GHC.Classes.Eq (AssertStatement a_50) deriving instance GHC.Classes.Ord a_51 => GHC.Classes.Ord (AssertStatement a_51) deriving instance GHC.Show.Show a_52 => GHC.Show.Show (AssertStatement a_52) instance AST.Unmarshal.Unmarshal AssertStatement instance Data.Foldable.Foldable AssertStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AssertStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AssertStatement where traverse = AST.Traversable1.Class.traverseDefault1 data Assignment a = Assignment { ann :: a, left :: (AST.Parse.Err (ExpressionList a)), right :: (GHC.Maybe.Maybe (AST.Parse.Err ((Assignment GHC.Generics.:+: AugmentedAssignment GHC.Generics.:+: ExpressionList GHC.Generics.:+: Yield) a))), type' :: (GHC.Maybe.Maybe (AST.Parse.Err (Type a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_53. AST.Traversable1.Class.Traversable1 a_53 ) instance AST.Unmarshal.SymbolMatching Assignment where matchedSymbols _ = [163] showFailure _ node_54 = "expected " GHC.Base.<> ( "assignment" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_54 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_55 c1_56 = TreeSitter.Node.nodeStartPoint node_54 TreeSitter.Node.TSPoint r2_57 c2_58 = TreeSitter.Node.nodeEndPoint node_54 deriving instance GHC.Classes.Eq a_59 => GHC.Classes.Eq (Assignment a_59) deriving instance GHC.Classes.Ord a_60 => GHC.Classes.Ord (Assignment a_60) deriving instance GHC.Show.Show a_61 => GHC.Show.Show (Assignment a_61) instance AST.Unmarshal.Unmarshal Assignment instance Data.Foldable.Foldable Assignment where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Assignment where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Assignment where traverse = AST.Traversable1.Class.traverseDefault1 data Attribute a = Attribute { ann :: a, attribute :: (AST.Parse.Err (Identifier a)), object :: (AST.Parse.Err (PrimaryExpression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_62. AST.Traversable1.Class.Traversable1 a_62 ) instance AST.Unmarshal.SymbolMatching Attribute where matchedSymbols _ = [167] showFailure _ node_63 = "expected " GHC.Base.<> ( "attribute" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_63 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_64 c1_65 = TreeSitter.Node.nodeStartPoint node_63 TreeSitter.Node.TSPoint r2_66 c2_67 = TreeSitter.Node.nodeEndPoint node_63 deriving instance GHC.Classes.Eq a_68 => GHC.Classes.Eq (Attribute a_68) deriving instance GHC.Classes.Ord a_69 => GHC.Classes.Ord (Attribute a_69) deriving instance GHC.Show.Show a_70 => GHC.Show.Show (Attribute a_70) instance AST.Unmarshal.Unmarshal Attribute instance Data.Foldable.Foldable Attribute where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Attribute where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Attribute where traverse = AST.Traversable1.Class.traverseDefault1 data AugmentedAssignment a = AugmentedAssignment { ann :: a, 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)), left :: (AST.Parse.Err (ExpressionList a)), right :: (AST.Parse.Err ((Assignment GHC.Generics.:+: AugmentedAssignment GHC.Generics.:+: ExpressionList GHC.Generics.:+: Yield) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_71. AST.Traversable1.Class.Traversable1 a_71 ) instance AST.Unmarshal.SymbolMatching AugmentedAssignment where matchedSymbols _ = [164] showFailure _ node_72 = "expected " GHC.Base.<> ( "augmented_assignment" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_72 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_73 c1_74 = TreeSitter.Node.nodeStartPoint node_72 TreeSitter.Node.TSPoint r2_75 c2_76 = TreeSitter.Node.nodeEndPoint node_72 deriving instance GHC.Classes.Eq a_77 => GHC.Classes.Eq (AugmentedAssignment a_77) deriving instance GHC.Classes.Ord a_78 => GHC.Classes.Ord (AugmentedAssignment a_78) deriving instance GHC.Show.Show a_79 => GHC.Show.Show (AugmentedAssignment a_79) instance AST.Unmarshal.Unmarshal AugmentedAssignment instance Data.Foldable.Foldable AugmentedAssignment where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AugmentedAssignment where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AugmentedAssignment where traverse = AST.Traversable1.Class.traverseDefault1 data Await a = Await {ann :: a, extraChildren :: (AST.Parse.Err (Expression a))} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_80. AST.Traversable1.Class.Traversable1 a_80 ) instance AST.Unmarshal.SymbolMatching Await where matchedSymbols _ = [193] showFailure _ node_81 = "expected " GHC.Base.<> ( "await" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_81 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_82 c1_83 = TreeSitter.Node.nodeStartPoint node_81 TreeSitter.Node.TSPoint r2_84 c2_85 = TreeSitter.Node.nodeEndPoint node_81 deriving instance GHC.Classes.Eq a_86 => GHC.Classes.Eq (Await a_86) deriving instance GHC.Classes.Ord a_87 => GHC.Classes.Ord (Await a_87) deriving instance GHC.Show.Show a_88 => GHC.Show.Show (Await a_88) instance AST.Unmarshal.Unmarshal Await instance Data.Foldable.Foldable Await where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Await where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Await where traverse = AST.Traversable1.Class.traverseDefault1 data BinaryOperator a = BinaryOperator { ann :: a, 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)), left :: (AST.Parse.Err (PrimaryExpression a)), right :: (AST.Parse.Err (PrimaryExpression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_89. AST.Traversable1.Class.Traversable1 a_89 ) instance AST.Unmarshal.SymbolMatching BinaryOperator where matchedSymbols _ = [158] showFailure _ node_90 = "expected " GHC.Base.<> ( "binary_operator" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_90 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_91 c1_92 = TreeSitter.Node.nodeStartPoint node_90 TreeSitter.Node.TSPoint r2_93 c2_94 = TreeSitter.Node.nodeEndPoint node_90 deriving instance GHC.Classes.Eq a_95 => GHC.Classes.Eq (BinaryOperator a_95) deriving instance GHC.Classes.Ord a_96 => GHC.Classes.Ord (BinaryOperator a_96) deriving instance GHC.Show.Show a_97 => GHC.Show.Show (BinaryOperator a_97) instance AST.Unmarshal.Unmarshal BinaryOperator instance Data.Foldable.Foldable BinaryOperator where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor BinaryOperator where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable BinaryOperator where traverse = AST.Traversable1.Class.traverseDefault1 data Block a = Block { ann :: a, extraChildren :: ([AST.Parse.Err ((CompoundStatement GHC.Generics.:+: SimpleStatement) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_98. AST.Traversable1.Class.Traversable1 a_98 ) instance AST.Unmarshal.SymbolMatching Block where matchedSymbols _ = [149] showFailure _ node_99 = "expected " GHC.Base.<> ( "block" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_99 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_100 c1_101 = TreeSitter.Node.nodeStartPoint node_99 TreeSitter.Node.TSPoint r2_102 c2_103 = TreeSitter.Node.nodeEndPoint node_99 deriving instance GHC.Classes.Eq a_104 => GHC.Classes.Eq (Block a_104) deriving instance GHC.Classes.Ord a_105 => GHC.Classes.Ord (Block a_105) deriving instance GHC.Show.Show a_106 => GHC.Show.Show (Block a_106) instance AST.Unmarshal.Unmarshal Block instance Data.Foldable.Foldable Block where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Block where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Block where traverse = AST.Traversable1.Class.traverseDefault1 data BooleanOperator a = BooleanOperator { ann :: a, operator :: (AST.Parse.Err ((AnonymousAnd GHC.Generics.:+: AnonymousOr) a)), left :: (AST.Parse.Err (Expression a)), right :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_107. AST.Traversable1.Class.Traversable1 a_107 ) instance AST.Unmarshal.SymbolMatching BooleanOperator where matchedSymbols _ = [157] showFailure _ node_108 = "expected " GHC.Base.<> ( "boolean_operator" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_108 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_109 c1_110 = TreeSitter.Node.nodeStartPoint node_108 TreeSitter.Node.TSPoint r2_111 c2_112 = TreeSitter.Node.nodeEndPoint node_108 deriving instance GHC.Classes.Eq a_113 => GHC.Classes.Eq (BooleanOperator a_113) deriving instance GHC.Classes.Ord a_114 => GHC.Classes.Ord (BooleanOperator a_114) deriving instance GHC.Show.Show a_115 => GHC.Show.Show (BooleanOperator a_115) instance AST.Unmarshal.Unmarshal BooleanOperator instance Data.Foldable.Foldable BooleanOperator where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor BooleanOperator where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable BooleanOperator where traverse = AST.Traversable1.Class.traverseDefault1 data BreakStatement a = BreakStatement {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_116. AST.Traversable1.Class.Traversable1 a_116 ) instance AST.Unmarshal.SymbolMatching BreakStatement where matchedSymbols _ = [121] showFailure _ node_117 = "expected " GHC.Base.<> ( "break_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_117 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_118 c1_119 = TreeSitter.Node.nodeStartPoint node_117 TreeSitter.Node.TSPoint r2_120 c2_121 = TreeSitter.Node.nodeEndPoint node_117 deriving instance GHC.Classes.Eq a_122 => GHC.Classes.Eq (BreakStatement a_122) deriving instance GHC.Classes.Ord a_123 => GHC.Classes.Ord (BreakStatement a_123) deriving instance GHC.Show.Show a_124 => GHC.Show.Show (BreakStatement a_124) instance AST.Unmarshal.Unmarshal BreakStatement instance Data.Foldable.Foldable BreakStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor BreakStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable BreakStatement where traverse = AST.Traversable1.Class.traverseDefault1 data Call a = Call { ann :: a, function :: (AST.Parse.Err (PrimaryExpression a)), arguments :: (AST.Parse.Err ((ArgumentList GHC.Generics.:+: GeneratorExpression) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_125. AST.Traversable1.Class.Traversable1 a_125 ) instance AST.Unmarshal.SymbolMatching Call where matchedSymbols _ = [170] showFailure _ node_126 = "expected " GHC.Base.<> ( "call" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_126 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_127 c1_128 = TreeSitter.Node.nodeStartPoint node_126 TreeSitter.Node.TSPoint r2_129 c2_130 = TreeSitter.Node.nodeEndPoint node_126 deriving instance GHC.Classes.Eq a_131 => GHC.Classes.Eq (Call a_131) deriving instance GHC.Classes.Ord a_132 => GHC.Classes.Ord (Call a_132) deriving instance GHC.Show.Show a_133 => GHC.Show.Show (Call a_133) instance AST.Unmarshal.Unmarshal Call instance Data.Foldable.Foldable Call where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Call where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Call where traverse = AST.Traversable1.Class.traverseDefault1 data Chevron a = Chevron { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_134. AST.Traversable1.Class.Traversable1 a_134 ) instance AST.Unmarshal.SymbolMatching Chevron where matchedSymbols _ = [113] showFailure _ node_135 = "expected " GHC.Base.<> ( "chevron" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_135 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_136 c1_137 = TreeSitter.Node.nodeStartPoint node_135 TreeSitter.Node.TSPoint r2_138 c2_139 = TreeSitter.Node.nodeEndPoint node_135 deriving instance GHC.Classes.Eq a_140 => GHC.Classes.Eq (Chevron a_140) deriving instance GHC.Classes.Ord a_141 => GHC.Classes.Ord (Chevron a_141) deriving instance GHC.Show.Show a_142 => GHC.Show.Show (Chevron a_142) instance AST.Unmarshal.Unmarshal Chevron instance Data.Foldable.Foldable Chevron where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Chevron where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Chevron where traverse = AST.Traversable1.Class.traverseDefault1 data ClassDefinition a = ClassDefinition { ann :: a, body :: (AST.Parse.Err (Block a)), superclasses :: (GHC.Maybe.Maybe (AST.Parse.Err (ArgumentList a))), name :: (AST.Parse.Err (Identifier a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_143. AST.Traversable1.Class.Traversable1 a_143 ) instance AST.Unmarshal.SymbolMatching ClassDefinition where matchedSymbols _ = [144] showFailure _ node_144 = "expected " GHC.Base.<> ( "class_definition" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_144 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_145 c1_146 = TreeSitter.Node.nodeStartPoint node_144 TreeSitter.Node.TSPoint r2_147 c2_148 = TreeSitter.Node.nodeEndPoint node_144 deriving instance GHC.Classes.Eq a_149 => GHC.Classes.Eq (ClassDefinition a_149) deriving instance GHC.Classes.Ord a_150 => GHC.Classes.Ord (ClassDefinition a_150) deriving instance GHC.Show.Show a_151 => GHC.Show.Show (ClassDefinition a_151) instance AST.Unmarshal.Unmarshal ClassDefinition instance Data.Foldable.Foldable ClassDefinition where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ClassDefinition where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ClassDefinition where traverse = AST.Traversable1.Class.traverseDefault1 data ComparisonOperator a = ComparisonOperator { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (PrimaryExpression a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_152. AST.Traversable1.Class.Traversable1 a_152 ) instance AST.Unmarshal.SymbolMatching ComparisonOperator where matchedSymbols _ = [160] showFailure _ node_153 = "expected " GHC.Base.<> ( "comparison_operator" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_153 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_154 c1_155 = TreeSitter.Node.nodeStartPoint node_153 TreeSitter.Node.TSPoint r2_156 c2_157 = TreeSitter.Node.nodeEndPoint node_153 deriving instance GHC.Classes.Eq a_158 => GHC.Classes.Eq (ComparisonOperator a_158) deriving instance GHC.Classes.Ord a_159 => GHC.Classes.Ord (ComparisonOperator a_159) deriving instance GHC.Show.Show a_160 => GHC.Show.Show (ComparisonOperator a_160) instance AST.Unmarshal.Unmarshal ComparisonOperator instance Data.Foldable.Foldable ComparisonOperator where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ComparisonOperator where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ComparisonOperator where traverse = AST.Traversable1.Class.traverseDefault1 data ConcatenatedString a = ConcatenatedString { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (String a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_161. AST.Traversable1.Class.Traversable1 a_161 ) instance AST.Unmarshal.SymbolMatching ConcatenatedString where matchedSymbols _ = [188] showFailure _ node_162 = "expected " GHC.Base.<> ( "concatenated_string" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_162 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_163 c1_164 = TreeSitter.Node.nodeStartPoint node_162 TreeSitter.Node.TSPoint r2_165 c2_166 = TreeSitter.Node.nodeEndPoint node_162 deriving instance GHC.Classes.Eq a_167 => GHC.Classes.Eq (ConcatenatedString a_167) deriving instance GHC.Classes.Ord a_168 => GHC.Classes.Ord (ConcatenatedString a_168) deriving instance GHC.Show.Show a_169 => GHC.Show.Show (ConcatenatedString a_169) instance AST.Unmarshal.Unmarshal ConcatenatedString instance Data.Foldable.Foldable ConcatenatedString where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ConcatenatedString where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ConcatenatedString where traverse = AST.Traversable1.Class.traverseDefault1 data ConditionalExpression a = ConditionalExpression { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Expression a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_170. AST.Traversable1.Class.Traversable1 a_170 ) instance AST.Unmarshal.SymbolMatching ConditionalExpression where matchedSymbols _ = [187] showFailure _ node_171 = "expected " GHC.Base.<> ( "conditional_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_171 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_172 c1_173 = TreeSitter.Node.nodeStartPoint node_171 TreeSitter.Node.TSPoint r2_174 c2_175 = TreeSitter.Node.nodeEndPoint node_171 deriving instance GHC.Classes.Eq a_176 => GHC.Classes.Eq (ConditionalExpression a_176) deriving instance GHC.Classes.Ord a_177 => GHC.Classes.Ord (ConditionalExpression a_177) deriving instance GHC.Show.Show a_178 => GHC.Show.Show (ConditionalExpression a_178) instance AST.Unmarshal.Unmarshal ConditionalExpression instance Data.Foldable.Foldable ConditionalExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ConditionalExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ConditionalExpression where traverse = AST.Traversable1.Class.traverseDefault1 data ContinueStatement a = ContinueStatement {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_179. AST.Traversable1.Class.Traversable1 a_179 ) instance AST.Unmarshal.SymbolMatching ContinueStatement where matchedSymbols _ = [122] showFailure _ node_180 = "expected " GHC.Base.<> ( "continue_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_180 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_181 c1_182 = TreeSitter.Node.nodeStartPoint node_180 TreeSitter.Node.TSPoint r2_183 c2_184 = TreeSitter.Node.nodeEndPoint node_180 deriving instance GHC.Classes.Eq a_185 => GHC.Classes.Eq (ContinueStatement a_185) deriving instance GHC.Classes.Ord a_186 => GHC.Classes.Ord (ContinueStatement a_186) deriving instance GHC.Show.Show a_187 => GHC.Show.Show (ContinueStatement a_187) instance AST.Unmarshal.Unmarshal ContinueStatement instance Data.Foldable.Foldable ContinueStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ContinueStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ContinueStatement where traverse = AST.Traversable1.Class.traverseDefault1 data DecoratedDefinition a = DecoratedDefinition { ann :: a, definition :: (AST.Parse.Err ((ClassDefinition GHC.Generics.:+: FunctionDefinition) a)), extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Decorator a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_188. AST.Traversable1.Class.Traversable1 a_188 ) instance AST.Unmarshal.SymbolMatching DecoratedDefinition where matchedSymbols _ = [147] showFailure _ node_189 = "expected " GHC.Base.<> ( "decorated_definition" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_189 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_190 c1_191 = TreeSitter.Node.nodeStartPoint node_189 TreeSitter.Node.TSPoint r2_192 c2_193 = TreeSitter.Node.nodeEndPoint node_189 deriving instance GHC.Classes.Eq a_194 => GHC.Classes.Eq (DecoratedDefinition a_194) deriving instance GHC.Classes.Ord a_195 => GHC.Classes.Ord (DecoratedDefinition a_195) deriving instance GHC.Show.Show a_196 => GHC.Show.Show (DecoratedDefinition a_196) instance AST.Unmarshal.Unmarshal DecoratedDefinition instance Data.Foldable.Foldable DecoratedDefinition where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DecoratedDefinition where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DecoratedDefinition where traverse = AST.Traversable1.Class.traverseDefault1 data Decorator a = Decorator { ann :: a, arguments :: (GHC.Maybe.Maybe (AST.Parse.Err (ArgumentList a))), extraChildren :: (AST.Parse.Err (DottedName a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_197. AST.Traversable1.Class.Traversable1 a_197 ) instance AST.Unmarshal.SymbolMatching Decorator where matchedSymbols _ = [148] showFailure _ node_198 = "expected " GHC.Base.<> ( "decorator" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_198 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_199 c1_200 = TreeSitter.Node.nodeStartPoint node_198 TreeSitter.Node.TSPoint r2_201 c2_202 = TreeSitter.Node.nodeEndPoint node_198 deriving instance GHC.Classes.Eq a_203 => GHC.Classes.Eq (Decorator a_203) deriving instance GHC.Classes.Ord a_204 => GHC.Classes.Ord (Decorator a_204) deriving instance GHC.Show.Show a_205 => GHC.Show.Show (Decorator a_205) instance AST.Unmarshal.Unmarshal Decorator instance Data.Foldable.Foldable Decorator where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Decorator where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Decorator where traverse = AST.Traversable1.Class.traverseDefault1 data DefaultParameter a = DefaultParameter { ann :: a, value :: (AST.Parse.Err (Expression a)), name :: (AST.Parse.Err (Identifier a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_206. AST.Traversable1.Class.Traversable1 a_206 ) instance AST.Unmarshal.SymbolMatching DefaultParameter where matchedSymbols _ = [137] showFailure _ node_207 = "expected " GHC.Base.<> ( "default_parameter" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_207 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_208 c1_209 = TreeSitter.Node.nodeStartPoint node_207 TreeSitter.Node.TSPoint r2_210 c2_211 = TreeSitter.Node.nodeEndPoint node_207 deriving instance GHC.Classes.Eq a_212 => GHC.Classes.Eq (DefaultParameter a_212) deriving instance GHC.Classes.Ord a_213 => GHC.Classes.Ord (DefaultParameter a_213) deriving instance GHC.Show.Show a_214 => GHC.Show.Show (DefaultParameter a_214) instance AST.Unmarshal.Unmarshal DefaultParameter instance Data.Foldable.Foldable DefaultParameter where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DefaultParameter where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DefaultParameter where traverse = AST.Traversable1.Class.traverseDefault1 data DeleteStatement a = DeleteStatement { ann :: a, extraChildren :: (AST.Parse.Err (ExpressionList a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_215. AST.Traversable1.Class.Traversable1 a_215 ) instance AST.Unmarshal.SymbolMatching DeleteStatement where matchedSymbols _ = [118] showFailure _ node_216 = "expected " GHC.Base.<> ( "delete_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_216 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_217 c1_218 = TreeSitter.Node.nodeStartPoint node_216 TreeSitter.Node.TSPoint r2_219 c2_220 = TreeSitter.Node.nodeEndPoint node_216 deriving instance GHC.Classes.Eq a_221 => GHC.Classes.Eq (DeleteStatement a_221) deriving instance GHC.Classes.Ord a_222 => GHC.Classes.Ord (DeleteStatement a_222) deriving instance GHC.Show.Show a_223 => GHC.Show.Show (DeleteStatement a_223) instance AST.Unmarshal.Unmarshal DeleteStatement instance Data.Foldable.Foldable DeleteStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DeleteStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DeleteStatement where traverse = AST.Traversable1.Class.traverseDefault1 data Dictionary a = Dictionary { ann :: a, extraChildren :: ([AST.Parse.Err ((DictionarySplat GHC.Generics.:+: Pair) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_224. AST.Traversable1.Class.Traversable1 a_224 ) instance AST.Unmarshal.SymbolMatching Dictionary where matchedSymbols _ = [177] showFailure _ node_225 = "expected " GHC.Base.<> ( "dictionary" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_225 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_226 c1_227 = TreeSitter.Node.nodeStartPoint node_225 TreeSitter.Node.TSPoint r2_228 c2_229 = TreeSitter.Node.nodeEndPoint node_225 deriving instance GHC.Classes.Eq a_230 => GHC.Classes.Eq (Dictionary a_230) deriving instance GHC.Classes.Ord a_231 => GHC.Classes.Ord (Dictionary a_231) deriving instance GHC.Show.Show a_232 => GHC.Show.Show (Dictionary a_232) instance AST.Unmarshal.Unmarshal Dictionary instance Data.Foldable.Foldable Dictionary where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Dictionary where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Dictionary where traverse = AST.Traversable1.Class.traverseDefault1 data DictionaryComprehension a = DictionaryComprehension { ann :: a, body :: (AST.Parse.Err (Pair a)), extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ForInClause GHC.Generics.:+: IfClause) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_233. AST.Traversable1.Class.Traversable1 a_233 ) instance AST.Unmarshal.SymbolMatching DictionaryComprehension where matchedSymbols _ = [178] showFailure _ node_234 = "expected " GHC.Base.<> ( "dictionary_comprehension" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_234 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_235 c1_236 = TreeSitter.Node.nodeStartPoint node_234 TreeSitter.Node.TSPoint r2_237 c2_238 = TreeSitter.Node.nodeEndPoint node_234 deriving instance GHC.Classes.Eq a_239 => GHC.Classes.Eq (DictionaryComprehension a_239) deriving instance GHC.Classes.Ord a_240 => GHC.Classes.Ord (DictionaryComprehension a_240) deriving instance GHC.Show.Show a_241 => GHC.Show.Show (DictionaryComprehension a_241) instance AST.Unmarshal.Unmarshal DictionaryComprehension instance Data.Foldable.Foldable DictionaryComprehension where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DictionaryComprehension where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DictionaryComprehension where traverse = AST.Traversable1.Class.traverseDefault1 data DictionarySplat a = DictionarySplat { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_242. AST.Traversable1.Class.Traversable1 a_242 ) instance AST.Unmarshal.SymbolMatching DictionarySplat where matchedSymbols _ = [140] showFailure _ node_243 = "expected " GHC.Base.<> ( "dictionary_splat" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_243 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_244 c1_245 = TreeSitter.Node.nodeStartPoint node_243 TreeSitter.Node.TSPoint r2_246 c2_247 = TreeSitter.Node.nodeEndPoint node_243 deriving instance GHC.Classes.Eq a_248 => GHC.Classes.Eq (DictionarySplat a_248) deriving instance GHC.Classes.Ord a_249 => GHC.Classes.Ord (DictionarySplat a_249) deriving instance GHC.Show.Show a_250 => GHC.Show.Show (DictionarySplat a_250) instance AST.Unmarshal.Unmarshal DictionarySplat instance Data.Foldable.Foldable DictionarySplat where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DictionarySplat where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DictionarySplat where traverse = AST.Traversable1.Class.traverseDefault1 data DottedName a = DottedName { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Identifier a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_251. AST.Traversable1.Class.Traversable1 a_251 ) instance AST.Unmarshal.SymbolMatching DottedName where matchedSymbols _ = [152] showFailure _ node_252 = "expected " GHC.Base.<> ( "dotted_name" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_252 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_253 c1_254 = TreeSitter.Node.nodeStartPoint node_252 TreeSitter.Node.TSPoint r2_255 c2_256 = TreeSitter.Node.nodeEndPoint node_252 deriving instance GHC.Classes.Eq a_257 => GHC.Classes.Eq (DottedName a_257) deriving instance GHC.Classes.Ord a_258 => GHC.Classes.Ord (DottedName a_258) deriving instance GHC.Show.Show a_259 => GHC.Show.Show (DottedName a_259) instance AST.Unmarshal.Unmarshal DottedName instance Data.Foldable.Foldable DottedName where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DottedName where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DottedName where traverse = AST.Traversable1.Class.traverseDefault1 data ElifClause a = ElifClause { ann :: a, consequence :: (AST.Parse.Err (Block a)), condition :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_260. AST.Traversable1.Class.Traversable1 a_260 ) instance AST.Unmarshal.SymbolMatching ElifClause where matchedSymbols _ = [124] showFailure _ node_261 = "expected " GHC.Base.<> ( "elif_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_261 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_262 c1_263 = TreeSitter.Node.nodeStartPoint node_261 TreeSitter.Node.TSPoint r2_264 c2_265 = TreeSitter.Node.nodeEndPoint node_261 deriving instance GHC.Classes.Eq a_266 => GHC.Classes.Eq (ElifClause a_266) deriving instance GHC.Classes.Ord a_267 => GHC.Classes.Ord (ElifClause a_267) deriving instance GHC.Show.Show a_268 => GHC.Show.Show (ElifClause a_268) instance AST.Unmarshal.Unmarshal ElifClause instance Data.Foldable.Foldable ElifClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ElifClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ElifClause where traverse = AST.Traversable1.Class.traverseDefault1 data ElseClause a = ElseClause {ann :: a, body :: (AST.Parse.Err (Block a))} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_269. AST.Traversable1.Class.Traversable1 a_269 ) instance AST.Unmarshal.SymbolMatching ElseClause where matchedSymbols _ = [125] showFailure _ node_270 = "expected " GHC.Base.<> ( "else_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_270 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_271 c1_272 = TreeSitter.Node.nodeStartPoint node_270 TreeSitter.Node.TSPoint r2_273 c2_274 = TreeSitter.Node.nodeEndPoint node_270 deriving instance GHC.Classes.Eq a_275 => GHC.Classes.Eq (ElseClause a_275) deriving instance GHC.Classes.Ord a_276 => GHC.Classes.Ord (ElseClause a_276) deriving instance GHC.Show.Show a_277 => GHC.Show.Show (ElseClause a_277) instance AST.Unmarshal.Unmarshal ElseClause instance Data.Foldable.Foldable ElseClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ElseClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ElseClause where traverse = AST.Traversable1.Class.traverseDefault1 data ExceptClause a = ExceptClause { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: Block) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_278. AST.Traversable1.Class.Traversable1 a_278 ) instance AST.Unmarshal.SymbolMatching ExceptClause where matchedSymbols _ = [129] showFailure _ node_279 = "expected " GHC.Base.<> ( "except_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_279 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_280 c1_281 = TreeSitter.Node.nodeStartPoint node_279 TreeSitter.Node.TSPoint r2_282 c2_283 = TreeSitter.Node.nodeEndPoint node_279 deriving instance GHC.Classes.Eq a_284 => GHC.Classes.Eq (ExceptClause a_284) deriving instance GHC.Classes.Ord a_285 => GHC.Classes.Ord (ExceptClause a_285) deriving instance GHC.Show.Show a_286 => GHC.Show.Show (ExceptClause a_286) instance AST.Unmarshal.Unmarshal ExceptClause instance Data.Foldable.Foldable ExceptClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ExceptClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ExceptClause where traverse = AST.Traversable1.Class.traverseDefault1 data ExecStatement a = ExecStatement { ann :: a, code :: (AST.Parse.Err (String a)), extraChildren :: ([AST.Parse.Err (Expression a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_287. AST.Traversable1.Class.Traversable1 a_287 ) instance AST.Unmarshal.SymbolMatching ExecStatement where matchedSymbols _ = [143] showFailure _ node_288 = "expected " GHC.Base.<> ( "exec_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_288 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_289 c1_290 = TreeSitter.Node.nodeStartPoint node_288 TreeSitter.Node.TSPoint r2_291 c2_292 = TreeSitter.Node.nodeEndPoint node_288 deriving instance GHC.Classes.Eq a_293 => GHC.Classes.Eq (ExecStatement a_293) deriving instance GHC.Classes.Ord a_294 => GHC.Classes.Ord (ExecStatement a_294) deriving instance GHC.Show.Show a_295 => GHC.Show.Show (ExecStatement a_295) instance AST.Unmarshal.Unmarshal ExecStatement instance Data.Foldable.Foldable ExecStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ExecStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ExecStatement where traverse = AST.Traversable1.Class.traverseDefault1 data ExpressionList a = ExpressionList { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Expression a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_296. AST.Traversable1.Class.Traversable1 a_296 ) instance AST.Unmarshal.SymbolMatching ExpressionList where matchedSymbols _ = [151] showFailure _ node_297 = "expected " GHC.Base.<> ( "expression_list" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_297 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_298 c1_299 = TreeSitter.Node.nodeStartPoint node_297 TreeSitter.Node.TSPoint r2_300 c2_301 = TreeSitter.Node.nodeEndPoint node_297 deriving instance GHC.Classes.Eq a_302 => GHC.Classes.Eq (ExpressionList a_302) deriving instance GHC.Classes.Ord a_303 => GHC.Classes.Ord (ExpressionList a_303) deriving instance GHC.Show.Show a_304 => GHC.Show.Show (ExpressionList a_304) instance AST.Unmarshal.Unmarshal ExpressionList instance Data.Foldable.Foldable ExpressionList where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ExpressionList where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ExpressionList where traverse = AST.Traversable1.Class.traverseDefault1 data ExpressionStatement a = ExpressionStatement { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: Assignment GHC.Generics.:+: AugmentedAssignment GHC.Generics.:+: Yield) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_305. AST.Traversable1.Class.Traversable1 a_305 ) instance AST.Unmarshal.SymbolMatching ExpressionStatement where matchedSymbols _ = [115] showFailure _ node_306 = "expected " GHC.Base.<> ( "expression_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_306 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_307 c1_308 = TreeSitter.Node.nodeStartPoint node_306 TreeSitter.Node.TSPoint r2_309 c2_310 = TreeSitter.Node.nodeEndPoint node_306 deriving instance GHC.Classes.Eq a_311 => GHC.Classes.Eq (ExpressionStatement a_311) deriving instance GHC.Classes.Ord a_312 => GHC.Classes.Ord (ExpressionStatement a_312) deriving instance GHC.Show.Show a_313 => GHC.Show.Show (ExpressionStatement a_313) instance AST.Unmarshal.Unmarshal ExpressionStatement instance Data.Foldable.Foldable ExpressionStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ExpressionStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ExpressionStatement where traverse = AST.Traversable1.Class.traverseDefault1 data FinallyClause a = FinallyClause { ann :: a, extraChildren :: (AST.Parse.Err (Block a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_314. AST.Traversable1.Class.Traversable1 a_314 ) instance AST.Unmarshal.SymbolMatching FinallyClause where matchedSymbols _ = [130] showFailure _ node_315 = "expected " GHC.Base.<> ( "finally_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_315 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_316 c1_317 = TreeSitter.Node.nodeStartPoint node_315 TreeSitter.Node.TSPoint r2_318 c2_319 = TreeSitter.Node.nodeEndPoint node_315 deriving instance GHC.Classes.Eq a_320 => GHC.Classes.Eq (FinallyClause a_320) deriving instance GHC.Classes.Ord a_321 => GHC.Classes.Ord (FinallyClause a_321) deriving instance GHC.Show.Show a_322 => GHC.Show.Show (FinallyClause a_322) instance AST.Unmarshal.Unmarshal FinallyClause instance Data.Foldable.Foldable FinallyClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FinallyClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FinallyClause where traverse = AST.Traversable1.Class.traverseDefault1 data ForInClause a = ForInClause { ann :: a, left :: (AST.Parse.Err (Variables a)), right :: (GHC.Base.NonEmpty (AST.Parse.Err ((AnonymousComma GHC.Generics.:+: Expression GHC.Generics.:+: Lambda) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_323. AST.Traversable1.Class.Traversable1 a_323 ) instance AST.Unmarshal.SymbolMatching ForInClause where matchedSymbols _ = [185] showFailure _ node_324 = "expected " GHC.Base.<> ( "for_in_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_324 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_325 c1_326 = TreeSitter.Node.nodeStartPoint node_324 TreeSitter.Node.TSPoint r2_327 c2_328 = TreeSitter.Node.nodeEndPoint node_324 deriving instance GHC.Classes.Eq a_329 => GHC.Classes.Eq (ForInClause a_329) deriving instance GHC.Classes.Ord a_330 => GHC.Classes.Ord (ForInClause a_330) deriving instance GHC.Show.Show a_331 => GHC.Show.Show (ForInClause a_331) instance AST.Unmarshal.Unmarshal ForInClause instance Data.Foldable.Foldable ForInClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ForInClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ForInClause where traverse = AST.Traversable1.Class.traverseDefault1 data ForStatement a = ForStatement { ann :: a, alternative :: (GHC.Maybe.Maybe (AST.Parse.Err (ElseClause a))), body :: (AST.Parse.Err (Block a)), left :: (AST.Parse.Err (Variables a)), right :: (AST.Parse.Err (ExpressionList a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_332. AST.Traversable1.Class.Traversable1 a_332 ) instance AST.Unmarshal.SymbolMatching ForStatement where matchedSymbols _ = [126] showFailure _ node_333 = "expected " GHC.Base.<> ( "for_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_333 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_334 c1_335 = TreeSitter.Node.nodeStartPoint node_333 TreeSitter.Node.TSPoint r2_336 c2_337 = TreeSitter.Node.nodeEndPoint node_333 deriving instance GHC.Classes.Eq a_338 => GHC.Classes.Eq (ForStatement a_338) deriving instance GHC.Classes.Ord a_339 => GHC.Classes.Ord (ForStatement a_339) deriving instance GHC.Show.Show a_340 => GHC.Show.Show (ForStatement a_340) instance AST.Unmarshal.Unmarshal ForStatement instance Data.Foldable.Foldable ForStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ForStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ForStatement where traverse = AST.Traversable1.Class.traverseDefault1 data FormatExpression a = FormatExpression { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_341. AST.Traversable1.Class.Traversable1 a_341 ) instance AST.Unmarshal.SymbolMatching FormatExpression where matchedSymbols _ = [192] showFailure _ node_342 = "expected " GHC.Base.<> ( "format_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_342 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_343 c1_344 = TreeSitter.Node.nodeStartPoint node_342 TreeSitter.Node.TSPoint r2_345 c2_346 = TreeSitter.Node.nodeEndPoint node_342 deriving instance GHC.Classes.Eq a_347 => GHC.Classes.Eq (FormatExpression a_347) deriving instance GHC.Classes.Ord a_348 => GHC.Classes.Ord (FormatExpression a_348) deriving instance GHC.Show.Show a_349 => GHC.Show.Show (FormatExpression a_349) instance AST.Unmarshal.Unmarshal FormatExpression instance Data.Foldable.Foldable FormatExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FormatExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FormatExpression where traverse = AST.Traversable1.Class.traverseDefault1 data FormatSpecifier a = FormatSpecifier { ann :: a, extraChildren :: ([AST.Parse.Err (FormatExpression a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_350. AST.Traversable1.Class.Traversable1 a_350 ) instance AST.Unmarshal.SymbolMatching FormatSpecifier where matchedSymbols _ = [191] showFailure _ node_351 = "expected " GHC.Base.<> ( "format_specifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_351 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_352 c1_353 = TreeSitter.Node.nodeStartPoint node_351 TreeSitter.Node.TSPoint r2_354 c2_355 = TreeSitter.Node.nodeEndPoint node_351 deriving instance GHC.Classes.Eq a_356 => GHC.Classes.Eq (FormatSpecifier a_356) deriving instance GHC.Classes.Ord a_357 => GHC.Classes.Ord (FormatSpecifier a_357) deriving instance GHC.Show.Show a_358 => GHC.Show.Show (FormatSpecifier a_358) instance AST.Unmarshal.Unmarshal FormatSpecifier instance Data.Foldable.Foldable FormatSpecifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FormatSpecifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FormatSpecifier where traverse = AST.Traversable1.Class.traverseDefault1 data FunctionDefinition a = FunctionDefinition { ann :: a, returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (Type a))), body :: (AST.Parse.Err (Block a)), name :: (AST.Parse.Err (Identifier a)), parameters :: (AST.Parse.Err (Parameters a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_359. AST.Traversable1.Class.Traversable1 a_359 ) instance AST.Unmarshal.SymbolMatching FunctionDefinition where matchedSymbols _ = [133] showFailure _ node_360 = "expected " GHC.Base.<> ( "function_definition" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_360 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_361 c1_362 = TreeSitter.Node.nodeStartPoint node_360 TreeSitter.Node.TSPoint r2_363 c2_364 = TreeSitter.Node.nodeEndPoint node_360 deriving instance GHC.Classes.Eq a_365 => GHC.Classes.Eq (FunctionDefinition a_365) deriving instance GHC.Classes.Ord a_366 => GHC.Classes.Ord (FunctionDefinition a_366) deriving instance GHC.Show.Show a_367 => GHC.Show.Show (FunctionDefinition a_367) instance AST.Unmarshal.Unmarshal FunctionDefinition instance Data.Foldable.Foldable FunctionDefinition where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FunctionDefinition where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FunctionDefinition where traverse = AST.Traversable1.Class.traverseDefault1 data FutureImportStatement a = FutureImportStatement { ann :: a, name :: (GHC.Base.NonEmpty (AST.Parse.Err ((AliasedImport GHC.Generics.:+: DottedName) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_368. AST.Traversable1.Class.Traversable1 a_368 ) instance AST.Unmarshal.SymbolMatching FutureImportStatement where matchedSymbols _ = [107] showFailure _ node_369 = "expected " GHC.Base.<> ( "future_import_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_369 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_370 c1_371 = TreeSitter.Node.nodeStartPoint node_369 TreeSitter.Node.TSPoint r2_372 c2_373 = TreeSitter.Node.nodeEndPoint node_369 deriving instance GHC.Classes.Eq a_374 => GHC.Classes.Eq (FutureImportStatement a_374) deriving instance GHC.Classes.Ord a_375 => GHC.Classes.Ord (FutureImportStatement a_375) deriving instance GHC.Show.Show a_376 => GHC.Show.Show (FutureImportStatement a_376) instance AST.Unmarshal.Unmarshal FutureImportStatement instance Data.Foldable.Foldable FutureImportStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FutureImportStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FutureImportStatement where traverse = AST.Traversable1.Class.traverseDefault1 data GeneratorExpression a = GeneratorExpression { ann :: a, body :: (AST.Parse.Err (Expression a)), extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ForInClause GHC.Generics.:+: IfClause) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_377. AST.Traversable1.Class.Traversable1 a_377 ) instance AST.Unmarshal.SymbolMatching GeneratorExpression where matchedSymbols _ = [184] showFailure _ node_378 = "expected " GHC.Base.<> ( "generator_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_378 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_379 c1_380 = TreeSitter.Node.nodeStartPoint node_378 TreeSitter.Node.TSPoint r2_381 c2_382 = TreeSitter.Node.nodeEndPoint node_378 deriving instance GHC.Classes.Eq a_383 => GHC.Classes.Eq (GeneratorExpression a_383) deriving instance GHC.Classes.Ord a_384 => GHC.Classes.Ord (GeneratorExpression a_384) deriving instance GHC.Show.Show a_385 => GHC.Show.Show (GeneratorExpression a_385) instance AST.Unmarshal.Unmarshal GeneratorExpression instance Data.Foldable.Foldable GeneratorExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor GeneratorExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable GeneratorExpression where traverse = AST.Traversable1.Class.traverseDefault1 data GlobalStatement a = GlobalStatement { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Identifier a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_386. AST.Traversable1.Class.Traversable1 a_386 ) instance AST.Unmarshal.SymbolMatching GlobalStatement where matchedSymbols _ = [141] showFailure _ node_387 = "expected " GHC.Base.<> ( "global_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_387 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_388 c1_389 = TreeSitter.Node.nodeStartPoint node_387 TreeSitter.Node.TSPoint r2_390 c2_391 = TreeSitter.Node.nodeEndPoint node_387 deriving instance GHC.Classes.Eq a_392 => GHC.Classes.Eq (GlobalStatement a_392) deriving instance GHC.Classes.Ord a_393 => GHC.Classes.Ord (GlobalStatement a_393) deriving instance GHC.Show.Show a_394 => GHC.Show.Show (GlobalStatement a_394) instance AST.Unmarshal.Unmarshal GlobalStatement instance Data.Foldable.Foldable GlobalStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor GlobalStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable GlobalStatement where traverse = AST.Traversable1.Class.traverseDefault1 data IfClause a = IfClause { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_395. AST.Traversable1.Class.Traversable1 a_395 ) instance AST.Unmarshal.SymbolMatching IfClause where matchedSymbols _ = [186] showFailure _ node_396 = "expected " GHC.Base.<> ( "if_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_396 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_397 c1_398 = TreeSitter.Node.nodeStartPoint node_396 TreeSitter.Node.TSPoint r2_399 c2_400 = TreeSitter.Node.nodeEndPoint node_396 deriving instance GHC.Classes.Eq a_401 => GHC.Classes.Eq (IfClause a_401) deriving instance GHC.Classes.Ord a_402 => GHC.Classes.Ord (IfClause a_402) deriving instance GHC.Show.Show a_403 => GHC.Show.Show (IfClause a_403) instance AST.Unmarshal.Unmarshal IfClause instance Data.Foldable.Foldable IfClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor IfClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable IfClause where traverse = AST.Traversable1.Class.traverseDefault1 data IfStatement a = IfStatement { ann :: a, alternative :: ([AST.Parse.Err ((ElifClause GHC.Generics.:+: ElseClause) a)]), consequence :: (AST.Parse.Err (Block a)), condition :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_404. AST.Traversable1.Class.Traversable1 a_404 ) instance AST.Unmarshal.SymbolMatching IfStatement where matchedSymbols _ = [123] showFailure _ node_405 = "expected " GHC.Base.<> ( "if_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_405 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_406 c1_407 = TreeSitter.Node.nodeStartPoint node_405 TreeSitter.Node.TSPoint r2_408 c2_409 = TreeSitter.Node.nodeEndPoint node_405 deriving instance GHC.Classes.Eq a_410 => GHC.Classes.Eq (IfStatement a_410) deriving instance GHC.Classes.Ord a_411 => GHC.Classes.Ord (IfStatement a_411) deriving instance GHC.Show.Show a_412 => GHC.Show.Show (IfStatement a_412) instance AST.Unmarshal.Unmarshal IfStatement instance Data.Foldable.Foldable IfStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor IfStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable IfStatement where traverse = AST.Traversable1.Class.traverseDefault1 data ImportFromStatement a = ImportFromStatement { ann :: a, name :: ([AST.Parse.Err ((AliasedImport GHC.Generics.:+: DottedName) a)]), moduleName :: (AST.Parse.Err ((DottedName GHC.Generics.:+: RelativeImport) a)), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (WildcardImport a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_413. AST.Traversable1.Class.Traversable1 a_413 ) instance AST.Unmarshal.SymbolMatching ImportFromStatement where matchedSymbols _ = [108] showFailure _ node_414 = "expected " GHC.Base.<> ( "import_from_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_414 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_415 c1_416 = TreeSitter.Node.nodeStartPoint node_414 TreeSitter.Node.TSPoint r2_417 c2_418 = TreeSitter.Node.nodeEndPoint node_414 deriving instance GHC.Classes.Eq a_419 => GHC.Classes.Eq (ImportFromStatement a_419) deriving instance GHC.Classes.Ord a_420 => GHC.Classes.Ord (ImportFromStatement a_420) deriving instance GHC.Show.Show a_421 => GHC.Show.Show (ImportFromStatement a_421) instance AST.Unmarshal.Unmarshal ImportFromStatement instance Data.Foldable.Foldable ImportFromStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ImportFromStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ImportFromStatement where traverse = AST.Traversable1.Class.traverseDefault1 data ImportPrefix a = ImportPrefix {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_422. AST.Traversable1.Class.Traversable1 a_422 ) instance AST.Unmarshal.SymbolMatching ImportPrefix where matchedSymbols _ = [105] showFailure _ node_423 = "expected " GHC.Base.<> ( "import_prefix" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_423 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_424 c1_425 = TreeSitter.Node.nodeStartPoint node_423 TreeSitter.Node.TSPoint r2_426 c2_427 = TreeSitter.Node.nodeEndPoint node_423 deriving instance GHC.Classes.Eq a_428 => GHC.Classes.Eq (ImportPrefix a_428) deriving instance GHC.Classes.Ord a_429 => GHC.Classes.Ord (ImportPrefix a_429) deriving instance GHC.Show.Show a_430 => GHC.Show.Show (ImportPrefix a_430) instance AST.Unmarshal.Unmarshal ImportPrefix instance Data.Foldable.Foldable ImportPrefix where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ImportPrefix where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ImportPrefix where traverse = AST.Traversable1.Class.traverseDefault1 data ImportStatement a = ImportStatement { ann :: a, name :: (GHC.Base.NonEmpty (AST.Parse.Err ((AliasedImport GHC.Generics.:+: DottedName) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_431. AST.Traversable1.Class.Traversable1 a_431 ) instance AST.Unmarshal.SymbolMatching ImportStatement where matchedSymbols _ = [104] showFailure _ node_432 = "expected " GHC.Base.<> ( "import_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_432 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_433 c1_434 = TreeSitter.Node.nodeStartPoint node_432 TreeSitter.Node.TSPoint r2_435 c2_436 = TreeSitter.Node.nodeEndPoint node_432 deriving instance GHC.Classes.Eq a_437 => GHC.Classes.Eq (ImportStatement a_437) deriving instance GHC.Classes.Ord a_438 => GHC.Classes.Ord (ImportStatement a_438) deriving instance GHC.Show.Show a_439 => GHC.Show.Show (ImportStatement a_439) instance AST.Unmarshal.Unmarshal ImportStatement instance Data.Foldable.Foldable ImportStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ImportStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ImportStatement where traverse = AST.Traversable1.Class.traverseDefault1 data Interpolation a = Interpolation { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: FormatSpecifier GHC.Generics.:+: TypeConversion) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_440. AST.Traversable1.Class.Traversable1 a_440 ) instance AST.Unmarshal.SymbolMatching Interpolation where matchedSymbols _ = [190] showFailure _ node_441 = "expected " GHC.Base.<> ( "interpolation" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_441 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_442 c1_443 = TreeSitter.Node.nodeStartPoint node_441 TreeSitter.Node.TSPoint r2_444 c2_445 = TreeSitter.Node.nodeEndPoint node_441 deriving instance GHC.Classes.Eq a_446 => GHC.Classes.Eq (Interpolation a_446) deriving instance GHC.Classes.Ord a_447 => GHC.Classes.Ord (Interpolation a_447) deriving instance GHC.Show.Show a_448 => GHC.Show.Show (Interpolation a_448) instance AST.Unmarshal.Unmarshal Interpolation instance Data.Foldable.Foldable Interpolation where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Interpolation where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Interpolation where traverse = AST.Traversable1.Class.traverseDefault1 data KeywordArgument a = KeywordArgument { ann :: a, value :: (AST.Parse.Err (Expression a)), name :: (AST.Parse.Err (Identifier a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_449. AST.Traversable1.Class.Traversable1 a_449 ) instance AST.Unmarshal.SymbolMatching KeywordArgument where matchedSymbols _ = [173] showFailure _ node_450 = "expected " GHC.Base.<> ( "keyword_argument" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_450 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_451 c1_452 = TreeSitter.Node.nodeStartPoint node_450 TreeSitter.Node.TSPoint r2_453 c2_454 = TreeSitter.Node.nodeEndPoint node_450 deriving instance GHC.Classes.Eq a_455 => GHC.Classes.Eq (KeywordArgument a_455) deriving instance GHC.Classes.Ord a_456 => GHC.Classes.Ord (KeywordArgument a_456) deriving instance GHC.Show.Show a_457 => GHC.Show.Show (KeywordArgument a_457) instance AST.Unmarshal.Unmarshal KeywordArgument instance Data.Foldable.Foldable KeywordArgument where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor KeywordArgument where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable KeywordArgument where traverse = AST.Traversable1.Class.traverseDefault1 data Lambda a = Lambda { ann :: a, body :: (AST.Parse.Err ((Expression GHC.Generics.:+: Lambda) a)), parameters :: (GHC.Maybe.Maybe (AST.Parse.Err (LambdaParameters a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_458. AST.Traversable1.Class.Traversable1 a_458 ) instance AST.Unmarshal.SymbolMatching Lambda where matchedSymbols _ = [161, 162] showFailure _ node_459 = "expected " GHC.Base.<> ( "lambda, lambda" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_459 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_460 c1_461 = TreeSitter.Node.nodeStartPoint node_459 TreeSitter.Node.TSPoint r2_462 c2_463 = TreeSitter.Node.nodeEndPoint node_459 deriving instance GHC.Classes.Eq a_464 => GHC.Classes.Eq (Lambda a_464) deriving instance GHC.Classes.Ord a_465 => GHC.Classes.Ord (Lambda a_465) deriving instance GHC.Show.Show a_466 => GHC.Show.Show (Lambda a_466) instance AST.Unmarshal.Unmarshal Lambda instance Data.Foldable.Foldable Lambda where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Lambda where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Lambda where traverse = AST.Traversable1.Class.traverseDefault1 data LambdaParameters a = LambdaParameters { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Parameter a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_467. AST.Traversable1.Class.Traversable1 a_467 ) instance AST.Unmarshal.SymbolMatching LambdaParameters where matchedSymbols _ = [135] showFailure _ node_468 = "expected " GHC.Base.<> ( "lambda_parameters" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_468 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_469 c1_470 = TreeSitter.Node.nodeStartPoint node_468 TreeSitter.Node.TSPoint r2_471 c2_472 = TreeSitter.Node.nodeEndPoint node_468 deriving instance GHC.Classes.Eq a_473 => GHC.Classes.Eq (LambdaParameters a_473) deriving instance GHC.Classes.Ord a_474 => GHC.Classes.Ord (LambdaParameters a_474) deriving instance GHC.Show.Show a_475 => GHC.Show.Show (LambdaParameters a_475) instance AST.Unmarshal.Unmarshal LambdaParameters instance Data.Foldable.Foldable LambdaParameters where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor LambdaParameters where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable LambdaParameters where traverse = AST.Traversable1.Class.traverseDefault1 data List a = List { ann :: a, extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: ListSplat) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_476. AST.Traversable1.Class.Traversable1 a_476 ) instance AST.Unmarshal.SymbolMatching List where matchedSymbols _ = [174] showFailure _ node_477 = "expected " GHC.Base.<> ( "list" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_477 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_478 c1_479 = TreeSitter.Node.nodeStartPoint node_477 TreeSitter.Node.TSPoint r2_480 c2_481 = TreeSitter.Node.nodeEndPoint node_477 deriving instance GHC.Classes.Eq a_482 => GHC.Classes.Eq (List a_482) deriving instance GHC.Classes.Ord a_483 => GHC.Classes.Ord (List a_483) deriving instance GHC.Show.Show a_484 => GHC.Show.Show (List a_484) instance AST.Unmarshal.Unmarshal List instance Data.Foldable.Foldable List where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor List where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable List where traverse = AST.Traversable1.Class.traverseDefault1 data ListComprehension a = ListComprehension { ann :: a, body :: (AST.Parse.Err (Expression a)), extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ForInClause GHC.Generics.:+: IfClause) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_485. AST.Traversable1.Class.Traversable1 a_485 ) instance AST.Unmarshal.SymbolMatching ListComprehension where matchedSymbols _ = [176] showFailure _ node_486 = "expected " GHC.Base.<> ( "list_comprehension" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_486 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_487 c1_488 = TreeSitter.Node.nodeStartPoint node_486 TreeSitter.Node.TSPoint r2_489 c2_490 = TreeSitter.Node.nodeEndPoint node_486 deriving instance GHC.Classes.Eq a_491 => GHC.Classes.Eq (ListComprehension a_491) deriving instance GHC.Classes.Ord a_492 => GHC.Classes.Ord (ListComprehension a_492) deriving instance GHC.Show.Show a_493 => GHC.Show.Show (ListComprehension a_493) instance AST.Unmarshal.Unmarshal ListComprehension instance Data.Foldable.Foldable ListComprehension where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ListComprehension where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ListComprehension where traverse = AST.Traversable1.Class.traverseDefault1 data ListSplat a = ListSplat { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_494. AST.Traversable1.Class.Traversable1 a_494 ) instance AST.Unmarshal.SymbolMatching ListSplat where matchedSymbols _ = [139] showFailure _ node_495 = "expected " GHC.Base.<> ( "list_splat" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_495 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_496 c1_497 = TreeSitter.Node.nodeStartPoint node_495 TreeSitter.Node.TSPoint r2_498 c2_499 = TreeSitter.Node.nodeEndPoint node_495 deriving instance GHC.Classes.Eq a_500 => GHC.Classes.Eq (ListSplat a_500) deriving instance GHC.Classes.Ord a_501 => GHC.Classes.Ord (ListSplat a_501) deriving instance GHC.Show.Show a_502 => GHC.Show.Show (ListSplat a_502) instance AST.Unmarshal.Unmarshal ListSplat instance Data.Foldable.Foldable ListSplat where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ListSplat where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ListSplat where traverse = AST.Traversable1.Class.traverseDefault1 data Module a = Module { ann :: a, extraChildren :: ([AST.Parse.Err ((CompoundStatement GHC.Generics.:+: SimpleStatement) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_503. AST.Traversable1.Class.Traversable1 a_503 ) instance AST.Unmarshal.SymbolMatching Module where matchedSymbols _ = [101] showFailure _ node_504 = "expected " GHC.Base.<> ( "module" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_504 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_505 c1_506 = TreeSitter.Node.nodeStartPoint node_504 TreeSitter.Node.TSPoint r2_507 c2_508 = TreeSitter.Node.nodeEndPoint node_504 deriving instance GHC.Classes.Eq a_509 => GHC.Classes.Eq (Module a_509) deriving instance GHC.Classes.Ord a_510 => GHC.Classes.Ord (Module a_510) deriving instance GHC.Show.Show a_511 => GHC.Show.Show (Module a_511) instance AST.Unmarshal.Unmarshal Module instance Data.Foldable.Foldable Module where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Module where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Module where traverse = AST.Traversable1.Class.traverseDefault1 data NamedExpression a = NamedExpression { ann :: a, value :: (AST.Parse.Err (Expression a)), name :: (AST.Parse.Err (Identifier a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_512. AST.Traversable1.Class.Traversable1 a_512 ) instance AST.Unmarshal.SymbolMatching NamedExpression where matchedSymbols _ = [116] showFailure _ node_513 = "expected " GHC.Base.<> ( "named_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_513 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_514 c1_515 = TreeSitter.Node.nodeStartPoint node_513 TreeSitter.Node.TSPoint r2_516 c2_517 = TreeSitter.Node.nodeEndPoint node_513 deriving instance GHC.Classes.Eq a_518 => GHC.Classes.Eq (NamedExpression a_518) deriving instance GHC.Classes.Ord a_519 => GHC.Classes.Ord (NamedExpression a_519) deriving instance GHC.Show.Show a_520 => GHC.Show.Show (NamedExpression a_520) instance AST.Unmarshal.Unmarshal NamedExpression instance Data.Foldable.Foldable NamedExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor NamedExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable NamedExpression where traverse = AST.Traversable1.Class.traverseDefault1 data NonlocalStatement a = NonlocalStatement { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Identifier a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_521. AST.Traversable1.Class.Traversable1 a_521 ) instance AST.Unmarshal.SymbolMatching NonlocalStatement where matchedSymbols _ = [142] showFailure _ node_522 = "expected " GHC.Base.<> ( "nonlocal_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_522 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_523 c1_524 = TreeSitter.Node.nodeStartPoint node_522 TreeSitter.Node.TSPoint r2_525 c2_526 = TreeSitter.Node.nodeEndPoint node_522 deriving instance GHC.Classes.Eq a_527 => GHC.Classes.Eq (NonlocalStatement a_527) deriving instance GHC.Classes.Ord a_528 => GHC.Classes.Ord (NonlocalStatement a_528) deriving instance GHC.Show.Show a_529 => GHC.Show.Show (NonlocalStatement a_529) instance AST.Unmarshal.Unmarshal NonlocalStatement instance Data.Foldable.Foldable NonlocalStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor NonlocalStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable NonlocalStatement where traverse = AST.Traversable1.Class.traverseDefault1 data NotOperator a = NotOperator { ann :: a, argument :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_530. AST.Traversable1.Class.Traversable1 a_530 ) instance AST.Unmarshal.SymbolMatching NotOperator where matchedSymbols _ = [156] showFailure _ node_531 = "expected " GHC.Base.<> ( "not_operator" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_531 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_532 c1_533 = TreeSitter.Node.nodeStartPoint node_531 TreeSitter.Node.TSPoint r2_534 c2_535 = TreeSitter.Node.nodeEndPoint node_531 deriving instance GHC.Classes.Eq a_536 => GHC.Classes.Eq (NotOperator a_536) deriving instance GHC.Classes.Ord a_537 => GHC.Classes.Ord (NotOperator a_537) deriving instance GHC.Show.Show a_538 => GHC.Show.Show (NotOperator a_538) instance AST.Unmarshal.Unmarshal NotOperator instance Data.Foldable.Foldable NotOperator where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor NotOperator where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable NotOperator where traverse = AST.Traversable1.Class.traverseDefault1 data Pair a = Pair { ann :: a, value :: (AST.Parse.Err (Expression a)), key :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_539. AST.Traversable1.Class.Traversable1 a_539 ) instance AST.Unmarshal.SymbolMatching Pair where matchedSymbols _ = [179] showFailure _ node_540 = "expected " GHC.Base.<> ( "pair" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_540 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_541 c1_542 = TreeSitter.Node.nodeStartPoint node_540 TreeSitter.Node.TSPoint r2_543 c2_544 = TreeSitter.Node.nodeEndPoint node_540 deriving instance GHC.Classes.Eq a_545 => GHC.Classes.Eq (Pair a_545) deriving instance GHC.Classes.Ord a_546 => GHC.Classes.Ord (Pair a_546) deriving instance GHC.Show.Show a_547 => GHC.Show.Show (Pair a_547) instance AST.Unmarshal.Unmarshal Pair instance Data.Foldable.Foldable Pair where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Pair where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Pair where traverse = AST.Traversable1.Class.traverseDefault1 data Parameters a = Parameters { ann :: a, extraChildren :: ([AST.Parse.Err (Parameter a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_548. AST.Traversable1.Class.Traversable1 a_548 ) instance AST.Unmarshal.SymbolMatching Parameters where matchedSymbols _ = [134] showFailure _ node_549 = "expected " GHC.Base.<> ( "parameters" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_549 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_550 c1_551 = TreeSitter.Node.nodeStartPoint node_549 TreeSitter.Node.TSPoint r2_552 c2_553 = TreeSitter.Node.nodeEndPoint node_549 deriving instance GHC.Classes.Eq a_554 => GHC.Classes.Eq (Parameters a_554) deriving instance GHC.Classes.Ord a_555 => GHC.Classes.Ord (Parameters a_555) deriving instance GHC.Show.Show a_556 => GHC.Show.Show (Parameters a_556) instance AST.Unmarshal.Unmarshal Parameters instance Data.Foldable.Foldable Parameters where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Parameters where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Parameters where traverse = AST.Traversable1.Class.traverseDefault1 data ParenthesizedExpression a = ParenthesizedExpression { ann :: a, extraChildren :: (AST.Parse.Err ((Expression GHC.Generics.:+: ListSplat GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: Yield) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_557. AST.Traversable1.Class.Traversable1 a_557 ) instance AST.Unmarshal.SymbolMatching ParenthesizedExpression where matchedSymbols _ = [145, 182] showFailure _ node_558 = "expected " GHC.Base.<> ( "parenthesized_expression, parenthesized_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_558 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_559 c1_560 = TreeSitter.Node.nodeStartPoint node_558 TreeSitter.Node.TSPoint r2_561 c2_562 = TreeSitter.Node.nodeEndPoint node_558 deriving instance GHC.Classes.Eq a_563 => GHC.Classes.Eq (ParenthesizedExpression a_563) deriving instance GHC.Classes.Ord a_564 => GHC.Classes.Ord (ParenthesizedExpression a_564) deriving instance GHC.Show.Show a_565 => GHC.Show.Show (ParenthesizedExpression a_565) instance AST.Unmarshal.Unmarshal ParenthesizedExpression instance Data.Foldable.Foldable ParenthesizedExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ParenthesizedExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ParenthesizedExpression where traverse = AST.Traversable1.Class.traverseDefault1 data PassStatement a = PassStatement {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_566. AST.Traversable1.Class.Traversable1 a_566 ) instance AST.Unmarshal.SymbolMatching PassStatement where matchedSymbols _ = [120] showFailure _ node_567 = "expected " GHC.Base.<> ( "pass_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_567 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_568 c1_569 = TreeSitter.Node.nodeStartPoint node_567 TreeSitter.Node.TSPoint r2_570 c2_571 = TreeSitter.Node.nodeEndPoint node_567 deriving instance GHC.Classes.Eq a_572 => GHC.Classes.Eq (PassStatement a_572) deriving instance GHC.Classes.Ord a_573 => GHC.Classes.Ord (PassStatement a_573) deriving instance GHC.Show.Show a_574 => GHC.Show.Show (PassStatement a_574) instance AST.Unmarshal.Unmarshal PassStatement instance Data.Foldable.Foldable PassStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor PassStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable PassStatement where traverse = AST.Traversable1.Class.traverseDefault1 data PrintStatement a = PrintStatement { ann :: a, argument :: ([AST.Parse.Err (Expression a)]), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Chevron a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_575. AST.Traversable1.Class.Traversable1 a_575 ) instance AST.Unmarshal.SymbolMatching PrintStatement where matchedSymbols _ = [112] showFailure _ node_576 = "expected " GHC.Base.<> ( "print_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_576 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_577 c1_578 = TreeSitter.Node.nodeStartPoint node_576 TreeSitter.Node.TSPoint r2_579 c2_580 = TreeSitter.Node.nodeEndPoint node_576 deriving instance GHC.Classes.Eq a_581 => GHC.Classes.Eq (PrintStatement a_581) deriving instance GHC.Classes.Ord a_582 => GHC.Classes.Ord (PrintStatement a_582) deriving instance GHC.Show.Show a_583 => GHC.Show.Show (PrintStatement a_583) instance AST.Unmarshal.Unmarshal PrintStatement instance Data.Foldable.Foldable PrintStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor PrintStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable PrintStatement where traverse = AST.Traversable1.Class.traverseDefault1 data RaiseStatement a = RaiseStatement { ann :: a, cause :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ExpressionList a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_584. AST.Traversable1.Class.Traversable1 a_584 ) instance AST.Unmarshal.SymbolMatching RaiseStatement where matchedSymbols _ = [119] showFailure _ node_585 = "expected " GHC.Base.<> ( "raise_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_585 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_586 c1_587 = TreeSitter.Node.nodeStartPoint node_585 TreeSitter.Node.TSPoint r2_588 c2_589 = TreeSitter.Node.nodeEndPoint node_585 deriving instance GHC.Classes.Eq a_590 => GHC.Classes.Eq (RaiseStatement a_590) deriving instance GHC.Classes.Ord a_591 => GHC.Classes.Ord (RaiseStatement a_591) deriving instance GHC.Show.Show a_592 => GHC.Show.Show (RaiseStatement a_592) instance AST.Unmarshal.Unmarshal RaiseStatement instance Data.Foldable.Foldable RaiseStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor RaiseStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable RaiseStatement where traverse = AST.Traversable1.Class.traverseDefault1 data RelativeImport a = RelativeImport { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((DottedName GHC.Generics.:+: ImportPrefix) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_593. AST.Traversable1.Class.Traversable1 a_593 ) instance AST.Unmarshal.SymbolMatching RelativeImport where matchedSymbols _ = [106] showFailure _ node_594 = "expected " GHC.Base.<> ( "relative_import" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_594 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_595 c1_596 = TreeSitter.Node.nodeStartPoint node_594 TreeSitter.Node.TSPoint r2_597 c2_598 = TreeSitter.Node.nodeEndPoint node_594 deriving instance GHC.Classes.Eq a_599 => GHC.Classes.Eq (RelativeImport a_599) deriving instance GHC.Classes.Ord a_600 => GHC.Classes.Ord (RelativeImport a_600) deriving instance GHC.Show.Show a_601 => GHC.Show.Show (RelativeImport a_601) instance AST.Unmarshal.Unmarshal RelativeImport instance Data.Foldable.Foldable RelativeImport where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor RelativeImport where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable RelativeImport where traverse = AST.Traversable1.Class.traverseDefault1 data ReturnStatement a = ReturnStatement { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ExpressionList a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_602. AST.Traversable1.Class.Traversable1 a_602 ) instance AST.Unmarshal.SymbolMatching ReturnStatement where matchedSymbols _ = [117] showFailure _ node_603 = "expected " GHC.Base.<> ( "return_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_603 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_604 c1_605 = TreeSitter.Node.nodeStartPoint node_603 TreeSitter.Node.TSPoint r2_606 c2_607 = TreeSitter.Node.nodeEndPoint node_603 deriving instance GHC.Classes.Eq a_608 => GHC.Classes.Eq (ReturnStatement a_608) deriving instance GHC.Classes.Ord a_609 => GHC.Classes.Ord (ReturnStatement a_609) deriving instance GHC.Show.Show a_610 => GHC.Show.Show (ReturnStatement a_610) instance AST.Unmarshal.Unmarshal ReturnStatement instance Data.Foldable.Foldable ReturnStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ReturnStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ReturnStatement where traverse = AST.Traversable1.Class.traverseDefault1 data Set a = Set { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: ListSplat) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_611. AST.Traversable1.Class.Traversable1 a_611 ) instance AST.Unmarshal.SymbolMatching Set where matchedSymbols _ = [180] showFailure _ node_612 = "expected " GHC.Base.<> ( "set" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_612 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_613 c1_614 = TreeSitter.Node.nodeStartPoint node_612 TreeSitter.Node.TSPoint r2_615 c2_616 = TreeSitter.Node.nodeEndPoint node_612 deriving instance GHC.Classes.Eq a_617 => GHC.Classes.Eq (Set a_617) deriving instance GHC.Classes.Ord a_618 => GHC.Classes.Ord (Set a_618) deriving instance GHC.Show.Show a_619 => GHC.Show.Show (Set a_619) instance AST.Unmarshal.Unmarshal Set instance Data.Foldable.Foldable Set where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Set where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Set where traverse = AST.Traversable1.Class.traverseDefault1 data SetComprehension a = SetComprehension { ann :: a, body :: (AST.Parse.Err (Expression a)), extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ForInClause GHC.Generics.:+: IfClause) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_620. AST.Traversable1.Class.Traversable1 a_620 ) instance AST.Unmarshal.SymbolMatching SetComprehension where matchedSymbols _ = [181] showFailure _ node_621 = "expected " GHC.Base.<> ( "set_comprehension" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_621 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_622 c1_623 = TreeSitter.Node.nodeStartPoint node_621 TreeSitter.Node.TSPoint r2_624 c2_625 = TreeSitter.Node.nodeEndPoint node_621 deriving instance GHC.Classes.Eq a_626 => GHC.Classes.Eq (SetComprehension a_626) deriving instance GHC.Classes.Ord a_627 => GHC.Classes.Ord (SetComprehension a_627) deriving instance GHC.Show.Show a_628 => GHC.Show.Show (SetComprehension a_628) instance AST.Unmarshal.Unmarshal SetComprehension instance Data.Foldable.Foldable SetComprehension where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SetComprehension where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SetComprehension where traverse = AST.Traversable1.Class.traverseDefault1 data Slice a = Slice { ann :: a, extraChildren :: ([AST.Parse.Err (Expression a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_629. AST.Traversable1.Class.Traversable1 a_629 ) instance AST.Unmarshal.SymbolMatching Slice where matchedSymbols _ = [169] showFailure _ node_630 = "expected " GHC.Base.<> ( "slice" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_630 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_631 c1_632 = TreeSitter.Node.nodeStartPoint node_630 TreeSitter.Node.TSPoint r2_633 c2_634 = TreeSitter.Node.nodeEndPoint node_630 deriving instance GHC.Classes.Eq a_635 => GHC.Classes.Eq (Slice a_635) deriving instance GHC.Classes.Ord a_636 => GHC.Classes.Ord (Slice a_636) deriving instance GHC.Show.Show a_637 => GHC.Show.Show (Slice a_637) instance AST.Unmarshal.Unmarshal Slice instance Data.Foldable.Foldable Slice where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Slice where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Slice where traverse = AST.Traversable1.Class.traverseDefault1 data String a = String { ann :: a, extraChildren :: ([AST.Parse.Err ((EscapeSequence GHC.Generics.:+: Interpolation) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_638. AST.Traversable1.Class.Traversable1 a_638 ) instance AST.Unmarshal.SymbolMatching String where matchedSymbols _ = [189] showFailure _ node_639 = "expected " GHC.Base.<> ( "string" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_639 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_640 c1_641 = TreeSitter.Node.nodeStartPoint node_639 TreeSitter.Node.TSPoint r2_642 c2_643 = TreeSitter.Node.nodeEndPoint node_639 deriving instance GHC.Classes.Eq a_644 => GHC.Classes.Eq (String a_644) deriving instance GHC.Classes.Ord a_645 => GHC.Classes.Ord (String a_645) deriving instance GHC.Show.Show a_646 => GHC.Show.Show (String a_646) instance AST.Unmarshal.Unmarshal String instance Data.Foldable.Foldable String where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor String where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable String where traverse = AST.Traversable1.Class.traverseDefault1 data Subscript a = Subscript { ann :: a, subscript :: (GHC.Base.NonEmpty (AST.Parse.Err ((AnonymousComma GHC.Generics.:+: Expression GHC.Generics.:+: Slice) a))), value :: (AST.Parse.Err (PrimaryExpression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_647. AST.Traversable1.Class.Traversable1 a_647 ) instance AST.Unmarshal.SymbolMatching Subscript where matchedSymbols _ = [168] showFailure _ node_648 = "expected " GHC.Base.<> ( "subscript" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_648 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_649 c1_650 = TreeSitter.Node.nodeStartPoint node_648 TreeSitter.Node.TSPoint r2_651 c2_652 = TreeSitter.Node.nodeEndPoint node_648 deriving instance GHC.Classes.Eq a_653 => GHC.Classes.Eq (Subscript a_653) deriving instance GHC.Classes.Ord a_654 => GHC.Classes.Ord (Subscript a_654) deriving instance GHC.Show.Show a_655 => GHC.Show.Show (Subscript a_655) instance AST.Unmarshal.Unmarshal Subscript instance Data.Foldable.Foldable Subscript where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Subscript where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Subscript where traverse = AST.Traversable1.Class.traverseDefault1 data TryStatement a = TryStatement { ann :: a, body :: (AST.Parse.Err (Block a)), extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ElseClause GHC.Generics.:+: ExceptClause GHC.Generics.:+: FinallyClause) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_656. AST.Traversable1.Class.Traversable1 a_656 ) instance AST.Unmarshal.SymbolMatching TryStatement where matchedSymbols _ = [128] showFailure _ node_657 = "expected " GHC.Base.<> ( "try_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_657 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_658 c1_659 = TreeSitter.Node.nodeStartPoint node_657 TreeSitter.Node.TSPoint r2_660 c2_661 = TreeSitter.Node.nodeEndPoint node_657 deriving instance GHC.Classes.Eq a_662 => GHC.Classes.Eq (TryStatement a_662) deriving instance GHC.Classes.Ord a_663 => GHC.Classes.Ord (TryStatement a_663) deriving instance GHC.Show.Show a_664 => GHC.Show.Show (TryStatement a_664) instance AST.Unmarshal.Unmarshal TryStatement instance Data.Foldable.Foldable TryStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TryStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TryStatement where traverse = AST.Traversable1.Class.traverseDefault1 data Tuple a = Tuple { ann :: a, extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: Yield) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_665. AST.Traversable1.Class.Traversable1 a_665 ) instance AST.Unmarshal.SymbolMatching Tuple where matchedSymbols _ = [183] showFailure _ node_666 = "expected " GHC.Base.<> ( "tuple" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_666 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_667 c1_668 = TreeSitter.Node.nodeStartPoint node_666 TreeSitter.Node.TSPoint r2_669 c2_670 = TreeSitter.Node.nodeEndPoint node_666 deriving instance GHC.Classes.Eq a_671 => GHC.Classes.Eq (Tuple a_671) deriving instance GHC.Classes.Ord a_672 => GHC.Classes.Ord (Tuple a_672) deriving instance GHC.Show.Show a_673 => GHC.Show.Show (Tuple a_673) instance AST.Unmarshal.Unmarshal Tuple instance Data.Foldable.Foldable Tuple where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Tuple where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Tuple where traverse = AST.Traversable1.Class.traverseDefault1 data Type a = Type {ann :: a, extraChildren :: (AST.Parse.Err (Expression a))} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_674. AST.Traversable1.Class.Traversable1 a_674 ) instance AST.Unmarshal.SymbolMatching Type where matchedSymbols _ = [172] showFailure _ node_675 = "expected " GHC.Base.<> ( "type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_675 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_676 c1_677 = TreeSitter.Node.nodeStartPoint node_675 TreeSitter.Node.TSPoint r2_678 c2_679 = TreeSitter.Node.nodeEndPoint node_675 deriving instance GHC.Classes.Eq a_680 => GHC.Classes.Eq (Type a_680) deriving instance GHC.Classes.Ord a_681 => GHC.Classes.Ord (Type a_681) deriving instance GHC.Show.Show a_682 => GHC.Show.Show (Type a_682) instance AST.Unmarshal.Unmarshal Type instance Data.Foldable.Foldable Type where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Type where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Type where traverse = AST.Traversable1.Class.traverseDefault1 data TypedDefaultParameter a = TypedDefaultParameter { ann :: a, value :: (AST.Parse.Err (Expression a)), name :: (AST.Parse.Err (Identifier a)), type' :: (AST.Parse.Err (Type a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_683. AST.Traversable1.Class.Traversable1 a_683 ) instance AST.Unmarshal.SymbolMatching TypedDefaultParameter where matchedSymbols _ = [138] showFailure _ node_684 = "expected " GHC.Base.<> ( "typed_default_parameter" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_684 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_685 c1_686 = TreeSitter.Node.nodeStartPoint node_684 TreeSitter.Node.TSPoint r2_687 c2_688 = TreeSitter.Node.nodeEndPoint node_684 deriving instance GHC.Classes.Eq a_689 => GHC.Classes.Eq (TypedDefaultParameter a_689) deriving instance GHC.Classes.Ord a_690 => GHC.Classes.Ord (TypedDefaultParameter a_690) deriving instance GHC.Show.Show a_691 => GHC.Show.Show (TypedDefaultParameter a_691) instance AST.Unmarshal.Unmarshal TypedDefaultParameter instance Data.Foldable.Foldable TypedDefaultParameter where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypedDefaultParameter where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypedDefaultParameter where traverse = AST.Traversable1.Class.traverseDefault1 data TypedParameter a = TypedParameter { ann :: a, type' :: (AST.Parse.Err (Type a)), extraChildren :: (AST.Parse.Err ((DictionarySplat GHC.Generics.:+: Identifier GHC.Generics.:+: ListSplat) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_692. AST.Traversable1.Class.Traversable1 a_692 ) instance AST.Unmarshal.SymbolMatching TypedParameter where matchedSymbols _ = [171] showFailure _ node_693 = "expected " GHC.Base.<> ( "typed_parameter" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_693 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_694 c1_695 = TreeSitter.Node.nodeStartPoint node_693 TreeSitter.Node.TSPoint r2_696 c2_697 = TreeSitter.Node.nodeEndPoint node_693 deriving instance GHC.Classes.Eq a_698 => GHC.Classes.Eq (TypedParameter a_698) deriving instance GHC.Classes.Ord a_699 => GHC.Classes.Ord (TypedParameter a_699) deriving instance GHC.Show.Show a_700 => GHC.Show.Show (TypedParameter a_700) instance AST.Unmarshal.Unmarshal TypedParameter instance Data.Foldable.Foldable TypedParameter where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypedParameter where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypedParameter where traverse = AST.Traversable1.Class.traverseDefault1 data UnaryOperator a = UnaryOperator { ann :: a, operator :: (AST.Parse.Err ((AnonymousPlus GHC.Generics.:+: AnonymousMinus GHC.Generics.:+: AnonymousTilde) a)), argument :: (AST.Parse.Err (PrimaryExpression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_701. AST.Traversable1.Class.Traversable1 a_701 ) instance AST.Unmarshal.SymbolMatching UnaryOperator where matchedSymbols _ = [159] showFailure _ node_702 = "expected " GHC.Base.<> ( "unary_operator" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_702 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_703 c1_704 = TreeSitter.Node.nodeStartPoint node_702 TreeSitter.Node.TSPoint r2_705 c2_706 = TreeSitter.Node.nodeEndPoint node_702 deriving instance GHC.Classes.Eq a_707 => GHC.Classes.Eq (UnaryOperator a_707) deriving instance GHC.Classes.Ord a_708 => GHC.Classes.Ord (UnaryOperator a_708) deriving instance GHC.Show.Show a_709 => GHC.Show.Show (UnaryOperator a_709) instance AST.Unmarshal.Unmarshal UnaryOperator instance Data.Foldable.Foldable UnaryOperator where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor UnaryOperator where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable UnaryOperator where traverse = AST.Traversable1.Class.traverseDefault1 data Variables a = Variables { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (PrimaryExpression a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_710. AST.Traversable1.Class.Traversable1 a_710 ) instance AST.Unmarshal.SymbolMatching Variables where matchedSymbols _ = [150] showFailure _ node_711 = "expected " GHC.Base.<> ( "variables" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_711 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_712 c1_713 = TreeSitter.Node.nodeStartPoint node_711 TreeSitter.Node.TSPoint r2_714 c2_715 = TreeSitter.Node.nodeEndPoint node_711 deriving instance GHC.Classes.Eq a_716 => GHC.Classes.Eq (Variables a_716) deriving instance GHC.Classes.Ord a_717 => GHC.Classes.Ord (Variables a_717) deriving instance GHC.Show.Show a_718 => GHC.Show.Show (Variables a_718) instance AST.Unmarshal.Unmarshal Variables instance Data.Foldable.Foldable Variables where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Variables where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Variables where traverse = AST.Traversable1.Class.traverseDefault1 data WhileStatement a = WhileStatement { ann :: a, alternative :: (GHC.Maybe.Maybe (AST.Parse.Err (ElseClause a))), body :: (AST.Parse.Err (Block a)), condition :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_719. AST.Traversable1.Class.Traversable1 a_719 ) instance AST.Unmarshal.SymbolMatching WhileStatement where matchedSymbols _ = [127] showFailure _ node_720 = "expected " GHC.Base.<> ( "while_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_720 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_721 c1_722 = TreeSitter.Node.nodeStartPoint node_720 TreeSitter.Node.TSPoint r2_723 c2_724 = TreeSitter.Node.nodeEndPoint node_720 deriving instance GHC.Classes.Eq a_725 => GHC.Classes.Eq (WhileStatement a_725) deriving instance GHC.Classes.Ord a_726 => GHC.Classes.Ord (WhileStatement a_726) deriving instance GHC.Show.Show a_727 => GHC.Show.Show (WhileStatement a_727) instance AST.Unmarshal.Unmarshal WhileStatement instance Data.Foldable.Foldable WhileStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor WhileStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable WhileStatement where traverse = AST.Traversable1.Class.traverseDefault1 data WildcardImport a = WildcardImport {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_728. AST.Traversable1.Class.Traversable1 a_728 ) instance AST.Unmarshal.SymbolMatching WildcardImport where matchedSymbols _ = [111] showFailure _ node_729 = "expected " GHC.Base.<> ( "wildcard_import" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_729 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_730 c1_731 = TreeSitter.Node.nodeStartPoint node_729 TreeSitter.Node.TSPoint r2_732 c2_733 = TreeSitter.Node.nodeEndPoint node_729 deriving instance GHC.Classes.Eq a_734 => GHC.Classes.Eq (WildcardImport a_734) deriving instance GHC.Classes.Ord a_735 => GHC.Classes.Ord (WildcardImport a_735) deriving instance GHC.Show.Show a_736 => GHC.Show.Show (WildcardImport a_736) instance AST.Unmarshal.Unmarshal WildcardImport instance Data.Foldable.Foldable WildcardImport where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor WildcardImport where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable WildcardImport where traverse = AST.Traversable1.Class.traverseDefault1 data WithItem a = WithItem { ann :: a, value :: (AST.Parse.Err (Expression a)), alias :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_737. AST.Traversable1.Class.Traversable1 a_737 ) instance AST.Unmarshal.SymbolMatching WithItem where matchedSymbols _ = [132] showFailure _ node_738 = "expected " GHC.Base.<> ( "with_item" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_738 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_739 c1_740 = TreeSitter.Node.nodeStartPoint node_738 TreeSitter.Node.TSPoint r2_741 c2_742 = TreeSitter.Node.nodeEndPoint node_738 deriving instance GHC.Classes.Eq a_743 => GHC.Classes.Eq (WithItem a_743) deriving instance GHC.Classes.Ord a_744 => GHC.Classes.Ord (WithItem a_744) deriving instance GHC.Show.Show a_745 => GHC.Show.Show (WithItem a_745) instance AST.Unmarshal.Unmarshal WithItem instance Data.Foldable.Foldable WithItem where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor WithItem where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable WithItem where traverse = AST.Traversable1.Class.traverseDefault1 data WithStatement a = WithStatement { ann :: a, body :: (AST.Parse.Err (Block a)), extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (WithItem a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_746. AST.Traversable1.Class.Traversable1 a_746 ) instance AST.Unmarshal.SymbolMatching WithStatement where matchedSymbols _ = [131] showFailure _ node_747 = "expected " GHC.Base.<> ( "with_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_747 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_748 c1_749 = TreeSitter.Node.nodeStartPoint node_747 TreeSitter.Node.TSPoint r2_750 c2_751 = TreeSitter.Node.nodeEndPoint node_747 deriving instance GHC.Classes.Eq a_752 => GHC.Classes.Eq (WithStatement a_752) deriving instance GHC.Classes.Ord a_753 => GHC.Classes.Ord (WithStatement a_753) deriving instance GHC.Show.Show a_754 => GHC.Show.Show (WithStatement a_754) instance AST.Unmarshal.Unmarshal WithStatement instance Data.Foldable.Foldable WithStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor WithStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable WithStatement where traverse = AST.Traversable1.Class.traverseDefault1 data Yield a = Yield { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err ((Expression GHC.Generics.:+: ExpressionList) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_755. AST.Traversable1.Class.Traversable1 a_755 ) instance AST.Unmarshal.SymbolMatching Yield where matchedSymbols _ = [166] showFailure _ node_756 = "expected " GHC.Base.<> ( "yield" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_756 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_757 c1_758 = TreeSitter.Node.nodeStartPoint node_756 TreeSitter.Node.TSPoint r2_759 c2_760 = TreeSitter.Node.nodeEndPoint node_756 deriving instance GHC.Classes.Eq a_761 => GHC.Classes.Eq (Yield a_761) deriving instance GHC.Classes.Ord a_762 => GHC.Classes.Ord (Yield a_762) deriving instance GHC.Show.Show a_763 => GHC.Show.Show (Yield a_763) instance AST.Unmarshal.Unmarshal Yield instance Data.Foldable.Foldable Yield where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Yield where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Yield where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousBangEqual = AST.Token.Token "!=" 58 type AnonymousPercent = AST.Token.Token "%" 48 type AnonymousPercentEqual = AST.Token.Token "%=" 70 type AnonymousAmpersand = AST.Token.Token "&" 51 type AnonymousAmpersandEqual = AST.Token.Token "&=" 74 type AnonymousLParen = AST.Token.Token "(" 6 type AnonymousRParen = AST.Token.Token ")" 7 type AnonymousStar = AST.Token.Token "*" 10 type AnonymousStarStar = AST.Token.Token "**" 36 type AnonymousStarStarEqual = AST.Token.Token "**=" 71 type AnonymousStarEqual = AST.Token.Token "*=" 66 type AnonymousPlus = AST.Token.Token "+" 45 type AnonymousPlusEqual = AST.Token.Token "+=" 64 type AnonymousComma = AST.Token.Token "," 8 type AnonymousMinus = AST.Token.Token "-" 46 type AnonymousMinusEqual = AST.Token.Token "-=" 65 type AnonymousMinusRAngle = AST.Token.Token "->" 34 type AnonymousDot = AST.Token.Token "." 3 type AnonymousSlash = AST.Token.Token "/" 47 type AnonymousSlashSlash = AST.Token.Token "//" 49 type AnonymousSlashSlashEqual = AST.Token.Token "//=" 69 type AnonymousSlashEqual = AST.Token.Token "/=" 67 type AnonymousColon = AST.Token.Token ":" 22 type AnonymousColonEqual = AST.Token.Token ":=" 14 type AnonymousLAngle = AST.Token.Token "<" 55 type AnonymousLAngleLAngle = AST.Token.Token "<<" 53 type AnonymousLAngleLAngleEqual = AST.Token.Token "<<=" 73 type AnonymousLAngleEqual = AST.Token.Token "<=" 56 type AnonymousLAngleRAngle = AST.Token.Token "<>" 61 type AnonymousEqual = AST.Token.Token "=" 35 type AnonymousEqualEqual = AST.Token.Token "==" 57 type AnonymousRAngle = AST.Token.Token ">" 60 type AnonymousRAngleEqual = AST.Token.Token ">=" 59 type AnonymousRAngleRAngle = AST.Token.Token ">>" 12 type AnonymousRAngleRAngleEqual = AST.Token.Token ">>=" 72 type AnonymousAt = AST.Token.Token "@" 41 type AnonymousAtEqual = AST.Token.Token "@=" 68 type AnonymousLBracket = AST.Token.Token "[" 78 type AnonymousRBracket = AST.Token.Token "]" 79 type AnonymousCaret = AST.Token.Token "^" 52 type AnonymousCaretEqual = AST.Token.Token "^=" 75 type AnonymousUnderscorefutureUnderscore = AST.Token.Token "__future__" 5 type AnonymousAnd = AST.Token.Token "and" 43 type AnonymousAs = AST.Token.Token "as" 9 type AnonymousAssert = AST.Token.Token "assert" 13 type AnonymousAsync = AST.Token.Token "async" 25 type AnonymousAwait = AST.Token.Token "await" 92 type AnonymousBreak = AST.Token.Token "break" 19 type AnonymousClass = AST.Token.Token "class" 40 type AnonymousContinue = AST.Token.Token "continue" 20 type AnonymousDef = AST.Token.Token "def" 33 type AnonymousDel = AST.Token.Token "del" 16 type AnonymousElif = AST.Token.Token "elif" 23 data Ellipsis a = Ellipsis {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_764. AST.Traversable1.Class.Traversable1 a_764 ) instance AST.Unmarshal.SymbolMatching Ellipsis where matchedSymbols _ = [80] showFailure _ node_765 = "expected " GHC.Base.<> ( "ellipsis" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_765 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_766 c1_767 = TreeSitter.Node.nodeStartPoint node_765 TreeSitter.Node.TSPoint r2_768 c2_769 = TreeSitter.Node.nodeEndPoint node_765 deriving instance GHC.Classes.Eq a_770 => GHC.Classes.Eq (Ellipsis a_770) deriving instance GHC.Classes.Ord a_771 => GHC.Classes.Ord (Ellipsis a_771) deriving instance GHC.Show.Show a_772 => GHC.Show.Show (Ellipsis a_772) instance AST.Unmarshal.Unmarshal Ellipsis instance Data.Foldable.Foldable Ellipsis where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Ellipsis where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Ellipsis where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousElse = AST.Token.Token "else" 24 data EscapeSequence a = EscapeSequence {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_773. AST.Traversable1.Class.Traversable1 a_773 ) instance AST.Unmarshal.SymbolMatching EscapeSequence where matchedSymbols _ = [83] showFailure _ node_774 = "expected " GHC.Base.<> ( "escape_sequence" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_774 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_775 c1_776 = TreeSitter.Node.nodeStartPoint node_774 TreeSitter.Node.TSPoint r2_777 c2_778 = TreeSitter.Node.nodeEndPoint node_774 deriving instance GHC.Classes.Eq a_779 => GHC.Classes.Eq (EscapeSequence a_779) deriving instance GHC.Classes.Ord a_780 => GHC.Classes.Ord (EscapeSequence a_780) deriving instance GHC.Show.Show a_781 => GHC.Show.Show (EscapeSequence a_781) instance AST.Unmarshal.Unmarshal EscapeSequence instance Data.Foldable.Foldable EscapeSequence where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor EscapeSequence where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable EscapeSequence where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousExcept = AST.Token.Token "except" 30 type AnonymousExec = AST.Token.Token "exec" 39 data False a = False {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_782. AST.Traversable1.Class.Traversable1 a_782 ) instance AST.Unmarshal.SymbolMatching False where matchedSymbols _ = [90] showFailure _ node_783 = "expected " GHC.Base.<> ( "false" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_783 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_784 c1_785 = TreeSitter.Node.nodeStartPoint node_783 TreeSitter.Node.TSPoint r2_786 c2_787 = TreeSitter.Node.nodeEndPoint node_783 deriving instance GHC.Classes.Eq a_788 => GHC.Classes.Eq (False a_788) deriving instance GHC.Classes.Ord a_789 => GHC.Classes.Ord (False a_789) deriving instance GHC.Show.Show a_790 => GHC.Show.Show (False a_790) instance AST.Unmarshal.Unmarshal False instance Data.Foldable.Foldable False where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor False where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable False where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousFinally = AST.Token.Token "finally" 31 data Float a = Float {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_791. AST.Traversable1.Class.Traversable1 a_791 ) instance AST.Unmarshal.SymbolMatching Float where matchedSymbols _ = [88] showFailure _ node_792 = "expected " GHC.Base.<> ( "float" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_792 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_793 c1_794 = TreeSitter.Node.nodeStartPoint node_792 TreeSitter.Node.TSPoint r2_795 c2_796 = TreeSitter.Node.nodeEndPoint node_792 deriving instance GHC.Classes.Eq a_797 => GHC.Classes.Eq (Float a_797) deriving instance GHC.Classes.Ord a_798 => GHC.Classes.Ord (Float a_798) deriving instance GHC.Show.Show a_799 => GHC.Show.Show (Float a_799) instance AST.Unmarshal.Unmarshal Float instance Data.Foldable.Foldable Float where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Float where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Float where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousFor = AST.Token.Token "for" 26 type AnonymousFrom = AST.Token.Token "from" 4 type AnonymousGlobal = AST.Token.Token "global" 37 data Identifier a = Identifier {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_800. AST.Traversable1.Class.Traversable1 a_800 ) instance AST.Unmarshal.SymbolMatching Identifier where matchedSymbols _ = [1] showFailure _ node_801 = "expected " GHC.Base.<> ( "identifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_801 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_802 c1_803 = TreeSitter.Node.nodeStartPoint node_801 TreeSitter.Node.TSPoint r2_804 c2_805 = TreeSitter.Node.nodeEndPoint node_801 deriving instance GHC.Classes.Eq a_806 => GHC.Classes.Eq (Identifier a_806) deriving instance GHC.Classes.Ord a_807 => GHC.Classes.Ord (Identifier a_807) deriving instance GHC.Show.Show a_808 => GHC.Show.Show (Identifier a_808) instance AST.Unmarshal.Unmarshal Identifier instance Data.Foldable.Foldable Identifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Identifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Identifier where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousIf = AST.Token.Token "if" 21 type AnonymousImport = AST.Token.Token "import" 2 type AnonymousIn = AST.Token.Token "in" 27 data Integer a = Integer {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_809. AST.Traversable1.Class.Traversable1 a_809 ) instance AST.Unmarshal.SymbolMatching Integer where matchedSymbols _ = [87] showFailure _ node_810 = "expected " GHC.Base.<> ( "integer" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_810 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_811 c1_812 = TreeSitter.Node.nodeStartPoint node_810 TreeSitter.Node.TSPoint r2_813 c2_814 = TreeSitter.Node.nodeEndPoint node_810 deriving instance GHC.Classes.Eq a_815 => GHC.Classes.Eq (Integer a_815) deriving instance GHC.Classes.Ord a_816 => GHC.Classes.Ord (Integer a_816) deriving instance GHC.Show.Show a_817 => GHC.Show.Show (Integer a_817) instance AST.Unmarshal.Unmarshal Integer instance Data.Foldable.Foldable Integer where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Integer where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Integer where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousIs = AST.Token.Token "is" 62 type AnonymousLambda = AST.Token.Token "lambda" 63 data None a = None {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_818. AST.Traversable1.Class.Traversable1 a_818 ) instance AST.Unmarshal.SymbolMatching None where matchedSymbols _ = [91] showFailure _ node_819 = "expected " GHC.Base.<> ( "none" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_819 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_820 c1_821 = TreeSitter.Node.nodeStartPoint node_819 TreeSitter.Node.TSPoint r2_822 c2_823 = TreeSitter.Node.nodeEndPoint node_819 deriving instance GHC.Classes.Eq a_824 => GHC.Classes.Eq (None a_824) deriving instance GHC.Classes.Ord a_825 => GHC.Classes.Ord (None a_825) deriving instance GHC.Show.Show a_826 => GHC.Show.Show (None a_826) instance AST.Unmarshal.Unmarshal None instance Data.Foldable.Foldable None where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor None where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable None where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousNonlocal = AST.Token.Token "nonlocal" 38 type AnonymousNot = AST.Token.Token "not" 42 type AnonymousOr = AST.Token.Token "or" 44 type AnonymousPass = AST.Token.Token "pass" 18 type AnonymousPrint = AST.Token.Token "print" 11 type AnonymousRaise = AST.Token.Token "raise" 17 type AnonymousReturn = AST.Token.Token "return" 15 data True a = True {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_827. AST.Traversable1.Class.Traversable1 a_827 ) instance AST.Unmarshal.SymbolMatching True where matchedSymbols _ = [89] showFailure _ node_828 = "expected " GHC.Base.<> ( "true" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_828 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_829 c1_830 = TreeSitter.Node.nodeStartPoint node_828 TreeSitter.Node.TSPoint r2_831 c2_832 = TreeSitter.Node.nodeEndPoint node_828 deriving instance GHC.Classes.Eq a_833 => GHC.Classes.Eq (True a_833) deriving instance GHC.Classes.Ord a_834 => GHC.Classes.Ord (True a_834) deriving instance GHC.Show.Show a_835 => GHC.Show.Show (True a_835) instance AST.Unmarshal.Unmarshal True instance Data.Foldable.Foldable True where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor True where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable True where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousTry = AST.Token.Token "try" 29 data TypeConversion a = TypeConversion {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_836. AST.Traversable1.Class.Traversable1 a_836 ) instance AST.Unmarshal.SymbolMatching TypeConversion where matchedSymbols _ = [86] showFailure _ node_837 = "expected " GHC.Base.<> ( "type_conversion" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_837 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_838 c1_839 = TreeSitter.Node.nodeStartPoint node_837 TreeSitter.Node.TSPoint r2_840 c2_841 = TreeSitter.Node.nodeEndPoint node_837 deriving instance GHC.Classes.Eq a_842 => GHC.Classes.Eq (TypeConversion a_842) deriving instance GHC.Classes.Ord a_843 => GHC.Classes.Ord (TypeConversion a_843) deriving instance GHC.Show.Show a_844 => GHC.Show.Show (TypeConversion a_844) instance AST.Unmarshal.Unmarshal TypeConversion instance Data.Foldable.Foldable TypeConversion where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeConversion where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeConversion where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousWhile = AST.Token.Token "while" 28 type AnonymousWith = AST.Token.Token "with" 32 type AnonymousYield = AST.Token.Token "yield" 77 type AnonymousLBrace = AST.Token.Token "{" 81 type AnonymousPipe = AST.Token.Token "|" 50 type AnonymousPipeEqual = AST.Token.Token "|=" 76 type AnonymousRBrace = AST.Token.Token "}" 82 type AnonymousTilde = AST.Token.Token "~" 54 ================================================ FILE: semantic-python/src/Language/Python/Core.hs ================================================ {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DefaultSignatures #-} {-# LANGUAGE DisambiguateRecordFields #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedLists #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE PatternSynonyms #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE ViewPatterns #-} -- NOTE: This file needs to be updated to accommodate new AST shapes. -- A portion of instances have been updated to include the Err functor; -- remaining instances are to be updated once this is stable. module Language.Python.Core ( toplevelCompile , Bindings ) where import Prelude hiding (fail) import AST.Element import Control.Algebra hiding ((:+:)) import Control.Effect.Reader import Core.Core as Core import Core.Name as Name import Data.Coerce import Data.Foldable import Data.Function import Data.List.NonEmpty (NonEmpty (..)) import Data.Maybe import GHC.Records import qualified Language.Python.AST as Py import Language.Python.Failure import Language.Python.Patterns import Source.Span (Span) import Syntax.Stack (Stack (..)) import qualified Syntax.Stack as Stack -- | Keeps track of the current scope's bindings (so that we can, when -- compiling a class or module, return the list of bound variables as -- a Core record so that all immediate definitions are exposed) newtype Bindings = Bindings { unBindings :: Stack Name } deriving (Eq, Monoid, Semigroup, Show) def :: Name -> Bindings -> Bindings def n = coerce (Stack.:> n) prelude :: Has Core sig t => [Name] -> t Name prelude = foldl' (...) (pure "__semantic_prelude") -- We leave the representation of Core syntax abstract so that it's not -- possible for us to 'cheat' by pattern-matching on or eliminating a -- compiled term. type CoreSyntax sig t = ( Has Core sig t , Has (Ann Span) sig t , Has Failure sig t , Foldable t ) class Compile (py :: * -> *) where compile :: ( CoreSyntax syn t , Has (Reader Bindings) sig m ) => py Span -> (t Name -> m (t Name)) -> (t Name -> m (t Name)) default compile :: (Applicative m, Has Failure syn t, Show (py Span)) => py Span -> (t Name -> m (t Name)) -> (t Name -> m (t Name)) compile a _ _ = defaultCompile a toplevelCompile :: ( CoreSyntax syn t , Has (Reader Bindings) sig m ) => Py.Module Span -> m (t Name) toplevelCompile py = compile py pure none -- | TODO: This is not right, it should be a reference to a Preluded -- NoneType instance, but it will do for now. none :: Has Core sig t => t Name none = unit locate :: ( HasField "ann" syntax Span , CoreSyntax syn t ) => syntax -> t a -> t a locate syn = Core.annAt (getField @"ann" syn) defaultCompile :: (Applicative m, Has Failure syn t, Show py) => py -> m (t Name) defaultCompile = pure . unimplemented instance (Compile l, Compile r) => Compile (l :+: r) where compile (L1 l) cc = compile l cc compile (R1 r) cc = compile r cc instance Compile Py.AssertStatement instance Compile Py.Attribute -- Assignment compilation. Assignments are an uneasy hybrid of expressions -- (since they appear to have values, i.e. `a = b = c`) and statements (because -- they introduce bindings). For that reason, they deserve special attention. -- -- The correct desugaring for the expression above looks like, given a continuation @cont@: -- @ -- (b :<- c) >>>= (a :<- b) >>>= cont -- @ -- The tree structure that we get out of tree-sitter is not particulary conducive to expressing -- this naturally, so we engage in a small desugaring step so that we can turn a list [a, b, c] -- into a sequenced Core expression using >>>= and a fold through which information—specifically -- the LHS to assign—flows. -- RHS represents the right-hand-side of an assignment that we get out of tree-sitter. -- Desugared is the "terminal" node in a sequence of assignments, i.e. given a = b = c, -- c will be the terminal node. It is never an assignment. type RHS = (Py.Assignment :+: Py.AugmentedAssignment) :+: Desugared type Desugared = Py.ExpressionList :+: Py.Yield -- We have to pair locations and names, and tuple syntax is harder to -- read in this case than a happy little constructor. data Located a = Located Span a -- Desugaring an RHS involves walking as deeply as possible into an -- assignment, storing the names we encounter as we go and eventually -- returning a terminal expression. We have to keep track of which desugar :: [Located Name] -> RHS Span -> Either String ([Located Name], Desugared Span) desugar acc = \case Prj Py.Assignment { left = SingleIdentifier name, right = Just rhs, ann} -> desugar (Located ann name : acc) rhs R1 any -> pure (acc, any) other -> Left ("desugar: couldn't desugar RHS " <> show other) -- This is an algebra that is invoked from a left fold but that -- returns a function (the 'difference' pattern) so that we can pass -- information about what RHS we need down the chain: unlike most fold -- functions, it has four parameters, not three (since our fold -- returns a function). There's some pun to be made on "collapsing -- sugar", like "icing" or "sugar water" but I'll leave that as an -- exercise to the reader. collapseDesugared :: (CoreSyntax syn t, Has (Reader Bindings) sig m) => Located Name -- The current LHS to which to assign -> (t Name -> m (t Name)) -- A meta-continuation: it takes a name and returns a continuation -> t Name -- The current RHS to which to assign, yielded from an outer continuation -> m (t Name) -- The properly-sequenced resolut collapseDesugared (Located loc n) cont rem = let assigning = fmap (Core.annAt loc . ((Name.named' n :<- rem) >>>=)) in assigning (local (def n) (cont (pure n))) -- gotta call local here to record this assignment instance Compile Py.Assignment where compile it@Py.Assignment { left = SingleIdentifier name , right = Just rhs , ann } cc next = case desugar [Located ann name] rhs of Right (names, val) -> compile val pure next >>= foldr collapseDesugared cc names >>= pure . locate it Left msg -> pure $ unimplemented msg compile other _ _ = pure $ invariantViolated ("Unhandled assignment case: " <> show other) -- End assignment compilation instance Compile Py.AugmentedAssignment instance Compile Py.Await instance Compile Py.BinaryOperator instance Compile Py.Block where compile it@Py.Block{ Py.extraChildren = body} cc = fmap (locate it) . foldr compile cc body instance Compile Py.BooleanOperator instance Compile Py.BreakStatement instance Compile Py.Call where compile it@Py.Call { function , arguments = L1 Py.ArgumentList { extraChildren = args } } cc next = do func <- compile function pure next let compileArg = \case Prj expr -> compile (expr :: Py.Expression Span) pure next other -> pure . invariantViolated $ "Can't compile non-expression function argument: " <> show other -- Python function arguments are defined to evaluate left to right. args <- traverse compileArg args locate it (func $$* args) & cc compile it _ _ = pure . invariantViolated $ "can't compile Call node with generator expression: " <> show it instance Compile Py.ClassDefinition where compile it@Py.ClassDefinition { body = pybody, name = Py.Identifier _ann (Name.name -> n) } cc next = do let buildTypeCall _ = do bindings <- asks @Bindings (toList . unBindings) let buildName n = (n, pure n) contents = record . fmap buildName $ bindings typefn = prelude ["type"] object = prelude ["object"] pure (typefn $$ Core.string (formatName n) $$ object $$ contents) body <- compile pybody buildTypeCall next let coreName = Name.named' n assignClass = coreName :<- rec coreName body continuing = fmap (locate it . (assignClass >>>=)) continuing (local (def n) (cc next)) instance Compile Py.ComparisonOperator deriving instance Compile Py.CompoundStatement instance Compile Py.ConcatenatedString instance Compile Py.ConditionalExpression instance Compile Py.ContinueStatement instance Compile Py.DecoratedDefinition where compile it@Py.DecoratedDefinition { definition , extraChildren = [ Py.Decorator { extraChildren } ] } cc next = do let thenReassign item = do bindings <- asks unBindings case bindings of _ :> lastbound -> do tocall <- compile extraChildren pure next let callit go = (pure lastbound .= (tocall $$ pure lastbound)) >>> go fmap callit (cc item) _ -> pure . invariantViolated $ "Encountered a decorated definition without a corresponding function" locate it <$> compile definition thenReassign next compile it _ _ = pure . invariantViolated $ "Can't figure out decorated definition " <> show it instance Compile Py.DeleteStatement instance Compile Py.Dictionary instance Compile Py.DictionaryComprehension instance Compile Py.DottedName where compile it@Py.DottedName { extraChildren = Py.Identifier { text } :| rest } cc _next = do let aggregate Py.Identifier { text = inner } x = x ... Name.name inner composite = foldr aggregate (pure (Name.name text)) rest locate it composite & cc instance Compile Py.Ellipsis instance Compile Py.ExecStatement deriving instance Compile Py.Expression instance Compile Py.ExpressionStatement where compile it@Py.ExpressionStatement { Py.extraChildren = children } cc = fmap (locate it) . foldr compile cc children instance Compile Py.ExpressionList where compile it@Py.ExpressionList { Py.extraChildren = [child] } cc = fmap (locate it) . compile child cc compile Py.ExpressionList { Py.extraChildren = items } _ = const . pure . unimplemented $ "ExpressionList of length " <> show items instance Compile Py.False where compile it cc _ = cc $ locate it (bool False) instance Compile Py.Float instance Compile Py.ForStatement instance Compile Py.FunctionDefinition where compile it@Py.FunctionDefinition { name = Py.Identifier _ann1 name , parameters = Py.Parameters _ann2 parameters , body } cc next = do -- Compile each of the parameters, then the body. let parameterMs = fmap param parameters if any isNothing parameterMs then pure . invariantViolated $ "Couldn't extract parameters" else do let parameters' = catMaybes parameterMs body' <- compile body pure next -- Build a lambda. let located = locate it (rec (Name.named' (Name.name name)) (lams parameters' body')) -- Give it a name (below), then augment the current continuation -- with the new name (with 'def'), so that calling contexts know -- that we have built an exportable definition. assigning located <$> local (def (Name.name name)) (cc next) where param (Py.Parameter (Prj (Py.Identifier _pann pname))) = Just . named' . Name.name $ pname param _ = Nothing assigning item f = (Name.named' (Name.name name) :<- item) >>>= f instance Compile Py.FutureImportStatement instance Compile Py.GeneratorExpression instance Compile Py.GlobalStatement instance Compile Py.Identifier where compile Py.Identifier { text } cc _ = cc . pure . Name.name $ text instance Compile Py.IfStatement where compile it@Py.IfStatement{ condition, consequence, alternative} cc next = locate it <$> (if' <$> compile condition pure next <*> compile consequence cc next <*> foldr clause (cc next) alternative) where clause (R1 Py.ElseClause{ body }) _ = compile body cc next clause (L1 Py.ElifClause{ condition, consequence }) rest = if' <$> compile condition pure next <*> compile consequence cc next <*> rest instance Compile Py.ImportFromStatement instance Compile Py.ImportStatement instance Compile Py.Integer instance Compile Py.Lambda where compile it@Py.Lambda { body , parameters } cc next = do let unparams (Py.LambdaParameters _ ps) = toList ps unparam (Py.Parameter (Prj (Py.Identifier _pann pname))) = Just . named' . Name.name $ pname unparam _ = Nothing body' <- compile body cc next let params = maybe [] unparams parameters pure . locate it . lams (catMaybes (fmap unparam params)) $ body' instance Compile Py.List instance Compile Py.ListComprehension instance Compile Py.ListSplat instance Compile Py.Module where compile it@Py.Module { Py.extraChildren = stmts } _cc = -- This action gets passed to compile, which means it is the -- final action taken after the compiling fold finishes. It takes -- care of listening for the current set of bound variables (which -- is augmented by assignments and function definitions) and -- creating a record corresponding to those bindings. let buildRecord _ = do bindings <- asks @Bindings (toList . unBindings) let buildName n = (n, pure n) pure . record . fmap buildName $ bindings in fmap (locate it) . foldr compile buildRecord stmts instance Compile Py.NamedExpression instance Compile Py.None where -- None is not an lvalue, and thus always points to the prelude's None. compile _it cc _ = cc (prelude ["None"]) instance Compile Py.NonlocalStatement instance Compile Py.NotOperator where compile _it@Py.NotOperator{ argument } cc next = do val <- compile argument pure next cc (prelude ["not"] $$ val) instance Compile Py.ParenthesizedExpression where compile it@Py.ParenthesizedExpression { extraChildren } cc = fmap (locate it) . compile extraChildren cc instance Compile Py.PassStatement where compile it@Py.PassStatement {} cc _ = cc $ locate it Core.unit deriving instance Compile Py.PrimaryExpression instance Compile Py.PrintStatement instance Compile Py.ReturnStatement where compile it@Py.ReturnStatement { Py.extraChildren = vals } _ next = locate it <$> case vals of Nothing -> pure none Just Py.ExpressionList { extraChildren = [val] } -> compile val pure next Just Py.ExpressionList { extraChildren = vals } -> pure (invariantViolated ("unimplemented: return statement returning " <> show (length vals) <> " values")) instance Compile Py.RaiseStatement instance Compile Py.Set instance Compile Py.SetComprehension deriving instance Compile Py.SimpleStatement instance Compile Py.String where compile it@Py.String { extraChildren } cc _ = do let extract = \case Prj Py.EscapeSequence { text } -> Just text _other -> Nothing let contents = fmap extract extraChildren if any isNothing contents then pure . invariantViolated $ "Couldn't string-desugar " <> show it else let new = prelude ["str", "__slots", "__new__"] in cc $ locate it (new $$ Core.string (mconcat (catMaybes contents))) instance Compile Py.Subscript instance Compile Py.True where compile it cc _next = cc $ locate it (bool True) instance Compile Py.TryStatement instance Compile Py.Tuple where compile it@Py.Tuple { Py.extraChildren = [] } cc _ = cc $ locate it unit compile it _ _ = pure $ unimplemented it instance Compile Py.UnaryOperator instance Compile Py.WhileStatement instance Compile Py.WithStatement instance Compile Py.Yield ================================================ FILE: semantic-python/src/Language/Python/Failure.hs ================================================ {-# LANGUAGE DeriveFoldable #-} {-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE ExistentialQuantification #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE QuantifiedConstraints #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TypeOperators #-} module Language.Python.Failure ( Failure (..) , unimplemented , invariantViolated , eliminateFailures ) where import Prelude hiding (fail) import Control.Monad.Fail import Data.Coerce import Data.Kind import GHC.Generics (Generic1) import Syntax.Algebra import Syntax.Foldable import Syntax.Functor import Syntax.Module import Syntax.Sum import Syntax.Term import Syntax.Traversable data Failure (f :: Type -> Type) a = Unimplemented String | InvariantViolated String deriving Generic1 instance Show (Failure f a) where show (Unimplemented a) = "unimplemented: " <> a show (InvariantViolated a) = "invariant violated: " <> a deriving instance Functor (Failure f) deriving instance Foldable (Failure f) deriving instance Traversable (Failure f) instance HFunctor Failure instance HFoldable Failure instance HTraversable Failure instance RightModule Failure where a >>=* _ = coerce a unimplemented :: (Show ast, Has Failure sig m) => ast -> m a unimplemented = send . Unimplemented . show invariantViolated :: Has Failure sig m => String -> m a invariantViolated = send . InvariantViolated eliminateFailures :: (MonadFail m, HTraversable sig, RightModule sig) => Term (Failure :+: sig) a -> m (Term sig a) eliminateFailures = Syntax.Term.handle (pure . pure) (fail . show) ================================================ FILE: semantic-python/src/Language/Python/Grammar.hs ================================================ {-# LANGUAGE TemplateHaskell #-} module Language.Python.Grammar ( tree_sitter_python , Grammar(..) ) where import AST.Grammar.TH import Language.Haskell.TH import TreeSitter.Python (tree_sitter_python) -- | Statically-known rules corresponding to symbols in the grammar. mkStaticallyKnownRuleGrammarData (mkName "Grammar") tree_sitter_python ================================================ FILE: semantic-python/src/Language/Python/Patterns.hs ================================================ {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE OverloadedLists #-} {-# LANGUAGE PatternSynonyms #-} {-# LANGUAGE ViewPatterns #-} module Language.Python.Patterns ( pattern SingleIdentifier ) where import AST.Element import qualified AST.Parse as Parse import qualified Analysis.Name import qualified Language.Python.AST as Py -- | Useful pattern synonym for extracting a single identifier from -- a Python ExpressionList. Easier than pattern-matching every time. -- TODO: when this is finished, we won't need this pattern, as we'll -- handle ExpressionLists the smart way every time. pattern SingleIdentifier :: Analysis.Name.Name -> Py.ExpressionList a pattern SingleIdentifier n <- Py.ExpressionList { Py.extraChildren = [ Parse.Success (Py.Expression (Prj (Py.PrimaryExpression (Prj Py.Identifier { text = Analysis.Name.name -> n })))) ] } ================================================ FILE: semantic-python/src/Language/Python/ScopeGraph.hs ================================================ {-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE PatternSynonyms #-} {-# LANGUAGE QuantifiedConstraints #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} -- NOTE: This file needs to be updated to accommodate new AST shapes. -- A portion of instances have been updated to include the Err functor; -- remaining instances are to be updated once this is stable. module Language.Python.ScopeGraph ( scopeGraphModule ) where import qualified Analysis.Name as Name import AST.Element import qualified AST.Parse as Parse import Control.Effect.ScopeGraph import qualified Control.Effect.ScopeGraph.Properties.Declaration as Props import qualified Control.Effect.ScopeGraph.Properties.Function as Props import qualified Control.Effect.ScopeGraph.Properties.Reference as Props import Control.Lens (set, (^.)) import Data.Foldable import Data.List.NonEmpty (NonEmpty (..)) import Data.Maybe import Data.Monoid import qualified Data.ScopeGraph as ScopeGraph import Data.Traversable import GHC.Records import GHC.TypeLits import qualified Language.Python.AST as Py import Language.Python.Patterns import Scope.Graph.Convert (Result (..), complete, todo) import Scope.Types import Source.Loc (Loc) import Source.Span (Span, Pos (..), span_, point) -- This typeclass is internal-only, though it shares the same interface -- as the one defined in semantic-scope-graph. The somewhat-unconventional -- quantified constraint is to avoid having to define Show1 instances for -- every single Python AST type. class (forall a . Show a => Show (t a)) => ToScopeGraph t where scopeGraph :: ( ScopeGraphEff sig m , Monoid (m Result) ) => t Loc -> m Result instance (ToScopeGraph l, ToScopeGraph r) => ToScopeGraph (l :+: r) where scopeGraph (L1 l) = scopeGraph l scopeGraph (R1 r) = scopeGraph r onField :: forall (field :: Symbol) syn sig m r . ( ScopeGraphEff sig m , HasField field (r Loc) (syn Loc) , ToScopeGraph syn , Monoid (m Result) ) => r Loc -> m Result onField = scopeGraph @syn . getField @field onChildren :: ( Traversable t , ToScopeGraph syn , ScopeGraphEff sig m , HasField "extraChildren" (r Loc) (t (syn Loc)) , Monoid (m Result) ) => r Loc -> m Result onChildren = fmap fold . traverse scopeGraph . getField @"extraChildren" scopeGraphModule :: ScopeGraphEff sig m => Py.Module Loc -> m Result scopeGraphModule = getAp . scopeGraph instance ToScopeGraph Py.AssertStatement where scopeGraph = onChildren instance ToScopeGraph Py.Assignment where scopeGraph (Py.Assignment ann (Parse.Success (SingleIdentifier t)) val _typ) = do declare t Props.Declaration { Props.kind = ScopeGraph.Assignment , Props.relation = ScopeGraph.Default , Props.associatedScope = Nothing , Props.span = ann^.span_ } maybe complete scopeGraph val scopeGraph x = todo x instance ToScopeGraph Py.Await where scopeGraph (Py.Await _ a) = scopeGraph a instance ToScopeGraph Py.BooleanOperator where scopeGraph (Py.BooleanOperator _ _ left right) = scopeGraph left <> scopeGraph right instance ToScopeGraph Py.BinaryOperator where scopeGraph (Py.BinaryOperator _ _ left right) = scopeGraph left <> scopeGraph right instance ToScopeGraph Py.AugmentedAssignment where scopeGraph = onField @"right" instance ToScopeGraph Py.Attribute where scopeGraph = todo instance ToScopeGraph Py.Block where scopeGraph = onChildren instance ToScopeGraph Py.BreakStatement where scopeGraph = mempty instance ToScopeGraph Py.Call where scopeGraph Py.Call { function = Parse.Success f , arguments = Parse.Success (L1 Py.ArgumentList { extraChildren = args }) } = do result <- scopeGraph f let scopeGraphArg = \case EPrj expr -> scopeGraph @Py.Expression expr other -> todo other args <- traverse scopeGraphArg args pure (result <> mconcat args) scopeGraph it = todo it instance ToScopeGraph Py.ClassDefinition where scopeGraph = todo instance ToScopeGraph Py.ConcatenatedString where scopeGraph = mempty deriving instance ToScopeGraph Py.CompoundStatement instance ToScopeGraph Py.ConditionalExpression where scopeGraph = onChildren instance ToScopeGraph Py.ContinueStatement where scopeGraph = mempty instance ToScopeGraph Py.DecoratedDefinition where scopeGraph = todo instance ToScopeGraph Py.ComparisonOperator where scopeGraph = onChildren instance ToScopeGraph Py.DeleteStatement where scopeGraph = mempty instance ToScopeGraph Py.Dictionary where scopeGraph = onChildren instance ToScopeGraph Py.DictionaryComprehension where scopeGraph = todo instance ToScopeGraph Py.DictionarySplat where scopeGraph = todo deriving instance ToScopeGraph Py.Expression instance ToScopeGraph Py.ElseClause where scopeGraph = onField @"body" instance ToScopeGraph Py.ElifClause where scopeGraph (Py.ElifClause _ (Parse.Success body) (Parse.Success condition)) = scopeGraph condition <> scopeGraph body instance ToScopeGraph Py.Ellipsis where scopeGraph = mempty instance ToScopeGraph Py.ExceptClause where scopeGraph = onChildren instance ToScopeGraph Py.ExecStatement where scopeGraph = mempty instance ToScopeGraph Py.ExpressionStatement where scopeGraph = onChildren instance ToScopeGraph Py.ExpressionList where scopeGraph = onChildren instance ToScopeGraph Py.False where scopeGraph _ = pure mempty instance ToScopeGraph Py.FinallyClause where scopeGraph = onField @"extraChildren" instance ToScopeGraph Py.Float where scopeGraph = mempty instance ToScopeGraph Py.ForStatement where scopeGraph = todo instance ToScopeGraph Py.FunctionDefinition where scopeGraph Py.FunctionDefinition { ann , name = Parse.Success (Py.Identifier _ann1 name) , parameters = Parse.Success (Py.Parameters _ann2 parameters) , body = Parse.Success b } = do (_, associatedScope) <- declareFunction (Just $ Name.name name) Props.Function { Props.kind = ScopeGraph.Function , Props.span = ann^.span_ } withScope (CurrentScope associatedScope) $ do let declProps = Props.Declaration { Props.kind = ScopeGraph.Parameter , Props.relation = ScopeGraph.Default , Props.associatedScope = Nothing , Props.span = point (Pos 0 0) } let param (Py.Parameter (Prj (Py.Identifier pann pname))) = Just (pann, Name.name pname) param _ = Nothing let parameterMs = fmap param parameters if any isNothing parameterMs then todo parameterMs else do let parameters' = catMaybes parameterMs paramDeclarations <- for parameters' $ \(pos, parameter) -> complete <* declare parameter (set span_ (pos^.span_) declProps) bodyResult <- scopeGraph b pure (mconcat paramDeclarations <> bodyResult) instance ToScopeGraph Py.FutureImportStatement where scopeGraph = todo instance ToScopeGraph Py.GeneratorExpression where scopeGraph = todo instance ToScopeGraph Py.Identifier where scopeGraph (Py.Identifier ann name) = do let refProps = Props.Reference ScopeGraph.Identifier ScopeGraph.Default (ann^.span_ :: Span) newReference (Name.name name) refProps complete instance ToScopeGraph Py.IfStatement where scopeGraph (Py.IfStatement _ alternative (Parse.Success body) (Parse.Success condition)) = scopeGraph condition <> scopeGraph body <> foldMap scopeGraph alternative instance ToScopeGraph Py.GlobalStatement where scopeGraph = todo instance ToScopeGraph Py.Integer where scopeGraph = mempty instance ToScopeGraph Py.ImportStatement where scopeGraph (Py.ImportStatement _ ((R1 (Py.DottedName _ names@((Py.Identifier ann name) :| _))) :| [])) = do let toName (Py.Identifier _ name) = Name.name name newEdge ScopeGraph.Import (toName <$> names) let referenceProps = Props.Reference ScopeGraph.Identifier ScopeGraph.Default (ann^.span_ :: Span) newReference (Name.name name) referenceProps let pairs = zip (toList names) (tail $ toList names) for_ pairs $ \pair -> do case pair of (scopeIdentifier, referenceIdentifier@(Py.Identifier ann2 _)) -> do withScope (CurrentScope (toName scopeIdentifier)) $ do let referenceProps = Props.Reference ScopeGraph.Identifier ScopeGraph.Default (ann2^.span_ :: Span) newReference (toName referenceIdentifier) referenceProps complete scopeGraph term = todo (show term) instance ToScopeGraph Py.ImportFromStatement where scopeGraph (Py.ImportFromStatement _ [] (L1 (Py.DottedName _ names)) (Just (Py.WildcardImport _ _))) = do let toName (Py.Identifier _ name) = Name.name name complete <* newEdge ScopeGraph.Import (toName <$> names) scopeGraph impossibleTerm@(Py.ImportFromStatement _ [] (L1 (Py.DottedName _ _)) Nothing) = todo impossibleTerm scopeGraph term = todo term instance ToScopeGraph Py.Lambda where scopeGraph = todo instance ToScopeGraph Py.List where scopeGraph = onChildren instance ToScopeGraph Py.ListComprehension where scopeGraph = todo instance ToScopeGraph Py.ListSplat where scopeGraph = onChildren instance ToScopeGraph Py.NamedExpression where scopeGraph = todo instance ToScopeGraph Py.None where scopeGraph = mempty instance ToScopeGraph Py.NonlocalStatement where scopeGraph = todo instance ToScopeGraph Py.Module where scopeGraph = onChildren instance ToScopeGraph Py.ReturnStatement where scopeGraph (Py.ReturnStatement _ mVal) = maybe (pure mempty) scopeGraph mVal instance ToScopeGraph Py.True where scopeGraph = mempty instance ToScopeGraph Py.NotOperator where scopeGraph = onField @"argument" instance ToScopeGraph Py.Pair where scopeGraph (Py.Pair _ value key) = scopeGraph key <> scopeGraph value instance ToScopeGraph Py.ParenthesizedExpression where scopeGraph = onField @"extraChildren" instance ToScopeGraph Py.PassStatement where scopeGraph = mempty instance ToScopeGraph Py.PrintStatement where scopeGraph (Py.PrintStatement _ args _chevron) = foldMap scopeGraph args deriving instance ToScopeGraph Py.PrimaryExpression deriving instance ToScopeGraph Py.SimpleStatement instance ToScopeGraph Py.RaiseStatement where scopeGraph = todo instance ToScopeGraph Py.Set where scopeGraph = onChildren instance ToScopeGraph Py.SetComprehension where scopeGraph = todo instance ToScopeGraph Py.String where scopeGraph = mempty instance ToScopeGraph Py.Subscript where scopeGraph = todo instance ToScopeGraph Py.Tuple where scopeGraph = onChildren instance ToScopeGraph Py.TryStatement where scopeGraph (Py.TryStatement _ body elseClauses) = scopeGraph body <> foldMap scopeGraph elseClauses instance ToScopeGraph Py.UnaryOperator where scopeGraph = onField @"argument" instance ToScopeGraph Py.WhileStatement where scopeGraph Py.WhileStatement{ alternative, body, condition } = scopeGraph condition <> scopeGraph body <> foldMap scopeGraph alternative instance ToScopeGraph Py.WithStatement where scopeGraph = todo instance ToScopeGraph Py.Yield where scopeGraph = onChildren ================================================ FILE: semantic-python/src/Language/Python/Tags.hs ================================================ {-# LANGUAGE DefaultSignatures #-} {-# LANGUAGE DisambiguateRecordFields #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} module Language.Python.Tags ( ToTags (..), ) where import AST.Element import qualified AST.Parse as Parse import AST.Token import AST.Traversable1 import Control.Effect.Reader import Control.Effect.Writer import Control.Effect.State import Data.Foldable import Data.Text as Text import qualified Language.Python.AST as Py import Proto.Semantic as P import Source.Loc import Source.Range import Source.Source as Source import qualified Tags.Tagging.Precise as Tags class ToTags t where tags :: ( Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m ) => t Loc -> m () default tags :: ( Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m, Traversable1 ToTags t ) => t Loc -> m () tags = gtags instance (ToTags l, ToTags r) => ToTags (l :+: r) where tags (L1 l) = tags l tags (R1 r) = tags r instance ToTags (Token sym n) where tags _ = pure () keywordFunctionCall :: ( Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m, Traversable1 ToTags t ) => t Loc -> Loc -> Range -> Text -> m () keywordFunctionCall t loc range name = Tags.yield name P.FUNCTION P.DEFINITION loc range >> gtags t instance ToTags Py.String where tags Py.String {extraChildren} = for_ extraChildren $ \x -> case x of Parse.Success (Prj t@Py.Interpolation {}) -> tags t _ -> pure () instance ToTags Py.Interpolation where tags Py.Interpolation {extraChildren} = for_ extraChildren $ \x -> case x of Parse.Success (Prj (Py.Expression expr)) -> tags expr _ -> pure () instance ToTags Py.AssertStatement where tags t@Py.AssertStatement {ann = loc@Loc {byteRange}} = keywordFunctionCall t loc byteRange "assert" instance ToTags Py.Await where tags t@Py.Await {ann = loc@Loc {byteRange}} = keywordFunctionCall t loc byteRange "await" instance ToTags Py.DeleteStatement where tags t@Py.DeleteStatement {ann = loc@Loc {byteRange}} = keywordFunctionCall t loc byteRange "del" instance ToTags Py.ExecStatement where tags t@Py.ExecStatement {ann = loc@Loc {byteRange}} = keywordFunctionCall t loc byteRange "exec" instance ToTags Py.GlobalStatement where tags t@Py.GlobalStatement {ann = loc@Loc {byteRange}} = keywordFunctionCall t loc byteRange "global" instance ToTags Py.NonlocalStatement where tags t@Py.NonlocalStatement {ann = loc@Loc {byteRange}} = keywordFunctionCall t loc byteRange "nonlocal" instance ToTags Py.PrintStatement where tags t@Py.PrintStatement {ann = loc@Loc {byteRange}} = keywordFunctionCall t loc byteRange "print" instance ToTags Py.FunctionDefinition where tags t@Py.FunctionDefinition { ann = Loc {byteRange = Range {start}}, name = Parse.Success (Py.Identifier {text, ann}), body = Parse.Success (Py.Block {ann = Loc Range {start = end} _}) } = do Tags.yield text P.FUNCTION P.DEFINITION ann (Range start end) >> gtags t tags _ = pure () instance ToTags Py.ClassDefinition where tags t@Py.ClassDefinition { ann = Loc {byteRange = Range {start}}, name = Parse.Success (Py.Identifier {text, ann}), body = Parse.Success (Py.Block {ann = Loc Range {start = end} _}) } = do Tags.yield text P.CLASS P.DEFINITION ann (Range start end) >> gtags t tags _ = pure () instance ToTags Py.Call where tags t@Py.Call { ann = Loc {byteRange}, function = Parse.Success (Py.PrimaryExpression expr) } = match expr where match expr = case expr of Prj Py.Attribute {attribute = Parse.Success (Py.Identifier {text, ann})} -> yield text ann Prj Py.Identifier {text, ann} -> yield text ann 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()() Prj (Py.ParenthesizedExpression _ (Parse.Success (Prj (Py.Expression (Prj (Py.PrimaryExpression expr')))))) -> match expr' -- Parenthesized expressions _ -> gtags t yield name loc = Tags.yield name P.CALL P.REFERENCE loc byteRange >> gtags t tags _ = pure () gtags :: ( Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m, Traversable1 ToTags t ) => t Loc -> m () gtags = traverse1_ @ToTags (const (pure ())) tags instance ToTags Py.AliasedImport instance ToTags Py.ArgumentList -- instance ToTags Py.AssertStatement instance ToTags Py.Assignment instance ToTags Py.Attribute instance ToTags Py.AugmentedAssignment -- instance ToTags Py.Await instance ToTags Py.BinaryOperator instance ToTags Py.Block instance ToTags Py.BooleanOperator instance ToTags Py.BreakStatement -- instance ToTags Py.Call instance ToTags Py.Chevron -- instance ToTags Py.ClassDefinition instance ToTags Py.ComparisonOperator instance ToTags Py.CompoundStatement instance ToTags Py.ConcatenatedString instance ToTags Py.ConditionalExpression instance ToTags Py.ContinueStatement instance ToTags Py.DecoratedDefinition instance ToTags Py.Decorator instance ToTags Py.DefaultParameter -- instance ToTags Py.DeleteStatement instance ToTags Py.Dictionary instance ToTags Py.DictionaryComprehension instance ToTags Py.DictionarySplat instance ToTags Py.DottedName instance ToTags Py.ElifClause instance ToTags Py.Ellipsis instance ToTags Py.ElseClause instance ToTags Py.EscapeSequence instance ToTags Py.ExceptClause -- instance ToTags Py.ExecStatement instance ToTags Py.Expression instance ToTags Py.ExpressionList instance ToTags Py.ExpressionStatement instance ToTags Py.False instance ToTags Py.FinallyClause instance ToTags Py.Float instance ToTags Py.ForInClause instance ToTags Py.ForStatement instance ToTags Py.FormatExpression instance ToTags Py.FormatSpecifier -- instance ToTags Py.FunctionDefinition instance ToTags Py.FutureImportStatement instance ToTags Py.GeneratorExpression -- instance ToTags Py.GlobalStatement instance ToTags Py.Identifier instance ToTags Py.IfClause instance ToTags Py.IfStatement instance ToTags Py.ImportFromStatement instance ToTags Py.ImportPrefix instance ToTags Py.ImportStatement instance ToTags Py.Integer -- instance ToTags Py.Interpolation instance ToTags Py.KeywordArgument instance ToTags Py.Lambda instance ToTags Py.LambdaParameters instance ToTags Py.List instance ToTags Py.ListComprehension instance ToTags Py.ListSplat instance ToTags Py.Module instance ToTags Py.NamedExpression instance ToTags Py.None -- instance ToTags Py.NonlocalStatement instance ToTags Py.NotOperator instance ToTags Py.Pair instance ToTags Py.Parameter instance ToTags Py.Parameters instance ToTags Py.ParenthesizedExpression instance ToTags Py.PassStatement instance ToTags Py.PrimaryExpression -- instance ToTags Py.PrintStatement instance ToTags Py.RaiseStatement instance ToTags Py.RelativeImport instance ToTags Py.ReturnStatement instance ToTags Py.Set instance ToTags Py.SetComprehension instance ToTags Py.SimpleStatement instance ToTags Py.Slice instance ToTags Py.Subscript instance ToTags Py.True instance ToTags Py.TryStatement instance ToTags Py.Tuple instance ToTags Py.Type instance ToTags Py.TypeConversion instance ToTags Py.TypedDefaultParameter instance ToTags Py.TypedParameter instance ToTags Py.UnaryOperator instance ToTags Py.Variables instance ToTags Py.WhileStatement instance ToTags Py.WildcardImport instance ToTags Py.WithItem instance ToTags Py.WithStatement instance ToTags Py.Yield ================================================ FILE: semantic-python/src/Language/Python.hs ================================================ {-# LANGUAGE GeneralizedNewtypeDeriving #-} -- | Semantic functionality for Python programs. module Language.Python ( Term(..) , Language.Python.Grammar.tree_sitter_python ) where import AST.Marshal.JSON import qualified AST.Unmarshal as TS import Data.Proxy import qualified Language.Python.AST as Py import qualified Language.Python.Grammar (tree_sitter_python) -- import Language.Python.ScopeGraph import qualified Language.Python.Tags as PyTags -- import Scope.Graph.Convert import qualified Tags.Tagging.Precise as Tags newtype Term a = Term { getTerm :: Py.Module a } deriving MarshalJSON instance TS.SymbolMatching Term where matchedSymbols _ = TS.matchedSymbols (Proxy :: Proxy Py.Module) showFailure _ = TS.showFailure (Proxy :: Proxy Py.Module) instance TS.Unmarshal Term where matchers = fmap (fmap (TS.hoist Term)) TS.matchers instance Tags.ToTags Term where tags src = Tags.runTagging src . PyTags.tags . getTerm -- instance ToScopeGraph Term where -- scopeGraph = scopeGraphModule . getTerm ================================================ FILE: semantic-python/src/Prelude.score ================================================ { type <- \name -> \super -> \slots -> #record { __name: name, __super: super, __slots: slots }; instance <- \class -> \prim -> \slots -> #record { __super: class, __prim: prim, __slots: slots }; // object's superclass is type itself object <- type "object" type #record{}; str <- type "str" object #record { __new__: \prim -> instance #unit prim #record{} }; // We will fill in the actual definition of these operators // pending the presence of more eliminators. not <- \val -> if val then #false else #true; NoneType <- type "None" object #record { __new__: \prim -> instance #unit prim #record{} }; None <- NoneType.__slots.__new__ #unit; getitem <- \super -> \item -> \attr -> if item.slots.?attr then item.slots.attr else #unit; #record { type: type , object: object , str: str , not: not , NoneType: NoneType , None: None , getitem: getitem} } ================================================ FILE: semantic-python/test/CoreTest.hs ================================================ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# OPTIONS_GHC -Wno-unrecognised-pragmas #-} module Main (main) where import Analysis.Concrete (Concrete) import qualified Analysis.Concrete as Concrete import Analysis.File import Control.Algebra import Control.Carrier.Fail.Either import Control.Carrier.Reader import Control.Monad hiding (fail) import Control.Monad.IO.Class -- import Core.Core -- import qualified Core.Eval as Eval -- import Core.Name -- import qualified Core.Parser -- import Core.Pretty import qualified Data.ByteString.Char8 as ByteString import Data.Foldable import Data.Function import qualified Data.IntMap as IntMap import Data.List (sort) import qualified Data.Map as Map import Data.Maybe import Data.Text (Text) import GHC.Stack -- import qualified Language.Python.Core as Py import Language.Python.Failure import Prelude hiding (fail) import Source.Span import Syntax.Term import Syntax.Var (closed) import System.Directory import System.Exit import System.Path (()) import qualified System.Path as Path import qualified System.Path.Directory as Path import qualified Text.Trifecta as Trifecta import qualified Language.Python.Grammar as TSP import qualified AST.Unmarshal as TS import qualified Test.Tasty as Tasty import qualified Test.Tasty.HUnit as HUnit -- import qualified Directive import Instances () parsePrelude :: IO (Term (Ann Span :+: Core) Name) parsePrelude = do preludesrc <- ByteString.readFile "semantic-python/src/Prelude.score" let ePrelude = Trifecta.parseByteString (Core.Parser.core <* Trifecta.eof) mempty preludesrc case Trifecta.foldResult (Left . show) Right ePrelude of Right r -> pure r Left s -> HUnit.assertFailure ("Couldn't parse prelude: " <> s) -- handles CHECK-RESULT directives assertEvaluatesTo :: Term (Ann Span :+: Core) Name -> Text -> Concrete (Term (Ann Span :+: Core)) -> HUnit.Assertion assertEvaluatesTo core k val = do prelude <- parsePrelude let withPrelude = (named' "__semantic_prelude" :<- prelude) >>>= core allTogether <- maybe (HUnit.assertFailure ("Can’t evaluate open term: " <> showCore (stripAnnotations withPrelude))) pure (closed withPrelude) let filius = [File (Path.absRel "") (Span (Pos 1 1) (Pos 1 1)) allTogether] (heap, env) <- case Concrete.concrete Eval.eval filius of (heap, [File _ _ (Right (Concrete.Record env))]) -> pure (heap, env) (_, [File _ _ (Left (_, span, err))]) -> HUnit.assertFailure ("Failed evaluation (" <> show span <> "): " <> err) (_, files) -> HUnit.assertFailure ("Unexpected number of files: " <> show (length files)) let found = Map.lookup (name k) env >>= flip IntMap.lookup heap found HUnit.@?= Just val {-# HLINT ignore assertEvaluatesTo #-} -- handles CHECK-TREE directives assertTreeEqual :: Term Core Name -> Term Core Name -> HUnit.Assertion assertTreeEqual t item = HUnit.assertEqual ("got (pretty)" <> showCore item) t item checkPythonFile :: HasCallStack => Path.RelFile -> Tasty.TestTree checkPythonFile fp = HUnit.testCaseSteps (Path.toString fp) $ \step -> withFrozenCallStack $ do -- Extract the directives and the core associated with the provided file let fullPath = Path.relDir "semantic-python/test/fixtures" fp directives <- Directive.readDirectivesFromFile fullPath result <- ByteString.readFile (Path.toString fullPath) >>= TS.parseByteString TSP.tree_sitter_python -- Run the compiler let coreResult = Control.Algebra.run . runFail . eliminateFailures . Control.Algebra.run . runReader @Py.Bindings mempty . Py.toplevelCompile @(Failure :+: Ann Span :+: Core) @(Term _) <$> result -- Dispatch based on the result-directive pair for_ directives $ \directive -> do step (Directive.describe directive) case (coreResult, directive) of (Right (Left _), Directive.Fails) -> pure () (Left err, _) -> HUnit.assertFailure ("Parsing failed: " <> err) (Right (Left err), _) -> HUnit.assertFailure ("Compilation failed: " <> err) (Right (Right _), Directive.Fails) -> HUnit.assertFailure "Expected translation to fail" (Right (Right item), Directive.Result k v) -> assertEvaluatesTo item k v (Right (Right item), Directive.Tree t) -> assertTreeEqual (stripAnnotations item) t milestoneFixtures :: IO Tasty.TestTree milestoneFixtures = buildTests <$> readFiles where readFiles = liftIO . Path.filesInDir . Path.relDir $ "semantic-python/test/fixtures" buildTests = Tasty.testGroup "Python" . fmap checkPythonFile . sort . filter (Path.hasExtension ".py") main :: IO () main = do jq <- findExecutable "jq" when (isNothing jq) (die "Error: jq(1) not found in $PATH.") milestoneFixtures >>= Tasty.defaultMain ================================================ FILE: semantic-python/test/Directive.hs ================================================ {-# LANGUAGE TypeApplications, TypeOperators #-} -- | FileCheck-style directives for testing Core compilers. module Directive ( Directive (..) , readDirectivesFromFile , describe ) where import Analysis.Concrete (Concrete (..)) import Control.Algebra import Control.Monad import Control.Monad.Trans.Resource (ResourceT, runResourceT) -- import Core.Core (Core) -- import qualified Core.Core as Core -- import Core.Name (Name) -- import qualified Core.Parser -- import qualified Core.Pretty import Data.ByteString.Char8 (ByteString) import qualified Data.ByteString.Char8 as ByteString import qualified Data.ByteString.Streaming.Char8 as ByteStream import Data.Text (Text) import qualified Data.Text as T import qualified Source.Span as Source import qualified Streaming.Prelude as Stream import Syntax.Term (Term) import qualified System.Path as Path import qualified System.Path.PartClass as Path.Class import qualified Text.Parser.Token.Style as Style import Text.Trifecta (CharParsing, TokenParsing (..)) import qualified Text.Trifecta as Trifecta {- | Directives are parsed from magic comments in test files and describe to the test suite how to query the results of a given test case. A directive that looks like this: @ # CHECK-RESULT: key: value @ would test that the value for @key@ in the result evaluates to the given concrete value. This syntax was inspired by LLVM's [FileCheck](https://llvm.org/docs/CommandGuide/FileCheck.html). This approach is less direct than tests that pattern-match over an AST, but enable us to keep the text of test cases in close proximity to the assertions we want to make, which improves maintainability significantly and has been a successful strategy for the LLVM and Rust projects. -} data Directive = Tree (Term Core Name) -- | @# CHECK-TREE: core@ | Result Text (Concrete (Term (Core.Ann Source.Span :+: Core))) -- | @# CHECK-RESULT key: expected | Fails -- | @# CHECK-FAILS@ fails unless translation fails. deriving (Eq, Show) -- | Extract all directives from a file. readDirectivesFromFile :: Path.Class.AbsRel ar => Path.File ar -> IO [Directive] readDirectivesFromFile = runResourceT . Stream.toList_ . Stream.mapM (either perish pure . parseDirective) . Stream.takeWhile isComment . Stream.mapped ByteStream.toStrict . ByteStream.lines . ByteStream.readFile @(ResourceT IO) . Path.toString where perish s = fail ("Directive parsing error: " <> s) isComment = (== Just '#') . fmap fst . ByteString.uncons describe :: Directive -> String describe Fails = "" describe (Tree t) = Core.Pretty.showCore t describe (Result t e) = T.unpack t <> ": " <> show e fails :: CharParsing m => m Directive fails = Fails <$ Trifecta.string "# CHECK-FAILS" tree :: (Monad m, TokenParsing m) => m Directive tree = do void $ Trifecta.string "# CHECK-TREE: " Tree <$> Core.Parser.core result :: (Monad m, TokenParsing m) => m Directive result = do void $ Trifecta.string "# CHECK-RESULT " key <- Trifecta.ident Style.haskellIdents void $ Trifecta.symbolic ':' Result key <$> concrete concrete :: TokenParsing m => m (Concrete term) concrete = Trifecta.choice [ String <$> Trifecta.stringLiteral , Bool True <$ Trifecta.symbol "#true" , Bool False <$ Trifecta.symbol "#false" , Unit <$ Trifecta.symbol "#unit" ] directive :: (Monad m, TokenParsing m) => m Directive directive = Trifecta.choice [ fails, result, tree ] parseDirective :: ByteString -> Either String Directive parseDirective = Trifecta.foldResult (Left . show) Right . Trifecta.parseByteString (directive <* Trifecta.eof) mempty ================================================ FILE: semantic-python/test/Instances.hs ================================================ {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuantifiedConstraints #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -fno-warn-orphans #-} module Instances () where import Analysis.File import Data.Aeson import Data.Text (pack) import qualified System.Path as Path instance ToJSON a => ToJSON (File a) where toJSON File{filePath, fileSpan, fileBody} = object [ "path" .= filePath , "span" .= fileSpan , "body" .= fileBody ] instance ToJSON Path.AbsRelFile where toJSON p = toJSON (pack (Path.toString p)) ================================================ FILE: semantic-python/test/PreciseTest.hs ================================================ {-# LANGUAGE CPP #-} {-# LANGUAGE DisambiguateRecordFields #-} {-# LANGUAGE ImplicitParams #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeApplications #-} {-# OPTIONS_GHC -Wno-unused-imports #-} module Main (main) where import AST.TestHelpers import AST.Unmarshal import qualified Language.Python.AST as Py import qualified System.Path.Fixture as Fixture import Test.Tasty import TreeSitter.Python main :: IO () main = do #if BAZEL_BUILD rf <- Fixture.create let ?project = "external/tree-sitter-python" ?runfiles = rf let dirs = Fixture.absRelDir "test/corpus" #else dirs <- Py.getTestCorpusDir #endif let parse = parseByteString @Py.Module @() tree_sitter_python readCorpusFiles' dirs >>= traverse (testCorpus parse) >>= defaultMain . tests tests :: [TestTree] -> TestTree tests = testGroup "tree-sitter-python corpus tests" ================================================ FILE: semantic-python/test/fixtures/1-01-empty-module.py ================================================ ================================================ FILE: semantic-python/test/fixtures/1-02-pass-statement.py ================================================ pass ================================================ FILE: semantic-python/test/fixtures/1-03-empty-tuple.py ================================================ # CHECK-TREE: #record{} () ================================================ FILE: semantic-python/test/fixtures/1-04-toplevel-assignment.py ================================================ # CHECK-TREE: { hello <- #unit; goodbye <- #unit; #record { hello: hello, goodbye: goodbye }} # CHECK-RESULT hello: #unit hello = () goodbye = () ================================================ FILE: semantic-python/test/fixtures/1-05-exec-statement-fails.py ================================================ # CHECK-FAILS exec "'We will never support exec statements.'" ================================================ FILE: semantic-python/test/fixtures/2-01-return-statement.py ================================================ # CHECK-TREE: { foo <- rec foo = \a -> a; #record { foo: foo } } def foo(a): return a ================================================ FILE: semantic-python/test/fixtures/2-02-return-doesnt-translate.py ================================================ # CHECK-TREE: { foo <- rec foo = (\a -> a); #record { foo: foo } } def foo(a): return a a () ================================================ FILE: semantic-python/test/fixtures/2-03-return-in-if-statement.py ================================================ # CHECK-TREE: { foo <- rec foo = \a -> if a then a else #unit; #record { foo: foo } } def foo(a): if a: return a return () () ================================================ FILE: semantic-python/test/fixtures/2-04-multiple-assign.py ================================================ # CHECK-TREE: { z <- #true; y <- z; x <- y; #record { z : z, y : y, x : x }} x = y = z = True ================================================ FILE: semantic-python/test/fixtures/2-05-function-call.py ================================================ # CHECK-TREE: { const <- rec const = \x -> \y -> x; y <- const #true #true; z <- const #false #false; #record { const: const, y : y, z: z, }} def const(x, y): return x y = const(True, True) z = const(False, False) ================================================ FILE: semantic-python/test/fixtures/2-06-nested-function-definition.py ================================================ # CHECK-TREE: { const <- rec const = \a -> \b -> { identity <- rec identity = \x -> x; identity a }; #record{ const: const }} def const(a, b): def identity(x): return x return identity(a) ================================================ FILE: semantic-python/test/fixtures/2-07-closure-over-scope.py ================================================ def const(a, b): def result(): return a def zilch(b): return b return result() ================================================ FILE: semantic-python/test/fixtures/2-08-function-decorator.py ================================================ # CHECK-TREE: { passthru <- rec passthru = \x -> x; decorated <- rec decorated = \x -> x; decorated = passthru(decorated); #record { passthru: passthru, decorated: decorated }} def passthru(x): return x @passthru def decorated(x): return x ================================================ FILE: semantic-python/test/fixtures/3-01-empty-class-definition.py ================================================ # CHECK-TREE: { Foo <- rec Foo = __semantic_prelude.type "Foo" __semantic_prelude.object #record {}; #record { Foo: Foo }} class Foo(): pass ================================================ FILE: semantic-python/test/fixtures/3-02-defining-instance-method.py ================================================ # CHECK-TREE: { Foo <- rec Foo = { identity <- rec identity = \self -> \x -> x; __semantic_prelude.type "Foo" __semantic_prelude.object #record { identity: identity } }; #record { Foo: Foo } } class Foo(): def identity(self, x): return x ================================================ FILE: semantic-python/test/fixtures/3-03-functions-know-their-own-names.py ================================================ # CHECK-TREE: { recursive <- rec recursive = \a -> recursive; #record { recursive: recursive }} def recursive(a): return recursive ================================================ FILE: semantic-python/test/fixtures/4-01-lambda-literals.py ================================================ # CHECK-TREE: { const <- \x -> \y -> x; y <- const #true #true; z <- const #false #false; #record { const: const, y : y, z: z, }} const = lambda x, y: x y = const(True, True) z = const(False, False) ================================================ FILE: semantic-python/test/fixtures/4-02-nonetype.py ================================================ # CHECK-TREE: { x <- __semantic_prelude.None; #record { x : x }} x = None ================================================ FILE: semantic-python/test/fixtures/4-03-not-expression.py ================================================ # CHECK-TREE: { x <- __semantic_prelude.not #true; #record { x: x }} x = not True ================================================ FILE: semantic-python/test/fixtures/5-01-simple-reference.py ================================================ x = 5 x ================================================ FILE: semantic-python/test/fixtures/5-02-simple-function.py ================================================ def foo(): return "hello world" foo() ================================================ FILE: semantic-python/test/fixtures/5-03-function-argument.py ================================================ def foo(x): return x foo(1) ================================================ FILE: semantic-python/test/fixtures/cheese/6-01-imports.py ================================================ from cheese.ints import * ================================================ FILE: semantic-python/test/fixtures/cheese/6-01-qualified-imports.py ================================================ import cheese.ints ================================================ FILE: semantic-python/test/fixtures/cheese/ints.py ================================================ def one(): return 1 def two(): return 2 ================================================ FILE: semantic-python/test-graphing/GraphTest.hs ================================================ {-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} module Main (main) where import Analysis.Name (Name) import qualified Analysis.Name as Name import qualified AST.Unmarshal as TS import Control.Algebra import Control.Carrier.Lift import Control.Carrier.Sketch.ScopeGraph import qualified Control.Effect.ScopeGraph.Properties.Declaration as Props import qualified Control.Effect.ScopeGraph.Properties.Function as Props import qualified Control.Effect.ScopeGraph.Properties.Reference as Props import Control.Monad import qualified Data.ByteString as ByteString import qualified Data.List.NonEmpty as NonEmpty import Data.Module (ModuleInfo (..)) import qualified Data.ScopeGraph as ScopeGraph import qualified Language.Python () import qualified Language.Python as Py (Term) import qualified Language.Python.Grammar as TSP import Scope.Graph.Convert import Scope.Types import Source.Loc import qualified Source.Source as Source import Source.Span import System.Exit (die) import System.Path (()) import qualified System.Path as Path import qualified System.Path.Directory as Path import qualified Test.Tasty as Tasty import qualified Test.Tasty.HUnit as HUnit {- The Python code here is hello = () goodbye = () The graph should be 🏁 | 1️⃣----"hello" | | | | 2️⃣----"goodbye" -} runScopeGraph :: ToScopeGraph t => Path.AbsRelFile -> Source.Source -> t Loc -> (ScopeGraph.ScopeGraph Name, Result) runScopeGraph p _src item = run . runSketch info $ scopeGraph item where info = ModuleInfo p "Python" mempty sampleGraphThing :: ScopeGraphEff sig m => m Result sampleGraphThing = do declare "hello" (Props.Declaration ScopeGraph.Assignment ScopeGraph.Default Nothing (Span (Pos 2 0) (Pos 2 10))) declare "goodbye" (Props.Declaration ScopeGraph.Assignment ScopeGraph.Default Nothing (Span (Pos 3 0) (Pos 3 12))) pure Complete graphFile :: Path.AbsRelFile -> IO (ScopeGraph.ScopeGraph Name, Result) graphFile fp = do file <- ByteString.readFile $ Path.toString fp tree <- TS.parseByteString @Py.Term @Loc TSP.tree_sitter_python file pyModule <- either die pure tree pure $ runScopeGraph fp (Source.fromUTF8 file) pyModule assertSimpleAssignment :: HUnit.Assertion assertSimpleAssignment = do let path = Path.absRel "semantic-python/test/fixtures/1-04-toplevel-assignment.py" (result, Complete) <- graphFile path (expecto, Complete) <- runM $ runSketch (ModuleInfo path "Python" mempty) sampleGraphThing HUnit.assertEqual "Should work for simple case" expecto result assertSimpleReference :: HUnit.Assertion assertSimpleReference = do let path = Path.absRel "semantic-python/test/fixtures/5-01-simple-reference.py" (result, Complete) <- graphFile path (expecto, Complete) <- runM $ runSketch (ModuleInfo path "Python" mempty) expectedReference HUnit.assertEqual "Should work for simple case" expecto result expectedReference :: ScopeGraphEff sig m => m Result expectedReference = do declare "x" (Props.Declaration ScopeGraph.Assignment ScopeGraph.Default Nothing (Span (Pos 0 0) (Pos 0 5))) let refProperties = Props.Reference ScopeGraph.Identifier ScopeGraph.Default (Span (Pos 1 0) (Pos 1 1)) newReference "x" refProperties pure Complete expectedQualifiedImport :: ScopeGraphEff sig m => m Result expectedQualifiedImport = do newEdge ScopeGraph.Import (NonEmpty.fromList ["cheese", "ints"]) let refProperties = Props.Reference ScopeGraph.Identifier ScopeGraph.Default (Span (Pos 0 7) (Pos 0 13)) newReference (Name.name "cheese") refProperties withScope (CurrentScope "cheese") $ do let refProperties = Props.Reference ScopeGraph.Identifier ScopeGraph.Default (Span (Pos 0 14) (Pos 0 18)) newReference (Name.name "ints") refProperties pure Complete expectedImportHole :: ScopeGraphEff sig m => m Result expectedImportHole = do newEdge ScopeGraph.Import (NonEmpty.fromList ["cheese", "ints"]) pure Complete assertLexicalScope :: HUnit.Assertion assertLexicalScope = do let path = Path.absRel "semantic-python/test/fixtures/5-02-simple-function.py" let info = ModuleInfo path "Python" mempty (graph, _) <- graphFile path case run (runSketch info expectedLexicalScope) of (expecto, Complete) -> HUnit.assertEqual "Should work for simple case" expecto graph (_, Todo msg) -> HUnit.assertFailure ("Failed to complete:" <> show msg) expectedLexicalScope :: ScopeGraphEff sig m => m Result expectedLexicalScope = do _ <- declareFunction (Just $ Name.name "foo") (Props.Function ScopeGraph.Function (Span (Pos 0 0) (Pos 1 24))) let refProperties = Props.Reference ScopeGraph.Identifier ScopeGraph.Default (Span (Pos 3 0) (Pos 3 3)) newReference "foo" refProperties pure Complete assertFunctionArg :: HUnit.Assertion assertFunctionArg = do let path = Path.absRel "semantic-python/test/fixtures/5-03-function-argument.py" (graph, _) <- graphFile path let info = ModuleInfo path "Python" mempty case run (runSketch info expectedFunctionArg) of (expecto, Complete) -> HUnit.assertEqual "Should work for simple case" expecto graph (_, Todo msg) -> HUnit.assertFailure ("Failed to complete:" <> show msg) expectedFunctionArg :: ScopeGraphEff sig m => m Result expectedFunctionArg = do (_, associatedScope) <- declareFunction (Just $ Name.name "foo") (Props.Function ScopeGraph.Function (Span (Pos 0 0) (Pos 1 12))) withScope (CurrentScope associatedScope) $ do declare "x" (Props.Declaration ScopeGraph.Parameter ScopeGraph.Default Nothing (Span (Pos 0 8) (Pos 0 9))) let refProperties = Props.Reference ScopeGraph.Identifier ScopeGraph.Default (Span (Pos 1 11) (Pos 1 12)) newReference "x" refProperties pure () let refProperties = Props.Reference ScopeGraph.Identifier ScopeGraph.Default (Span (Pos 3 0) (Pos 3 3)) newReference "foo" refProperties pure Complete assertImportHole :: HUnit.Assertion assertImportHole = do let path = Path.absRel "semantic-python/test/fixtures/cheese/6-01-imports.py" (graph, _) <- graphFile path let info = ModuleInfo path "Python" mempty case run (runSketch info expectedImportHole) of (expecto, Complete) -> HUnit.assertEqual "Should work for simple case" expecto graph (_, Todo msg) -> HUnit.assertFailure ("Failed to complete:" <> show msg) assertQualifiedImport :: HUnit.Assertion assertQualifiedImport = do let path = Path.absRel "semantic-python/test/fixtures/cheese/6-01-qualified-imports.py" (graph, _) <- graphFile path let info = ModuleInfo path "Python" mempty case run (runSketch info expectedQualifiedImport) of (expecto, Complete) -> HUnit.assertEqual "Should work for simple case" expecto graph (_, Todo msg) -> HUnit.assertFailure ("Failed to complete:" <> show msg) main :: IO () main = do -- make sure we're in the root directory so the paths resolve properly cwd <- Path.getCurrentDirectory when (Path.takeDirName cwd == Just (Path.relDir "semantic-python")) (Path.setCurrentDirectory (cwd Path.relDir "..")) Tasty.defaultMain $ Tasty.testGroup "Tests" [ Tasty.testGroup "declare" [ HUnit.testCase "toplevel assignment" assertSimpleAssignment ], Tasty.testGroup "reference" [ HUnit.testCase "simple reference" assertSimpleReference ], Tasty.testGroup "lexical scopes" [ HUnit.testCase "simple function scope" assertLexicalScope , HUnit.testCase "simple function argument" assertFunctionArg ], Tasty.testGroup "imports" [ HUnit.testCase "simple function argument" assertImportHole , HUnit.testCase "qualified imports" assertQualifiedImport ] ] ================================================ FILE: semantic-ruby/BUILD.bazel ================================================ package(default_visibility = ["//visibility:public"]) load( "//:build/common.bzl", "semantic_language_library", "semantic_language_parsing_test", ) semantic_language_library( name = "semantic-ruby", srcs = glob(["src/**/*.hs"]), language = "ruby", nodetypes = "@tree-sitter-ruby//:src/node-types.json", ) semantic_language_parsing_test(language = "ruby") ================================================ FILE: semantic-ruby/LICENSE ================================================ MIT License Copyright (c) 2019 GitHub Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: semantic-ruby/README.md ================================================ # Semantic support for Ruby This package implements `semantic` support for Ruby. ================================================ FILE: semantic-ruby/Setup.hs ================================================ import Distribution.Simple main = defaultMain ================================================ FILE: semantic-ruby/app/Main.hs ================================================ {-# LANGUAGE TypeApplications #-} module Main ( main ) where import Control.Monad import qualified Data.ByteString as B import Data.Foldable (traverse_) import System.Exit (die) import System.Environment (getArgs) import Language.Ruby import qualified Language.Ruby.AST as Rb import AST.Unmarshal main :: IO () main = getArgs >>= traverse_ (print <=< parseFile) parseFile :: FilePath -> IO (Rb.Program ()) parseFile = either die pure <=< parseByteString @Rb.Program @() tree_sitter_ruby <=< B.readFile ================================================ FILE: semantic-ruby/bench/Main.hs ================================================ module Main (main) where import Gauge import qualified Parsing main :: IO () main = defaultMain [ Parsing.benchmarks ] ================================================ FILE: semantic-ruby/bench/Parsing.hs ================================================ {-# LANGUAGE TypeApplications #-} module Parsing (benchmarks) where import AST.Unmarshal import Control.Monad import qualified Data.ByteString as B import Data.Foldable import Gauge import Language.Ruby import qualified Language.Ruby.AST as Rb import System.Exit (die) import System.FilePath.Glob benchmarks :: Benchmark benchmarks = bgroup "parsing" [ rubyBenchmarks ] rubyBenchmarks :: Benchmark rubyBenchmarks = bench "ruby" $ parseAllFiles dir "*.rb" where dir = "../semantic/tmp/ruby-examples/ruby_spec/command_line" parseAllFiles :: FilePath -> String -> Benchmarkable parseAllFiles dir glob = nfIO $ do paths <- globDir1 (compile glob) dir when (null paths) (die $ "No files found in " <> dir) for_ paths $ \ file -> do -- print (Path.toString file) contents <- B.readFile file either die pure =<< parseByteString @Rb.Program @() tree_sitter_ruby contents ================================================ FILE: semantic-ruby/semantic-ruby.cabal ================================================ cabal-version: 2.4 name: semantic-ruby version: 0.0.0.0 synopsis: Semantic support for Ruby. description: Semantic support for Ruby. homepage: https://github.com/github/semantic/tree/master/semantic-ruby#readme bug-reports: https://github.com/github/semantic/issues license: MIT license-file: LICENSE author: The Semantic authors maintainer: opensource+semantic@github.com copyright: (c) 2019 GitHub, Inc. category: Language build-type: Simple stability: alpha extra-source-files: README.md tested-with: GHC == 8.6.5 common haskell default-language: Haskell2010 ghc-options: -Weverything -Wno-missing-local-signatures -Wno-missing-import-lists -Wno-implicit-prelude -Wno-safe -Wno-unsafe -Wno-name-shadowing -Wno-monomorphism-restriction -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-star-is-type if (impl(ghc >= 8.8)) ghc-options: -Wno-missing-deriving-strategies if (impl(ghc >= 8.10)) ghc-options: -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module if (impl(ghc >= 9.2)) ghc-options: -Wno-missing-kind-signatures cpp-options: -DBAZEL_BUILD=0 library import: haskell exposed-modules: Language.Ruby Language.Ruby.AST Language.Ruby.Grammar Language.Ruby.Tags hs-source-dirs: src build-depends: , base >= 4.13 && < 5 , fused-effects ^>= 1.1 , semantic-ast , semantic-proto ^>= 0 , semantic-source ^>= 0.2 , semantic-tags ^>= 0.0 , template-haskell >= 2.15 && < 2.22 , text ^>= 1.2.3 , tree-sitter ^>= 0.9 , tree-sitter-ruby ^>= 0.5.0.2 test-suite test import: haskell type: exitcode-stdio-1.0 hs-source-dirs: test main-is: PreciseTest.hs build-depends: , base , semantic-ast , semantic-ruby , tasty , tree-sitter-ruby ^>= 0.5.0.2 executable benchmarks import: haskell hs-source-dirs: bench -- type: exitcode-stdio-1.0 main-is: Main.hs other-modules: Parsing ghc-options: -static -threaded -rtsopts "-with-rtsopts=-N -A4m -n2m" build-depends: , base , bytestring , gauge ^>= 0.2.5 , Glob , semantic-ast , semantic-ruby executable tree-sitter-ruby import: haskell hs-source-dirs: app ghc-options: -threaded -rtsopts "-with-rtsopts=-N -A4m -n2m" main-is: Main.hs build-depends: , base , bytestring , semantic-ast , semantic-ruby ================================================ FILE: semantic-ruby/src/Language/Ruby/AST.hs ================================================ -- Language definition for Ruby, generated by ast-generate. Do not edit! {-# LANGUAGE CPP #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE QuantifiedConstraints #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} module Language.Ruby.AST (module Language.Ruby.AST, getTestCorpusDir) where import qualified AST.Parse import qualified AST.Token import qualified AST.Traversable1.Class import qualified AST.Unmarshal import qualified Data.Foldable import qualified Data.List as Data.OldList import qualified Data.Maybe as GHC.Maybe import qualified Data.Text.Internal import qualified Data.Traversable import qualified GHC.Base import qualified GHC.Generics import qualified GHC.Records import qualified GHC.Show import qualified TreeSitter.Node import TreeSitter.Ruby (getTestCorpusDir) import qualified Prelude as GHC.Classes debugSymbolNames :: [GHC.Base.String] debugSymbolNames = debugSymbolNames_0 debugSymbolNames_0 :: [GHC.Base.String] debugSymbolNames_0 = [ "end", "identifier", "___END__", "uninterpreted", "_BEGIN", "_{", "_}", "_END", "_def", "_(", "_)", "_.", "_::", "_,", "_|", "_;", "_*", "_**", "_&", "_:", "_=", "_class", "_<", "_module", "_end", "_return", "_yield", "_break", "_next", "_redo", "_retry", "_if", "_unless", "_while", "_until", "_rescue", "_for", "_in", "_do", "_case", "_when", "_elsif", "_else", "_then", "_begin", "_ensure", "_=>", "_[", "_]", "_::", "_&.", "_(", "_+=", "_-=", "_*=", "_**=", "_/=", "_||=", "_|=", "_&&=", "_&=", "_%=", "_>>=", "_<<=", "_^=", "_?", "_:", "_..", "_...", "_and", "_or", "_||", "_&&", "_<<", "_>>", "_<=", "_>", "_>=", "_^", "_+", "_/", "_%", "_==", "_!=", "_===", "_<=>", "_=~", "_!~", "_defined?", "_not", "_!", "_~", "_-", "_+@", "_-@", "_[]", "_[]=", "_`", "_undef", "_alias", "comment", "integer", "float", "complex", "_r", "super", "self", "true", "false", "nil", "constant", "instance_variable", "class_variable", "global_variable", "character", "_#{", "_string_array_token1", "escape_sequence", "_[", "_->", "_line_break", "_simple_symbol", "_\"", "_:\"", "_`", "_/", "_%w(", "_%i(", "_heredoc_body_start", "_string_content", "_heredoc_content", "_string_end", "heredoc_end", "heredoc_beginning", "_&", "_*", "_-", "_-", "_*", "_<<", "symbol", "program", "_statements", "begin_block", "end_block", "_statement", "method", "singleton_method", "_method_rest", "parameters", "bare_parameters", "block_parameters", "_formal_parameter", "_simple_formal_parameter", "splat_parameter", "hash_splat_parameter", "block_parameter", "keyword_parameter", "optional_parameter", "class", "superclass", "singleton_class", "module", "return", "yield", "break", "next", "return", "yield", "break", "next", "redo", "retry", "if_modifier", "unless_modifier", "while_modifier", "until_modifier", "rescue_modifier", "while", "until", "for", "in", "do", "case", "when", "pattern", "if", "unless", "elsif", "else", "then", "begin", "ensure", "rescue", "exceptions", "exception_variable", "_body_statement", "_expression", "_arg", "_primary", "parenthesized_statements", "element_reference", "scope_resolution", "call", "method_call", "method_call", "argument_list", "argument_list", "_argument_list_with_trailing_comma", "_argument", "splat_argument", "hash_splat_argument", "block_argument", "do_block", "block", "assignment", "assignment", "operator_assignment", "operator_assignment", "conditional", "range", "binary", "binary", "unary", "unary", "unary", "right_assignment_list", "left_assignment_list", "_mlhs", "destructured_left_assignment", "rest_assignment", "_lhs", "_variable", "operator", "_method_name", "setter", "undef", "alias", "rational", "chained_string", "interpolation", "string", "subshell", "string_array", "symbol_array", "symbol", "regex", "heredoc_body", "__literal_contents", "array", "hash", "pair", "lambda", "empty_statement", "_terminator", "__statements_repeat1", "_parameters_repeat1", "_block_parameters_repeat1", "_for_repeat1", "_case_repeat1", "_case_repeat2", "_when_repeat1", "_exceptions_repeat1", "__body_statement_repeat1", "_command_argument_list_repeat1", "__mlhs_repeat1", "_undef_repeat1", "_chained_string_repeat1", "_string_array_repeat1", "_symbol_array_repeat1", "_heredoc_body_repeat1", "_hash_repeat1", "_\"", "bare_string", "bare_symbol", "destructured_parameter", "lambda_parameters", "method_parameters" ] newtype Arg a = Arg {getArg :: ((Primary GHC.Generics.:+: Assignment GHC.Generics.:+: Binary GHC.Generics.:+: Conditional GHC.Generics.:+: OperatorAssignment GHC.Generics.:+: Range GHC.Generics.:+: Unary) a)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1. AST.Traversable1.Class.Traversable1 a_1 ) instance GHC.Records.HasField "ann" (Arg a_2) a_2 where getField = AST.Unmarshal.gann GHC.Base.. getArg deriving instance GHC.Classes.Eq a_3 => GHC.Classes.Eq (Arg a_3) deriving instance GHC.Classes.Ord a_4 => GHC.Classes.Ord (Arg a_4) deriving instance GHC.Show.Show a_5 => GHC.Show.Show (Arg a_5) instance AST.Unmarshal.Unmarshal Arg instance Data.Foldable.Foldable Arg where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Arg where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Arg where traverse = AST.Traversable1.Class.traverseDefault1 newtype 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)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_6. AST.Traversable1.Class.Traversable1 a_6 ) instance GHC.Records.HasField "ann" (Lhs a_7) a_7 where getField = AST.Unmarshal.gann GHC.Base.. getLhs deriving instance GHC.Classes.Eq a_8 => GHC.Classes.Eq (Lhs a_8) deriving instance GHC.Classes.Ord a_9 => GHC.Classes.Ord (Lhs a_9) deriving instance GHC.Show.Show a_10 => GHC.Show.Show (Lhs a_10) instance AST.Unmarshal.Unmarshal Lhs instance Data.Foldable.Foldable Lhs where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Lhs where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Lhs where traverse = AST.Traversable1.Class.traverseDefault1 newtype 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)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_11. AST.Traversable1.Class.Traversable1 a_11 ) instance GHC.Records.HasField "ann" (MethodName a_12) a_12 where getField = AST.Unmarshal.gann GHC.Base.. getMethodName deriving instance GHC.Classes.Eq a_13 => GHC.Classes.Eq (MethodName a_13) deriving instance GHC.Classes.Ord a_14 => GHC.Classes.Ord (MethodName a_14) deriving instance GHC.Show.Show a_15 => GHC.Show.Show (MethodName a_15) instance AST.Unmarshal.Unmarshal MethodName instance Data.Foldable.Foldable MethodName where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor MethodName where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable MethodName where traverse = AST.Traversable1.Class.traverseDefault1 newtype 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)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_16. AST.Traversable1.Class.Traversable1 a_16 ) instance GHC.Records.HasField "ann" (Primary a_17) a_17 where getField = AST.Unmarshal.gann GHC.Base.. getPrimary deriving instance GHC.Classes.Eq a_18 => GHC.Classes.Eq (Primary a_18) deriving instance GHC.Classes.Ord a_19 => GHC.Classes.Ord (Primary a_19) deriving instance GHC.Show.Show a_20 => GHC.Show.Show (Primary a_20) instance AST.Unmarshal.Unmarshal Primary instance Data.Foldable.Foldable Primary where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Primary where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Primary where traverse = AST.Traversable1.Class.traverseDefault1 newtype 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)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_21. AST.Traversable1.Class.Traversable1 a_21 ) instance GHC.Records.HasField "ann" (Statement a_22) a_22 where getField = AST.Unmarshal.gann GHC.Base.. getStatement deriving instance GHC.Classes.Eq a_23 => GHC.Classes.Eq (Statement a_23) deriving instance GHC.Classes.Ord a_24 => GHC.Classes.Ord (Statement a_24) deriving instance GHC.Show.Show a_25 => GHC.Show.Show (Statement a_25) instance AST.Unmarshal.Unmarshal Statement instance Data.Foldable.Foldable Statement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Statement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Statement where traverse = AST.Traversable1.Class.traverseDefault1 newtype Variable a = Variable {getVariable :: ((ClassVariable GHC.Generics.:+: Constant GHC.Generics.:+: GlobalVariable GHC.Generics.:+: Identifier GHC.Generics.:+: InstanceVariable GHC.Generics.:+: Self GHC.Generics.:+: Super) a)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_26. AST.Traversable1.Class.Traversable1 a_26 ) instance GHC.Records.HasField "ann" (Variable a_27) a_27 where getField = AST.Unmarshal.gann GHC.Base.. getVariable deriving instance GHC.Classes.Eq a_28 => GHC.Classes.Eq (Variable a_28) deriving instance GHC.Classes.Ord a_29 => GHC.Classes.Ord (Variable a_29) deriving instance GHC.Show.Show a_30 => GHC.Show.Show (Variable a_30) instance AST.Unmarshal.Unmarshal Variable instance Data.Foldable.Foldable Variable where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Variable where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Variable where traverse = AST.Traversable1.Class.traverseDefault1 data Alias a = Alias { ann :: a, alias :: (AST.Parse.Err (MethodName a)), name :: (AST.Parse.Err (MethodName a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_31. AST.Traversable1.Class.Traversable1 a_31 ) instance AST.Unmarshal.SymbolMatching Alias where matchedSymbols _ = [237] showFailure _ node_32 = "expected " GHC.Base.<> ( "alias" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_32 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_33 c1_34 = TreeSitter.Node.nodeStartPoint node_32 TreeSitter.Node.TSPoint r2_35 c2_36 = TreeSitter.Node.nodeEndPoint node_32 deriving instance GHC.Classes.Eq a_37 => GHC.Classes.Eq (Alias a_37) deriving instance GHC.Classes.Ord a_38 => GHC.Classes.Ord (Alias a_38) deriving instance GHC.Show.Show a_39 => GHC.Show.Show (Alias a_39) instance AST.Unmarshal.Unmarshal Alias instance Data.Foldable.Foldable Alias where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Alias where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Alias where traverse = AST.Traversable1.Class.traverseDefault1 data ArgumentList a = ArgumentList { ann :: a, extraChildren :: ([AST.Parse.Err ((Arg GHC.Generics.:+: BlockArgument GHC.Generics.:+: HashSplatArgument GHC.Generics.:+: MethodCall GHC.Generics.:+: Pair GHC.Generics.:+: SplatArgument) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_40. AST.Traversable1.Class.Traversable1 a_40 ) instance AST.Unmarshal.SymbolMatching ArgumentList where matchedSymbols _ = [206, 207] showFailure _ node_41 = "expected " GHC.Base.<> ( "argument_list, argument_list" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_41 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_42 c1_43 = TreeSitter.Node.nodeStartPoint node_41 TreeSitter.Node.TSPoint r2_44 c2_45 = TreeSitter.Node.nodeEndPoint node_41 deriving instance GHC.Classes.Eq a_46 => GHC.Classes.Eq (ArgumentList a_46) deriving instance GHC.Classes.Ord a_47 => GHC.Classes.Ord (ArgumentList a_47) deriving instance GHC.Show.Show a_48 => GHC.Show.Show (ArgumentList a_48) instance AST.Unmarshal.Unmarshal ArgumentList instance Data.Foldable.Foldable ArgumentList where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ArgumentList where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ArgumentList where traverse = AST.Traversable1.Class.traverseDefault1 data Array a = Array { ann :: a, extraChildren :: ([AST.Parse.Err ((Arg GHC.Generics.:+: BlockArgument GHC.Generics.:+: HashSplatArgument GHC.Generics.:+: Pair GHC.Generics.:+: SplatArgument) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_49. AST.Traversable1.Class.Traversable1 a_49 ) instance AST.Unmarshal.SymbolMatching Array where matchedSymbols _ = [249] showFailure _ node_50 = "expected " GHC.Base.<> ( "array" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_50 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_51 c1_52 = TreeSitter.Node.nodeStartPoint node_50 TreeSitter.Node.TSPoint r2_53 c2_54 = TreeSitter.Node.nodeEndPoint node_50 deriving instance GHC.Classes.Eq a_55 => GHC.Classes.Eq (Array a_55) deriving instance GHC.Classes.Ord a_56 => GHC.Classes.Ord (Array a_56) deriving instance GHC.Show.Show a_57 => GHC.Show.Show (Array a_57) instance AST.Unmarshal.Unmarshal Array instance Data.Foldable.Foldable Array where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Array where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Array where traverse = AST.Traversable1.Class.traverseDefault1 data Assignment a = Assignment { ann :: a, left :: (AST.Parse.Err ((Lhs GHC.Generics.:+: LeftAssignmentList) a)), 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_58. AST.Traversable1.Class.Traversable1 a_58 ) instance AST.Unmarshal.SymbolMatching Assignment where matchedSymbols _ = [215, 216] showFailure _ node_59 = "expected " GHC.Base.<> ( "assignment, assignment" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_59 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_60 c1_61 = TreeSitter.Node.nodeStartPoint node_59 TreeSitter.Node.TSPoint r2_62 c2_63 = TreeSitter.Node.nodeEndPoint node_59 deriving instance GHC.Classes.Eq a_64 => GHC.Classes.Eq (Assignment a_64) deriving instance GHC.Classes.Ord a_65 => GHC.Classes.Ord (Assignment a_65) deriving instance GHC.Show.Show a_66 => GHC.Show.Show (Assignment a_66) instance AST.Unmarshal.Unmarshal Assignment instance Data.Foldable.Foldable Assignment where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Assignment where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Assignment where traverse = AST.Traversable1.Class.traverseDefault1 data BareString a = BareString { ann :: a, extraChildren :: ([AST.Parse.Err ((EscapeSequence GHC.Generics.:+: Interpolation) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_67. AST.Traversable1.Class.Traversable1 a_67 ) instance AST.Unmarshal.SymbolMatching BareString where matchedSymbols _ = [273] showFailure _ node_68 = "expected " GHC.Base.<> ( "bare_string" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_68 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_69 c1_70 = TreeSitter.Node.nodeStartPoint node_68 TreeSitter.Node.TSPoint r2_71 c2_72 = TreeSitter.Node.nodeEndPoint node_68 deriving instance GHC.Classes.Eq a_73 => GHC.Classes.Eq (BareString a_73) deriving instance GHC.Classes.Ord a_74 => GHC.Classes.Ord (BareString a_74) deriving instance GHC.Show.Show a_75 => GHC.Show.Show (BareString a_75) instance AST.Unmarshal.Unmarshal BareString instance Data.Foldable.Foldable BareString where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor BareString where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable BareString where traverse = AST.Traversable1.Class.traverseDefault1 data BareSymbol a = BareSymbol { ann :: a, extraChildren :: ([AST.Parse.Err ((EscapeSequence GHC.Generics.:+: Interpolation) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_76. AST.Traversable1.Class.Traversable1 a_76 ) instance AST.Unmarshal.SymbolMatching BareSymbol where matchedSymbols _ = [274] showFailure _ node_77 = "expected " GHC.Base.<> ( "bare_symbol" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_77 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_78 c1_79 = TreeSitter.Node.nodeStartPoint node_77 TreeSitter.Node.TSPoint r2_80 c2_81 = TreeSitter.Node.nodeEndPoint node_77 deriving instance GHC.Classes.Eq a_82 => GHC.Classes.Eq (BareSymbol a_82) deriving instance GHC.Classes.Ord a_83 => GHC.Classes.Ord (BareSymbol a_83) deriving instance GHC.Show.Show a_84 => GHC.Show.Show (BareSymbol a_84) instance AST.Unmarshal.Unmarshal BareSymbol instance Data.Foldable.Foldable BareSymbol where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor BareSymbol where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable BareSymbol where traverse = AST.Traversable1.Class.traverseDefault1 data Begin a = Begin { ann :: a, extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: Else GHC.Generics.:+: EmptyStatement GHC.Generics.:+: Ensure GHC.Generics.:+: Rescue) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_85. AST.Traversable1.Class.Traversable1 a_85 ) instance AST.Unmarshal.SymbolMatching Begin where matchedSymbols _ = [191] showFailure _ node_86 = "expected " GHC.Base.<> ( "begin" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_86 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_87 c1_88 = TreeSitter.Node.nodeStartPoint node_86 TreeSitter.Node.TSPoint r2_89 c2_90 = TreeSitter.Node.nodeEndPoint node_86 deriving instance GHC.Classes.Eq a_91 => GHC.Classes.Eq (Begin a_91) deriving instance GHC.Classes.Ord a_92 => GHC.Classes.Ord (Begin a_92) deriving instance GHC.Show.Show a_93 => GHC.Show.Show (Begin a_93) instance AST.Unmarshal.Unmarshal Begin instance Data.Foldable.Foldable Begin where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Begin where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Begin where traverse = AST.Traversable1.Class.traverseDefault1 data BeginBlock a = BeginBlock { ann :: a, extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: EmptyStatement) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_94. AST.Traversable1.Class.Traversable1 a_94 ) instance AST.Unmarshal.SymbolMatching BeginBlock where matchedSymbols _ = [143] showFailure _ node_95 = "expected " GHC.Base.<> ( "begin_block" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_95 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_96 c1_97 = TreeSitter.Node.nodeStartPoint node_95 TreeSitter.Node.TSPoint r2_98 c2_99 = TreeSitter.Node.nodeEndPoint node_95 deriving instance GHC.Classes.Eq a_100 => GHC.Classes.Eq (BeginBlock a_100) deriving instance GHC.Classes.Ord a_101 => GHC.Classes.Ord (BeginBlock a_101) deriving instance GHC.Show.Show a_102 => GHC.Show.Show (BeginBlock a_102) instance AST.Unmarshal.Unmarshal BeginBlock instance Data.Foldable.Foldable BeginBlock where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor BeginBlock where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable BeginBlock where traverse = AST.Traversable1.Class.traverseDefault1 data Binary a = Binary { ann :: a, 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)), left :: (AST.Parse.Err ((Arg GHC.Generics.:+: Break GHC.Generics.:+: MethodCall GHC.Generics.:+: Next GHC.Generics.:+: Return GHC.Generics.:+: Yield) a)), right :: (AST.Parse.Err ((Arg GHC.Generics.:+: Break GHC.Generics.:+: MethodCall GHC.Generics.:+: Next GHC.Generics.:+: Return GHC.Generics.:+: Yield) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_103. AST.Traversable1.Class.Traversable1 a_103 ) instance AST.Unmarshal.SymbolMatching Binary where matchedSymbols _ = [221, 222] showFailure _ node_104 = "expected " GHC.Base.<> ( "binary, binary" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_104 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_105 c1_106 = TreeSitter.Node.nodeStartPoint node_104 TreeSitter.Node.TSPoint r2_107 c2_108 = TreeSitter.Node.nodeEndPoint node_104 deriving instance GHC.Classes.Eq a_109 => GHC.Classes.Eq (Binary a_109) deriving instance GHC.Classes.Ord a_110 => GHC.Classes.Ord (Binary a_110) deriving instance GHC.Show.Show a_111 => GHC.Show.Show (Binary a_111) instance AST.Unmarshal.Unmarshal Binary instance Data.Foldable.Foldable Binary where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Binary where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Binary where traverse = AST.Traversable1.Class.traverseDefault1 data Block a = Block { ann :: a, extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: BlockParameters GHC.Generics.:+: EmptyStatement) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_112. AST.Traversable1.Class.Traversable1 a_112 ) instance AST.Unmarshal.SymbolMatching Block where matchedSymbols _ = [214] showFailure _ node_113 = "expected " GHC.Base.<> ( "block" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_113 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_114 c1_115 = TreeSitter.Node.nodeStartPoint node_113 TreeSitter.Node.TSPoint r2_116 c2_117 = TreeSitter.Node.nodeEndPoint node_113 deriving instance GHC.Classes.Eq a_118 => GHC.Classes.Eq (Block a_118) deriving instance GHC.Classes.Ord a_119 => GHC.Classes.Ord (Block a_119) deriving instance GHC.Show.Show a_120 => GHC.Show.Show (Block a_120) instance AST.Unmarshal.Unmarshal Block instance Data.Foldable.Foldable Block where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Block where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Block where traverse = AST.Traversable1.Class.traverseDefault1 data BlockArgument a = BlockArgument { ann :: a, extraChildren :: (AST.Parse.Err (Arg a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_121. AST.Traversable1.Class.Traversable1 a_121 ) instance AST.Unmarshal.SymbolMatching BlockArgument where matchedSymbols _ = [212] showFailure _ node_122 = "expected " GHC.Base.<> ( "block_argument" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_122 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_123 c1_124 = TreeSitter.Node.nodeStartPoint node_122 TreeSitter.Node.TSPoint r2_125 c2_126 = TreeSitter.Node.nodeEndPoint node_122 deriving instance GHC.Classes.Eq a_127 => GHC.Classes.Eq (BlockArgument a_127) deriving instance GHC.Classes.Ord a_128 => GHC.Classes.Ord (BlockArgument a_128) deriving instance GHC.Show.Show a_129 => GHC.Show.Show (BlockArgument a_129) instance AST.Unmarshal.Unmarshal BlockArgument instance Data.Foldable.Foldable BlockArgument where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor BlockArgument where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable BlockArgument where traverse = AST.Traversable1.Class.traverseDefault1 data BlockParameter a = BlockParameter {ann :: a, name :: (AST.Parse.Err (Identifier a))} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_130. AST.Traversable1.Class.Traversable1 a_130 ) instance AST.Unmarshal.SymbolMatching BlockParameter where matchedSymbols _ = [156] showFailure _ node_131 = "expected " GHC.Base.<> ( "block_parameter" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_131 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_132 c1_133 = TreeSitter.Node.nodeStartPoint node_131 TreeSitter.Node.TSPoint r2_134 c2_135 = TreeSitter.Node.nodeEndPoint node_131 deriving instance GHC.Classes.Eq a_136 => GHC.Classes.Eq (BlockParameter a_136) deriving instance GHC.Classes.Ord a_137 => GHC.Classes.Ord (BlockParameter a_137) deriving instance GHC.Show.Show a_138 => GHC.Show.Show (BlockParameter a_138) instance AST.Unmarshal.Unmarshal BlockParameter instance Data.Foldable.Foldable BlockParameter where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor BlockParameter where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable BlockParameter where traverse = AST.Traversable1.Class.traverseDefault1 data BlockParameters a = BlockParameters { ann :: a, extraChildren :: ([AST.Parse.Err ((BlockParameter GHC.Generics.:+: DestructuredParameter GHC.Generics.:+: HashSplatParameter GHC.Generics.:+: Identifier GHC.Generics.:+: KeywordParameter GHC.Generics.:+: OptionalParameter GHC.Generics.:+: SplatParameter) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_139. AST.Traversable1.Class.Traversable1 a_139 ) instance AST.Unmarshal.SymbolMatching BlockParameters where matchedSymbols _ = [151] showFailure _ node_140 = "expected " GHC.Base.<> ( "block_parameters" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_140 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_141 c1_142 = TreeSitter.Node.nodeStartPoint node_140 TreeSitter.Node.TSPoint r2_143 c2_144 = TreeSitter.Node.nodeEndPoint node_140 deriving instance GHC.Classes.Eq a_145 => GHC.Classes.Eq (BlockParameters a_145) deriving instance GHC.Classes.Ord a_146 => GHC.Classes.Ord (BlockParameters a_146) deriving instance GHC.Show.Show a_147 => GHC.Show.Show (BlockParameters a_147) instance AST.Unmarshal.Unmarshal BlockParameters instance Data.Foldable.Foldable BlockParameters where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor BlockParameters where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable BlockParameters where traverse = AST.Traversable1.Class.traverseDefault1 data Break a = Break { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ArgumentList a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_148. AST.Traversable1.Class.Traversable1 a_148 ) instance AST.Unmarshal.SymbolMatching Break where matchedSymbols _ = [165, 169] showFailure _ node_149 = "expected " GHC.Base.<> ( "break, break" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_149 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_150 c1_151 = TreeSitter.Node.nodeStartPoint node_149 TreeSitter.Node.TSPoint r2_152 c2_153 = TreeSitter.Node.nodeEndPoint node_149 deriving instance GHC.Classes.Eq a_154 => GHC.Classes.Eq (Break a_154) deriving instance GHC.Classes.Ord a_155 => GHC.Classes.Ord (Break a_155) deriving instance GHC.Show.Show a_156 => GHC.Show.Show (Break a_156) instance AST.Unmarshal.Unmarshal Break instance Data.Foldable.Foldable Break where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Break where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Break where traverse = AST.Traversable1.Class.traverseDefault1 data Call a = Call { ann :: a, receiver :: (AST.Parse.Err (Primary a)), method :: (AST.Parse.Err ((ArgumentList GHC.Generics.:+: Constant GHC.Generics.:+: Identifier GHC.Generics.:+: Operator) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_157. AST.Traversable1.Class.Traversable1 a_157 ) instance AST.Unmarshal.SymbolMatching Call where matchedSymbols _ = [203] showFailure _ node_158 = "expected " GHC.Base.<> ( "call" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_158 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_159 c1_160 = TreeSitter.Node.nodeStartPoint node_158 TreeSitter.Node.TSPoint r2_161 c2_162 = TreeSitter.Node.nodeEndPoint node_158 deriving instance GHC.Classes.Eq a_163 => GHC.Classes.Eq (Call a_163) deriving instance GHC.Classes.Ord a_164 => GHC.Classes.Ord (Call a_164) deriving instance GHC.Show.Show a_165 => GHC.Show.Show (Call a_165) instance AST.Unmarshal.Unmarshal Call instance Data.Foldable.Foldable Call where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Call where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Call where traverse = AST.Traversable1.Class.traverseDefault1 data Case a = Case { ann :: a, value :: (GHC.Maybe.Maybe (AST.Parse.Err (Arg a))), extraChildren :: ([AST.Parse.Err ((Else GHC.Generics.:+: When) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_166. AST.Traversable1.Class.Traversable1 a_166 ) instance AST.Unmarshal.SymbolMatching Case where matchedSymbols _ = [183] showFailure _ node_167 = "expected " GHC.Base.<> ( "case" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_167 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_168 c1_169 = TreeSitter.Node.nodeStartPoint node_167 TreeSitter.Node.TSPoint r2_170 c2_171 = TreeSitter.Node.nodeEndPoint node_167 deriving instance GHC.Classes.Eq a_172 => GHC.Classes.Eq (Case a_172) deriving instance GHC.Classes.Ord a_173 => GHC.Classes.Ord (Case a_173) deriving instance GHC.Show.Show a_174 => GHC.Show.Show (Case a_174) instance AST.Unmarshal.Unmarshal Case instance Data.Foldable.Foldable Case where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Case where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Case where traverse = AST.Traversable1.Class.traverseDefault1 data ChainedString a = ChainedString { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (String a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_175. AST.Traversable1.Class.Traversable1 a_175 ) instance AST.Unmarshal.SymbolMatching ChainedString where matchedSymbols _ = [239] showFailure _ node_176 = "expected " GHC.Base.<> ( "chained_string" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_176 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_177 c1_178 = TreeSitter.Node.nodeStartPoint node_176 TreeSitter.Node.TSPoint r2_179 c2_180 = TreeSitter.Node.nodeEndPoint node_176 deriving instance GHC.Classes.Eq a_181 => GHC.Classes.Eq (ChainedString a_181) deriving instance GHC.Classes.Ord a_182 => GHC.Classes.Ord (ChainedString a_182) deriving instance GHC.Show.Show a_183 => GHC.Show.Show (ChainedString a_183) instance AST.Unmarshal.Unmarshal ChainedString instance Data.Foldable.Foldable ChainedString where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ChainedString where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ChainedString where traverse = AST.Traversable1.Class.traverseDefault1 data Class a = Class { ann :: a, name :: (AST.Parse.Err ((Constant GHC.Generics.:+: ScopeResolution) a)), extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: Else GHC.Generics.:+: EmptyStatement GHC.Generics.:+: Ensure GHC.Generics.:+: Rescue GHC.Generics.:+: Superclass) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_184. AST.Traversable1.Class.Traversable1 a_184 ) instance AST.Unmarshal.SymbolMatching Class where matchedSymbols _ = [159] showFailure _ node_185 = "expected " GHC.Base.<> ( "class" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_185 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_186 c1_187 = TreeSitter.Node.nodeStartPoint node_185 TreeSitter.Node.TSPoint r2_188 c2_189 = TreeSitter.Node.nodeEndPoint node_185 deriving instance GHC.Classes.Eq a_190 => GHC.Classes.Eq (Class a_190) deriving instance GHC.Classes.Ord a_191 => GHC.Classes.Ord (Class a_191) deriving instance GHC.Show.Show a_192 => GHC.Show.Show (Class a_192) instance AST.Unmarshal.Unmarshal Class instance Data.Foldable.Foldable Class where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Class where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Class where traverse = AST.Traversable1.Class.traverseDefault1 data Conditional a = Conditional { ann :: a, alternative :: (AST.Parse.Err (Arg a)), consequence :: (AST.Parse.Err (Arg a)), condition :: (AST.Parse.Err (Arg a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_193. AST.Traversable1.Class.Traversable1 a_193 ) instance AST.Unmarshal.SymbolMatching Conditional where matchedSymbols _ = [219] showFailure _ node_194 = "expected " GHC.Base.<> ( "conditional" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_194 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_195 c1_196 = TreeSitter.Node.nodeStartPoint node_194 TreeSitter.Node.TSPoint r2_197 c2_198 = TreeSitter.Node.nodeEndPoint node_194 deriving instance GHC.Classes.Eq a_199 => GHC.Classes.Eq (Conditional a_199) deriving instance GHC.Classes.Ord a_200 => GHC.Classes.Ord (Conditional a_200) deriving instance GHC.Show.Show a_201 => GHC.Show.Show (Conditional a_201) instance AST.Unmarshal.Unmarshal Conditional instance Data.Foldable.Foldable Conditional where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Conditional where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Conditional where traverse = AST.Traversable1.Class.traverseDefault1 data DestructuredLeftAssignment a = DestructuredLeftAssignment { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Lhs GHC.Generics.:+: DestructuredLeftAssignment GHC.Generics.:+: RestAssignment) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_202. AST.Traversable1.Class.Traversable1 a_202 ) instance AST.Unmarshal.SymbolMatching DestructuredLeftAssignment where matchedSymbols _ = [229] showFailure _ node_203 = "expected " GHC.Base.<> ( "destructured_left_assignment" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_203 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_204 c1_205 = TreeSitter.Node.nodeStartPoint node_203 TreeSitter.Node.TSPoint r2_206 c2_207 = TreeSitter.Node.nodeEndPoint node_203 deriving instance GHC.Classes.Eq a_208 => GHC.Classes.Eq (DestructuredLeftAssignment a_208) deriving instance GHC.Classes.Ord a_209 => GHC.Classes.Ord (DestructuredLeftAssignment a_209) deriving instance GHC.Show.Show a_210 => GHC.Show.Show (DestructuredLeftAssignment a_210) instance AST.Unmarshal.Unmarshal DestructuredLeftAssignment instance Data.Foldable.Foldable DestructuredLeftAssignment where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DestructuredLeftAssignment where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DestructuredLeftAssignment where traverse = AST.Traversable1.Class.traverseDefault1 data DestructuredParameter a = DestructuredParameter { ann :: a, extraChildren :: ([AST.Parse.Err ((BlockParameter GHC.Generics.:+: DestructuredParameter GHC.Generics.:+: HashSplatParameter GHC.Generics.:+: Identifier GHC.Generics.:+: KeywordParameter GHC.Generics.:+: OptionalParameter GHC.Generics.:+: SplatParameter) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_211. AST.Traversable1.Class.Traversable1 a_211 ) instance AST.Unmarshal.SymbolMatching DestructuredParameter where matchedSymbols _ = [275] showFailure _ node_212 = "expected " GHC.Base.<> ( "destructured_parameter" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_212 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_213 c1_214 = TreeSitter.Node.nodeStartPoint node_212 TreeSitter.Node.TSPoint r2_215 c2_216 = TreeSitter.Node.nodeEndPoint node_212 deriving instance GHC.Classes.Eq a_217 => GHC.Classes.Eq (DestructuredParameter a_217) deriving instance GHC.Classes.Ord a_218 => GHC.Classes.Ord (DestructuredParameter a_218) deriving instance GHC.Show.Show a_219 => GHC.Show.Show (DestructuredParameter a_219) instance AST.Unmarshal.Unmarshal DestructuredParameter instance Data.Foldable.Foldable DestructuredParameter where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DestructuredParameter where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DestructuredParameter where traverse = AST.Traversable1.Class.traverseDefault1 data Do a = Do { ann :: a, extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: EmptyStatement) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_220. AST.Traversable1.Class.Traversable1 a_220 ) instance AST.Unmarshal.SymbolMatching Do where matchedSymbols _ = [182] showFailure _ node_221 = "expected " GHC.Base.<> ( "do" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_221 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_222 c1_223 = TreeSitter.Node.nodeStartPoint node_221 TreeSitter.Node.TSPoint r2_224 c2_225 = TreeSitter.Node.nodeEndPoint node_221 deriving instance GHC.Classes.Eq a_226 => GHC.Classes.Eq (Do a_226) deriving instance GHC.Classes.Ord a_227 => GHC.Classes.Ord (Do a_227) deriving instance GHC.Show.Show a_228 => GHC.Show.Show (Do a_228) instance AST.Unmarshal.Unmarshal Do instance Data.Foldable.Foldable Do where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Do where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Do where traverse = AST.Traversable1.Class.traverseDefault1 data DoBlock a = DoBlock { ann :: a, extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: BlockParameters GHC.Generics.:+: Else GHC.Generics.:+: EmptyStatement GHC.Generics.:+: Ensure GHC.Generics.:+: Rescue) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_229. AST.Traversable1.Class.Traversable1 a_229 ) instance AST.Unmarshal.SymbolMatching DoBlock where matchedSymbols _ = [213] showFailure _ node_230 = "expected " GHC.Base.<> ( "do_block" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_230 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_231 c1_232 = TreeSitter.Node.nodeStartPoint node_230 TreeSitter.Node.TSPoint r2_233 c2_234 = TreeSitter.Node.nodeEndPoint node_230 deriving instance GHC.Classes.Eq a_235 => GHC.Classes.Eq (DoBlock a_235) deriving instance GHC.Classes.Ord a_236 => GHC.Classes.Ord (DoBlock a_236) deriving instance GHC.Show.Show a_237 => GHC.Show.Show (DoBlock a_237) instance AST.Unmarshal.Unmarshal DoBlock instance Data.Foldable.Foldable DoBlock where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DoBlock where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DoBlock where traverse = AST.Traversable1.Class.traverseDefault1 data ElementReference a = ElementReference { ann :: a, object :: (AST.Parse.Err (Primary a)), extraChildren :: ([AST.Parse.Err ((Arg GHC.Generics.:+: BlockArgument GHC.Generics.:+: HashSplatArgument GHC.Generics.:+: Pair GHC.Generics.:+: SplatArgument) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_238. AST.Traversable1.Class.Traversable1 a_238 ) instance AST.Unmarshal.SymbolMatching ElementReference where matchedSymbols _ = [201] showFailure _ node_239 = "expected " GHC.Base.<> ( "element_reference" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_239 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_240 c1_241 = TreeSitter.Node.nodeStartPoint node_239 TreeSitter.Node.TSPoint r2_242 c2_243 = TreeSitter.Node.nodeEndPoint node_239 deriving instance GHC.Classes.Eq a_244 => GHC.Classes.Eq (ElementReference a_244) deriving instance GHC.Classes.Ord a_245 => GHC.Classes.Ord (ElementReference a_245) deriving instance GHC.Show.Show a_246 => GHC.Show.Show (ElementReference a_246) instance AST.Unmarshal.Unmarshal ElementReference instance Data.Foldable.Foldable ElementReference where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ElementReference where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ElementReference where traverse = AST.Traversable1.Class.traverseDefault1 data Else a = Else { ann :: a, condition :: (GHC.Maybe.Maybe (AST.Parse.Err (AnonymousSemicolon a))), extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: EmptyStatement) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_247. AST.Traversable1.Class.Traversable1 a_247 ) instance AST.Unmarshal.SymbolMatching Else where matchedSymbols _ = [189] showFailure _ node_248 = "expected " GHC.Base.<> ( "else" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_248 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_249 c1_250 = TreeSitter.Node.nodeStartPoint node_248 TreeSitter.Node.TSPoint r2_251 c2_252 = TreeSitter.Node.nodeEndPoint node_248 deriving instance GHC.Classes.Eq a_253 => GHC.Classes.Eq (Else a_253) deriving instance GHC.Classes.Ord a_254 => GHC.Classes.Ord (Else a_254) deriving instance GHC.Show.Show a_255 => GHC.Show.Show (Else a_255) instance AST.Unmarshal.Unmarshal Else instance Data.Foldable.Foldable Else where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Else where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Else where traverse = AST.Traversable1.Class.traverseDefault1 data Elsif a = Elsif { ann :: a, alternative :: (GHC.Maybe.Maybe (AST.Parse.Err ((Else GHC.Generics.:+: Elsif) a))), consequence :: (GHC.Maybe.Maybe (AST.Parse.Err (Then a))), condition :: (AST.Parse.Err (Statement a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_256. AST.Traversable1.Class.Traversable1 a_256 ) instance AST.Unmarshal.SymbolMatching Elsif where matchedSymbols _ = [188] showFailure _ node_257 = "expected " GHC.Base.<> ( "elsif" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_257 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_258 c1_259 = TreeSitter.Node.nodeStartPoint node_257 TreeSitter.Node.TSPoint r2_260 c2_261 = TreeSitter.Node.nodeEndPoint node_257 deriving instance GHC.Classes.Eq a_262 => GHC.Classes.Eq (Elsif a_262) deriving instance GHC.Classes.Ord a_263 => GHC.Classes.Ord (Elsif a_263) deriving instance GHC.Show.Show a_264 => GHC.Show.Show (Elsif a_264) instance AST.Unmarshal.Unmarshal Elsif instance Data.Foldable.Foldable Elsif where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Elsif where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Elsif where traverse = AST.Traversable1.Class.traverseDefault1 data EmptyStatement a = EmptyStatement {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_265. AST.Traversable1.Class.Traversable1 a_265 ) instance AST.Unmarshal.SymbolMatching EmptyStatement where matchedSymbols _ = [253] showFailure _ node_266 = "expected " GHC.Base.<> ( "empty_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_266 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_267 c1_268 = TreeSitter.Node.nodeStartPoint node_266 TreeSitter.Node.TSPoint r2_269 c2_270 = TreeSitter.Node.nodeEndPoint node_266 deriving instance GHC.Classes.Eq a_271 => GHC.Classes.Eq (EmptyStatement a_271) deriving instance GHC.Classes.Ord a_272 => GHC.Classes.Ord (EmptyStatement a_272) deriving instance GHC.Show.Show a_273 => GHC.Show.Show (EmptyStatement a_273) instance AST.Unmarshal.Unmarshal EmptyStatement instance Data.Foldable.Foldable EmptyStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor EmptyStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable EmptyStatement where traverse = AST.Traversable1.Class.traverseDefault1 data EndBlock a = EndBlock { ann :: a, extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: EmptyStatement) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_274. AST.Traversable1.Class.Traversable1 a_274 ) instance AST.Unmarshal.SymbolMatching EndBlock where matchedSymbols _ = [144] showFailure _ node_275 = "expected " GHC.Base.<> ( "end_block" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_275 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_276 c1_277 = TreeSitter.Node.nodeStartPoint node_275 TreeSitter.Node.TSPoint r2_278 c2_279 = TreeSitter.Node.nodeEndPoint node_275 deriving instance GHC.Classes.Eq a_280 => GHC.Classes.Eq (EndBlock a_280) deriving instance GHC.Classes.Ord a_281 => GHC.Classes.Ord (EndBlock a_281) deriving instance GHC.Show.Show a_282 => GHC.Show.Show (EndBlock a_282) instance AST.Unmarshal.Unmarshal EndBlock instance Data.Foldable.Foldable EndBlock where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor EndBlock where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable EndBlock where traverse = AST.Traversable1.Class.traverseDefault1 data Ensure a = Ensure { ann :: a, extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: EmptyStatement) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_283. AST.Traversable1.Class.Traversable1 a_283 ) instance AST.Unmarshal.SymbolMatching Ensure where matchedSymbols _ = [192] showFailure _ node_284 = "expected " GHC.Base.<> ( "ensure" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_284 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_285 c1_286 = TreeSitter.Node.nodeStartPoint node_284 TreeSitter.Node.TSPoint r2_287 c2_288 = TreeSitter.Node.nodeEndPoint node_284 deriving instance GHC.Classes.Eq a_289 => GHC.Classes.Eq (Ensure a_289) deriving instance GHC.Classes.Ord a_290 => GHC.Classes.Ord (Ensure a_290) deriving instance GHC.Show.Show a_291 => GHC.Show.Show (Ensure a_291) instance AST.Unmarshal.Unmarshal Ensure instance Data.Foldable.Foldable Ensure where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Ensure where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Ensure where traverse = AST.Traversable1.Class.traverseDefault1 data ExceptionVariable a = ExceptionVariable { ann :: a, extraChildren :: (AST.Parse.Err (Lhs a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_292. AST.Traversable1.Class.Traversable1 a_292 ) instance AST.Unmarshal.SymbolMatching ExceptionVariable where matchedSymbols _ = [195] showFailure _ node_293 = "expected " GHC.Base.<> ( "exception_variable" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_293 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_294 c1_295 = TreeSitter.Node.nodeStartPoint node_293 TreeSitter.Node.TSPoint r2_296 c2_297 = TreeSitter.Node.nodeEndPoint node_293 deriving instance GHC.Classes.Eq a_298 => GHC.Classes.Eq (ExceptionVariable a_298) deriving instance GHC.Classes.Ord a_299 => GHC.Classes.Ord (ExceptionVariable a_299) deriving instance GHC.Show.Show a_300 => GHC.Show.Show (ExceptionVariable a_300) instance AST.Unmarshal.Unmarshal ExceptionVariable instance Data.Foldable.Foldable ExceptionVariable where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ExceptionVariable where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ExceptionVariable where traverse = AST.Traversable1.Class.traverseDefault1 data Exceptions a = Exceptions { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Arg GHC.Generics.:+: SplatArgument) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_301. AST.Traversable1.Class.Traversable1 a_301 ) instance AST.Unmarshal.SymbolMatching Exceptions where matchedSymbols _ = [194] showFailure _ node_302 = "expected " GHC.Base.<> ( "exceptions" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_302 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_303 c1_304 = TreeSitter.Node.nodeStartPoint node_302 TreeSitter.Node.TSPoint r2_305 c2_306 = TreeSitter.Node.nodeEndPoint node_302 deriving instance GHC.Classes.Eq a_307 => GHC.Classes.Eq (Exceptions a_307) deriving instance GHC.Classes.Ord a_308 => GHC.Classes.Ord (Exceptions a_308) deriving instance GHC.Show.Show a_309 => GHC.Show.Show (Exceptions a_309) instance AST.Unmarshal.Unmarshal Exceptions instance Data.Foldable.Foldable Exceptions where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Exceptions where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Exceptions where traverse = AST.Traversable1.Class.traverseDefault1 data For a = For { ann :: a, pattern :: (GHC.Base.NonEmpty (AST.Parse.Err ((Lhs GHC.Generics.:+: DestructuredLeftAssignment GHC.Generics.:+: RestAssignment) a))), body :: (AST.Parse.Err (Do a)), value :: (AST.Parse.Err (In a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_310. AST.Traversable1.Class.Traversable1 a_310 ) instance AST.Unmarshal.SymbolMatching For where matchedSymbols _ = [180] showFailure _ node_311 = "expected " GHC.Base.<> ( "for" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_311 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_312 c1_313 = TreeSitter.Node.nodeStartPoint node_311 TreeSitter.Node.TSPoint r2_314 c2_315 = TreeSitter.Node.nodeEndPoint node_311 deriving instance GHC.Classes.Eq a_316 => GHC.Classes.Eq (For a_316) deriving instance GHC.Classes.Ord a_317 => GHC.Classes.Ord (For a_317) deriving instance GHC.Show.Show a_318 => GHC.Show.Show (For a_318) instance AST.Unmarshal.Unmarshal For instance Data.Foldable.Foldable For where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor For where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable For where traverse = AST.Traversable1.Class.traverseDefault1 data Hash a = Hash { ann :: a, extraChildren :: ([AST.Parse.Err ((HashSplatArgument GHC.Generics.:+: Pair) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_319. AST.Traversable1.Class.Traversable1 a_319 ) instance AST.Unmarshal.SymbolMatching Hash where matchedSymbols _ = [250] showFailure _ node_320 = "expected " GHC.Base.<> ( "hash" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_320 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_321 c1_322 = TreeSitter.Node.nodeStartPoint node_320 TreeSitter.Node.TSPoint r2_323 c2_324 = TreeSitter.Node.nodeEndPoint node_320 deriving instance GHC.Classes.Eq a_325 => GHC.Classes.Eq (Hash a_325) deriving instance GHC.Classes.Ord a_326 => GHC.Classes.Ord (Hash a_326) deriving instance GHC.Show.Show a_327 => GHC.Show.Show (Hash a_327) instance AST.Unmarshal.Unmarshal Hash instance Data.Foldable.Foldable Hash where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Hash where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Hash where traverse = AST.Traversable1.Class.traverseDefault1 data HashSplatArgument a = HashSplatArgument { ann :: a, extraChildren :: (AST.Parse.Err (Arg a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_328. AST.Traversable1.Class.Traversable1 a_328 ) instance AST.Unmarshal.SymbolMatching HashSplatArgument where matchedSymbols _ = [211] showFailure _ node_329 = "expected " GHC.Base.<> ( "hash_splat_argument" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_329 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_330 c1_331 = TreeSitter.Node.nodeStartPoint node_329 TreeSitter.Node.TSPoint r2_332 c2_333 = TreeSitter.Node.nodeEndPoint node_329 deriving instance GHC.Classes.Eq a_334 => GHC.Classes.Eq (HashSplatArgument a_334) deriving instance GHC.Classes.Ord a_335 => GHC.Classes.Ord (HashSplatArgument a_335) deriving instance GHC.Show.Show a_336 => GHC.Show.Show (HashSplatArgument a_336) instance AST.Unmarshal.Unmarshal HashSplatArgument instance Data.Foldable.Foldable HashSplatArgument where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor HashSplatArgument where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable HashSplatArgument where traverse = AST.Traversable1.Class.traverseDefault1 data HashSplatParameter a = HashSplatParameter { ann :: a, name :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_337. AST.Traversable1.Class.Traversable1 a_337 ) instance AST.Unmarshal.SymbolMatching HashSplatParameter where matchedSymbols _ = [155] showFailure _ node_338 = "expected " GHC.Base.<> ( "hash_splat_parameter" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_338 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_339 c1_340 = TreeSitter.Node.nodeStartPoint node_338 TreeSitter.Node.TSPoint r2_341 c2_342 = TreeSitter.Node.nodeEndPoint node_338 deriving instance GHC.Classes.Eq a_343 => GHC.Classes.Eq (HashSplatParameter a_343) deriving instance GHC.Classes.Ord a_344 => GHC.Classes.Ord (HashSplatParameter a_344) deriving instance GHC.Show.Show a_345 => GHC.Show.Show (HashSplatParameter a_345) instance AST.Unmarshal.Unmarshal HashSplatParameter instance Data.Foldable.Foldable HashSplatParameter where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor HashSplatParameter where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable HashSplatParameter where traverse = AST.Traversable1.Class.traverseDefault1 data If a = If { ann :: a, alternative :: (GHC.Maybe.Maybe (AST.Parse.Err ((Else GHC.Generics.:+: Elsif) a))), consequence :: (GHC.Maybe.Maybe (AST.Parse.Err (Then a))), condition :: (AST.Parse.Err (Statement a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_346. AST.Traversable1.Class.Traversable1 a_346 ) instance AST.Unmarshal.SymbolMatching If where matchedSymbols _ = [186] showFailure _ node_347 = "expected " GHC.Base.<> ( "if" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_347 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_348 c1_349 = TreeSitter.Node.nodeStartPoint node_347 TreeSitter.Node.TSPoint r2_350 c2_351 = TreeSitter.Node.nodeEndPoint node_347 deriving instance GHC.Classes.Eq a_352 => GHC.Classes.Eq (If a_352) deriving instance GHC.Classes.Ord a_353 => GHC.Classes.Ord (If a_353) deriving instance GHC.Show.Show a_354 => GHC.Show.Show (If a_354) instance AST.Unmarshal.Unmarshal If instance Data.Foldable.Foldable If where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor If where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable If where traverse = AST.Traversable1.Class.traverseDefault1 data IfModifier a = IfModifier { ann :: a, body :: (AST.Parse.Err (Statement a)), condition :: (AST.Parse.Err ((Arg GHC.Generics.:+: Break GHC.Generics.:+: MethodCall GHC.Generics.:+: Next GHC.Generics.:+: Return GHC.Generics.:+: Yield) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_355. AST.Traversable1.Class.Traversable1 a_355 ) instance AST.Unmarshal.SymbolMatching IfModifier where matchedSymbols _ = [173] showFailure _ node_356 = "expected " GHC.Base.<> ( "if_modifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_356 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_357 c1_358 = TreeSitter.Node.nodeStartPoint node_356 TreeSitter.Node.TSPoint r2_359 c2_360 = TreeSitter.Node.nodeEndPoint node_356 deriving instance GHC.Classes.Eq a_361 => GHC.Classes.Eq (IfModifier a_361) deriving instance GHC.Classes.Ord a_362 => GHC.Classes.Ord (IfModifier a_362) deriving instance GHC.Show.Show a_363 => GHC.Show.Show (IfModifier a_363) instance AST.Unmarshal.Unmarshal IfModifier instance Data.Foldable.Foldable IfModifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor IfModifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable IfModifier where traverse = AST.Traversable1.Class.traverseDefault1 data In a = In {ann :: a, extraChildren :: (AST.Parse.Err (Arg a))} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_364. AST.Traversable1.Class.Traversable1 a_364 ) instance AST.Unmarshal.SymbolMatching In where matchedSymbols _ = [181] showFailure _ node_365 = "expected " GHC.Base.<> ( "in" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_365 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_366 c1_367 = TreeSitter.Node.nodeStartPoint node_365 TreeSitter.Node.TSPoint r2_368 c2_369 = TreeSitter.Node.nodeEndPoint node_365 deriving instance GHC.Classes.Eq a_370 => GHC.Classes.Eq (In a_370) deriving instance GHC.Classes.Ord a_371 => GHC.Classes.Ord (In a_371) deriving instance GHC.Show.Show a_372 => GHC.Show.Show (In a_372) instance AST.Unmarshal.Unmarshal In instance Data.Foldable.Foldable In where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor In where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable In where traverse = AST.Traversable1.Class.traverseDefault1 data Interpolation a = Interpolation { ann :: a, extraChildren :: (AST.Parse.Err (Statement a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_373. AST.Traversable1.Class.Traversable1 a_373 ) instance AST.Unmarshal.SymbolMatching Interpolation where matchedSymbols _ = [240] showFailure _ node_374 = "expected " GHC.Base.<> ( "interpolation" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_374 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_375 c1_376 = TreeSitter.Node.nodeStartPoint node_374 TreeSitter.Node.TSPoint r2_377 c2_378 = TreeSitter.Node.nodeEndPoint node_374 deriving instance GHC.Classes.Eq a_379 => GHC.Classes.Eq (Interpolation a_379) deriving instance GHC.Classes.Ord a_380 => GHC.Classes.Ord (Interpolation a_380) deriving instance GHC.Show.Show a_381 => GHC.Show.Show (Interpolation a_381) instance AST.Unmarshal.Unmarshal Interpolation instance Data.Foldable.Foldable Interpolation where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Interpolation where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Interpolation where traverse = AST.Traversable1.Class.traverseDefault1 data KeywordParameter a = KeywordParameter { ann :: a, value :: (GHC.Maybe.Maybe (AST.Parse.Err (Arg a))), name :: (AST.Parse.Err (Identifier a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_382. AST.Traversable1.Class.Traversable1 a_382 ) instance AST.Unmarshal.SymbolMatching KeywordParameter where matchedSymbols _ = [157] showFailure _ node_383 = "expected " GHC.Base.<> ( "keyword_parameter" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_383 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_384 c1_385 = TreeSitter.Node.nodeStartPoint node_383 TreeSitter.Node.TSPoint r2_386 c2_387 = TreeSitter.Node.nodeEndPoint node_383 deriving instance GHC.Classes.Eq a_388 => GHC.Classes.Eq (KeywordParameter a_388) deriving instance GHC.Classes.Ord a_389 => GHC.Classes.Ord (KeywordParameter a_389) deriving instance GHC.Show.Show a_390 => GHC.Show.Show (KeywordParameter a_390) instance AST.Unmarshal.Unmarshal KeywordParameter instance Data.Foldable.Foldable KeywordParameter where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor KeywordParameter where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable KeywordParameter where traverse = AST.Traversable1.Class.traverseDefault1 data Lambda a = Lambda { ann :: a, body :: (AST.Parse.Err ((Block GHC.Generics.:+: DoBlock) a)), parameters :: (GHC.Maybe.Maybe (AST.Parse.Err (LambdaParameters a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_391. AST.Traversable1.Class.Traversable1 a_391 ) instance AST.Unmarshal.SymbolMatching Lambda where matchedSymbols _ = [252] showFailure _ node_392 = "expected " GHC.Base.<> ( "lambda" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_392 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_393 c1_394 = TreeSitter.Node.nodeStartPoint node_392 TreeSitter.Node.TSPoint r2_395 c2_396 = TreeSitter.Node.nodeEndPoint node_392 deriving instance GHC.Classes.Eq a_397 => GHC.Classes.Eq (Lambda a_397) deriving instance GHC.Classes.Ord a_398 => GHC.Classes.Ord (Lambda a_398) deriving instance GHC.Show.Show a_399 => GHC.Show.Show (Lambda a_399) instance AST.Unmarshal.Unmarshal Lambda instance Data.Foldable.Foldable Lambda where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Lambda where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Lambda where traverse = AST.Traversable1.Class.traverseDefault1 data LambdaParameters a = LambdaParameters { ann :: a, extraChildren :: ([AST.Parse.Err ((BlockParameter GHC.Generics.:+: DestructuredParameter GHC.Generics.:+: HashSplatParameter GHC.Generics.:+: Identifier GHC.Generics.:+: KeywordParameter GHC.Generics.:+: OptionalParameter GHC.Generics.:+: SplatParameter) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_400. AST.Traversable1.Class.Traversable1 a_400 ) instance AST.Unmarshal.SymbolMatching LambdaParameters where matchedSymbols _ = [276] showFailure _ node_401 = "expected " GHC.Base.<> ( "lambda_parameters" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_401 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_402 c1_403 = TreeSitter.Node.nodeStartPoint node_401 TreeSitter.Node.TSPoint r2_404 c2_405 = TreeSitter.Node.nodeEndPoint node_401 deriving instance GHC.Classes.Eq a_406 => GHC.Classes.Eq (LambdaParameters a_406) deriving instance GHC.Classes.Ord a_407 => GHC.Classes.Ord (LambdaParameters a_407) deriving instance GHC.Show.Show a_408 => GHC.Show.Show (LambdaParameters a_408) instance AST.Unmarshal.Unmarshal LambdaParameters instance Data.Foldable.Foldable LambdaParameters where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor LambdaParameters where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable LambdaParameters where traverse = AST.Traversable1.Class.traverseDefault1 data LeftAssignmentList a = LeftAssignmentList { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Lhs GHC.Generics.:+: DestructuredLeftAssignment GHC.Generics.:+: RestAssignment) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_409. AST.Traversable1.Class.Traversable1 a_409 ) instance AST.Unmarshal.SymbolMatching LeftAssignmentList where matchedSymbols _ = [227] showFailure _ node_410 = "expected " GHC.Base.<> ( "left_assignment_list" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_410 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_411 c1_412 = TreeSitter.Node.nodeStartPoint node_410 TreeSitter.Node.TSPoint r2_413 c2_414 = TreeSitter.Node.nodeEndPoint node_410 deriving instance GHC.Classes.Eq a_415 => GHC.Classes.Eq (LeftAssignmentList a_415) deriving instance GHC.Classes.Ord a_416 => GHC.Classes.Ord (LeftAssignmentList a_416) deriving instance GHC.Show.Show a_417 => GHC.Show.Show (LeftAssignmentList a_417) instance AST.Unmarshal.Unmarshal LeftAssignmentList instance Data.Foldable.Foldable LeftAssignmentList where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor LeftAssignmentList where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable LeftAssignmentList where traverse = AST.Traversable1.Class.traverseDefault1 data Method a = Method { ann :: a, name :: (AST.Parse.Err (MethodName a)), parameters :: (GHC.Maybe.Maybe (AST.Parse.Err (MethodParameters a))), extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: Else GHC.Generics.:+: EmptyStatement GHC.Generics.:+: Ensure GHC.Generics.:+: Rescue) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_418. AST.Traversable1.Class.Traversable1 a_418 ) instance AST.Unmarshal.SymbolMatching Method where matchedSymbols _ = [146] showFailure _ node_419 = "expected " GHC.Base.<> ( "method" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_419 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_420 c1_421 = TreeSitter.Node.nodeStartPoint node_419 TreeSitter.Node.TSPoint r2_422 c2_423 = TreeSitter.Node.nodeEndPoint node_419 deriving instance GHC.Classes.Eq a_424 => GHC.Classes.Eq (Method a_424) deriving instance GHC.Classes.Ord a_425 => GHC.Classes.Ord (Method a_425) deriving instance GHC.Show.Show a_426 => GHC.Show.Show (Method a_426) instance AST.Unmarshal.Unmarshal Method instance Data.Foldable.Foldable Method where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Method where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Method where traverse = AST.Traversable1.Class.traverseDefault1 data MethodCall a = MethodCall { ann :: a, arguments :: (GHC.Maybe.Maybe (AST.Parse.Err (ArgumentList a))), block :: (GHC.Maybe.Maybe (AST.Parse.Err ((Block GHC.Generics.:+: DoBlock) a))), method :: (AST.Parse.Err ((Variable GHC.Generics.:+: Call GHC.Generics.:+: ScopeResolution) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_427. AST.Traversable1.Class.Traversable1 a_427 ) instance AST.Unmarshal.SymbolMatching MethodCall where matchedSymbols _ = [204, 205] showFailure _ node_428 = "expected " GHC.Base.<> ( "method_call, method_call" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_428 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_429 c1_430 = TreeSitter.Node.nodeStartPoint node_428 TreeSitter.Node.TSPoint r2_431 c2_432 = TreeSitter.Node.nodeEndPoint node_428 deriving instance GHC.Classes.Eq a_433 => GHC.Classes.Eq (MethodCall a_433) deriving instance GHC.Classes.Ord a_434 => GHC.Classes.Ord (MethodCall a_434) deriving instance GHC.Show.Show a_435 => GHC.Show.Show (MethodCall a_435) instance AST.Unmarshal.Unmarshal MethodCall instance Data.Foldable.Foldable MethodCall where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor MethodCall where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable MethodCall where traverse = AST.Traversable1.Class.traverseDefault1 data MethodParameters a = MethodParameters { ann :: a, extraChildren :: ([AST.Parse.Err ((BlockParameter GHC.Generics.:+: DestructuredParameter GHC.Generics.:+: HashSplatParameter GHC.Generics.:+: Identifier GHC.Generics.:+: KeywordParameter GHC.Generics.:+: OptionalParameter GHC.Generics.:+: SplatParameter) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_436. AST.Traversable1.Class.Traversable1 a_436 ) instance AST.Unmarshal.SymbolMatching MethodParameters where matchedSymbols _ = [277] showFailure _ node_437 = "expected " GHC.Base.<> ( "method_parameters" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_437 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_438 c1_439 = TreeSitter.Node.nodeStartPoint node_437 TreeSitter.Node.TSPoint r2_440 c2_441 = TreeSitter.Node.nodeEndPoint node_437 deriving instance GHC.Classes.Eq a_442 => GHC.Classes.Eq (MethodParameters a_442) deriving instance GHC.Classes.Ord a_443 => GHC.Classes.Ord (MethodParameters a_443) deriving instance GHC.Show.Show a_444 => GHC.Show.Show (MethodParameters a_444) instance AST.Unmarshal.Unmarshal MethodParameters instance Data.Foldable.Foldable MethodParameters where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor MethodParameters where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable MethodParameters where traverse = AST.Traversable1.Class.traverseDefault1 data Module a = Module { ann :: a, name :: (AST.Parse.Err ((Constant GHC.Generics.:+: ScopeResolution) a)), extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: Else GHC.Generics.:+: EmptyStatement GHC.Generics.:+: Ensure GHC.Generics.:+: Rescue) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_445. AST.Traversable1.Class.Traversable1 a_445 ) instance AST.Unmarshal.SymbolMatching Module where matchedSymbols _ = [162] showFailure _ node_446 = "expected " GHC.Base.<> ( "module" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_446 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_447 c1_448 = TreeSitter.Node.nodeStartPoint node_446 TreeSitter.Node.TSPoint r2_449 c2_450 = TreeSitter.Node.nodeEndPoint node_446 deriving instance GHC.Classes.Eq a_451 => GHC.Classes.Eq (Module a_451) deriving instance GHC.Classes.Ord a_452 => GHC.Classes.Ord (Module a_452) deriving instance GHC.Show.Show a_453 => GHC.Show.Show (Module a_453) instance AST.Unmarshal.Unmarshal Module instance Data.Foldable.Foldable Module where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Module where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Module where traverse = AST.Traversable1.Class.traverseDefault1 data Next a = Next { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ArgumentList a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_454. AST.Traversable1.Class.Traversable1 a_454 ) instance AST.Unmarshal.SymbolMatching Next where matchedSymbols _ = [166, 170] showFailure _ node_455 = "expected " GHC.Base.<> ( "next, next" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_455 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_456 c1_457 = TreeSitter.Node.nodeStartPoint node_455 TreeSitter.Node.TSPoint r2_458 c2_459 = TreeSitter.Node.nodeEndPoint node_455 deriving instance GHC.Classes.Eq a_460 => GHC.Classes.Eq (Next a_460) deriving instance GHC.Classes.Ord a_461 => GHC.Classes.Ord (Next a_461) deriving instance GHC.Show.Show a_462 => GHC.Show.Show (Next a_462) instance AST.Unmarshal.Unmarshal Next instance Data.Foldable.Foldable Next where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Next where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Next where traverse = AST.Traversable1.Class.traverseDefault1 data Operator a = Operator {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_463. AST.Traversable1.Class.Traversable1 a_463 ) instance AST.Unmarshal.SymbolMatching Operator where matchedSymbols _ = [233] showFailure _ node_464 = "expected " GHC.Base.<> ( "operator" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_464 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_465 c1_466 = TreeSitter.Node.nodeStartPoint node_464 TreeSitter.Node.TSPoint r2_467 c2_468 = TreeSitter.Node.nodeEndPoint node_464 deriving instance GHC.Classes.Eq a_469 => GHC.Classes.Eq (Operator a_469) deriving instance GHC.Classes.Ord a_470 => GHC.Classes.Ord (Operator a_470) deriving instance GHC.Show.Show a_471 => GHC.Show.Show (Operator a_471) instance AST.Unmarshal.Unmarshal Operator instance Data.Foldable.Foldable Operator where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Operator where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Operator where traverse = AST.Traversable1.Class.traverseDefault1 data OperatorAssignment a = OperatorAssignment { ann :: a, left :: (AST.Parse.Err (Lhs a)), right :: (AST.Parse.Err ((Arg GHC.Generics.:+: Break GHC.Generics.:+: MethodCall GHC.Generics.:+: Next GHC.Generics.:+: Return GHC.Generics.:+: Yield) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_472. AST.Traversable1.Class.Traversable1 a_472 ) instance AST.Unmarshal.SymbolMatching OperatorAssignment where matchedSymbols _ = [217, 218] showFailure _ node_473 = "expected " GHC.Base.<> ( "operator_assignment, operator_assignment" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_473 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_474 c1_475 = TreeSitter.Node.nodeStartPoint node_473 TreeSitter.Node.TSPoint r2_476 c2_477 = TreeSitter.Node.nodeEndPoint node_473 deriving instance GHC.Classes.Eq a_478 => GHC.Classes.Eq (OperatorAssignment a_478) deriving instance GHC.Classes.Ord a_479 => GHC.Classes.Ord (OperatorAssignment a_479) deriving instance GHC.Show.Show a_480 => GHC.Show.Show (OperatorAssignment a_480) instance AST.Unmarshal.Unmarshal OperatorAssignment instance Data.Foldable.Foldable OperatorAssignment where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor OperatorAssignment where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable OperatorAssignment where traverse = AST.Traversable1.Class.traverseDefault1 data OptionalParameter a = OptionalParameter { ann :: a, value :: (AST.Parse.Err (Arg a)), name :: (AST.Parse.Err (Identifier a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_481. AST.Traversable1.Class.Traversable1 a_481 ) instance AST.Unmarshal.SymbolMatching OptionalParameter where matchedSymbols _ = [158] showFailure _ node_482 = "expected " GHC.Base.<> ( "optional_parameter" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_482 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_483 c1_484 = TreeSitter.Node.nodeStartPoint node_482 TreeSitter.Node.TSPoint r2_485 c2_486 = TreeSitter.Node.nodeEndPoint node_482 deriving instance GHC.Classes.Eq a_487 => GHC.Classes.Eq (OptionalParameter a_487) deriving instance GHC.Classes.Ord a_488 => GHC.Classes.Ord (OptionalParameter a_488) deriving instance GHC.Show.Show a_489 => GHC.Show.Show (OptionalParameter a_489) instance AST.Unmarshal.Unmarshal OptionalParameter instance Data.Foldable.Foldable OptionalParameter where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor OptionalParameter where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable OptionalParameter where traverse = AST.Traversable1.Class.traverseDefault1 data Pair a = Pair { ann :: a, value :: (AST.Parse.Err (Arg a)), key :: (AST.Parse.Err ((Arg GHC.Generics.:+: String GHC.Generics.:+: Symbol) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_490. AST.Traversable1.Class.Traversable1 a_490 ) instance AST.Unmarshal.SymbolMatching Pair where matchedSymbols _ = [251] showFailure _ node_491 = "expected " GHC.Base.<> ( "pair" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_491 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_492 c1_493 = TreeSitter.Node.nodeStartPoint node_491 TreeSitter.Node.TSPoint r2_494 c2_495 = TreeSitter.Node.nodeEndPoint node_491 deriving instance GHC.Classes.Eq a_496 => GHC.Classes.Eq (Pair a_496) deriving instance GHC.Classes.Ord a_497 => GHC.Classes.Ord (Pair a_497) deriving instance GHC.Show.Show a_498 => GHC.Show.Show (Pair a_498) instance AST.Unmarshal.Unmarshal Pair instance Data.Foldable.Foldable Pair where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Pair where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Pair where traverse = AST.Traversable1.Class.traverseDefault1 data ParenthesizedStatements a = ParenthesizedStatements { ann :: a, extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: EmptyStatement) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_499. AST.Traversable1.Class.Traversable1 a_499 ) instance AST.Unmarshal.SymbolMatching ParenthesizedStatements where matchedSymbols _ = [200] showFailure _ node_500 = "expected " GHC.Base.<> ( "parenthesized_statements" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_500 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_501 c1_502 = TreeSitter.Node.nodeStartPoint node_500 TreeSitter.Node.TSPoint r2_503 c2_504 = TreeSitter.Node.nodeEndPoint node_500 deriving instance GHC.Classes.Eq a_505 => GHC.Classes.Eq (ParenthesizedStatements a_505) deriving instance GHC.Classes.Ord a_506 => GHC.Classes.Ord (ParenthesizedStatements a_506) deriving instance GHC.Show.Show a_507 => GHC.Show.Show (ParenthesizedStatements a_507) instance AST.Unmarshal.Unmarshal ParenthesizedStatements instance Data.Foldable.Foldable ParenthesizedStatements where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ParenthesizedStatements where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ParenthesizedStatements where traverse = AST.Traversable1.Class.traverseDefault1 data Pattern a = Pattern { ann :: a, extraChildren :: (AST.Parse.Err ((Arg GHC.Generics.:+: SplatArgument) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_508. AST.Traversable1.Class.Traversable1 a_508 ) instance AST.Unmarshal.SymbolMatching Pattern where matchedSymbols _ = [185] showFailure _ node_509 = "expected " GHC.Base.<> ( "pattern" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_509 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_510 c1_511 = TreeSitter.Node.nodeStartPoint node_509 TreeSitter.Node.TSPoint r2_512 c2_513 = TreeSitter.Node.nodeEndPoint node_509 deriving instance GHC.Classes.Eq a_514 => GHC.Classes.Eq (Pattern a_514) deriving instance GHC.Classes.Ord a_515 => GHC.Classes.Ord (Pattern a_515) deriving instance GHC.Show.Show a_516 => GHC.Show.Show (Pattern a_516) instance AST.Unmarshal.Unmarshal Pattern instance Data.Foldable.Foldable Pattern where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Pattern where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Pattern where traverse = AST.Traversable1.Class.traverseDefault1 data Program a = Program { ann :: a, extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: EmptyStatement GHC.Generics.:+: Uninterpreted) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_517. AST.Traversable1.Class.Traversable1 a_517 ) instance AST.Unmarshal.SymbolMatching Program where matchedSymbols _ = [141] showFailure _ node_518 = "expected " GHC.Base.<> ( "program" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_518 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_519 c1_520 = TreeSitter.Node.nodeStartPoint node_518 TreeSitter.Node.TSPoint r2_521 c2_522 = TreeSitter.Node.nodeEndPoint node_518 deriving instance GHC.Classes.Eq a_523 => GHC.Classes.Eq (Program a_523) deriving instance GHC.Classes.Ord a_524 => GHC.Classes.Ord (Program a_524) deriving instance GHC.Show.Show a_525 => GHC.Show.Show (Program a_525) instance AST.Unmarshal.Unmarshal Program instance Data.Foldable.Foldable Program where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Program where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Program where traverse = AST.Traversable1.Class.traverseDefault1 data Range a = Range { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Arg a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_526. AST.Traversable1.Class.Traversable1 a_526 ) instance AST.Unmarshal.SymbolMatching Range where matchedSymbols _ = [220] showFailure _ node_527 = "expected " GHC.Base.<> ( "range" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_527 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_528 c1_529 = TreeSitter.Node.nodeStartPoint node_527 TreeSitter.Node.TSPoint r2_530 c2_531 = TreeSitter.Node.nodeEndPoint node_527 deriving instance GHC.Classes.Eq a_532 => GHC.Classes.Eq (Range a_532) deriving instance GHC.Classes.Ord a_533 => GHC.Classes.Ord (Range a_533) deriving instance GHC.Show.Show a_534 => GHC.Show.Show (Range a_534) instance AST.Unmarshal.Unmarshal Range instance Data.Foldable.Foldable Range where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Range where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Range where traverse = AST.Traversable1.Class.traverseDefault1 data Rational a = Rational {ann :: a, extraChildren :: (AST.Parse.Err (Integer a))} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_535. AST.Traversable1.Class.Traversable1 a_535 ) instance AST.Unmarshal.SymbolMatching Rational where matchedSymbols _ = [238] showFailure _ node_536 = "expected " GHC.Base.<> ( "rational" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_536 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_537 c1_538 = TreeSitter.Node.nodeStartPoint node_536 TreeSitter.Node.TSPoint r2_539 c2_540 = TreeSitter.Node.nodeEndPoint node_536 deriving instance GHC.Classes.Eq a_541 => GHC.Classes.Eq (Rational a_541) deriving instance GHC.Classes.Ord a_542 => GHC.Classes.Ord (Rational a_542) deriving instance GHC.Show.Show a_543 => GHC.Show.Show (Rational a_543) instance AST.Unmarshal.Unmarshal Rational instance Data.Foldable.Foldable Rational where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Rational where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Rational where traverse = AST.Traversable1.Class.traverseDefault1 data Redo a = Redo { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ArgumentList a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_544. AST.Traversable1.Class.Traversable1 a_544 ) instance AST.Unmarshal.SymbolMatching Redo where matchedSymbols _ = [171] showFailure _ node_545 = "expected " GHC.Base.<> ( "redo" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_545 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_546 c1_547 = TreeSitter.Node.nodeStartPoint node_545 TreeSitter.Node.TSPoint r2_548 c2_549 = TreeSitter.Node.nodeEndPoint node_545 deriving instance GHC.Classes.Eq a_550 => GHC.Classes.Eq (Redo a_550) deriving instance GHC.Classes.Ord a_551 => GHC.Classes.Ord (Redo a_551) deriving instance GHC.Show.Show a_552 => GHC.Show.Show (Redo a_552) instance AST.Unmarshal.Unmarshal Redo instance Data.Foldable.Foldable Redo where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Redo where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Redo where traverse = AST.Traversable1.Class.traverseDefault1 data Regex a = Regex { ann :: a, extraChildren :: ([AST.Parse.Err ((EscapeSequence GHC.Generics.:+: Interpolation) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_553. AST.Traversable1.Class.Traversable1 a_553 ) instance AST.Unmarshal.SymbolMatching Regex where matchedSymbols _ = [246] showFailure _ node_554 = "expected " GHC.Base.<> ( "regex" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_554 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_555 c1_556 = TreeSitter.Node.nodeStartPoint node_554 TreeSitter.Node.TSPoint r2_557 c2_558 = TreeSitter.Node.nodeEndPoint node_554 deriving instance GHC.Classes.Eq a_559 => GHC.Classes.Eq (Regex a_559) deriving instance GHC.Classes.Ord a_560 => GHC.Classes.Ord (Regex a_560) deriving instance GHC.Show.Show a_561 => GHC.Show.Show (Regex a_561) instance AST.Unmarshal.Unmarshal Regex instance Data.Foldable.Foldable Regex where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Regex where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Regex where traverse = AST.Traversable1.Class.traverseDefault1 data Rescue a = Rescue { ann :: a, exceptions :: (GHC.Maybe.Maybe (AST.Parse.Err (Exceptions a))), body :: (GHC.Maybe.Maybe (AST.Parse.Err (Then a))), variable :: (GHC.Maybe.Maybe (AST.Parse.Err (ExceptionVariable a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_562. AST.Traversable1.Class.Traversable1 a_562 ) instance AST.Unmarshal.SymbolMatching Rescue where matchedSymbols _ = [193] showFailure _ node_563 = "expected " GHC.Base.<> ( "rescue" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_563 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_564 c1_565 = TreeSitter.Node.nodeStartPoint node_563 TreeSitter.Node.TSPoint r2_566 c2_567 = TreeSitter.Node.nodeEndPoint node_563 deriving instance GHC.Classes.Eq a_568 => GHC.Classes.Eq (Rescue a_568) deriving instance GHC.Classes.Ord a_569 => GHC.Classes.Ord (Rescue a_569) deriving instance GHC.Show.Show a_570 => GHC.Show.Show (Rescue a_570) instance AST.Unmarshal.Unmarshal Rescue instance Data.Foldable.Foldable Rescue where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Rescue where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Rescue where traverse = AST.Traversable1.Class.traverseDefault1 data RescueModifier a = RescueModifier { ann :: a, body :: (AST.Parse.Err (Statement a)), handler :: (AST.Parse.Err ((Arg GHC.Generics.:+: Break GHC.Generics.:+: MethodCall GHC.Generics.:+: Next GHC.Generics.:+: Return GHC.Generics.:+: Yield) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_571. AST.Traversable1.Class.Traversable1 a_571 ) instance AST.Unmarshal.SymbolMatching RescueModifier where matchedSymbols _ = [177] showFailure _ node_572 = "expected " GHC.Base.<> ( "rescue_modifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_572 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_573 c1_574 = TreeSitter.Node.nodeStartPoint node_572 TreeSitter.Node.TSPoint r2_575 c2_576 = TreeSitter.Node.nodeEndPoint node_572 deriving instance GHC.Classes.Eq a_577 => GHC.Classes.Eq (RescueModifier a_577) deriving instance GHC.Classes.Ord a_578 => GHC.Classes.Ord (RescueModifier a_578) deriving instance GHC.Show.Show a_579 => GHC.Show.Show (RescueModifier a_579) instance AST.Unmarshal.Unmarshal RescueModifier instance Data.Foldable.Foldable RescueModifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor RescueModifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable RescueModifier where traverse = AST.Traversable1.Class.traverseDefault1 data RestAssignment a = RestAssignment { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Lhs a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_580. AST.Traversable1.Class.Traversable1 a_580 ) instance AST.Unmarshal.SymbolMatching RestAssignment where matchedSymbols _ = [230] showFailure _ node_581 = "expected " GHC.Base.<> ( "rest_assignment" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_581 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_582 c1_583 = TreeSitter.Node.nodeStartPoint node_581 TreeSitter.Node.TSPoint r2_584 c2_585 = TreeSitter.Node.nodeEndPoint node_581 deriving instance GHC.Classes.Eq a_586 => GHC.Classes.Eq (RestAssignment a_586) deriving instance GHC.Classes.Ord a_587 => GHC.Classes.Ord (RestAssignment a_587) deriving instance GHC.Show.Show a_588 => GHC.Show.Show (RestAssignment a_588) instance AST.Unmarshal.Unmarshal RestAssignment instance Data.Foldable.Foldable RestAssignment where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor RestAssignment where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable RestAssignment where traverse = AST.Traversable1.Class.traverseDefault1 data Retry a = Retry { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ArgumentList a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_589. AST.Traversable1.Class.Traversable1 a_589 ) instance AST.Unmarshal.SymbolMatching Retry where matchedSymbols _ = [172] showFailure _ node_590 = "expected " GHC.Base.<> ( "retry" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_590 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_591 c1_592 = TreeSitter.Node.nodeStartPoint node_590 TreeSitter.Node.TSPoint r2_593 c2_594 = TreeSitter.Node.nodeEndPoint node_590 deriving instance GHC.Classes.Eq a_595 => GHC.Classes.Eq (Retry a_595) deriving instance GHC.Classes.Ord a_596 => GHC.Classes.Ord (Retry a_596) deriving instance GHC.Show.Show a_597 => GHC.Show.Show (Retry a_597) instance AST.Unmarshal.Unmarshal Retry instance Data.Foldable.Foldable Retry where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Retry where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Retry where traverse = AST.Traversable1.Class.traverseDefault1 data Return a = Return { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ArgumentList a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_598. AST.Traversable1.Class.Traversable1 a_598 ) instance AST.Unmarshal.SymbolMatching Return where matchedSymbols _ = [163, 167] showFailure _ node_599 = "expected " GHC.Base.<> ( "return, return" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_599 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_600 c1_601 = TreeSitter.Node.nodeStartPoint node_599 TreeSitter.Node.TSPoint r2_602 c2_603 = TreeSitter.Node.nodeEndPoint node_599 deriving instance GHC.Classes.Eq a_604 => GHC.Classes.Eq (Return a_604) deriving instance GHC.Classes.Ord a_605 => GHC.Classes.Ord (Return a_605) deriving instance GHC.Show.Show a_606 => GHC.Show.Show (Return a_606) instance AST.Unmarshal.Unmarshal Return instance Data.Foldable.Foldable Return where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Return where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Return where traverse = AST.Traversable1.Class.traverseDefault1 data RightAssignmentList a = RightAssignmentList { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Arg GHC.Generics.:+: SplatArgument) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_607. AST.Traversable1.Class.Traversable1 a_607 ) instance AST.Unmarshal.SymbolMatching RightAssignmentList where matchedSymbols _ = [226] showFailure _ node_608 = "expected " GHC.Base.<> ( "right_assignment_list" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_608 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_609 c1_610 = TreeSitter.Node.nodeStartPoint node_608 TreeSitter.Node.TSPoint r2_611 c2_612 = TreeSitter.Node.nodeEndPoint node_608 deriving instance GHC.Classes.Eq a_613 => GHC.Classes.Eq (RightAssignmentList a_613) deriving instance GHC.Classes.Ord a_614 => GHC.Classes.Ord (RightAssignmentList a_614) deriving instance GHC.Show.Show a_615 => GHC.Show.Show (RightAssignmentList a_615) instance AST.Unmarshal.Unmarshal RightAssignmentList instance Data.Foldable.Foldable RightAssignmentList where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor RightAssignmentList where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable RightAssignmentList where traverse = AST.Traversable1.Class.traverseDefault1 data ScopeResolution a = ScopeResolution { ann :: a, name :: (AST.Parse.Err ((Constant GHC.Generics.:+: Identifier) a)), scope :: (GHC.Maybe.Maybe (AST.Parse.Err (Primary a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_616. AST.Traversable1.Class.Traversable1 a_616 ) instance AST.Unmarshal.SymbolMatching ScopeResolution where matchedSymbols _ = [202] showFailure _ node_617 = "expected " GHC.Base.<> ( "scope_resolution" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_617 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_618 c1_619 = TreeSitter.Node.nodeStartPoint node_617 TreeSitter.Node.TSPoint r2_620 c2_621 = TreeSitter.Node.nodeEndPoint node_617 deriving instance GHC.Classes.Eq a_622 => GHC.Classes.Eq (ScopeResolution a_622) deriving instance GHC.Classes.Ord a_623 => GHC.Classes.Ord (ScopeResolution a_623) deriving instance GHC.Show.Show a_624 => GHC.Show.Show (ScopeResolution a_624) instance AST.Unmarshal.Unmarshal ScopeResolution instance Data.Foldable.Foldable ScopeResolution where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ScopeResolution where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ScopeResolution where traverse = AST.Traversable1.Class.traverseDefault1 data Setter a = Setter { ann :: a, extraChildren :: (AST.Parse.Err (Identifier a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_625. AST.Traversable1.Class.Traversable1 a_625 ) instance AST.Unmarshal.SymbolMatching Setter where matchedSymbols _ = [235] showFailure _ node_626 = "expected " GHC.Base.<> ( "setter" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_626 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_627 c1_628 = TreeSitter.Node.nodeStartPoint node_626 TreeSitter.Node.TSPoint r2_629 c2_630 = TreeSitter.Node.nodeEndPoint node_626 deriving instance GHC.Classes.Eq a_631 => GHC.Classes.Eq (Setter a_631) deriving instance GHC.Classes.Ord a_632 => GHC.Classes.Ord (Setter a_632) deriving instance GHC.Show.Show a_633 => GHC.Show.Show (Setter a_633) instance AST.Unmarshal.Unmarshal Setter instance Data.Foldable.Foldable Setter where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Setter where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Setter where traverse = AST.Traversable1.Class.traverseDefault1 data SingletonClass a = SingletonClass { ann :: a, value :: (AST.Parse.Err (Arg a)), extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: Else GHC.Generics.:+: EmptyStatement GHC.Generics.:+: Ensure GHC.Generics.:+: Rescue) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_634. AST.Traversable1.Class.Traversable1 a_634 ) instance AST.Unmarshal.SymbolMatching SingletonClass where matchedSymbols _ = [161] showFailure _ node_635 = "expected " GHC.Base.<> ( "singleton_class" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_635 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_636 c1_637 = TreeSitter.Node.nodeStartPoint node_635 TreeSitter.Node.TSPoint r2_638 c2_639 = TreeSitter.Node.nodeEndPoint node_635 deriving instance GHC.Classes.Eq a_640 => GHC.Classes.Eq (SingletonClass a_640) deriving instance GHC.Classes.Ord a_641 => GHC.Classes.Ord (SingletonClass a_641) deriving instance GHC.Show.Show a_642 => GHC.Show.Show (SingletonClass a_642) instance AST.Unmarshal.Unmarshal SingletonClass instance Data.Foldable.Foldable SingletonClass where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SingletonClass where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SingletonClass where traverse = AST.Traversable1.Class.traverseDefault1 data SingletonMethod a = SingletonMethod { ann :: a, name :: (AST.Parse.Err (MethodName a)), parameters :: (GHC.Maybe.Maybe (AST.Parse.Err (MethodParameters a))), object :: (AST.Parse.Err ((Arg GHC.Generics.:+: Variable) a)), extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: Else GHC.Generics.:+: EmptyStatement GHC.Generics.:+: Ensure GHC.Generics.:+: Rescue) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_643. AST.Traversable1.Class.Traversable1 a_643 ) instance AST.Unmarshal.SymbolMatching SingletonMethod where matchedSymbols _ = [147] showFailure _ node_644 = "expected " GHC.Base.<> ( "singleton_method" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_644 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_645 c1_646 = TreeSitter.Node.nodeStartPoint node_644 TreeSitter.Node.TSPoint r2_647 c2_648 = TreeSitter.Node.nodeEndPoint node_644 deriving instance GHC.Classes.Eq a_649 => GHC.Classes.Eq (SingletonMethod a_649) deriving instance GHC.Classes.Ord a_650 => GHC.Classes.Ord (SingletonMethod a_650) deriving instance GHC.Show.Show a_651 => GHC.Show.Show (SingletonMethod a_651) instance AST.Unmarshal.Unmarshal SingletonMethod instance Data.Foldable.Foldable SingletonMethod where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SingletonMethod where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SingletonMethod where traverse = AST.Traversable1.Class.traverseDefault1 data SplatArgument a = SplatArgument { ann :: a, extraChildren :: (AST.Parse.Err (Arg a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_652. AST.Traversable1.Class.Traversable1 a_652 ) instance AST.Unmarshal.SymbolMatching SplatArgument where matchedSymbols _ = [210] showFailure _ node_653 = "expected " GHC.Base.<> ( "splat_argument" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_653 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_654 c1_655 = TreeSitter.Node.nodeStartPoint node_653 TreeSitter.Node.TSPoint r2_656 c2_657 = TreeSitter.Node.nodeEndPoint node_653 deriving instance GHC.Classes.Eq a_658 => GHC.Classes.Eq (SplatArgument a_658) deriving instance GHC.Classes.Ord a_659 => GHC.Classes.Ord (SplatArgument a_659) deriving instance GHC.Show.Show a_660 => GHC.Show.Show (SplatArgument a_660) instance AST.Unmarshal.Unmarshal SplatArgument instance Data.Foldable.Foldable SplatArgument where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SplatArgument where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SplatArgument where traverse = AST.Traversable1.Class.traverseDefault1 data SplatParameter a = SplatParameter { ann :: a, name :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_661. AST.Traversable1.Class.Traversable1 a_661 ) instance AST.Unmarshal.SymbolMatching SplatParameter where matchedSymbols _ = [154] showFailure _ node_662 = "expected " GHC.Base.<> ( "splat_parameter" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_662 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_663 c1_664 = TreeSitter.Node.nodeStartPoint node_662 TreeSitter.Node.TSPoint r2_665 c2_666 = TreeSitter.Node.nodeEndPoint node_662 deriving instance GHC.Classes.Eq a_667 => GHC.Classes.Eq (SplatParameter a_667) deriving instance GHC.Classes.Ord a_668 => GHC.Classes.Ord (SplatParameter a_668) deriving instance GHC.Show.Show a_669 => GHC.Show.Show (SplatParameter a_669) instance AST.Unmarshal.Unmarshal SplatParameter instance Data.Foldable.Foldable SplatParameter where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SplatParameter where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SplatParameter where traverse = AST.Traversable1.Class.traverseDefault1 data String a = String { ann :: a, extraChildren :: ([AST.Parse.Err ((EscapeSequence GHC.Generics.:+: Interpolation) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_670. AST.Traversable1.Class.Traversable1 a_670 ) instance AST.Unmarshal.SymbolMatching String where matchedSymbols _ = [241] showFailure _ node_671 = "expected " GHC.Base.<> ( "string" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_671 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_672 c1_673 = TreeSitter.Node.nodeStartPoint node_671 TreeSitter.Node.TSPoint r2_674 c2_675 = TreeSitter.Node.nodeEndPoint node_671 deriving instance GHC.Classes.Eq a_676 => GHC.Classes.Eq (String a_676) deriving instance GHC.Classes.Ord a_677 => GHC.Classes.Ord (String a_677) deriving instance GHC.Show.Show a_678 => GHC.Show.Show (String a_678) instance AST.Unmarshal.Unmarshal String instance Data.Foldable.Foldable String where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor String where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable String where traverse = AST.Traversable1.Class.traverseDefault1 data StringArray a = StringArray { ann :: a, extraChildren :: ([AST.Parse.Err (BareString a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_679. AST.Traversable1.Class.Traversable1 a_679 ) instance AST.Unmarshal.SymbolMatching StringArray where matchedSymbols _ = [243] showFailure _ node_680 = "expected " GHC.Base.<> ( "string_array" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_680 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_681 c1_682 = TreeSitter.Node.nodeStartPoint node_680 TreeSitter.Node.TSPoint r2_683 c2_684 = TreeSitter.Node.nodeEndPoint node_680 deriving instance GHC.Classes.Eq a_685 => GHC.Classes.Eq (StringArray a_685) deriving instance GHC.Classes.Ord a_686 => GHC.Classes.Ord (StringArray a_686) deriving instance GHC.Show.Show a_687 => GHC.Show.Show (StringArray a_687) instance AST.Unmarshal.Unmarshal StringArray instance Data.Foldable.Foldable StringArray where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor StringArray where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable StringArray where traverse = AST.Traversable1.Class.traverseDefault1 data Subshell a = Subshell { ann :: a, extraChildren :: ([AST.Parse.Err ((EscapeSequence GHC.Generics.:+: Interpolation) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_688. AST.Traversable1.Class.Traversable1 a_688 ) instance AST.Unmarshal.SymbolMatching Subshell where matchedSymbols _ = [242] showFailure _ node_689 = "expected " GHC.Base.<> ( "subshell" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_689 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_690 c1_691 = TreeSitter.Node.nodeStartPoint node_689 TreeSitter.Node.TSPoint r2_692 c2_693 = TreeSitter.Node.nodeEndPoint node_689 deriving instance GHC.Classes.Eq a_694 => GHC.Classes.Eq (Subshell a_694) deriving instance GHC.Classes.Ord a_695 => GHC.Classes.Ord (Subshell a_695) deriving instance GHC.Show.Show a_696 => GHC.Show.Show (Subshell a_696) instance AST.Unmarshal.Unmarshal Subshell instance Data.Foldable.Foldable Subshell where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Subshell where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Subshell where traverse = AST.Traversable1.Class.traverseDefault1 data Superclass a = Superclass {ann :: a, extraChildren :: (AST.Parse.Err (Arg a))} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_697. AST.Traversable1.Class.Traversable1 a_697 ) instance AST.Unmarshal.SymbolMatching Superclass where matchedSymbols _ = [160] showFailure _ node_698 = "expected " GHC.Base.<> ( "superclass" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_698 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_699 c1_700 = TreeSitter.Node.nodeStartPoint node_698 TreeSitter.Node.TSPoint r2_701 c2_702 = TreeSitter.Node.nodeEndPoint node_698 deriving instance GHC.Classes.Eq a_703 => GHC.Classes.Eq (Superclass a_703) deriving instance GHC.Classes.Ord a_704 => GHC.Classes.Ord (Superclass a_704) deriving instance GHC.Show.Show a_705 => GHC.Show.Show (Superclass a_705) instance AST.Unmarshal.Unmarshal Superclass instance Data.Foldable.Foldable Superclass where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Superclass where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Superclass where traverse = AST.Traversable1.Class.traverseDefault1 data Symbol a = Symbol { ann :: a, extraChildren :: ([AST.Parse.Err ((EscapeSequence GHC.Generics.:+: Interpolation) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_706. AST.Traversable1.Class.Traversable1 a_706 ) instance AST.Unmarshal.SymbolMatching Symbol where matchedSymbols _ = [140, 245] showFailure _ node_707 = "expected " GHC.Base.<> ( "symbol, symbol" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_707 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_708 c1_709 = TreeSitter.Node.nodeStartPoint node_707 TreeSitter.Node.TSPoint r2_710 c2_711 = TreeSitter.Node.nodeEndPoint node_707 deriving instance GHC.Classes.Eq a_712 => GHC.Classes.Eq (Symbol a_712) deriving instance GHC.Classes.Ord a_713 => GHC.Classes.Ord (Symbol a_713) deriving instance GHC.Show.Show a_714 => GHC.Show.Show (Symbol a_714) instance AST.Unmarshal.Unmarshal Symbol instance Data.Foldable.Foldable Symbol where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Symbol where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Symbol where traverse = AST.Traversable1.Class.traverseDefault1 data SymbolArray a = SymbolArray { ann :: a, extraChildren :: ([AST.Parse.Err (BareSymbol a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_715. AST.Traversable1.Class.Traversable1 a_715 ) instance AST.Unmarshal.SymbolMatching SymbolArray where matchedSymbols _ = [244] showFailure _ node_716 = "expected " GHC.Base.<> ( "symbol_array" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_716 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_717 c1_718 = TreeSitter.Node.nodeStartPoint node_716 TreeSitter.Node.TSPoint r2_719 c2_720 = TreeSitter.Node.nodeEndPoint node_716 deriving instance GHC.Classes.Eq a_721 => GHC.Classes.Eq (SymbolArray a_721) deriving instance GHC.Classes.Ord a_722 => GHC.Classes.Ord (SymbolArray a_722) deriving instance GHC.Show.Show a_723 => GHC.Show.Show (SymbolArray a_723) instance AST.Unmarshal.Unmarshal SymbolArray instance Data.Foldable.Foldable SymbolArray where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SymbolArray where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SymbolArray where traverse = AST.Traversable1.Class.traverseDefault1 data Then a = Then { ann :: a, extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: EmptyStatement) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_724. AST.Traversable1.Class.Traversable1 a_724 ) instance AST.Unmarshal.SymbolMatching Then where matchedSymbols _ = [190] showFailure _ node_725 = "expected " GHC.Base.<> ( "then" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_725 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_726 c1_727 = TreeSitter.Node.nodeStartPoint node_725 TreeSitter.Node.TSPoint r2_728 c2_729 = TreeSitter.Node.nodeEndPoint node_725 deriving instance GHC.Classes.Eq a_730 => GHC.Classes.Eq (Then a_730) deriving instance GHC.Classes.Ord a_731 => GHC.Classes.Ord (Then a_731) deriving instance GHC.Show.Show a_732 => GHC.Show.Show (Then a_732) instance AST.Unmarshal.Unmarshal Then instance Data.Foldable.Foldable Then where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Then where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Then where traverse = AST.Traversable1.Class.traverseDefault1 data Unary a = Unary { ann :: a, extraChildren :: (AST.Parse.Err ((Arg GHC.Generics.:+: Float GHC.Generics.:+: Integer GHC.Generics.:+: ParenthesizedStatements) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_733. AST.Traversable1.Class.Traversable1 a_733 ) instance AST.Unmarshal.SymbolMatching Unary where matchedSymbols _ = [223, 224, 225] showFailure _ node_734 = "expected " GHC.Base.<> ( "unary, unary, unary" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_734 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_735 c1_736 = TreeSitter.Node.nodeStartPoint node_734 TreeSitter.Node.TSPoint r2_737 c2_738 = TreeSitter.Node.nodeEndPoint node_734 deriving instance GHC.Classes.Eq a_739 => GHC.Classes.Eq (Unary a_739) deriving instance GHC.Classes.Ord a_740 => GHC.Classes.Ord (Unary a_740) deriving instance GHC.Show.Show a_741 => GHC.Show.Show (Unary a_741) instance AST.Unmarshal.Unmarshal Unary instance Data.Foldable.Foldable Unary where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Unary where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Unary where traverse = AST.Traversable1.Class.traverseDefault1 data Undef a = Undef { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (MethodName a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_742. AST.Traversable1.Class.Traversable1 a_742 ) instance AST.Unmarshal.SymbolMatching Undef where matchedSymbols _ = [236] showFailure _ node_743 = "expected " GHC.Base.<> ( "undef" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_743 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_744 c1_745 = TreeSitter.Node.nodeStartPoint node_743 TreeSitter.Node.TSPoint r2_746 c2_747 = TreeSitter.Node.nodeEndPoint node_743 deriving instance GHC.Classes.Eq a_748 => GHC.Classes.Eq (Undef a_748) deriving instance GHC.Classes.Ord a_749 => GHC.Classes.Ord (Undef a_749) deriving instance GHC.Show.Show a_750 => GHC.Show.Show (Undef a_750) instance AST.Unmarshal.Unmarshal Undef instance Data.Foldable.Foldable Undef where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Undef where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Undef where traverse = AST.Traversable1.Class.traverseDefault1 data Unless a = Unless { ann :: a, alternative :: (GHC.Maybe.Maybe (AST.Parse.Err ((Else GHC.Generics.:+: Elsif) a))), consequence :: (GHC.Maybe.Maybe (AST.Parse.Err (Then a))), condition :: (AST.Parse.Err (Statement a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_751. AST.Traversable1.Class.Traversable1 a_751 ) instance AST.Unmarshal.SymbolMatching Unless where matchedSymbols _ = [187] showFailure _ node_752 = "expected " GHC.Base.<> ( "unless" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_752 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_753 c1_754 = TreeSitter.Node.nodeStartPoint node_752 TreeSitter.Node.TSPoint r2_755 c2_756 = TreeSitter.Node.nodeEndPoint node_752 deriving instance GHC.Classes.Eq a_757 => GHC.Classes.Eq (Unless a_757) deriving instance GHC.Classes.Ord a_758 => GHC.Classes.Ord (Unless a_758) deriving instance GHC.Show.Show a_759 => GHC.Show.Show (Unless a_759) instance AST.Unmarshal.Unmarshal Unless instance Data.Foldable.Foldable Unless where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Unless where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Unless where traverse = AST.Traversable1.Class.traverseDefault1 data UnlessModifier a = UnlessModifier { ann :: a, body :: (AST.Parse.Err (Statement a)), condition :: (AST.Parse.Err ((Arg GHC.Generics.:+: Break GHC.Generics.:+: MethodCall GHC.Generics.:+: Next GHC.Generics.:+: Return GHC.Generics.:+: Yield) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_760. AST.Traversable1.Class.Traversable1 a_760 ) instance AST.Unmarshal.SymbolMatching UnlessModifier where matchedSymbols _ = [174] showFailure _ node_761 = "expected " GHC.Base.<> ( "unless_modifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_761 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_762 c1_763 = TreeSitter.Node.nodeStartPoint node_761 TreeSitter.Node.TSPoint r2_764 c2_765 = TreeSitter.Node.nodeEndPoint node_761 deriving instance GHC.Classes.Eq a_766 => GHC.Classes.Eq (UnlessModifier a_766) deriving instance GHC.Classes.Ord a_767 => GHC.Classes.Ord (UnlessModifier a_767) deriving instance GHC.Show.Show a_768 => GHC.Show.Show (UnlessModifier a_768) instance AST.Unmarshal.Unmarshal UnlessModifier instance Data.Foldable.Foldable UnlessModifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor UnlessModifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable UnlessModifier where traverse = AST.Traversable1.Class.traverseDefault1 data Until a = Until { ann :: a, body :: (AST.Parse.Err (Do a)), condition :: (AST.Parse.Err (Arg a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_769. AST.Traversable1.Class.Traversable1 a_769 ) instance AST.Unmarshal.SymbolMatching Until where matchedSymbols _ = [179] showFailure _ node_770 = "expected " GHC.Base.<> ( "until" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_770 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_771 c1_772 = TreeSitter.Node.nodeStartPoint node_770 TreeSitter.Node.TSPoint r2_773 c2_774 = TreeSitter.Node.nodeEndPoint node_770 deriving instance GHC.Classes.Eq a_775 => GHC.Classes.Eq (Until a_775) deriving instance GHC.Classes.Ord a_776 => GHC.Classes.Ord (Until a_776) deriving instance GHC.Show.Show a_777 => GHC.Show.Show (Until a_777) instance AST.Unmarshal.Unmarshal Until instance Data.Foldable.Foldable Until where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Until where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Until where traverse = AST.Traversable1.Class.traverseDefault1 data UntilModifier a = UntilModifier { ann :: a, body :: (AST.Parse.Err (Statement a)), condition :: (AST.Parse.Err ((Arg GHC.Generics.:+: Break GHC.Generics.:+: MethodCall GHC.Generics.:+: Next GHC.Generics.:+: Return GHC.Generics.:+: Yield) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_778. AST.Traversable1.Class.Traversable1 a_778 ) instance AST.Unmarshal.SymbolMatching UntilModifier where matchedSymbols _ = [176] showFailure _ node_779 = "expected " GHC.Base.<> ( "until_modifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_779 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_780 c1_781 = TreeSitter.Node.nodeStartPoint node_779 TreeSitter.Node.TSPoint r2_782 c2_783 = TreeSitter.Node.nodeEndPoint node_779 deriving instance GHC.Classes.Eq a_784 => GHC.Classes.Eq (UntilModifier a_784) deriving instance GHC.Classes.Ord a_785 => GHC.Classes.Ord (UntilModifier a_785) deriving instance GHC.Show.Show a_786 => GHC.Show.Show (UntilModifier a_786) instance AST.Unmarshal.Unmarshal UntilModifier instance Data.Foldable.Foldable UntilModifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor UntilModifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable UntilModifier where traverse = AST.Traversable1.Class.traverseDefault1 data When a = When { ann :: a, pattern :: (GHC.Base.NonEmpty (AST.Parse.Err ((AnonymousComma GHC.Generics.:+: Pattern) a))), body :: (GHC.Maybe.Maybe (AST.Parse.Err (Then a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_787. AST.Traversable1.Class.Traversable1 a_787 ) instance AST.Unmarshal.SymbolMatching When where matchedSymbols _ = [184] showFailure _ node_788 = "expected " GHC.Base.<> ( "when" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_788 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_789 c1_790 = TreeSitter.Node.nodeStartPoint node_788 TreeSitter.Node.TSPoint r2_791 c2_792 = TreeSitter.Node.nodeEndPoint node_788 deriving instance GHC.Classes.Eq a_793 => GHC.Classes.Eq (When a_793) deriving instance GHC.Classes.Ord a_794 => GHC.Classes.Ord (When a_794) deriving instance GHC.Show.Show a_795 => GHC.Show.Show (When a_795) instance AST.Unmarshal.Unmarshal When instance Data.Foldable.Foldable When where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor When where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable When where traverse = AST.Traversable1.Class.traverseDefault1 data While a = While { ann :: a, body :: (AST.Parse.Err (Do a)), condition :: (AST.Parse.Err (Arg a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_796. AST.Traversable1.Class.Traversable1 a_796 ) instance AST.Unmarshal.SymbolMatching While where matchedSymbols _ = [178] showFailure _ node_797 = "expected " GHC.Base.<> ( "while" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_797 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_798 c1_799 = TreeSitter.Node.nodeStartPoint node_797 TreeSitter.Node.TSPoint r2_800 c2_801 = TreeSitter.Node.nodeEndPoint node_797 deriving instance GHC.Classes.Eq a_802 => GHC.Classes.Eq (While a_802) deriving instance GHC.Classes.Ord a_803 => GHC.Classes.Ord (While a_803) deriving instance GHC.Show.Show a_804 => GHC.Show.Show (While a_804) instance AST.Unmarshal.Unmarshal While instance Data.Foldable.Foldable While where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor While where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable While where traverse = AST.Traversable1.Class.traverseDefault1 data WhileModifier a = WhileModifier { ann :: a, body :: (AST.Parse.Err (Statement a)), condition :: (AST.Parse.Err ((Arg GHC.Generics.:+: Break GHC.Generics.:+: MethodCall GHC.Generics.:+: Next GHC.Generics.:+: Return GHC.Generics.:+: Yield) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_805. AST.Traversable1.Class.Traversable1 a_805 ) instance AST.Unmarshal.SymbolMatching WhileModifier where matchedSymbols _ = [175] showFailure _ node_806 = "expected " GHC.Base.<> ( "while_modifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_806 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_807 c1_808 = TreeSitter.Node.nodeStartPoint node_806 TreeSitter.Node.TSPoint r2_809 c2_810 = TreeSitter.Node.nodeEndPoint node_806 deriving instance GHC.Classes.Eq a_811 => GHC.Classes.Eq (WhileModifier a_811) deriving instance GHC.Classes.Ord a_812 => GHC.Classes.Ord (WhileModifier a_812) deriving instance GHC.Show.Show a_813 => GHC.Show.Show (WhileModifier a_813) instance AST.Unmarshal.Unmarshal WhileModifier instance Data.Foldable.Foldable WhileModifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor WhileModifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable WhileModifier where traverse = AST.Traversable1.Class.traverseDefault1 data Yield a = Yield { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ArgumentList a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_814. AST.Traversable1.Class.Traversable1 a_814 ) instance AST.Unmarshal.SymbolMatching Yield where matchedSymbols _ = [164, 168] showFailure _ node_815 = "expected " GHC.Base.<> ( "yield, yield" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_815 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_816 c1_817 = TreeSitter.Node.nodeStartPoint node_815 TreeSitter.Node.TSPoint r2_818 c2_819 = TreeSitter.Node.nodeEndPoint node_815 deriving instance GHC.Classes.Eq a_820 => GHC.Classes.Eq (Yield a_820) deriving instance GHC.Classes.Ord a_821 => GHC.Classes.Ord (Yield a_821) deriving instance GHC.Show.Show a_822 => GHC.Show.Show (Yield a_822) instance AST.Unmarshal.Unmarshal Yield instance Data.Foldable.Foldable Yield where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Yield where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Yield where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousBang = AST.Token.Token "!" 90 type AnonymousBangEqual = AST.Token.Token "!=" 83 type AnonymousBangTilde = AST.Token.Token "!~" 87 type AnonymousDQuote = AST.Token.Token "\"" 122 type AnonymousHashLBrace = AST.Token.Token "#{" 115 type AnonymousPercent = AST.Token.Token "%" 81 type AnonymousPercentEqual = AST.Token.Token "%=" 61 type AnonymousPercentiLParen = AST.Token.Token "%i(" 127 type AnonymousPercentwLParen = AST.Token.Token "%w(" 126 type AnonymousAmpersand = AST.Token.Token "&" 18 type AnonymousAmpersandAmpersand = AST.Token.Token "&&" 72 type AnonymousAmpersandAmpersandEqual = AST.Token.Token "&&=" 59 type AnonymousAmpersandDot = AST.Token.Token "&." 50 type AnonymousAmpersandEqual = AST.Token.Token "&=" 60 type AnonymousLParen = AST.Token.Token "(" 9 type AnonymousRParen = AST.Token.Token ")" 10 type AnonymousStar = AST.Token.Token "*" 16 type AnonymousStarStar = AST.Token.Token "**" 17 type AnonymousStarStarEqual = AST.Token.Token "**=" 55 type AnonymousStarEqual = AST.Token.Token "*=" 54 type AnonymousPlus = AST.Token.Token "+" 79 type AnonymousPlusEqual = AST.Token.Token "+=" 52 type AnonymousPlusAt = AST.Token.Token "+@" 93 type AnonymousComma = AST.Token.Token "," 13 type AnonymousMinus = AST.Token.Token "-" 92 type AnonymousMinusEqual = AST.Token.Token "-=" 53 type AnonymousMinusRAngle = AST.Token.Token "->" 119 type AnonymousMinusAt = AST.Token.Token "-@" 94 type AnonymousDot = AST.Token.Token "." 11 type AnonymousDotDot = AST.Token.Token ".." 67 type AnonymousDotDotDot = AST.Token.Token "..." 68 type AnonymousSlash = AST.Token.Token "/" 80 type AnonymousSlashEqual = AST.Token.Token "/=" 56 type AnonymousColon = AST.Token.Token ":" 19 type AnonymousColonDQuote = AST.Token.Token ":\"" 123 type AnonymousColonColon = AST.Token.Token "::" 12 type AnonymousSemicolon = AST.Token.Token ";" 15 type AnonymousLAngle = AST.Token.Token "<" 22 type AnonymousLAngleLAngle = AST.Token.Token "<<" 73 type AnonymousLAngleLAngleEqual = AST.Token.Token "<<=" 63 type AnonymousLAngleEqual = AST.Token.Token "<=" 75 type AnonymousLAngleEqualRAngle = AST.Token.Token "<=>" 85 type AnonymousEqual = AST.Token.Token "=" 20 type AnonymousEqualEqual = AST.Token.Token "==" 82 type AnonymousEqualEqualEqual = AST.Token.Token "===" 84 type AnonymousEqualRAngle = AST.Token.Token "=>" 46 type AnonymousEqualTilde = AST.Token.Token "=~" 86 type AnonymousRAngle = AST.Token.Token ">" 76 type AnonymousRAngleEqual = AST.Token.Token ">=" 77 type AnonymousRAngleRAngle = AST.Token.Token ">>" 74 type AnonymousRAngleRAngleEqual = AST.Token.Token ">>=" 62 type AnonymousQuestion = AST.Token.Token "?" 65 type AnonymousBEGIN = AST.Token.Token "BEGIN" 4 type AnonymousEND = AST.Token.Token "END" 7 type AnonymousLBracket = AST.Token.Token "[" 47 type AnonymousLBracketRBracket = AST.Token.Token "[]" 95 type AnonymousLBracketRBracketEqual = AST.Token.Token "[]=" 96 type AnonymousRBracket = AST.Token.Token "]" 48 type AnonymousCaret = AST.Token.Token "^" 78 type AnonymousCaretEqual = AST.Token.Token "^=" 64 type AnonymousUnderscoreENDUnderscore = AST.Token.Token "__END__" 2 type AnonymousBacktick = AST.Token.Token "`" 97 type AnonymousAlias = AST.Token.Token "alias" 99 type AnonymousAnd = AST.Token.Token "and" 69 type AnonymousBegin = AST.Token.Token "begin" 44 type AnonymousBreak = AST.Token.Token "break" 27 type AnonymousCase = AST.Token.Token "case" 39 data Character a = Character {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_823. AST.Traversable1.Class.Traversable1 a_823 ) instance AST.Unmarshal.SymbolMatching Character where matchedSymbols _ = [114] showFailure _ node_824 = "expected " GHC.Base.<> ( "character" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_824 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_825 c1_826 = TreeSitter.Node.nodeStartPoint node_824 TreeSitter.Node.TSPoint r2_827 c2_828 = TreeSitter.Node.nodeEndPoint node_824 deriving instance GHC.Classes.Eq a_829 => GHC.Classes.Eq (Character a_829) deriving instance GHC.Classes.Ord a_830 => GHC.Classes.Ord (Character a_830) deriving instance GHC.Show.Show a_831 => GHC.Show.Show (Character a_831) instance AST.Unmarshal.Unmarshal Character instance Data.Foldable.Foldable Character where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Character where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Character where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousClass = AST.Token.Token "class" 21 data ClassVariable a = ClassVariable {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_832. AST.Traversable1.Class.Traversable1 a_832 ) instance AST.Unmarshal.SymbolMatching ClassVariable where matchedSymbols _ = [112] showFailure _ node_833 = "expected " GHC.Base.<> ( "class_variable" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_833 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_834 c1_835 = TreeSitter.Node.nodeStartPoint node_833 TreeSitter.Node.TSPoint r2_836 c2_837 = TreeSitter.Node.nodeEndPoint node_833 deriving instance GHC.Classes.Eq a_838 => GHC.Classes.Eq (ClassVariable a_838) deriving instance GHC.Classes.Ord a_839 => GHC.Classes.Ord (ClassVariable a_839) deriving instance GHC.Show.Show a_840 => GHC.Show.Show (ClassVariable a_840) instance AST.Unmarshal.Unmarshal ClassVariable instance Data.Foldable.Foldable ClassVariable where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ClassVariable where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ClassVariable where traverse = AST.Traversable1.Class.traverseDefault1 data Complex a = Complex {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_841. AST.Traversable1.Class.Traversable1 a_841 ) instance AST.Unmarshal.SymbolMatching Complex where matchedSymbols _ = [103] showFailure _ node_842 = "expected " GHC.Base.<> ( "complex" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_842 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_843 c1_844 = TreeSitter.Node.nodeStartPoint node_842 TreeSitter.Node.TSPoint r2_845 c2_846 = TreeSitter.Node.nodeEndPoint node_842 deriving instance GHC.Classes.Eq a_847 => GHC.Classes.Eq (Complex a_847) deriving instance GHC.Classes.Ord a_848 => GHC.Classes.Ord (Complex a_848) deriving instance GHC.Show.Show a_849 => GHC.Show.Show (Complex a_849) instance AST.Unmarshal.Unmarshal Complex instance Data.Foldable.Foldable Complex where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Complex where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Complex where traverse = AST.Traversable1.Class.traverseDefault1 data Constant a = Constant {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_850. AST.Traversable1.Class.Traversable1 a_850 ) instance AST.Unmarshal.SymbolMatching Constant where matchedSymbols _ = [110] showFailure _ node_851 = "expected " GHC.Base.<> ( "constant" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_851 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_852 c1_853 = TreeSitter.Node.nodeStartPoint node_851 TreeSitter.Node.TSPoint r2_854 c2_855 = TreeSitter.Node.nodeEndPoint node_851 deriving instance GHC.Classes.Eq a_856 => GHC.Classes.Eq (Constant a_856) deriving instance GHC.Classes.Ord a_857 => GHC.Classes.Ord (Constant a_857) deriving instance GHC.Show.Show a_858 => GHC.Show.Show (Constant a_858) instance AST.Unmarshal.Unmarshal Constant instance Data.Foldable.Foldable Constant where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Constant where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Constant where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousDef = AST.Token.Token "def" 8 type AnonymousDefinedQuestion = AST.Token.Token "defined?" 88 type AnonymousDo = AST.Token.Token "do" 38 type AnonymousElse = AST.Token.Token "else" 42 type AnonymousElsif = AST.Token.Token "elsif" 41 type AnonymousEnd = AST.Token.Token "end" 24 type AnonymousEnsure = AST.Token.Token "ensure" 45 data EscapeSequence a = EscapeSequence {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_859. AST.Traversable1.Class.Traversable1 a_859 ) instance AST.Unmarshal.SymbolMatching EscapeSequence where matchedSymbols _ = [117] showFailure _ node_860 = "expected " GHC.Base.<> ( "escape_sequence" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_860 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_861 c1_862 = TreeSitter.Node.nodeStartPoint node_860 TreeSitter.Node.TSPoint r2_863 c2_864 = TreeSitter.Node.nodeEndPoint node_860 deriving instance GHC.Classes.Eq a_865 => GHC.Classes.Eq (EscapeSequence a_865) deriving instance GHC.Classes.Ord a_866 => GHC.Classes.Ord (EscapeSequence a_866) deriving instance GHC.Show.Show a_867 => GHC.Show.Show (EscapeSequence a_867) instance AST.Unmarshal.Unmarshal EscapeSequence instance Data.Foldable.Foldable EscapeSequence where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor EscapeSequence where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable EscapeSequence where traverse = AST.Traversable1.Class.traverseDefault1 data False a = False {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_868. AST.Traversable1.Class.Traversable1 a_868 ) instance AST.Unmarshal.SymbolMatching False where matchedSymbols _ = [108] showFailure _ node_869 = "expected " GHC.Base.<> ( "false" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_869 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_870 c1_871 = TreeSitter.Node.nodeStartPoint node_869 TreeSitter.Node.TSPoint r2_872 c2_873 = TreeSitter.Node.nodeEndPoint node_869 deriving instance GHC.Classes.Eq a_874 => GHC.Classes.Eq (False a_874) deriving instance GHC.Classes.Ord a_875 => GHC.Classes.Ord (False a_875) deriving instance GHC.Show.Show a_876 => GHC.Show.Show (False a_876) instance AST.Unmarshal.Unmarshal False instance Data.Foldable.Foldable False where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor False where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable False where traverse = AST.Traversable1.Class.traverseDefault1 data Float a = Float {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_877. AST.Traversable1.Class.Traversable1 a_877 ) instance AST.Unmarshal.SymbolMatching Float where matchedSymbols _ = [102] showFailure _ node_878 = "expected " GHC.Base.<> ( "float" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_878 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_879 c1_880 = TreeSitter.Node.nodeStartPoint node_878 TreeSitter.Node.TSPoint r2_881 c2_882 = TreeSitter.Node.nodeEndPoint node_878 deriving instance GHC.Classes.Eq a_883 => GHC.Classes.Eq (Float a_883) deriving instance GHC.Classes.Ord a_884 => GHC.Classes.Ord (Float a_884) deriving instance GHC.Show.Show a_885 => GHC.Show.Show (Float a_885) instance AST.Unmarshal.Unmarshal Float instance Data.Foldable.Foldable Float where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Float where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Float where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousFor = AST.Token.Token "for" 36 data GlobalVariable a = GlobalVariable {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_886. AST.Traversable1.Class.Traversable1 a_886 ) instance AST.Unmarshal.SymbolMatching GlobalVariable where matchedSymbols _ = [113] showFailure _ node_887 = "expected " GHC.Base.<> ( "global_variable" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_887 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_888 c1_889 = TreeSitter.Node.nodeStartPoint node_887 TreeSitter.Node.TSPoint r2_890 c2_891 = TreeSitter.Node.nodeEndPoint node_887 deriving instance GHC.Classes.Eq a_892 => GHC.Classes.Eq (GlobalVariable a_892) deriving instance GHC.Classes.Ord a_893 => GHC.Classes.Ord (GlobalVariable a_893) deriving instance GHC.Show.Show a_894 => GHC.Show.Show (GlobalVariable a_894) instance AST.Unmarshal.Unmarshal GlobalVariable instance Data.Foldable.Foldable GlobalVariable where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor GlobalVariable where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable GlobalVariable where traverse = AST.Traversable1.Class.traverseDefault1 data HeredocBeginning a = HeredocBeginning {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_895. AST.Traversable1.Class.Traversable1 a_895 ) instance AST.Unmarshal.SymbolMatching HeredocBeginning where matchedSymbols _ = [133] showFailure _ node_896 = "expected " GHC.Base.<> ( "heredoc_beginning" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_896 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_897 c1_898 = TreeSitter.Node.nodeStartPoint node_896 TreeSitter.Node.TSPoint r2_899 c2_900 = TreeSitter.Node.nodeEndPoint node_896 deriving instance GHC.Classes.Eq a_901 => GHC.Classes.Eq (HeredocBeginning a_901) deriving instance GHC.Classes.Ord a_902 => GHC.Classes.Ord (HeredocBeginning a_902) deriving instance GHC.Show.Show a_903 => GHC.Show.Show (HeredocBeginning a_903) instance AST.Unmarshal.Unmarshal HeredocBeginning instance Data.Foldable.Foldable HeredocBeginning where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor HeredocBeginning where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable HeredocBeginning where traverse = AST.Traversable1.Class.traverseDefault1 data HeredocEnd a = HeredocEnd {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_904. AST.Traversable1.Class.Traversable1 a_904 ) instance AST.Unmarshal.SymbolMatching HeredocEnd where matchedSymbols _ = [132] showFailure _ node_905 = "expected " GHC.Base.<> ( "heredoc_end" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_905 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_906 c1_907 = TreeSitter.Node.nodeStartPoint node_905 TreeSitter.Node.TSPoint r2_908 c2_909 = TreeSitter.Node.nodeEndPoint node_905 deriving instance GHC.Classes.Eq a_910 => GHC.Classes.Eq (HeredocEnd a_910) deriving instance GHC.Classes.Ord a_911 => GHC.Classes.Ord (HeredocEnd a_911) deriving instance GHC.Show.Show a_912 => GHC.Show.Show (HeredocEnd a_912) instance AST.Unmarshal.Unmarshal HeredocEnd instance Data.Foldable.Foldable HeredocEnd where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor HeredocEnd where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable HeredocEnd where traverse = AST.Traversable1.Class.traverseDefault1 data Identifier a = Identifier {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_913. AST.Traversable1.Class.Traversable1 a_913 ) instance AST.Unmarshal.SymbolMatching Identifier where matchedSymbols _ = [1] showFailure _ node_914 = "expected " GHC.Base.<> ( "identifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_914 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_915 c1_916 = TreeSitter.Node.nodeStartPoint node_914 TreeSitter.Node.TSPoint r2_917 c2_918 = TreeSitter.Node.nodeEndPoint node_914 deriving instance GHC.Classes.Eq a_919 => GHC.Classes.Eq (Identifier a_919) deriving instance GHC.Classes.Ord a_920 => GHC.Classes.Ord (Identifier a_920) deriving instance GHC.Show.Show a_921 => GHC.Show.Show (Identifier a_921) instance AST.Unmarshal.Unmarshal Identifier instance Data.Foldable.Foldable Identifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Identifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Identifier where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousIf = AST.Token.Token "if" 31 type AnonymousIn = AST.Token.Token "in" 37 data InstanceVariable a = InstanceVariable {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_922. AST.Traversable1.Class.Traversable1 a_922 ) instance AST.Unmarshal.SymbolMatching InstanceVariable where matchedSymbols _ = [111] showFailure _ node_923 = "expected " GHC.Base.<> ( "instance_variable" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_923 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_924 c1_925 = TreeSitter.Node.nodeStartPoint node_923 TreeSitter.Node.TSPoint r2_926 c2_927 = TreeSitter.Node.nodeEndPoint node_923 deriving instance GHC.Classes.Eq a_928 => GHC.Classes.Eq (InstanceVariable a_928) deriving instance GHC.Classes.Ord a_929 => GHC.Classes.Ord (InstanceVariable a_929) deriving instance GHC.Show.Show a_930 => GHC.Show.Show (InstanceVariable a_930) instance AST.Unmarshal.Unmarshal InstanceVariable instance Data.Foldable.Foldable InstanceVariable where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor InstanceVariable where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable InstanceVariable where traverse = AST.Traversable1.Class.traverseDefault1 data Integer a = Integer {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_931. AST.Traversable1.Class.Traversable1 a_931 ) instance AST.Unmarshal.SymbolMatching Integer where matchedSymbols _ = [101] showFailure _ node_932 = "expected " GHC.Base.<> ( "integer" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_932 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_933 c1_934 = TreeSitter.Node.nodeStartPoint node_932 TreeSitter.Node.TSPoint r2_935 c2_936 = TreeSitter.Node.nodeEndPoint node_932 deriving instance GHC.Classes.Eq a_937 => GHC.Classes.Eq (Integer a_937) deriving instance GHC.Classes.Ord a_938 => GHC.Classes.Ord (Integer a_938) deriving instance GHC.Show.Show a_939 => GHC.Show.Show (Integer a_939) instance AST.Unmarshal.Unmarshal Integer instance Data.Foldable.Foldable Integer where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Integer where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Integer where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousModule = AST.Token.Token "module" 23 type AnonymousNext = AST.Token.Token "next" 28 data Nil a = Nil {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_940. AST.Traversable1.Class.Traversable1 a_940 ) instance AST.Unmarshal.SymbolMatching Nil where matchedSymbols _ = [109] showFailure _ node_941 = "expected " GHC.Base.<> ( "nil" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_941 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_942 c1_943 = TreeSitter.Node.nodeStartPoint node_941 TreeSitter.Node.TSPoint r2_944 c2_945 = TreeSitter.Node.nodeEndPoint node_941 deriving instance GHC.Classes.Eq a_946 => GHC.Classes.Eq (Nil a_946) deriving instance GHC.Classes.Ord a_947 => GHC.Classes.Ord (Nil a_947) deriving instance GHC.Show.Show a_948 => GHC.Show.Show (Nil a_948) instance AST.Unmarshal.Unmarshal Nil instance Data.Foldable.Foldable Nil where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Nil where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Nil where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousNot = AST.Token.Token "not" 89 type AnonymousOr = AST.Token.Token "or" 70 type AnonymousR = AST.Token.Token "r" 104 type AnonymousRedo = AST.Token.Token "redo" 29 type AnonymousRescue = AST.Token.Token "rescue" 35 type AnonymousRetry = AST.Token.Token "retry" 30 type AnonymousReturn = AST.Token.Token "return" 25 data Self a = Self {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_949. AST.Traversable1.Class.Traversable1 a_949 ) instance AST.Unmarshal.SymbolMatching Self where matchedSymbols _ = [106] showFailure _ node_950 = "expected " GHC.Base.<> ( "self" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_950 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_951 c1_952 = TreeSitter.Node.nodeStartPoint node_950 TreeSitter.Node.TSPoint r2_953 c2_954 = TreeSitter.Node.nodeEndPoint node_950 deriving instance GHC.Classes.Eq a_955 => GHC.Classes.Eq (Self a_955) deriving instance GHC.Classes.Ord a_956 => GHC.Classes.Ord (Self a_956) deriving instance GHC.Show.Show a_957 => GHC.Show.Show (Self a_957) instance AST.Unmarshal.Unmarshal Self instance Data.Foldable.Foldable Self where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Self where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Self where traverse = AST.Traversable1.Class.traverseDefault1 data Super a = Super {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_958. AST.Traversable1.Class.Traversable1 a_958 ) instance AST.Unmarshal.SymbolMatching Super where matchedSymbols _ = [105] showFailure _ node_959 = "expected " GHC.Base.<> ( "super" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_959 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_960 c1_961 = TreeSitter.Node.nodeStartPoint node_959 TreeSitter.Node.TSPoint r2_962 c2_963 = TreeSitter.Node.nodeEndPoint node_959 deriving instance GHC.Classes.Eq a_964 => GHC.Classes.Eq (Super a_964) deriving instance GHC.Classes.Ord a_965 => GHC.Classes.Ord (Super a_965) deriving instance GHC.Show.Show a_966 => GHC.Show.Show (Super a_966) instance AST.Unmarshal.Unmarshal Super instance Data.Foldable.Foldable Super where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Super where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Super where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousThen = AST.Token.Token "then" 43 data True a = True {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_967. AST.Traversable1.Class.Traversable1 a_967 ) instance AST.Unmarshal.SymbolMatching True where matchedSymbols _ = [107] showFailure _ node_968 = "expected " GHC.Base.<> ( "true" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_968 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_969 c1_970 = TreeSitter.Node.nodeStartPoint node_968 TreeSitter.Node.TSPoint r2_971 c2_972 = TreeSitter.Node.nodeEndPoint node_968 deriving instance GHC.Classes.Eq a_973 => GHC.Classes.Eq (True a_973) deriving instance GHC.Classes.Ord a_974 => GHC.Classes.Ord (True a_974) deriving instance GHC.Show.Show a_975 => GHC.Show.Show (True a_975) instance AST.Unmarshal.Unmarshal True instance Data.Foldable.Foldable True where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor True where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable True where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousUndef = AST.Token.Token "undef" 98 data Uninterpreted a = Uninterpreted {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_976. AST.Traversable1.Class.Traversable1 a_976 ) instance AST.Unmarshal.SymbolMatching Uninterpreted where matchedSymbols _ = [3] showFailure _ node_977 = "expected " GHC.Base.<> ( "uninterpreted" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_977 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_978 c1_979 = TreeSitter.Node.nodeStartPoint node_977 TreeSitter.Node.TSPoint r2_980 c2_981 = TreeSitter.Node.nodeEndPoint node_977 deriving instance GHC.Classes.Eq a_982 => GHC.Classes.Eq (Uninterpreted a_982) deriving instance GHC.Classes.Ord a_983 => GHC.Classes.Ord (Uninterpreted a_983) deriving instance GHC.Show.Show a_984 => GHC.Show.Show (Uninterpreted a_984) instance AST.Unmarshal.Unmarshal Uninterpreted instance Data.Foldable.Foldable Uninterpreted where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Uninterpreted where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Uninterpreted where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousUnless = AST.Token.Token "unless" 32 type AnonymousUntil = AST.Token.Token "until" 34 type AnonymousWhen = AST.Token.Token "when" 40 type AnonymousWhile = AST.Token.Token "while" 33 type AnonymousYield = AST.Token.Token "yield" 26 type AnonymousLBrace = AST.Token.Token "{" 5 type AnonymousPipe = AST.Token.Token "|" 14 type AnonymousPipeEqual = AST.Token.Token "|=" 58 type AnonymousPipePipe = AST.Token.Token "||" 71 type AnonymousPipePipeEqual = AST.Token.Token "||=" 57 type AnonymousRBrace = AST.Token.Token "}" 6 type AnonymousTilde = AST.Token.Token "~" 91 ================================================ FILE: semantic-ruby/src/Language/Ruby/Grammar.hs ================================================ {-# LANGUAGE TemplateHaskell #-} module Language.Ruby.Grammar ( tree_sitter_ruby , Grammar(..) ) where import AST.Grammar.TH import Language.Haskell.TH import TreeSitter.Ruby (tree_sitter_ruby) -- | Statically-known rules corresponding to symbols in the grammar. mkStaticallyKnownRuleGrammarData (mkName "Grammar") tree_sitter_ruby ================================================ FILE: semantic-ruby/src/Language/Ruby/Tags.hs ================================================ {-# LANGUAGE DefaultSignatures #-} {-# LANGUAGE DisambiguateRecordFields #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} module Language.Ruby.Tags ( ToTags (..), ) where import AST.Element import qualified AST.Parse as Parse import AST.Token import AST.Traversable1 import qualified AST.Unmarshal as TS import Control.Effect.Reader import Control.Effect.State import Control.Effect.Writer import Control.Monad import Data.Foldable import Data.Text (Text) import qualified Language.Ruby.AST as Rb import Proto.Semantic as P import Source.Loc import Source.Range as Range import Source.Source as Source import qualified Tags.Tagging.Precise as Tags class ToTags t where tags :: ( Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m, Has (State [Text]) sig m ) => t Loc -> m () default tags :: ( Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m, Has (State [Text]) sig m, Traversable1 ToTags t ) => t Loc -> m () tags = gtags instance ToTags (Token sym n) where tags _ = pure () instance (ToTags l, ToTags r) => ToTags (l :+: r) where tags (L1 l) = tags l tags (R1 r) = tags r -- These are all valid, but point to methods in Kernel and other parts of the -- Ruby stdlib. A la carte displays some of these, but not others and since we -- have nothing to link to yet (can't jump-to-def), we hide them from the -- current tags output. nameBlacklist :: [Text] nameBlacklist = [ "alias", "load", "require_relative", "require", "super", "undef", "__FILE__", "__LINE__", "lambda" ] yieldTag :: (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 () yieldTag name P.CALL _ _ _ | name `elem` nameBlacklist = pure () yieldTag name kind ty loc srcLineRange = Tags.yield name kind ty loc srcLineRange instance ToTags Rb.Class where tags t@Rb.Class { ann = Loc {byteRange = Range {start}}, name = Parse.Success expr, extraChildren } = enterScope True $ case expr of Prj Rb.Constant {text, ann} -> yield text ann Prj Rb.ScopeResolution {name = EPrj Rb.Constant {text, ann}} -> yield text ann Prj Rb.ScopeResolution {name = EPrj Rb.Identifier {text, ann}} -> yield text ann _ -> gtags t where range' = case extraChildren of EPrj Rb.Superclass {ann = Loc {byteRange = Range {end}}} : _ -> Range start end _ -> Range start (getEnd expr) getEnd = Range.end . byteRange . TS.gann yield name loc = yieldTag name P.CLASS P.DEFINITION loc range' >> gtags t tags _ = pure () instance ToTags Rb.SingletonClass where tags t@Rb.SingletonClass { ann = Loc {byteRange = range@Range {start}}, value = Parse.Success (Rb.Arg expr), extraChildren } = enterScope True $ case expr of Prj (Rb.Primary (Prj (Rb.Lhs (Prj (Rb.Variable (Prj Rb.Constant {text, ann})))))) -> yield text ann Prj (Rb.Primary (Prj (Rb.Lhs (Prj Rb.ScopeResolution {name = EPrj Rb.Constant {text, ann}})))) -> yield text ann Prj (Rb.Primary (Prj (Rb.Lhs (Prj Rb.ScopeResolution {name = EPrj Rb.Identifier {text, ann}})))) -> yield text ann _ -> gtags t where range' = case extraChildren of Parse.Success x : _ -> Range start (getStart x) _ -> range getStart = Range.start . byteRange . TS.gann yield name loc = yieldTag name P.CLASS P.DEFINITION loc range' >> gtags t tags _ = pure () instance ToTags Rb.Module where tags t@Rb.Module { ann = Loc {byteRange = Range {start}}, name = Parse.Success expr, extraChildren } = enterScope True $ case expr of Prj Rb.Constant {text, ann} -> yield text ann Prj Rb.ScopeResolution {name = EPrj Rb.Constant {text, ann}} -> yield text ann Prj Rb.ScopeResolution {name = EPrj Rb.Identifier {text, ann}} -> yield text ann _ -> gtags t where range' = case extraChildren of Parse.Success x : _ -> Range start (getStart x) _ -> Range start (getEnd expr) getEnd = Range.end . byteRange . TS.gann getStart = Range.start . byteRange . TS.gann yield name loc = yieldTag name P.MODULE P.DEFINITION loc range' >> gtags t tags _ = pure () yieldMethodNameTag :: ( Has (State [Text]) sig m, Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m, Traversable1 ToTags t ) => t Loc -> Range -> Rb.MethodName Loc -> m () yieldMethodNameTag t range (Rb.MethodName expr) = enterScope True $ case expr of Prj Rb.Identifier {text, ann} -> yield text ann Prj Rb.Constant {text, ann} -> yield text ann -- Prj Rb.ClassVariable { text = name } -> yield name Prj Rb.Operator {text, ann} -> yield text ann -- Prj Rb.GlobalVariable { text = name } -> yield name -- Prj Rb.InstanceVariable { text = name } -> yield name Prj Rb.Setter {extraChildren = Parse.Success (Rb.Identifier {text, ann})} -> yield (text <> "=") ann-- NB: Matches existing tags output, TODO: Remove this. -- TODO: Should we report symbol method names as tags? -- Prj Rb.Symbol { extraChildren = [Prj Rb.EscapeSequence { text = name }] } -> yield name _ -> gtags t where yield name loc = yieldTag name P.METHOD P.DEFINITION loc range >> gtags t enterScope :: (Has (State [Text]) sig m) => Bool -> m () -> m () enterScope createNew m = do locals <- get @[Text] when createNew $ put @[Text] [] -- NB: Matches existing behavior in assignment, not necessarily correct m put locals instance ToTags Rb.Method where tags t@Rb.Method { ann = Loc {byteRange = Range {start}}, name = Parse.Success n, parameters } = yieldMethodNameTag t range' n where range' = case parameters of Just (Parse.Success (Rb.MethodParameters {ann = Loc {byteRange = Range {end}}})) -> Range start end _ -> Range start (getEnd n) getEnd = Range.end . byteRange . TS.gann tags _ = pure () instance ToTags Rb.SingletonMethod where tags t@Rb.SingletonMethod { ann = Loc {byteRange = Range {start}}, name = Parse.Success n, parameters } = yieldMethodNameTag t range' n where range' = case parameters of Just (Parse.Success (Rb.MethodParameters {ann = Loc {byteRange = Range {end}}})) -> Range start end _ -> Range start (getEnd n) getEnd = Range.end . byteRange . TS.gann tags _ = pure () instance ToTags Rb.Block where tags = enterScope False . gtags instance ToTags Rb.DoBlock where tags = enterScope False . gtags instance ToTags Rb.Lambda where tags Rb.Lambda {body = Parse.Success b, parameters} = enterScope False $ do case parameters of Just (Parse.Success p) -> tags p _ -> pure () tags b tags _ = pure () instance ToTags Rb.If where tags Rb.If {condition = Parse.Success cond, consequence, alternative} = do tags cond case consequence of Just (Parse.Success cons) -> tags cons _ -> pure () case alternative of Just (Parse.Success alt) -> tags alt _ -> pure () tags _ = pure () instance ToTags Rb.Elsif where tags Rb.Elsif {condition = Parse.Success cond, consequence, alternative} = do tags cond case consequence of Just (Parse.Success cons) -> tags cons _ -> pure () case alternative of Just (Parse.Success alt) -> tags alt _ -> pure () tags _ = pure () instance ToTags Rb.Unless where tags Rb.Unless {condition = Parse.Success cond, consequence, alternative} = do tags cond case consequence of Just (Parse.Success cons) -> tags cons _ -> pure () case alternative of Just (Parse.Success alt) -> tags alt _ -> pure () tags _ = pure () instance ToTags Rb.While where tags Rb.While {condition = Parse.Success cond, body = Parse.Success b} = tags cond >> tags b tags _ = pure () instance ToTags Rb.Until where tags Rb.Until {condition = Parse.Success cond, body = Parse.Success b} = tags cond >> tags b tags _ = pure () instance ToTags Rb.Regex where tags Rb.Regex {} = pure () instance ToTags Rb.Subshell where tags Rb.Subshell {} = pure () -- TODO: Line of source produced here could be better. instance ToTags Rb.Lhs where tags t@(Rb.Lhs expr) = case expr of -- NOTE: Calls do not look for locals Prj Rb.Call {ann = Loc {byteRange}, method} -> case method of EPrj Rb.Identifier {text, ann} -> yieldCall text ann byteRange EPrj Rb.Constant {text, ann} -> yieldCall text ann byteRange EPrj Rb.Operator {text, ann} -> yieldCall text ann byteRange _ -> gtags t -- These do check for locals before yielding a call tag Prj (Rb.Variable (Prj Rb.Identifier {ann = loc@Loc {byteRange}, text})) -> yield text P.CALL loc byteRange Prj Rb.ScopeResolution {ann = loc@Loc {byteRange}, name = EPrj Rb.Identifier {text}} -> yield text P.CALL loc byteRange Prj (Rb.Variable (Prj Rb.Constant { ann = loc@Loc { byteRange }, text })) -> yield text P.CALL loc byteRange -- TODO: Should yield Constant Prj Rb.ScopeResolution { ann = loc@Loc { byteRange }, name = EPrj Rb.Constant { text } } -> yield text P.CALL loc byteRange -- TODO: Should yield Constant _ -> gtags t where yieldCall name loc range = yieldTag name P.CALL P.REFERENCE loc range >> gtags t yield name kind loc range = do locals <- get @[Text] unless (name `elem` locals) $ yieldTag name kind P.REFERENCE loc range gtags t -- TODO: Line of source produced here could be better. instance ToTags Rb.MethodCall where tags t@Rb.MethodCall { ann = Loc {byteRange = byteRange@Range {}}, method = expr } = case expr of EPrj (Rb.Variable (Prj Rb.Identifier {text, ann})) -> yield text P.CALL ann EPrj (Rb.Variable (Prj Rb.Constant {text, ann})) -> yield text P.CALL ann -- TODO: Should yield Constant EPrj Rb.ScopeResolution {name = EPrj Rb.Identifier {text, ann}} -> yield text P.CALL ann EPrj Rb.ScopeResolution {name = EPrj Rb.Constant {text, ann}} -> yield text P.CALL ann -- TODO: Should yield Constant EPrj Rb.Call {method} -> case method of EPrj Rb.Identifier {text, ann} -> yield text P.CALL ann EPrj Rb.Constant {text, ann} -> yield text P.CALL ann EPrj Rb.Operator {text, ann} -> yield text P.CALL ann _ -> gtags t _ -> gtags t where yield name kind loc = yieldTag name kind P.REFERENCE loc byteRange >> gtags t instance ToTags Rb.Alias where tags t@Rb.Alias { alias = Parse.Success (Rb.MethodName aliasExpr), name = Parse.Success (Rb.MethodName nameExpr), ann = Loc {byteRange} } = do case aliasExpr of Prj Rb.Identifier {ann, text} -> yieldTag text P.FUNCTION P.DEFINITION ann byteRange _ -> tags aliasExpr case nameExpr of Prj Rb.Identifier {ann, text} -> yieldTag text P.CALL P.REFERENCE ann byteRange _ -> tags nameExpr gtags t tags _ = pure () instance ToTags Rb.Undef where tags t@Rb.Undef { extraChildren, ann = Loc {byteRange} } = do for_ extraChildren $ \case Parse.Success (Rb.MethodName expr) -> do case expr of Prj Rb.Identifier {ann, text} -> yieldTag text P.CALL P.REFERENCE ann byteRange _ -> tags expr Parse.Fail _ -> pure () gtags t introduceLocals :: ( Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m, Has (State [Text]) sig m ) => [ Parse.Err ( (:+:) Rb.BlockParameter ( Rb.DestructuredParameter :+: ( Rb.HashSplatParameter :+: ( Rb.Identifier :+: ( Rb.KeywordParameter :+: (Rb.OptionalParameter :+: Rb.SplatParameter) ) ) ) ) Loc ) ] -> m () introduceLocals params = for_ params $ \param -> case param of EPrj Rb.BlockParameter {name = Parse.Success (Rb.Identifier {text = lvar})} -> modify (lvar :) EPrj Rb.DestructuredParameter {extraChildren} -> introduceLocals extraChildren EPrj Rb.HashSplatParameter {name = Just (Parse.Success (Rb.Identifier {text = lvar}))} -> modify (lvar :) EPrj Rb.Identifier {text = lvar} -> modify (lvar :) EPrj Rb.KeywordParameter {name = Parse.Success (Rb.Identifier {text = lvar})} -> modify (lvar :) EPrj Rb.OptionalParameter {name = Parse.Success (Rb.Identifier {text = lvar})} -> modify (lvar :) EPrj Rb.SplatParameter {name = Just (Parse.Success (Rb.Identifier {text = lvar}))} -> modify (lvar :) _ -> pure () instance ToTags Rb.MethodParameters where tags t@Rb.MethodParameters {extraChildren} = introduceLocals extraChildren >> gtags t instance ToTags Rb.LambdaParameters where tags t@Rb.LambdaParameters {extraChildren} = introduceLocals extraChildren >> gtags t instance ToTags Rb.BlockParameters where tags t@Rb.BlockParameters {extraChildren} = introduceLocals extraChildren >> gtags t instance ToTags Rb.Assignment where tags t@Rb.Assignment {left} = do case left of EPrj (Rb.Lhs (Prj (Rb.Variable (Prj Rb.Identifier {text})))) -> modify (text :) EPrj Rb.LeftAssignmentList {extraChildren} -> introduceLhsLocals extraChildren _ -> pure () gtags t where introduceLhsLocals xs = for_ xs $ \x -> case x of EPrj (Rb.Lhs (Prj (Rb.Variable (Prj Rb.Identifier {text})))) -> modify (text :) EPrj Rb.DestructuredLeftAssignment {extraChildren} -> introduceLhsLocals extraChildren EPrj Rb.RestAssignment {extraChildren = Just (Parse.Success (Rb.Lhs (Prj (Rb.Variable (Prj Rb.Identifier {text})))))} -> modify (text :) _ -> pure () instance ToTags Rb.OperatorAssignment where tags t@Rb.OperatorAssignment {left} = do case left of EPrj (Rb.Lhs (Prj (Rb.Variable (Prj Rb.Identifier {text})))) -> modify (text :) _ -> pure () gtags t gtags :: ( Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m, Has (State [Text]) sig m, Traversable1 ToTags t ) => t Loc -> m () gtags = traverse1_ @ToTags (const (pure ())) tags -- instance ToTags Rb.Alias instance ToTags Rb.Arg instance ToTags Rb.ArgumentList instance ToTags Rb.Array -- instance ToTags Rb.Assignment instance ToTags Rb.BareString instance ToTags Rb.BareSymbol instance ToTags Rb.Begin instance ToTags Rb.BeginBlock instance ToTags Rb.Binary -- instance ToTags Rb.Block instance ToTags Rb.BlockArgument instance ToTags Rb.BlockParameter -- instance ToTags Rb.BlockParameters instance ToTags Rb.Break instance ToTags Rb.Call instance ToTags Rb.Case instance ToTags Rb.ChainedString instance ToTags Rb.Character -- instance ToTags Rb.Class instance ToTags Rb.ClassVariable instance ToTags Rb.Complex instance ToTags Rb.Conditional instance ToTags Rb.Constant instance ToTags Rb.DestructuredLeftAssignment instance ToTags Rb.DestructuredParameter instance ToTags Rb.Do -- instance ToTags Rb.DoBlock instance ToTags Rb.ElementReference instance ToTags Rb.Else -- instance ToTags Rb.Elsif instance ToTags Rb.EmptyStatement instance ToTags Rb.EndBlock instance ToTags Rb.Ensure instance ToTags Rb.EscapeSequence instance ToTags Rb.ExceptionVariable instance ToTags Rb.Exceptions instance ToTags Rb.False instance ToTags Rb.Float instance ToTags Rb.For instance ToTags Rb.GlobalVariable instance ToTags Rb.Hash instance ToTags Rb.HashSplatArgument instance ToTags Rb.HashSplatParameter instance ToTags Rb.HeredocBeginning instance ToTags Rb.HeredocEnd instance ToTags Rb.Identifier -- instance ToTags Rb.If instance ToTags Rb.IfModifier instance ToTags Rb.In instance ToTags Rb.InstanceVariable instance ToTags Rb.Integer instance ToTags Rb.Interpolation instance ToTags Rb.KeywordParameter -- instance ToTags Rb.Lambda -- instance ToTags Rb.LambdaParameters instance ToTags Rb.LeftAssignmentList -- instance ToTags Rb.Lhs -- instance ToTags Rb.Method -- instance ToTags Rb.MethodCall instance ToTags Rb.MethodName -- instance ToTags Rb.MethodParameters -- instance ToTags Rb.Module instance ToTags Rb.Next instance ToTags Rb.Nil instance ToTags Rb.Operator -- instance ToTags Rb.OperatorAssignment instance ToTags Rb.OptionalParameter instance ToTags Rb.Pair instance ToTags Rb.ParenthesizedStatements instance ToTags Rb.Pattern instance ToTags Rb.Primary instance ToTags Rb.Program instance ToTags Rb.Range instance ToTags Rb.Rational instance ToTags Rb.Redo -- instance ToTags Rb.Regex instance ToTags Rb.Rescue instance ToTags Rb.RescueModifier instance ToTags Rb.RestAssignment instance ToTags Rb.Retry instance ToTags Rb.Return instance ToTags Rb.RightAssignmentList instance ToTags Rb.ScopeResolution instance ToTags Rb.Self instance ToTags Rb.Setter -- instance ToTags Rb.SingletonClass -- instance ToTags Rb.SingletonMethod instance ToTags Rb.SplatArgument instance ToTags Rb.SplatParameter instance ToTags Rb.Statement instance ToTags Rb.String instance ToTags Rb.StringArray -- instance ToTags Rb.Subshell instance ToTags Rb.Super instance ToTags Rb.Superclass instance ToTags Rb.Symbol instance ToTags Rb.SymbolArray instance ToTags Rb.Then instance ToTags Rb.True instance ToTags Rb.Unary -- instance ToTags Rb.Undef instance ToTags Rb.Uninterpreted -- instance ToTags Rb.Unless instance ToTags Rb.UnlessModifier -- instance ToTags Rb.Until instance ToTags Rb.UntilModifier instance ToTags Rb.Variable instance ToTags Rb.When -- instance ToTags Rb.While instance ToTags Rb.WhileModifier instance ToTags Rb.Yield ================================================ FILE: semantic-ruby/src/Language/Ruby.hs ================================================ {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE TypeApplications #-} -- | Semantic functionality for Ruby programs. module Language.Ruby ( Term(..) , Language.Ruby.Grammar.tree_sitter_ruby ) where import AST.Marshal.JSON import qualified AST.Unmarshal as TS import Control.Carrier.State.Strict import Data.Proxy import Data.Text (Text) import qualified Language.Ruby.AST as Rb import qualified Language.Ruby.Grammar (tree_sitter_ruby) import qualified Language.Ruby.Tags as RbTags import qualified Tags.Tagging.Precise as Tags newtype Term a = Term { getTerm :: Rb.Program a } deriving MarshalJSON instance TS.SymbolMatching Term where matchedSymbols _ = TS.matchedSymbols (Proxy :: Proxy Rb.Program) showFailure _ = TS.showFailure (Proxy :: Proxy Rb.Program) instance TS.Unmarshal Term where matchers = fmap (fmap (TS.hoist Term)) TS.matchers instance Tags.ToTags Term where tags src = Tags.runTagging src . evalState @[Text] [] . RbTags.tags . getTerm ================================================ FILE: semantic-ruby/test/PreciseTest.hs ================================================ {-# LANGUAGE CPP #-} {-# LANGUAGE DisambiguateRecordFields #-} {-# LANGUAGE ImplicitParams #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeApplications #-} {-# OPTIONS_GHC -Wno-unused-imports #-} module Main (main) where import AST.TestHelpers import AST.Unmarshal import Control.Concurrent import qualified Language.Ruby.AST as Ruby import System.IO import qualified System.Path.Fixture as Fixture import Test.Tasty import TreeSitter.Ruby main :: IO () main = do #if BAZEL_BUILD rf <- Fixture.create let ?project = "external/tree-sitter-ruby" ?runfiles = rf let dirs = Fixture.absRelDir "test/corpus" #else dirs <- Ruby.getTestCorpusDir #endif readCorpusFiles' dirs >>= traverse (testCorpus parse) >>= defaultMain . tests where parse = parseByteString @Ruby.Program @() tree_sitter_ruby tests :: [TestTree] -> TestTree tests = testGroup "tree-sitter-ruby corpus tests" ================================================ FILE: semantic-rust/BUILD.bazel ================================================ package(default_visibility = ["//visibility:public"]) load( "//:build/common.bzl", "semantic_language_library", ) semantic_language_library( name = "semantic-rust", srcs = glob(["src/**/*.hs"]), language = "rust", ) ================================================ FILE: semantic-rust/LICENSE ================================================ MIT License Copyright (c) 2020 GitHub Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: semantic-rust/README.md ================================================ # Semantic support for Rust This package implements `semantic` support for [Rust](https://www.rust-lang.org/). ## Generating AST ``` cd semantic-rust cabal v2-repl λ> :seti -XOverloadedStrings λ> :seti -XTypeApplications λ> import Source.Span λ> import Source.Range λ> import AST.Unmarshal λ> TS.parseByteString @Language.Rust.AST.SourceFile @(Source.Span.Span, Source.Range.Range) Language.Rust.Grammar.tree_sitter_rust "let x = 1;" Right (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 {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}))))})]}) ``` ================================================ FILE: semantic-rust/Setup.hs ================================================ import Distribution.Simple main = defaultMain ================================================ FILE: semantic-rust/semantic-rust.cabal ================================================ cabal-version: 2.4 name: semantic-rust version: 0.0.0.0 synopsis: Semantic support for Rust description: Semantic support for Rust. homepage: https://github.com/github/semantic/tree/master/semantic-rust#readme bug-reports: https://github.com/github/semantic/issues license: MIT license-file: LICENSE author: The Semantic authors, Alexei Pastuchov maintainer: opensource+semantic@github.com copyright: (c) 2020 GitHub, Inc. category: Language build-type: Simple stability: alpha extra-source-files: README.md tested-with: GHC == 8.6.5 common haskell default-language: Haskell2010 ghc-options: -Weverything -Wno-missing-local-signatures -Wno-missing-import-lists -Wno-implicit-prelude -Wno-safe -Wno-unsafe -Wno-name-shadowing -Wno-monomorphism-restriction -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-star-is-type if (impl(ghc >= 8.8)) ghc-options: -Wno-missing-deriving-strategies if (impl(ghc >= 8.10)) ghc-options: -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module if (impl(ghc >= 9.2)) ghc-options: -Wno-missing-kind-signatures cpp-options: -DBAZEL_BUILD=0 library import: haskell exposed-modules: Language.Rust Language.Rust.AST Language.Rust.Grammar Language.Rust.Tags hs-source-dirs: src build-depends: , base >= 4.13 && < 5 , fused-effects ^>= 1.1 , semantic-ast , semantic-source ^>= 0.2 , semantic-tags ^>= 0.0 , template-haskell >= 2.15 && < 2.22 , text ^>= 1.2.3 , tree-sitter ^>= 0.9 , tree-sitter-rust ^>= 0.1.0.0 test-suite test import: haskell type: exitcode-stdio-1.0 hs-source-dirs: test main-is: Test.hs build-depends: , base , filepath , semantic-ast , semantic-rust , tasty ================================================ FILE: semantic-rust/src/Language/Rust/AST.hs ================================================ {-# LANGUAGE CPP #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# OPTIONS_GHC -Wno-unused-imports #-} module Language.Rust.AST ( module Language.Rust.AST , Rust.getTestCorpusDir ) where import AST.GenerateSyntax import AST.Token import Language.Haskell.TH.Syntax (runIO) import qualified TreeSitter.Rust as Rust (getNodeTypesPath, getTestCorpusDir, tree_sitter_rust) #ifdef NODE_TYPES_PATH astDeclarationsForLanguage Rust.tree_sitter_rust NODE_TYPES_PATH #else runIO Rust.getNodeTypesPath >>= astDeclarationsForLanguage Rust.tree_sitter_rust #endif ================================================ FILE: semantic-rust/src/Language/Rust/Grammar.hs ================================================ {-# LANGUAGE TemplateHaskell #-} module Language.Rust.Grammar ( tree_sitter_rust , Grammar(..) ) where import AST.Grammar.TH import Language.Haskell.TH import TreeSitter.Rust (tree_sitter_rust) -- | Statically-known rules corresponding to symbols in the grammar. mkStaticallyKnownRuleGrammarData (mkName "Grammar") tree_sitter_rust ================================================ FILE: semantic-rust/src/Language/Rust/Tags.hs ================================================ {-# LANGUAGE DefaultSignatures #-} {-# LANGUAGE DisambiguateRecordFields #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} module Language.Rust.Tags ( ToTags(..) ) where import AST.Element import AST.Token import AST.Traversable1 import Control.Effect.Reader import Control.Effect.Writer import qualified Language.Rust.AST as Rust import Source.Loc import Source.Source as Source import Tags.Tag() import qualified Tags.Tagging.Precise as Tags class ToTags t where tags :: ( Has (Reader Source) sig m , Has (Writer Tags.Tags) sig m ) => t Loc -> m () default tags :: ( Has (Reader Source) sig m , Has (Writer Tags.Tags) sig m , Traversable1 ToTags t ) => t Loc -> m () tags = gtags instance (ToTags l, ToTags r) => ToTags (l :+: r) where tags (L1 l) = tags l tags (R1 r) = tags r instance ToTags (Token sym n) where tags _ = pure () gtags :: ( Has (Reader Source) sig m , Has (Writer Tags.Tags) sig m , Traversable1 ToTags t ) => t Loc -> m () gtags = traverse1_ @ToTags (const (pure ())) tags instance ToTags Rust.AbstractType instance ToTags Rust.Arguments instance ToTags Rust.ArrayExpression instance ToTags Rust.ArrayType instance ToTags Rust.AssignmentExpression instance ToTags Rust.AssociatedType instance ToTags Rust.AsyncBlock instance ToTags Rust.AttributeItem instance ToTags Rust.AwaitExpression instance ToTags Rust.BaseFieldInitializer instance ToTags Rust.BinaryExpression instance ToTags Rust.Block instance ToTags Rust.BlockComment instance ToTags Rust.BooleanLiteral instance ToTags Rust.BoundedType instance ToTags Rust.BracketedType instance ToTags Rust.BreakExpression instance ToTags Rust.CallExpression instance ToTags Rust.CapturedPattern instance ToTags Rust.CharLiteral instance ToTags Rust.ClosureExpression instance ToTags Rust.ClosureParameters instance ToTags Rust.CompoundAssignmentExpr instance ToTags Rust.ConstItem instance ToTags Rust.ConstParameter instance ToTags Rust.ConstrainedTypeParameter instance ToTags Rust.ContinueExpression instance ToTags Rust.Crate instance ToTags Rust.DeclarationList instance ToTags Rust.DeclarationStatement instance ToTags Rust.DynamicType instance ToTags Rust.EmptyStatement instance ToTags Rust.EmptyType instance ToTags Rust.EnumItem instance ToTags Rust.EnumVariant instance ToTags Rust.EnumVariantList instance ToTags Rust.EscapeSequence instance ToTags Rust.Expression instance ToTags Rust.ExternCrateDeclaration instance ToTags Rust.ExternModifier instance ToTags Rust.FieldDeclaration instance ToTags Rust.FieldDeclarationList instance ToTags Rust.FieldExpression instance ToTags Rust.FieldIdentifier instance ToTags Rust.FieldInitializer instance ToTags Rust.FieldInitializerList instance ToTags Rust.FieldPattern instance ToTags Rust.FloatLiteral instance ToTags Rust.ForExpression instance ToTags Rust.ForLifetimes instance ToTags Rust.ForeignModItem instance ToTags Rust.FragmentSpecifier instance ToTags Rust.FunctionItem instance ToTags Rust.FunctionModifiers instance ToTags Rust.FunctionSignatureItem instance ToTags Rust.FunctionType instance ToTags Rust.GenericFunction instance ToTags Rust.GenericType instance ToTags Rust.GenericTypeWithTurbofish instance ToTags Rust.HigherRankedTraitBound instance ToTags Rust.Identifier instance ToTags Rust.IfExpression instance ToTags Rust.IfLetExpression instance ToTags Rust.ImplItem instance ToTags Rust.IndexExpression instance ToTags Rust.InnerAttributeItem instance ToTags Rust.IntegerLiteral instance ToTags Rust.LetDeclaration instance ToTags Rust.Lifetime instance ToTags Rust.LineComment instance ToTags Rust.Literal instance ToTags Rust.LiteralPattern instance ToTags Rust.LoopExpression instance ToTags Rust.LoopLabel instance ToTags Rust.MacroDefinition instance ToTags Rust.MacroInvocation instance ToTags Rust.MacroRule instance ToTags Rust.MatchArm instance ToTags Rust.MatchBlock instance ToTags Rust.MatchExpression instance ToTags Rust.MatchPattern instance ToTags Rust.MetaArguments instance ToTags Rust.MetaItem instance ToTags Rust.Metavariable instance ToTags Rust.ModItem instance ToTags Rust.MutPattern instance ToTags Rust.MutableSpecifier instance ToTags Rust.NegativeLiteral instance ToTags Rust.OptionalTypeParameter instance ToTags Rust.OrderedFieldDeclarationList instance ToTags Rust.Parameter instance ToTags Rust.Parameters instance ToTags Rust.ParenthesizedExpression instance ToTags Rust.Pattern instance ToTags Rust.PointerType instance ToTags Rust.PrimitiveType instance ToTags Rust.QualifiedType instance ToTags Rust.RangeExpression instance ToTags Rust.RangePattern instance ToTags Rust.RawStringLiteral instance ToTags Rust.RefPattern instance ToTags Rust.ReferenceExpression instance ToTags Rust.ReferencePattern instance ToTags Rust.ReferenceType instance ToTags Rust.RemainingFieldPattern instance ToTags Rust.RemovedTraitBound instance ToTags Rust.ReturnExpression instance ToTags Rust.ScopedIdentifier instance ToTags Rust.ScopedTypeIdentifier instance ToTags Rust.ScopedUseList instance ToTags Rust.Self instance ToTags Rust.SelfParameter instance ToTags Rust.ShorthandFieldIdentifier instance ToTags Rust.ShorthandFieldInitializer instance ToTags Rust.SlicePattern instance ToTags Rust.SourceFile instance ToTags Rust.StaticItem instance ToTags Rust.StringLiteral instance ToTags Rust.StructExpression instance ToTags Rust.StructItem instance ToTags Rust.StructPattern instance ToTags Rust.Super instance ToTags Rust.TokenBindingPattern instance ToTags Rust.TokenRepetition instance ToTags Rust.TokenRepetitionPattern instance ToTags Rust.TokenTree instance ToTags Rust.TokenTreePattern instance ToTags Rust.TraitBounds instance ToTags Rust.TraitItem instance ToTags Rust.TryExpression instance ToTags Rust.TupleExpression instance ToTags Rust.TuplePattern instance ToTags Rust.TupleStructPattern instance ToTags Rust.TupleType instance ToTags Rust.Type instance ToTags Rust.TypeArguments instance ToTags Rust.TypeBinding instance ToTags Rust.TypeCastExpression instance ToTags Rust.TypeIdentifier instance ToTags Rust.TypeItem instance ToTags Rust.TypeParameters instance ToTags Rust.UnaryExpression instance ToTags Rust.UnionItem instance ToTags Rust.UnitExpression instance ToTags Rust.UnitType instance ToTags Rust.UnsafeBlock instance ToTags Rust.UseAsClause instance ToTags Rust.UseDeclaration instance ToTags Rust.UseList instance ToTags Rust.UseWildcard instance ToTags Rust.VariadicParameter instance ToTags Rust.VisibilityModifier instance ToTags Rust.WhereClause instance ToTags Rust.WherePredicate instance ToTags Rust.WhileExpression instance ToTags Rust.WhileLetExpression ================================================ FILE: semantic-rust/src/Language/Rust.hs ================================================ -- | Semantic functionality for Rust programs. module Language.Rust ( Term(..) , Language.Rust.Grammar.tree_sitter_rust ) where import Data.Proxy import qualified Language.Rust.AST as Rust import qualified Language.Rust.Tags as RustTags import qualified Tags.Tagging.Precise as Tags import qualified Language.Rust.Grammar (tree_sitter_rust) import qualified AST.Unmarshal as TS newtype Term a = Term { getTerm :: Rust.SourceFile a } instance TS.SymbolMatching Term where matchedSymbols _ = TS.matchedSymbols (Proxy :: Proxy Rust.SourceFile) showFailure _ = TS.showFailure (Proxy :: Proxy Rust.SourceFile) instance TS.Unmarshal Term where matchers = fmap (fmap (TS.hoist Term)) TS.matchers instance Tags.ToTags Term where tags src = Tags.runTagging src . RustTags.tags . getTerm ================================================ FILE: semantic-rust/test/Test.hs ================================================ {-# LANGUAGE CPP #-} {-# LANGUAGE ImplicitParams #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeApplications #-} module Main (main) where import AST.TestHelpers import AST.Unmarshal (parseByteString) import Control.Monad (liftM) import qualified Language.Rust.AST as Rust import Language.Rust.Grammar import System.FilePath import Test.Tasty main :: IO () main = do #if BAZEL_BUILD rf <- Fixture.create let ?project = "external/tree-sitter-python" ?runfiles = rf let dirs = Fixture.absRelDir "test/corpus" #else dirs <- Rust.getTestCorpusDir #endif excludeMacrosCorpus (readCorpusFiles' dirs) >>= traverse (testCorpus parse) >>= defaultMain . tests where parse = parseByteString @Rust.SourceFile @() tree_sitter_rust excludeMacrosCorpus l = liftM (filter (f "expressions") ) l where f p bn = p /= takeBaseName bn tests :: [TestTree] -> TestTree tests = testGroup "tree-sitter-rust corpus tests" ================================================ FILE: semantic-scope-graph/BUILD.bazel ================================================ package(default_visibility = ["//visibility:public"]) load( "@rules_haskell//haskell:defs.bzl", "haskell_binary", "haskell_library", ) load( "@rules_haskell//haskell:cabal.bzl", "haskell_cabal_binary", "haskell_cabal_library", ) load( "//:build/common.bzl", "GHC_FLAGS", ) haskell_library( name = "semantic-scope-graph", srcs = glob(["src/**/*.hs"]), compiler_flags = GHC_FLAGS + ["-XOverloadedStrings"], deps = [ "//:base", "//:containers", "//:text", "//semantic-analysis", "//semantic-source", "@stackage//:aeson", "@stackage//:algebraic-graphs", "@stackage//:fused-effects", "@stackage//:generic-lens", "@stackage//:hashable", "@stackage//:lens", "@stackage//:pathtype", "@stackage//:semilattices", ], ) ================================================ FILE: semantic-scope-graph/CHANGELOG.md ================================================ # Revision history for semantic-scope-graph ## 0.1.0.0 -- 2020-01-14 * First version. ================================================ FILE: semantic-scope-graph/LICENSE ================================================ MIT License Copyright (c) 2020 GitHub Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: semantic-scope-graph/README.md ================================================ This project contains scope-graphing mechanisms atop the ASTs provided by semantic. ================================================ FILE: semantic-scope-graph/Setup.hs ================================================ import Distribution.Simple main = defaultMain ================================================ FILE: semantic-scope-graph/semantic-scope-graph.cabal ================================================ cabal-version: 2.4 name: semantic-scope-graph version: 0.0.0.0 synopsis: Scope Graph computation description: Scope Graph computation for ASTs derived from tree-sitter grammars. homepage: https://github.com/github/semantic/tree/master/semantic-scope-graph#readme bug-reports: https://github.com/github/semantic/issues license: MIT license-file: LICENSE author: The Semantic authors maintainer: opensource+semantic@github.com copyright: (c) 2019 GitHub, Inc. category: Language build-type: Simple stability: alpha extra-source-files: README.md tested-with: GHC == 8.6.5 library exposed-modules: Control.Carrier.Sketch.ScopeGraph Control.Effect.ScopeGraph Control.Effect.ScopeGraph.Properties.Declaration Control.Effect.ScopeGraph.Properties.Function Control.Effect.ScopeGraph.Properties.Reference Scope.Graph.AdjacencyList Scope.Graph.Convert Scope.Info Scope.Path Scope.Reference Scope.Scope Scope.Types Data.Hole Data.Module Data.ScopeGraph build-depends: , aeson , base >= 4.13 && < 5 , containers , fused-effects ^>= 1.1 , generic-lens , hashable , lens , semantic-analysis , semantic-source ^>= 0.2 , semilattices , text ^>= 1.2.3.1 hs-source-dirs: src default-language: Haskell2010 ghc-options: -Weverything -Wno-missing-local-signatures -Wno-missing-import-lists -Wno-implicit-prelude -Wno-safe -Wno-unsafe -Wno-name-shadowing -Wno-monomorphism-restriction -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-star-is-type if (impl(ghc >= 8.8)) ghc-options: -Wno-missing-deriving-strategies if (impl(ghc >= 8.10)) ghc-options: -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module if (impl(ghc >= 9.2)) ghc-options: -Wno-missing-kind-signatures ================================================ FILE: semantic-scope-graph/src/Control/Carrier/Sketch/ScopeGraph.hs ================================================ {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE DerivingVia #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -fprint-expanded-synonyms #-} -- | This carrier interprets the Sketch effect, keeping track of -- the current scope and in-progress graph internally. module Control.Carrier.Sketch.ScopeGraph ( SketchC , runSketch , module Control.Effect.ScopeGraph ) where import Analysis.Name (Name) import qualified Analysis.Name as Name import Control.Carrier.Fresh.Strict import Control.Carrier.Reader import Control.Carrier.State.Strict import Control.Effect.ScopeGraph import Data.Module (ModuleInfo) import qualified Data.ScopeGraph as ScopeGraph import Data.Semilattice.Lower import Scope.Types type SketchC addr m = StateC (ScopeGraph Name) ( StateC Name ( ReaderC (CurrentScope Name) ( ReaderC ModuleInfo ( FreshC m )))) runSketch :: (Functor m) => ModuleInfo -> SketchC Name m a -> m (ScopeGraph Name, a) runSketch info go = evalFresh 0 . runReader @ModuleInfo info . runReader (CurrentScope rootname) . evalState @Name rootname . runState @(ScopeGraph Name) initialGraph $ go where rootname = Name.nameI 0 initialGraph = ScopeGraph.insertScope rootname lowerBound lowerBound ================================================ FILE: semantic-scope-graph/src/Control/Effect/ScopeGraph/Properties/Declaration.hs ================================================ {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE TypeApplications #-} -- | The 'Declaration' record type is used by the 'Control.Effect.Sketch' module to keep -- track of the parameters that need to be passed when establishing a new declaration. -- That is to say, it is a record type primarily used for its selector names. module Control.Effect.ScopeGraph.Properties.Declaration ( Declaration (..) ) where import Analysis.Name (Name) import Data.Generics.Product (field) import Data.ScopeGraph as ScopeGraph (Kind, Relation) import GHC.Generics (Generic) import Source.Span data Declaration = Declaration { kind :: ScopeGraph.Kind , relation :: ScopeGraph.Relation , associatedScope :: Maybe Name , span :: Span } deriving Generic instance HasSpan Declaration where span_ = field @"span" ================================================ FILE: semantic-scope-graph/src/Control/Effect/ScopeGraph/Properties/Function.hs ================================================ {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE TypeApplications #-} -- | The 'Function' record type is used by the 'Control.Effect.Sketch' module to keep -- track of the parameters that need to be passed when establishing a new declaration. -- That is to say, it is a record type primarily used for its selector names. module Control.Effect.ScopeGraph.Properties.Function ( Function (..) ) where import Data.Generics.Product (field) import qualified Data.ScopeGraph as ScopeGraph (Kind) import GHC.Generics (Generic) import Source.Span data Function = Function { kind :: ScopeGraph.Kind , span :: Span } deriving Generic instance HasSpan Function where span_ = field @"span" ================================================ FILE: semantic-scope-graph/src/Control/Effect/ScopeGraph/Properties/Reference.hs ================================================ {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE TypeApplications #-} -- | The 'Declaration' record type is used by the 'Control.Effect.Sketch' module to keep -- track of the parameters that need to be passed when establishing a new reference. -- It is currently unused, but will possess more fields in the future as scope graph -- functionality is enhanced. module Control.Effect.ScopeGraph.Properties.Reference ( Reference (..) ) where import Control.Lens import Data.ScopeGraph as ScopeGraph (Kind, Relation) import GHC.Generics (Generic) import Prelude hiding (span) import Source.Span data Reference = Reference { kind :: ScopeGraph.Kind , relation :: ScopeGraph.Relation , span :: Span } deriving (Generic, Show) instance HasSpan Reference where span_ = lens span (\r s -> r { span = s }) {-# INLINE span_ #-} ================================================ FILE: semantic-scope-graph/src/Control/Effect/ScopeGraph.hs ================================================ {-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} -- | The ScopeGraph effect is used to build up a scope graph over -- the lifetime of a monadic computation. The name is meant to evoke -- physically sketching the hierarchical outline of a graph. module Control.Effect.ScopeGraph ( ScopeGraph , ScopeGraphEff , declare -- Scope Manipulation , currentScope , newEdge , newReference , newScope , withScope , declareFunction , declareMaybeName , reference , Has ) where import Analysis.Name (Name) import qualified Analysis.Name as Name import Control.Algebra import Control.Effect.Fresh import Control.Effect.Reader import Control.Lens import Data.List.NonEmpty import Data.Map.Strict (Map) import qualified Data.Map.Strict as Map import qualified Data.Module as Module import qualified Data.ScopeGraph as ScopeGraph import Data.Semilattice.Lower import Data.Text (Text) import GHC.Records import qualified Scope.Reference as Reference import Source.Span import Scope.Graph.AdjacencyList (ScopeGraph) import qualified Scope.Graph.AdjacencyList as AdjacencyList import Scope.Types import qualified Control.Effect.ScopeGraph.Properties.Declaration as Props import qualified Control.Effect.ScopeGraph.Properties.Function as Props import qualified Control.Effect.ScopeGraph.Properties.Reference as Props import qualified Control.Effect.ScopeGraph.Properties.Reference as Props.Reference import Control.Effect.State -- | Extract the 'Just' of a 'Maybe' in an 'Applicative' context or, given 'Nothing', run the provided action. maybeM :: Applicative f => f a -> Maybe a -> f a maybeM f = maybe f pure {-# INLINE maybeM #-} type ScopeGraphEff sig m = ( Has (State (ScopeGraph Name)) sig m , Has (State Name) sig m , Has (Reader Module.ModuleInfo) sig m , Has Fresh sig m , Has (Reader (CurrentScope Name)) sig m , Has (Reader Module.ModuleInfo) sig m ) graphInProgress :: ScopeGraphEff sig m => m (ScopeGraph Name) graphInProgress = get currentScope :: ScopeGraphEff sig m => m (CurrentScope Name) currentScope = ask withScope :: ScopeGraphEff sig m => CurrentScope Name -> m a -> m a withScope scope = local (const scope) declare :: ScopeGraphEff sig m => Name -> Props.Declaration -> m () declare n props = do CurrentScope current <- currentScope old <- graphInProgress info <- ask let Props.Declaration kind relation associatedScope span = props let (new, _pos) = ScopeGraph.declare (ScopeGraph.Declaration n) info relation ScopeGraph.Public span kind associatedScope current old put new -- | Establish a reference to a prior declaration. reference :: forall sig m . ScopeGraphEff sig m => Text -> Text -> Props.Reference -> m () reference n decl props = do CurrentScope current <- currentScope old <- graphInProgress info <- ask let new = ScopeGraph.reference (ScopeGraph.Reference (Name.name n)) info (Props.Reference.span props) (Props.Reference.kind props) (ScopeGraph.Declaration (Name.name decl)) current old put new newScope :: forall sig m . ScopeGraphEff sig m => Map ScopeGraph.EdgeLabel [Name] -> m Name newScope edges = do old <- graphInProgress name <- Name.gensym let new = ScopeGraph.newScope name edges old name <$ put new -- | Takes an edge label and a list of names and inserts an import edge to a hole. newEdge :: ScopeGraphEff sig m => ScopeGraph.EdgeLabel -> NonEmpty Name -> m () newEdge label address = do CurrentScope current <- currentScope old <- graphInProgress let new = ScopeGraph.addImportEdge label (toList address) current old put new lookupScope :: ScopeGraphEff sig m => Name -> m (ScopeGraph.Scope Name) lookupScope address = maybeM undefined . ScopeGraph.lookupScope address =<< get -- | Inserts a reference. newReference :: ScopeGraphEff sig m => Name -> Props.Reference -> m () newReference name props = do CurrentScope currentAddress <- currentScope scope <- lookupScope currentAddress let refProps = Reference.ReferenceInfo (props ^. span_) (Props.Reference.kind props) lowerBound insertRef' :: ScopeGraph.Path Name -> ScopeGraph.ScopeGraph Name -> ScopeGraph.ScopeGraph Name insertRef' path scopeGraph = let scope' = (ScopeGraph.insertReference (Reference.Reference name) lowerBound (Props.Reference.span props) (getField @"kind" props) path) scope in (ScopeGraph.insertScope currentAddress scope' scopeGraph) scopeGraph <- get @(ScopeGraph.ScopeGraph Name) case AdjacencyList.findPath (const Nothing) (ScopeGraph.Declaration name) currentAddress scopeGraph of -- If a path to a declaration is found, insert a reference into the current scope. Just path -> modify (insertRef' path) -- If no path is found, insert a reference with a hole into the current scope. Nothing -> modify (ScopeGraph.insertScope currentAddress (ScopeGraph.newReference (Reference.Reference name) refProps scope)) declareFunction :: forall sig m . ScopeGraphEff sig m => Maybe Name -> Props.Function -> m (Name, Name) declareFunction name (Props.Function kind span) = do CurrentScope currentScope' <- currentScope let lexicalEdges = Map.singleton ScopeGraph.Lexical [ currentScope' ] associatedScope <- newScope lexicalEdges name' <- declareMaybeName name Props.Declaration { Props.relation = ScopeGraph.Default , Props.kind = kind , Props.associatedScope = Just associatedScope , Props.span = span } pure (name', associatedScope) declareMaybeName :: ScopeGraphEff sig m => Maybe Name -> Props.Declaration -> m Name declareMaybeName maybeName props@(Props.Declaration kind _ associatedScope span) = do case maybeName of Just name -> name <$ declare name props _ -> do name <- Name.gensym name <$ declare name (Props.Declaration kind ScopeGraph.Gensym associatedScope span) ================================================ FILE: semantic-scope-graph/src/Data/Hole.hs ================================================ module Data.Hole ( AbstractHole (..) ) where class AbstractHole a where hole :: a ================================================ FILE: semantic-scope-graph/src/Data/Module.hs ================================================ {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} module Data.Module ( Module(..) , ModulePath , ModuleInfo(..) , moduleInfoFromSrcLoc , moduleInfoFromCallStack ) where import Data.Functor.Classes import Data.Maybe import Data.Semilattice.Lower import Data.Text (Text) import GHC.Stack data Module body = Module { moduleInfo :: ModuleInfo, moduleBody :: body } deriving (Eq, Foldable, Functor, Ord, Traversable) instance Show body => Show (Module body) where showsPrec d Module{..} = showsBinaryWith showsPrec showsPrec "Module" d (modulePath moduleInfo) moduleBody type ModulePath = FilePath data ModuleInfo = ModuleInfo { modulePath :: ModulePath, moduleLanguage :: Text, moduleOid :: Text } deriving (Eq, Ord) instance Lower ModuleInfo where lowerBound = ModuleInfo "" "Unknown" mempty instance Show ModuleInfo where showsPrec d = showsUnaryWith showsPrec "ModuleInfo" d . modulePath moduleInfoFromSrcLoc :: SrcLoc -> ModuleInfo moduleInfoFromSrcLoc loc = ModuleInfo (srcLocModule loc) "Unknown" mempty -- | Produce 'ModuleInfo' from the top location on the Haskell call stack (i.e. the file where the call to 'moduleInfoFromCallStack' was made). moduleInfoFromCallStack :: HasCallStack => ModuleInfo moduleInfoFromCallStack = maybe (ModuleInfo "?" "Unknown" mempty) (moduleInfoFromSrcLoc . snd) (listToMaybe (getCallStack callStack)) ================================================ FILE: semantic-scope-graph/src/Data/ScopeGraph.hs ================================================ module Data.ScopeGraph ( module Scope.Info , module Scope.Path , module Scope.Scope , module Scope.Types , module Scope.Graph.AdjacencyList ) where import Scope.Graph.AdjacencyList import Scope.Info import Scope.Path import Scope.Scope import Scope.Types ================================================ FILE: semantic-scope-graph/src/Scope/Graph/AdjacencyList.hs ================================================ {-# LANGUAGE LambdaCase #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TupleSections #-} module Scope.Graph.AdjacencyList ( module Scope.Graph.AdjacencyList ) where import Analysis.Name import Control.Applicative import Control.Monad import Data.Bifunctor import Data.Foldable import Data.List.NonEmpty (NonEmpty) import qualified Data.List.NonEmpty as NonEmpty import Data.Map.Strict (Map) import qualified Data.Map.Strict as Map import Data.Maybe import Data.Module import Data.Monoid import Data.Semilattice.Lower import Data.Sequence (Seq) import qualified Data.Sequence as Seq import Data.Set (Set) import qualified Data.Set as Set import Scope.Info import Scope.Path import Scope.Reference import Scope.Scope import Scope.Types import Source.Span newtype ScopeGraph scope = ScopeGraph { unScopeGraph :: Map scope (Scope scope) } deriving (Eq, Ord, Show) instance Ord scope => Lower (ScopeGraph scope) where lowerBound = ScopeGraph mempty -- Returns the reference paths of a scope in a scope graph. pathsOfScope :: Ord scope => scope -> ScopeGraph scope -> Maybe (Map Reference ([ReferenceInfo], Path scope)) pathsOfScope scope = fmap references . Map.lookup scope . unScopeGraph -- Returns the declaration data of a scope in a scope graph. ddataOfScope :: Ord scope => scope -> ScopeGraph scope -> Maybe (Seq (Info scope)) ddataOfScope scope = fmap declarations . Map.lookup scope . unScopeGraph -- Returns the edges of a scope in a scope graph. linksOfScope :: Ord scope => scope -> ScopeGraph scope -> Maybe (Map EdgeLabel [scope]) linksOfScope scope = fmap edges . Map.lookup scope . unScopeGraph declarationsByAccessControl :: Ord scope => scope -> AccessControl -> ScopeGraph scope -> [ Info scope ] declarationsByAccessControl scope accessControl g = fromMaybe mempty $ do dataSeq <- ddataOfScope scope g pure . toList $ Seq.filter (\Info{..} -> accessControl <= infoAccessControl) dataSeq declarationsByRelation :: Ord scope => scope -> Relation -> ScopeGraph scope -> [ Info scope ] declarationsByRelation scope relation g = fromMaybe mempty $ do dataSeq <- ddataOfScope scope g pure . toList $ Seq.filter (\Info{..} -> infoRelation == relation) dataSeq declarationByName :: Ord scope => scope -> Declaration -> ScopeGraph scope -> Maybe (Info scope) declarationByName scope name g = do dataSeq <- ddataOfScope scope g find (\Info{..} -> infoDeclaration == name) dataSeq -- Lookup a scope in the scope graph. lookupScope :: Ord scope => scope -> ScopeGraph scope -> Maybe (Scope scope) lookupScope scope = Map.lookup scope . unScopeGraph -- Declare a declaration with a span and an associated scope in the scope graph. -- TODO: Return the whole value in Maybe or Either. declare :: Ord scope => Declaration -> ModuleInfo -> Relation -> AccessControl -> Span -> Kind -> Maybe scope -> scope -> ScopeGraph scope -> (ScopeGraph scope, Maybe Position) declare decl moduleInfo rel accessControl declSpan kind assocScope currentScope g = fromMaybe (g, Nothing) $ do scope <- lookupScope currentScope g dataSeq <- ddataOfScope currentScope g case Seq.findIndexR (\Info{..} -> decl == infoDeclaration && declSpan == infoSpan && rel == infoRelation) dataSeq of Just index -> pure (g, Just (Position index)) Nothing -> do let newScope = scope { declarations = declarations scope Seq.|> Info decl moduleInfo rel accessControl declSpan kind assocScope } pure (insertScope currentScope newScope g, Just (Position (length (declarations newScope)))) -- | Add a reference to a declaration in the scope graph. -- Returns the original scope graph if the declaration could not be found. reference :: Ord scope => Reference -> ModuleInfo -> Span -> Kind -> Declaration -> scope -> ScopeGraph scope -> ScopeGraph scope reference ref moduleInfo span kind decl currentAddress g = fromMaybe g $ do -- Start from the current address currentScope' <- lookupScope currentAddress g -- Build a path up to the declaration flip (insertScope currentAddress) g . flip (insertReference ref moduleInfo span kind) currentScope' <$> findPath (const Nothing) decl currentAddress g -- | Insert a reference into the given scope by constructing a resolution path to the declaration within the given scope graph. insertImportReference :: Ord address => Reference -> ModuleInfo -> Span -> Kind -> Declaration -> address -> ScopeGraph address -> Scope address -> Maybe (Scope address) insertImportReference ref moduleInfo span kind decl currentAddress g scope = flip (insertReference ref moduleInfo span kind) scope . EPath Import currentAddress <$> findPath (const Nothing) decl currentAddress g lookupScopePath :: Ord scopeAddress => Name -> scopeAddress -> ScopeGraph scopeAddress -> Maybe (Path scopeAddress) lookupScopePath declaration currentAddress g = findPath (flip (lookupReference declaration) g) (Declaration declaration) currentAddress g findPath :: Ord scopeAddress => (scopeAddress -> Maybe (Path scopeAddress)) -> Declaration -> scopeAddress -> ScopeGraph scopeAddress -> Maybe (Path scopeAddress) findPath extra decl currentAddress g = snd <$> getFirst (foldGraph combine currentAddress g) where combine address path = fmap (address, ) $ First (pathToDeclaration decl address g) <> First (extra address) <> (uncurry (EPath Superclass) <$> path Superclass) <> (uncurry (EPath Import) <$> path Import) <> (uncurry (EPath Export) <$> path Export) <> (uncurry (EPath Lexical) <$> path Lexical) foldGraph :: (Ord scopeAddress, Monoid a) => (scopeAddress -> (EdgeLabel -> a) -> a) -> scopeAddress -> ScopeGraph scopeAddress -> a foldGraph combine address graph = go lowerBound address where go visited address | address `Set.notMember` visited , Just edges <- linksOfScope address graph = combine address (recur edges) | otherwise = mempty where visited' = Set.insert address visited recur edges edge = maybe mempty (foldMap (go visited')) (Map.lookup edge edges) pathToDeclaration :: Ord scopeAddress => Declaration -> scopeAddress -> ScopeGraph scopeAddress -> Maybe (Path scopeAddress) pathToDeclaration decl address g = DPath decl . snd <$> lookupDeclaration (unDeclaration decl) address g insertReference :: Reference -> ModuleInfo -> Span -> Kind -> Path scopeAddress -> Scope scopeAddress -> Scope scopeAddress insertReference ref moduleInfo span kind path scope = scope { references = Map.alter (\case Nothing -> pure ([ ReferenceInfo span kind moduleInfo ], path) Just (refInfos, path) -> pure (ReferenceInfo span kind moduleInfo : refInfos, path)) ref (references scope) } -- | Adds a reference and a Hole path to the given scope. newReference :: Reference -> ReferenceInfo -> Scope scopeAddress -> Scope scopeAddress newReference ref info scope = scope { references = Map.alter (\case Nothing -> pure ([ info ], Hole) Just (refInfos, path) -> pure (info : refInfos, path)) ref (references scope) } lookupDeclaration :: Ord scopeAddress => Name -> scopeAddress -> ScopeGraph scopeAddress -> Maybe (Info scopeAddress, Position) lookupDeclaration name scope g = do dataSeq <- ddataOfScope scope g index <- Seq.findIndexR (\Info{..} -> Declaration name == infoDeclaration) dataSeq (, Position index) <$> Seq.lookup index dataSeq declarationNames :: Ord address => [EdgeLabel] -> Scope address -> ScopeGraph address -> Set Declaration declarationNames edgeLabels scope scopeGraph = localDeclarations <> edgeNames where addresses = join (Map.elems $ Map.restrictKeys (edges scope) (Set.fromList edgeLabels)) edgeNames = flip foldMap addresses $ \address -> maybe mempty (flip (declarationNames edgeLabels) scopeGraph) (lookupScope address scopeGraph) localDeclarations = Set.fromList . toList . fmap infoDeclaration $ declarations scope putDeclarationScopeAtPosition :: Ord scopeAddress => scopeAddress -> Position -> Maybe scopeAddress -> ScopeGraph scopeAddress -> ScopeGraph scopeAddress putDeclarationScopeAtPosition scope position assocScope g@(ScopeGraph graph) = fromMaybe g $ do dataSeq <- ddataOfScope scope g let seq = Seq.adjust' (\Info{..} -> Info { infoAssociatedScope = assocScope, .. }) (unPosition position) dataSeq pure $ ScopeGraph (Map.adjust (\s -> s { declarations = seq }) scope graph) -- | Lookup a reference by traversing the paths of a given scope and return a Maybe (Path address) lookupReference :: Ord address => Name -> address -> ScopeGraph address -> Maybe (Path address) lookupReference name scope g = fmap snd . Map.lookup (Reference name) =<< pathsOfScope scope g insertEdge :: Ord scopeAddress => EdgeLabel -> scopeAddress -> scopeAddress -> ScopeGraph scopeAddress -> ScopeGraph scopeAddress insertEdge label target currentAddress g@(ScopeGraph graph) = fromMaybe g $ do currentScope' <- lookupScope currentAddress g scopes <- maybe (Just mempty) pure (Map.lookup label (edges currentScope')) let newScope = currentScope' { edges = Map.insert label (target : scopes) (edges currentScope') } pure (ScopeGraph (Map.insert currentAddress newScope graph)) insertEdges :: Ord scopeAddress => NonEmpty EdgeLabel -> scopeAddress -> scopeAddress -> ScopeGraph scopeAddress -> ScopeGraph scopeAddress insertEdges labels target currentAddress g = foldr (\label graph -> insertEdge label target currentAddress graph) g labels -- | Add an import edge of the form 'a -> Import -> b -> Import -> c' or creates intermediate void scopes of the form -- 'a -> Void -> b -> Import -> c' if the given scopes cannot be found. addImportEdge :: Ord scopeAddress => EdgeLabel -> [scopeAddress] -> scopeAddress -> ScopeGraph scopeAddress -> ScopeGraph scopeAddress addImportEdge edge importEdge currentAddress g = do case importEdge of [] -> g (name:[]) -> maybe (addImportHole edge name currentAddress g) (const (insertEdge edge name currentAddress g)) (lookupScope name g) (name:names) -> let scopeGraph' = maybe (addImportHole edge name currentAddress g) (const (insertEdge edge name currentAddress g)) (lookupScope name g) in addImportEdge edge names name scopeGraph' addImportHole :: Ord scopeAddress => EdgeLabel -> scopeAddress -> scopeAddress -> ScopeGraph scopeAddress -> ScopeGraph scopeAddress addImportHole edge name currentAddress g = let scopeGraph' = newScope name mempty g in insertEdges (NonEmpty.fromList [Void, edge]) name currentAddress scopeGraph' -- | Update the 'Scope' containing a 'Declaration' with an associated scope address. -- Returns an unmodified 'ScopeGraph' if the 'Declaration' cannot be found with the given scope address. insertDeclarationScope :: Ord scopeAddress => Declaration -> scopeAddress -> scopeAddress -> ScopeGraph scopeAddress -> ScopeGraph scopeAddress insertDeclarationScope Declaration{..} associatedScopeAddress scopeAddress g = fromMaybe g $ do declScopeAddress <- pathDeclarationScope scopeAddress =<< lookupScopePath unDeclaration scopeAddress g scope <- lookupScope declScopeAddress g (declInfo, position) <- second unPosition <$> lookupDeclaration unDeclaration declScopeAddress g pure $ insertScope declScopeAddress (scope { declarations = Seq.update position (declInfo { infoAssociatedScope = Just associatedScopeAddress }) (declarations scope) }) g -- | Insert a declaration span into the declaration in the scope graph. insertDeclarationSpan :: Ord scopeAddress => Declaration -> Span -> ScopeGraph scopeAddress -> ScopeGraph scopeAddress insertDeclarationSpan decl@Declaration{..} span g = fromMaybe g $ do declScopeAddress <- scopeOfDeclaration decl g (declInfo, position) <- second unPosition <$> lookupDeclaration unDeclaration declScopeAddress g scope <- lookupScope declScopeAddress g pure $ insertScope declScopeAddress (scope { declarations = Seq.update position (declInfo { infoSpan = span }) (declarations scope) }) g -- | Insert a new scope with the given address and edges into the scope graph. newScope :: Ord address => address -> Map EdgeLabel [address] -> ScopeGraph address -> ScopeGraph address newScope address edges = insertScope address (Scope edges mempty mempty Standard) -- | Insert a new scope with the given address and edges into the scope graph. newPreludeScope :: Ord address => address -> Map EdgeLabel [address] -> ScopeGraph address -> ScopeGraph address newPreludeScope address edges = insertScope address (Scope edges mempty mempty Preluded) insertScope :: Ord address => address -> Scope address -> ScopeGraph address -> ScopeGraph address insertScope address scope = ScopeGraph . Map.insert address scope . unScopeGraph -- | Returns the scope of a reference in the scope graph. scopeOfRef :: Ord scope => Reference -> ScopeGraph scope -> Maybe scope scopeOfRef ref g@(ScopeGraph graph) = go (Map.keys graph) where go (s : scopes') = fromMaybe (go scopes') $ do pathMap <- pathsOfScope s g _ <- Map.lookup ref pathMap pure (Just s) go [] = Nothing -- | Returns the path of a reference in the scope graph. pathOfRef :: (Ord scope) => Reference -> ScopeGraph scope -> Maybe (Path scope) pathOfRef ref graph = do scope <- scopeOfRef ref graph pathsMap <- pathsOfScope scope graph snd <$> Map.lookup ref pathsMap -- Returns the scope the declaration was declared in. scopeOfDeclaration :: Ord scope => Declaration -> ScopeGraph scope -> Maybe scope scopeOfDeclaration Declaration{..} g@(ScopeGraph graph) = go (Map.keys graph) where go = foldr (\ scope -> (scope <$ lookupDeclaration unDeclaration scope g <|>)) Nothing -- | Returns the scope associated with a declaration (the child scope if any exists). associatedScope :: Ord scope => Declaration -> ScopeGraph scope -> Maybe scope associatedScope Declaration{..} g@(ScopeGraph graph) = go (Map.keys graph) where go = foldr lookupAssociatedScope Nothing lookupAssociatedScope scope = ((lookupDeclaration unDeclaration scope g >>= infoAssociatedScope . fst) <|>) ================================================ FILE: semantic-scope-graph/src/Scope/Graph/Convert.hs ================================================ {-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE ExistentialQuantification #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} module Scope.Graph.Convert ( ToScopeGraph (..) , Result (..) , todo , complete ) where import Control.Effect.ScopeGraph import Data.List.NonEmpty import Data.Typeable import Source.Loc class Typeable t => ToScopeGraph t where scopeGraph :: ( ScopeGraphEff sig m ) => t Loc -> m Result data Result = Complete | Todo (NonEmpty String) deriving (Eq, Show, Ord) instance Semigroup Result where Complete <> Complete = Complete Todo a <> Todo b = Todo (a <> b) a <> Complete = a Complete <> a = a instance Monoid Result where mempty = Complete todo :: (Show a, Applicative m) => a -> m Result todo = pure . Todo . pure . show complete :: Applicative m => m Result complete = pure Complete ================================================ FILE: semantic-scope-graph/src/Scope/Info.hs ================================================ {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeApplications #-} module Scope.Info ( Info (..) , Declaration (..) , formatDeclaration , Relation (..) , Kind (..) , AccessControl (..) ) where import Analysis.Name import Data.Generics.Product (field) import Data.Hole import Data.Module import Data.Semilattice.Lower import Data.Text (Text) import GHC.Generics (Generic) import Scope.Types import Source.Span data Info scopeAddress = Info { infoDeclaration :: Declaration , infoModule :: ModuleInfo , infoRelation :: Relation , infoAccessControl :: AccessControl , infoSpan :: Span , infoKind :: Kind , infoAssociatedScope :: Maybe scopeAddress } deriving (Eq, Show, Ord, Generic) instance HasSpan (Info scopeAddress) where span_ = field @"infoSpan" {-# INLINE span_ #-} instance Lower (Info scopeAddress) where lowerBound = Info lowerBound lowerBound lowerBound Public (point (Pos 0 0)) lowerBound Nothing instance AbstractHole (Info address) where hole = lowerBound newtype Declaration = Declaration { unDeclaration :: Name } deriving (Eq, Ord, Show) instance Lower Declaration where lowerBound = Declaration $ name "" formatDeclaration :: Declaration -> Text formatDeclaration = formatName . unDeclaration data Relation = Default | Instance | Prelude | Gensym deriving (Bounded, Enum, Eq, Show, Ord) instance Lower Relation where lowerBound = Default ================================================ FILE: semantic-scope-graph/src/Scope/Path.hs ================================================ {-# LANGUAGE DeriveFunctor #-} module Scope.Path ( Path (..) , pathDeclaration , pathDeclarationScope , pathPosition ) where import Data.Hole import Scope.Info import Scope.Types data Path scope = Hole -- | Construct a direct path to a declaration. | DPath Declaration Position -- | Construct an edge from a scope to another declaration path. | EPath EdgeLabel scope (Path scope) deriving (Eq, Functor, Ord, Show) instance AbstractHole (Path scope) where hole = Hole -- Returns the declaration of a path. pathDeclaration :: Path scope -> Declaration pathDeclaration (DPath d _) = d pathDeclaration (EPath _ _ p) = pathDeclaration p pathDeclaration Hole = undefined -- TODO: Store the current scope closer _in_ the DPath? pathDeclarationScope :: scope -> Path scope -> Maybe scope pathDeclarationScope _ (EPath _ scope (DPath _ _)) = Just scope pathDeclarationScope currentScope (EPath _ _ p) = pathDeclarationScope currentScope p pathDeclarationScope currentScope (DPath _ _) = Just currentScope pathDeclarationScope _ Hole = Nothing -- TODO: Possibly return in Maybe since we can have Hole paths pathPosition :: Path scope -> Position pathPosition Hole = Position 0 pathPosition (DPath _ p) = p pathPosition (EPath _ _ p) = pathPosition p ================================================ FILE: semantic-scope-graph/src/Scope/Reference.hs ================================================ {-# LANGUAGE OverloadedStrings #-} module Scope.Reference ( ReferenceInfo (..) , Reference (..) ) where import Analysis.Name import Control.Lens (lens) import Data.Module import Data.Semilattice.Lower import Scope.Types import Source.Span data ReferenceInfo = ReferenceInfo { refSpan :: Span , refKind :: Kind , refModule :: ModuleInfo } deriving (Eq, Show, Ord) instance HasSpan ReferenceInfo where span_ = lens refSpan (\r s -> r { refSpan = s }) {-# INLINE span_ #-} newtype Reference = Reference { unReference :: Name } deriving (Eq, Ord, Show) instance Lower Reference where lowerBound = Reference $ name "" ================================================ FILE: semantic-scope-graph/src/Scope/Scope.hs ================================================ {-# LANGUAGE OverloadedStrings #-} module Scope.Scope ( Scope (..) , Reference (..) , ReferenceInfo (..) , Domain (..) ) where import Data.Hole import Data.Map.Strict (Map) import Data.Semilattice.Lower import Data.Sequence (Seq) import Scope.Info import Scope.Path import Scope.Reference import Scope.Types -- Offsets and frame addresses in the heap should be addresses? data Scope address = Scope { edges :: Map EdgeLabel [address] , references :: Map Reference ([ReferenceInfo], Path address) , declarations :: Seq (Info address) , domain :: Domain } deriving (Eq, Show, Ord) instance Lower (Scope scopeAddress) where lowerBound = Scope mempty mempty mempty Standard instance AbstractHole (Scope scopeAddress) where hole = lowerBound ================================================ FILE: semantic-scope-graph/src/Scope/Types.hs ================================================ {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} module Scope.Types ( Slot (..) , EdgeLabel (..) , Position (..) , Domain (..) , Kind (..) , AccessControl (..) -- * Identificatory newtypes , CurrentScope (..) ) where import Data.Aeson (ToJSON) import Data.Hashable import Data.Hole import Data.Semilattice.Lower import GHC.Generics (Generic) -- A slot is a location in the heap where a value is stored. data Slot address = Slot { frameAddress :: address, position :: Position } deriving (Eq, Show, Ord) instance AbstractHole address => AbstractHole (Slot address) where hole = Slot hole (Position 0) -- | The type of edge from a scope to its parent scopes. -- Either a lexical edge or an import edge in the case of non-lexical edges. data EdgeLabel = Lexical | Import | Export | Superclass | Void deriving (Bounded, Enum, Eq, Ord, Show) newtype Position = Position { unPosition :: Int } deriving (Eq, Show, Ord) data Domain = Standard | Preluded deriving (Eq, Show, Ord) data Kind = AbstractClass | Assignment | Call | Class | DefaultExport | Function | Identifier | Let | MemberAccess | Method | Module | New | Parameter | PublicField | QualifiedAliasedImport | QualifiedExport | QualifiedImport | RequiredParameter | This | TypeAlias | TypeIdentifier | Unknown | UnqualifiedImport | VariableDeclaration deriving (Bounded, Enum, Eq, Show, Ord) instance Lower Kind where lowerBound = Unknown data AccessControl = Public | Protected | Private deriving (Bounded, Enum, Eq, Generic, Hashable, ToJSON, Show) -- | The Ord AccessControl instance represents an order specification of AccessControls. -- AccessControls that are less than or equal to another AccessControl implies access. -- It is helpful to consider `Public <= Private` as saying "Can a Public syntax term access a Private syntax term?" -- In this way, Public AccessControl is the top of the order specification, and Private AccessControl is the bottom. instance Ord AccessControl where -- | Private AccessControl represents the least overlap or accessibility with other AccessControls. -- 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. (<=) Private _ = True (<=) _ Private = False -- | Protected AccessControl is in between Private and Public in the order specification. -- Protected AccessControl "on the left" has access to Protected or Public AccessControls "on the right". (<=) Protected Public = True (<=) Protected Protected = True -- | Public AccessControl "on the left" has access only to Public AccessControl "on the right". (<=) Public Public = True (<=) Public _ = False -- | A newtype indicating that the wrapped datum represents a parent scope -- in some contextual computation. newtype CurrentScope address = CurrentScope { unCurrentScope :: address } ================================================ FILE: semantic-source/BUILD.bazel ================================================ package(default_visibility = ["//visibility:public"]) load( "@rules_haskell//haskell:defs.bzl", "haskell_library", "haskell_test", ) load( "@rules_haskell//haskell:cabal.bzl", "haskell_cabal_binary", "haskell_cabal_library", ) load( "//:build/common.bzl", "EXECUTABLE_FLAGS", "GHC_FLAGS", ) haskell_library( name = "semantic-source", srcs = glob(["src/**/*.hs"]), compiler_flags = GHC_FLAGS + ["-XOverloadedStrings"], deps = [ "//:base", "//:bytestring", "//:containers", "//:deepseq", "//:filepath", "//:text", "@stackage//:lingo", "@stackage//:aeson", "@stackage//:hashable", "@stackage//:pathtype", "@stackage//:semilattices", ], ) haskell_test( name = "test", srcs = glob(["test/**/*.hs"]), compiler_flags = GHC_FLAGS + EXECUTABLE_FLAGS, deps = [ ":semantic-source", "//:base", "//:text", "@stackage//:hedgehog", "@stackage//:tasty", "@stackage//:tasty-hedgehog", "@stackage//:tasty-hunit", ], ) ================================================ FILE: semantic-source/CHANGELOG.md ================================================ # 0.2.0.1 - Support ghc 9.4. # 0.2.0.0 - Finds languages for `FilePath`s. - Drops dependency on `pathtype`. # 0.1.0.2 - Support ghc 9.2. # 0.1.0.0 - Adds `CodeQL` language constructor. - Bumps `lingo-haskell` to 0.3.2. - Removes Span and Pos lower bound instances. This makes callers responsible for defining whether Span / Pos are 0 or 1 indexed. # 0.0.2.0 - Adds `Source.Language`. - Adds `ToJSON` instances for `Range` and `Loc`. # 0.0.1.0 - Adds an `NFData` instance for `Source`. - Decodes to `Text` leniently instead of throwing exceptions. # 0.0.0.1 - Loosens the upper bound on `hashable`. - Adds support for GHC 8.8.1. # 0.0.0.0 Initial release ================================================ FILE: semantic-source/LICENSE ================================================ MIT License Copyright (c) 2015-2019 GitHub Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: semantic-source/README.md ================================================ # semantic-source Types and functionality for working with source code (program text). ## Development This project consists of a Haskell package named `semantic-source`. The library’s sources are in [`src`][]. Development of `semantic-source` is typically done using `cabal v2-build`: ```shell cabal v2-build # build the library cabal v2-repl # load the package into ghci cabal v2-test # build and run the doctests ``` [`src`]: https://github.com/github/semantic/tree/master/semantic-source/src ================================================ FILE: semantic-source/Setup.hs ================================================ import Distribution.Simple main = defaultMain ================================================ FILE: semantic-source/cabal.project ================================================ -- 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). -- Local packages packages: . ================================================ FILE: semantic-source/cabal.project.ci ================================================ -- 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). -- Local packages packages: . -- Treat warnings as errors for CI builds package semantic-source ghc-options: -Werror ================================================ FILE: semantic-source/semantic-source.cabal ================================================ cabal-version: 2.4 name: semantic-source version: 0.2.0.1 synopsis: Types and functionality for working with source code description: Types and functionality for working with source code (program text). homepage: https://github.com/github/semantic/tree/master/semantic-source#readme bug-reports: https://github.com/github/semantic/issues license: MIT license-file: LICENSE author: The Semantic authors maintainer: opensource+semantic@github.com copyright: (c) 2020 GitHub, Inc. category: Data build-type: Simple stability: alpha extra-doc-files: CHANGELOG.md README.md tested-with: GHC == 8.6.5 GHC == 8.8.1 GHC == 8.10.1 GHC == 9.2.1 common haskell default-language: Haskell2010 ghc-options: -Weverything -Wno-missing-local-signatures -Wno-missing-import-lists -Wno-implicit-prelude -Wno-safe -Wno-unsafe -Wno-name-shadowing -Wno-monomorphism-restriction -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-star-is-type if (impl(ghc >= 8.8)) ghc-options: -Wno-missing-deriving-strategies if (impl(ghc >= 8.10)) ghc-options: -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module if (impl(ghc >= 9.2)) ghc-options: -Wno-missing-kind-signatures library import: haskell exposed-modules: Source.Language Source.Loc Source.Range Source.Source Source.Span build-depends: , aeson >= 1.4.2.0 && < 3 , base >= 4.12 && < 5 , bytestring >= 0.10.8.2 && < 0.13 , deepseq ^>= 1.4.4.0 , containers ^>= 0.6.2 , hashable >= 1.2.7 && < 1.5 , lingo ^>= 0.5.0.3 , semilattices ^>= 0.0.0.3 , text ^>= 1.2.3.2 hs-source-dirs: src test-suite test import: haskell type: exitcode-stdio-1.0 hs-source-dirs: test main-is: Test.hs other-modules: Range.Test Source.Test build-depends: , base , hedgehog >= 1 && < 1.2 , semantic-source , tasty >= 1.2 && <2 , tasty-hedgehog >= 1.0.0.1 && < 1.3 , tasty-hunit >= 0.10 && <1 , text source-repository head type: git location: https://github.com/github/semantic ================================================ FILE: semantic-source/src/Source/Language.hs ================================================ {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} module Source.Language ( Language (..) , SLanguage (..) , extensionsForLanguage , knownLanguage , forPath , textToLanguage , languageToText ) where import Data.Aeson import Data.Hashable (Hashable) import qualified Data.Languages as Lingo import qualified Data.Map.Strict as Map import qualified Data.Text as T import GHC.Generics (Generic) -- | The various languages we support. data Language = Unknown | Go | Haskell | Java | JavaScript | JSON | JSX | Markdown | PHP | Python | Ruby | TypeScript | TSX | CodeQL deriving (Eq, Generic, Ord, Read, Show, Bounded, Hashable, ToJSON, Enum) -- | Reifies a proxied type-level 'Language' to a value. class SLanguage (lang :: Language) where reflect :: proxy lang -> Language instance SLanguage 'Unknown where reflect _ = Unknown instance SLanguage 'CodeQL where reflect _ = CodeQL instance SLanguage 'Go where reflect _ = Go instance SLanguage 'Haskell where reflect _ = Haskell instance SLanguage 'Java where reflect _ = Java instance SLanguage 'JavaScript where reflect _ = JavaScript instance SLanguage 'JSON where reflect _ = JSON instance SLanguage 'JSX where reflect _ = JSX instance SLanguage 'Markdown where reflect _ = Markdown instance SLanguage 'PHP where reflect _ = PHP instance SLanguage 'Python where reflect _ = Python instance SLanguage 'Ruby where reflect _ = Ruby instance SLanguage 'TypeScript where reflect _ = TypeScript instance FromJSON Language where parseJSON = withText "Language" $ \l -> pure $ textToLanguage l -- | Predicate failing on 'Unknown' and passing in all other cases. knownLanguage :: Language -> Bool knownLanguage = (/= Unknown) extensionsForLanguage :: Language -> [String] extensionsForLanguage language = fmap T.unpack (maybe mempty Lingo.languageExtensions (Map.lookup (languageToText language) Lingo.languages)) forPath :: FilePath -> Language forPath path = let spurious lang = lang `elem` [ "Hack" -- .php files , "GCC Machine Description" -- .md files , "XML" -- .tsx files ] allResults = Lingo.languageName <$> Lingo.languagesForPath path in case filter (not . spurious) allResults of [result] -> textToLanguage result _ -> Unknown languageToText :: Language -> T.Text languageToText = \case Unknown -> "Unknown" CodeQL -> "CodeQL" Go -> "Go" Haskell -> "Haskell" Java -> "Java" JavaScript -> "JavaScript" JSON -> "JSON" JSX -> "JSX" Markdown -> "Markdown" PHP -> "PHP" Python -> "Python" Ruby -> "Ruby" TypeScript -> "TypeScript" TSX -> "TSX" textToLanguage :: T.Text -> Language textToLanguage = \case "CodeQL" -> CodeQL "Go" -> Go "Haskell" -> Haskell "Java" -> Java "JavaScript" -> JavaScript "JSON" -> JSON "JSX" -> JSX "Markdown" -> Markdown "PHP" -> PHP "Python" -> Python "Ruby" -> Ruby "TypeScript" -> TypeScript "TSX" -> TSX _ -> Unknown ================================================ FILE: semantic-source/src/Source/Loc.hs ================================================ {-# LANGUAGE DeriveGeneric, RankNTypes, NamedFieldPuns, OverloadedStrings #-} module Source.Loc ( Loc(..) , byteRange_ , Span(Span) , Range(Range) ) where import Control.DeepSeq (NFData) import Data.Aeson (ToJSON(..), object, (.=)) import Data.Hashable (Hashable) import GHC.Generics (Generic) import Prelude hiding (span) import Source.Range import Source.Span data Loc = Loc { byteRange :: {-# UNPACK #-} !Range , span :: {-# UNPACK #-} !Span } deriving (Eq, Ord, Show, Generic) instance Semigroup Loc where Loc b1 s1 <> Loc b2 s2 = Loc (b1 <> b2) (s1 <> s2) instance Hashable Loc instance NFData Loc instance HasSpan Loc where span_ = lens span (\l s -> l { span = s }) {-# INLINE span_ #-} instance ToJSON Loc where toJSON Loc{byteRange, span} = object ["sourceRange" .= byteRange , "sourceSpan" .= span] byteRange_ :: Lens' Loc Range byteRange_ = lens byteRange (\l r -> l { byteRange = r }) type Lens' s a = forall f . Functor f => (a -> f a) -> (s -> f s) lens :: (s -> a) -> (s -> a -> s) -> Lens' s a lens get put afa s = fmap (put s) (afa (get s)) {-# INLINE lens #-} ================================================ FILE: semantic-source/src/Source/Range.hs ================================================ {-# LANGUAGE DeriveAnyClass, DeriveGeneric, RankNTypes, NamedFieldPuns #-} module Source.Range ( Range(..) , point , rangeLength , subtractRange -- * Lenses , start_ , end_ ) where import Control.DeepSeq (NFData) import Data.Aeson (ToJSON(..)) import Data.Hashable (Hashable) import Data.Semilattice.Lower (Lower(..)) import GHC.Generics (Generic) -- | A 0-indexed, half-open interval of integers, defined by start & end indices. data Range = Range { start :: {-# UNPACK #-} !Int , end :: {-# UNPACK #-} !Int } deriving (Eq, Generic, Ord, Show) instance Hashable Range instance NFData Range instance Semigroup Range where Range start1 end1 <> Range start2 end2 = Range (min start1 start2) (max end1 end2) instance Lower Range where lowerBound = Range 0 0 instance ToJSON Range where toJSON Range { start, end } = toJSON [ start, end ] -- | Construct a 'Range' with a given value for both its start and end indices. point :: Int -> Range point i = Range i i -- | Return the length of the range. rangeLength :: Range -> Int rangeLength range = end range - start range subtractRange :: Range -> Range -> Range subtractRange range1 range2 = Range (start range1) (end range1 - rangeLength (Range (start range2) (max (end range1) (end range2)))) start_, end_ :: Lens' Range Int start_ = lens start (\r s -> r { start = s }) end_ = lens end (\r e -> r { end = e }) type Lens' s a = forall f . Functor f => (a -> f a) -> (s -> f s) lens :: (s -> a) -> (s -> a -> s) -> Lens' s a lens get put afa s = fmap (put s) (afa (get s)) {-# INLINE lens #-} ================================================ FILE: semantic-source/src/Source/Source.hs ================================================ {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-| 'Source' models source code, represented as a thin wrapper around a 'B.ByteString' with conveniences for splitting by line, slicing, etc. This module is intended to be imported qualified to avoid name clashes with 'Prelude': > import qualified Source.Source as Source -} module Source.Source ( Source , bytes , fromUTF8 -- * Measurement , Source.Source.length , Source.Source.null , totalRange , totalSpan -- * En/decoding , fromText , toText -- * Slicing , slice , drop , take -- * Splitting , Source.Source.lines , lineRanges , lineRangesWithin , newlineIndices ) where import Prelude hiding (drop, take) import Control.Arrow ((&&&)) import Control.DeepSeq (NFData) import Data.Aeson (FromJSON (..), withText) import qualified Data.ByteString as B import Data.Char (ord) import Data.Maybe (fromMaybe) import Data.Monoid (Last (..)) import Data.Semilattice.Lower import Data.String (IsString (..)) import qualified Data.Text as T import qualified Data.Text.Encoding as T import Data.Text.Encoding.Error (lenientDecode) import GHC.Generics (Generic) import Source.Range import Source.Span (Pos (..), Span (Span)) -- | The contents of a source file. This is represented as a UTF-8 -- 'ByteString' under the hood. Construct these with 'fromUTF8'; obviously, -- passing 'fromUTF8' non-UTF8 bytes will cause crashes. newtype Source = Source { bytes :: B.ByteString } deriving (Eq, Semigroup, Monoid, IsString, Show, Generic, NFData) fromUTF8 :: B.ByteString -> Source fromUTF8 = Source instance FromJSON Source where parseJSON = withText "Source" (pure . fromText) -- Measurement length :: Source -> Int length = B.length . bytes null :: Source -> Bool null = B.null . bytes -- | Return a 'Range' that covers the entire text. totalRange :: Source -> Range totalRange = Range 0 . B.length . bytes -- | Return a 'Span' that covers the entire text. totalSpan :: Source -> Span totalSpan source = Span (Pos 1 1) (Pos (Prelude.length ranges) (succ (end lastRange - start lastRange))) where ranges = lineRanges source lastRange = fromMaybe lowerBound (getLast (foldMap (Last . Just) ranges)) -- En/decoding -- | Return a 'Source' from a 'Text'. fromText :: T.Text -> Source fromText = Source . T.encodeUtf8 -- | Return the Text contained in the 'Source'. toText :: Source -> T.Text toText = T.decodeUtf8With lenientDecode . bytes -- Slicing -- | Return a 'Source' that contains a slice of the given 'Source'. slice :: Source -> Range -> Source slice source range = taking $ dropping source where dropping = drop (start range) taking = take (rangeLength range) drop :: Int -> Source -> Source drop i = Source . B.drop i . bytes take :: Int -> Source -> Source take i = Source . B.take i . bytes -- Splitting -- | Split the contents of the source after newlines. lines :: Source -> [Source] lines source = slice source <$> lineRanges source -- | Compute the 'Range's of each line in a 'Source'. lineRanges :: Source -> [Range] lineRanges source = lineRangesWithin source (totalRange source) -- | Compute the 'Range's of each line in a 'Range' of a 'Source'. lineRangesWithin :: Source -> Range -> [Range] lineRangesWithin source range = uncurry (zipWith Range) . ((start range:) &&& (<> [ end range ])) . fmap (+ succ (start range)) . newlineIndices . bytes $ slice source range -- | Return all indices of newlines ('\n', '\r', and '\r\n') in the 'ByteString'. newlineIndices :: B.ByteString -> [Int] newlineIndices = go 0 where go n bs | B.null bs = [] | otherwise = case (searchCR bs, searchLF bs) of (Nothing, Nothing) -> [] (Just i, Nothing) -> recur n i bs (Nothing, Just i) -> recur n i bs (Just crI, Just lfI) | succ crI == lfI -> recur n lfI bs | otherwise -> recur n (min crI lfI) bs recur n i bs = let j = n + i in j : go (succ j) (B.drop (succ i) bs) searchLF = B.elemIndex (toEnum (ord '\n')) searchCR = B.elemIndex (toEnum (ord '\r')) {-# INLINE newlineIndices #-} ================================================ FILE: semantic-source/src/Source/Span.hs ================================================ {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RankNTypes #-} -- | Source position and span information -- -- Mostly taken from purescript's SourcePos definition. module Source.Span ( Span(..) , point , spanFromSrcLoc , Pos(..) , line_ , column_ , HasSpan(..) ) where import Control.DeepSeq (NFData) import Data.Aeson ((.:), (.=)) import qualified Data.Aeson as A import Data.Hashable (Hashable) import GHC.Generics (Generic) import GHC.Stack (SrcLoc (..)) -- | A Span of position information data Span = Span { start :: {-# UNPACK #-} !Pos , end :: {-# UNPACK #-} !Pos } deriving (Eq, Ord, Generic, Show) instance Hashable Span instance NFData Span instance Semigroup Span where Span start1 end1 <> Span start2 end2 = Span (min start1 start2) (max end1 end2) instance A.ToJSON Span where toJSON s = A.object [ "start" .= start s , "end" .= end s ] instance A.FromJSON Span where parseJSON = A.withObject "Span" $ \o -> Span <$> o .: "start" <*> o .: "end" -- | Construct a Span with a given value for both its start and end positions. point :: Pos -> Span point p = Span p p spanFromSrcLoc :: SrcLoc -> Span spanFromSrcLoc s = Span (Pos (srcLocStartLine s) (srcLocStartCol s)) (Pos (srcLocEndLine s) (srcLocEndCol s)) -- | Source position information. -- The 'Pos' values associated with ASTs returned from tree-sitter -- 'Unmarshal' instances are zero-indexed. Unless you are displaying -- span information to a user, you should write your code assuming -- zero-indexing. data Pos = Pos { line :: {-# UNPACK #-} !Int , column :: {-# UNPACK #-} !Int } deriving (Eq, Ord, Generic, Show) instance Hashable Pos instance NFData Pos instance A.ToJSON Pos where toJSON p = A.toJSON [ line p , column p ] instance A.FromJSON Pos where parseJSON arr = do [ line, col ] <- A.parseJSON arr pure $ Pos line col line_, column_ :: Lens' Pos Int line_ = lens line (\p l -> p { line = l }) column_ = lens column (\p l -> p { column = l }) -- | "Classy-fields" interface for data types that have spans. class HasSpan a where span_ :: Lens' a Span start_ :: Lens' a Pos start_ = span_.start_ {-# INLINE start_ #-} end_ :: Lens' a Pos end_ = span_.end_ {-# INLINE end_ #-} instance HasSpan Span where span_ = id {-# INLINE span_ #-} start_ = lens start (\s t -> s { start = t }) {-# INLINE start_ #-} end_ = lens end (\s t -> s { end = t }) {-# INLINE end_ #-} type Lens' s a = forall f . Functor f => (a -> f a) -> (s -> f s) lens :: (s -> a) -> (s -> a -> s) -> Lens' s a lens get put afa s = fmap (put s) (afa (get s)) {-# INLINE lens #-} ================================================ FILE: semantic-source/test/Range/Test.hs ================================================ {-# LANGUAGE OverloadedStrings #-} module Range.Test ( testTree ) where import Control.Monad (join) import Hedgehog hiding (Range) import qualified Hedgehog.Gen as Gen import qualified Hedgehog.Range as Range import Source.Range import qualified Test.Tasty as Tasty import Test.Tasty.Hedgehog (testPropertyNamed) testTree :: Tasty.TestTree testTree = Tasty.testGroup "Source.Range" [ Tasty.testGroup "Semigroup" [ testPropertyNamed "associativity" "Range_associativity" . property $ do (a, b, c) <- forAll ((,,) <$> range <*> range <*> range) a <> (b <> c) === (a <> b) <> c ] ] range :: MonadGen m => m Range range = Gen.choice [ empty, nonEmpty ] where point = Gen.int (Range.linear 0 100) empty = join Range <$> point nonEmpty = do start <- point length <- point pure $! Range start (start + length + 1) ================================================ FILE: semantic-source/test/Source/Test.hs ================================================ {-# LANGUAGE OverloadedStrings #-} module Source.Test ( testTree ) where import qualified Data.Text as Text import Hedgehog hiding (Range) import qualified Hedgehog.Gen as Gen import qualified Hedgehog.Range as Range import qualified Source.Source as Source import Source.Span import qualified Test.Tasty as Tasty import Test.Tasty.HUnit import Test.Tasty.Hedgehog (testPropertyNamed) source :: MonadGen m => Range.Range Int -> m Source.Source source r = Gen.frequency [ (1, empty), (20, nonEmpty) ] where empty = pure mempty nonEmpty = Source.fromUTF8 <$> Gen.utf8 r (Gen.frequency [ (1, pure '\r'), (1, pure '\n'), (20, Gen.unicode) ]) testTree :: Tasty.TestTree testTree = Tasty.testGroup "Source.Source" [ Tasty.testGroup "lineRanges" [ testPropertyNamed "produces 1 more range than there are newlines" "Source_lineRanges_produces_1_more_range_than_there_are_newlines" . property $ do source <- forAll (source (Range.linear 0 100)) summarize source length (Source.lineRanges source) === length (Text.splitOn "\r\n" (Source.toText source) >>= Text.splitOn "\r" >>= Text.splitOn "\n") , testPropertyNamed "produces exhaustive ranges" "Source_lineRanges_produces_exhaustive_ranges" . property $ do source <- forAll (source (Range.linear 0 100)) summarize source foldMap (Source.slice source) (Source.lineRanges source) === source ] , Tasty.testGroup "totalSpan" [ testPropertyNamed "covers single lines" "Source_totalSpan_covers_single_lines" . property $ do n <- forAll $ Gen.int (Range.linear 0 100) Source.totalSpan (Source.fromText (Text.replicate n "*")) === Span (Pos 1 1) (Pos 1 (max 1 (succ n))) , testPropertyNamed "covers multiple lines" "Source_totalSpan_covers_multiple_lines" . property $ do n <- forAll $ Gen.int (Range.linear 0 100) 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)) ] , Tasty.testGroup "newlineIndices" [ testCase "finds \\n" $ Source.newlineIndices "a\nb" @?= [1] , testCase "finds \\r" $ Source.newlineIndices "a\rb" @?= [1] , testCase "finds \\r\\n" $ Source.newlineIndices "a\r\nb" @?= [2] , testCase "finds intermixed line endings" $ Source.newlineIndices "hi\r}\r}\n xxx \r a" @?= [2, 4, 6, 12] ] ] summarize :: Source.Source -> PropertyT IO () summarize src = do let lines = Source.lines src -- 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'. classify "empty" $ Source.null src classify "single-line" $ length lines == 1 classify "multiple lines" $ length lines > 1 ================================================ FILE: semantic-source/test/Test.hs ================================================ module Main ( main ) where import qualified Range.Test as Range import qualified Source.Test as Source import Test.Tasty as Tasty main :: IO () main = defaultMain $ testGroup "semantic-source" [ Range.testTree , Source.testTree ] ================================================ FILE: semantic-tags/BUILD.bazel ================================================ package(default_visibility = ["//visibility:public"]) load( "@rules_haskell//haskell:defs.bzl", "haskell_binary", "haskell_library", ) load( "@rules_haskell//haskell:cabal.bzl", "haskell_cabal_binary", "haskell_cabal_library", ) load( "//:build/common.bzl", "GHC_FLAGS", ) haskell_library( name = "semantic-tags", srcs = glob(["src/**/*.hs"]), compiler_flags = GHC_FLAGS, deps = [ "//:base", "//:bytestring", "//:containers", "//:text", "//semantic-proto", "//semantic-source", "@stackage//:fused-effects", ], ) ================================================ FILE: semantic-tags/LICENSE ================================================ MIT License Copyright (c) 2019 GitHub Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: semantic-tags/README.md ================================================ # semantic-tags Tags computation over ASTs. ## Development This project consists of a Haskell package named `semantic-tags`. The library’s sources are in [`src`][]. Development of `semantic-tags` is typically done using `cabal v2-build`: ```shell cabal v2-build # build the library cabal v2-repl # load the package into ghci cabal v2-test # build and run the doctests ``` [`src`]: https://github.com/github/semantic/tree/master/semantic-tags/src ================================================ FILE: semantic-tags/Setup.hs ================================================ import Distribution.Simple main = defaultMain ================================================ FILE: semantic-tags/semantic-tags.cabal ================================================ cabal-version: 2.4 name: semantic-tags version: 0.0.0.0 synopsis: Tags computation description: Tags computation for ASTs derived from tree-sitter grammars. homepage: https://github.com/github/semantic/tree/master/semantic-tags#readme bug-reports: https://github.com/github/semantic/issues license: MIT license-file: LICENSE author: The Semantic authors maintainer: opensource+semantic@github.com copyright: (c) 2019 GitHub, Inc. category: Language build-type: Simple stability: alpha extra-source-files: README.md tested-with: GHC == 8.6.5 common haskell default-language: Haskell2010 default-extensions: StrictData ghc-options: -Weverything -Wno-missing-local-signatures -Wno-missing-import-lists -Wno-implicit-prelude -Wno-safe -Wno-unsafe -Wno-name-shadowing -Wno-monomorphism-restriction -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-star-is-type if (impl(ghc >= 8.8)) ghc-options: -Wno-missing-deriving-strategies if (impl(ghc >= 8.10)) ghc-options: -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module if (impl(ghc >= 9.2)) ghc-options: -Wno-missing-kind-signatures library import: haskell exposed-modules: Tags.Tag Tags.Tagging.Precise build-depends: , base >= 4.13 && < 5 , bytestring >= 0.10.8.2 && < 0.13 , containers ^>= 0.6.0.1 , fused-effects ^>= 1.1 , semantic-proto ^>= 0 , semantic-source ^>= 0.2 , text ^>= 1.2.3.1 hs-source-dirs: src test-suite test import: haskell type: exitcode-stdio-1.0 hs-source-dirs: test main-is: Test.hs build-depends: , base >= 4.13 && < 5 , semantic-source ^>= 0.2 , semantic-tags , tasty >= 1.2 && <2 , tasty-hunit >= 0.10 && <1 , text ^>= 1.2.3.1 ================================================ FILE: semantic-tags/src/Tags/Tag.hs ================================================ {-# LANGUAGE GeneralisedNewtypeDeriving #-} module Tags.Tag (Tag (..), UTF16CodeUnitSpan(..), OneIndexedSpan(..)) where import Data.Text (Text) import qualified Proto.Semantic as P import Source.Loc -- | A 0-indxed Span where the column offset units are utf-16 code units (2 -- bytes), suitable for the LSP (Language Server Protocol) specification. newtype UTF16CodeUnitSpan = UTF16CodeUnitSpan { unUTF16CodeUnitSpan :: Span } deriving (Eq, Show) -- A 1-indexed Span where the units are bytes. newtype OneIndexedSpan = OneIndexedSpan { unOneIndexedSpan :: Span } deriving (Eq, Show) data Tag = Tag { tagName :: Text, tagSyntaxType :: P.SyntaxType, tagNodeType :: P.NodeType, tagByteRange :: Range, tagOneIndexedSpan :: OneIndexedSpan, tagLine :: Text, tagUTF16CodeUnitSpan :: UTF16CodeUnitSpan } deriving (Eq, Show) ================================================ FILE: semantic-tags/src/Tags/Tagging/Precise.hs ================================================ {-# LANGUAGE GeneralisedNewtypeDeriving #-} {-# LANGUAGE BangPatterns #-} {-# LANGUAGE TypeApplications #-} module Tags.Tagging.Precise ( Tags , Tag(..) , OneIndexedSpan(..) , UTF16CodeUnitSpan(..) , ToTags(..) , LineIndices(..) , yield , runTagging , calculateLineAndSpans , countUtf16CodeUnits , slice180 , surroundingLine , surroundingLineRange ) where import Control.Carrier.Reader import Control.Carrier.Writer.Strict import Control.Carrier.State.Strict import qualified Data.ByteString as B import Data.Char (ord) import Data.Functor.Identity import Data.Monoid (Endo (..)) import Data.Text (Text) import qualified Data.Text as Text import qualified Proto.Semantic as P import Source.Loc import Source.Source as Source import Source.Span (Pos (..), end, start) import Tags.Tag import Prelude hiding (span) import Data.Map as Map import Data.IntMap as IntMap type Tags = Endo [Tag] class ToTags t where tags :: Source -> t Loc -> [Tag] yield :: (Has (State LineIndices) sig m, Has (Reader Source) sig m, Has (Writer Tags) sig m) => Text -> -- |^ Text of the identifier P.SyntaxType -> -- |^ Type of syntax P.NodeType -> -- |^ Node type: definition or reference Loc -> -- |^ Location of the identifier Range -> -- |^ Range of the entire expression (not used, but reserved for future used) m () yield name syntaxType nodeType loc _ = do src <- ask @Source xs <- get @LineIndices let (line, span, lspSpan, map) = calculateLineAndSpans src xs loc put map tell . Endo . (:) $ Tag name syntaxType nodeType (byteRange loc) span line lspSpan runTagging :: Source -> ReaderC Source (StateC LineIndices (WriterC Tags Identity)) () -> [Tag] runTagging source = ($ []) . appEndo . run . execWriter . evalState (LineIndices mempty) . runReader source type UTF16CUCount = Int -- | LineCache is a cache of a line of source code and a map of byte offsets to utf16 code unit count. type LineCache = (Source, Text, IntMap.IntMap UTF16CUCount) -- | LineIndices is a cache of row to LineCache newtype LineIndices = LineIndices { unLineIndices :: Map.Map Int LineCache } deriving (Eq, Show) -- | Takes a Loc (where the span's column offset is measured in bytes) and -- returns two Spans: A 1-indexed span LSP friendly span (where column offset is -- measure in utf16 code units). calculateLineAndSpans :: Source -> -- | ^ Source LineIndices -> Loc -> -- | ^ Location of identifier (Text, OneIndexedSpan, UTF16CodeUnitSpan, LineIndices) calculateLineAndSpans src lineIndexes loc@Loc { span = span@Span { start = start@(Pos startRow startCol), end = end@(Pos _ endCol) } } = (line, toOneIndexed span, utf16Span, map') where line = slice180 end srcText (srcLine, srcText, lineCache, map) = surroundingLine src lineIndexes loc toOneIndexed (Span (Pos l1 c1) (Pos l2 c2)) = OneIndexedSpan $ Span (Pos (l1 + 1) (c1 + 1)) (Pos (l2 + 1) (c2 + 1)) utf16Span = UTF16CodeUnitSpan $ Span start {column = utf16cpStartOffset} end {column = utf16cpEndOffset} (utf16cpStartOffset, map') = countOffsetCached startSlice lineCache startCol map utf16cpEndOffset = utf16cpStartOffset + countUtf16CodeUnits endSlice countOffsetCached :: Source -> LineCache -> Int -> LineIndices -> (Int, LineIndices) countOffsetCached slice (s, t, countMap) colKey (LineIndices map) = let c = case IntMap.lookupLE colKey countMap of Just (startOffset, count) -> count + countUtf16CodeUnits (Source.slice slice (Range startOffset colKey)) Nothing -> countUtf16CodeUnits slice in (c, LineIndices $ Map.insert startRow (s, t, IntMap.insert colKey c countMap) map) -- NB: Slice out of the Source ByteString, NOT Text because Loc/Range is in units of bytes. startSlice = Source.slice srcLine (Range 0 startCol) endSlice = Source.slice srcLine (Range startCol endCol) -- NB: Important to limit to 180 characters after converting to text so as not to take in the middle of a multi-byte character. slice180 :: Pos -> Text -> Text slice180 (Pos _ end) = Text.strip . Text.take 180 . drop where drop | end > 180 = Text.drop (end - 180) | otherwise = id data Counter = Counter { _skip :: Int, unCounter :: Int } countUtf16CodeUnits :: Source -> Int countUtf16CodeUnits = unCounter . B.foldl' count (Counter 0 0) . bytes where count (Counter skip sum) !byte | skip > 0 = Counter (pred skip) sum | byte <= 0x7f = Counter 0 (1 + sum) -- takes 2 bytes (1 utf16 cu) | byte <= 0xbf = error "not valid utf8, byte <= 0xbf" | byte <= 0xdf = Counter 1 (1 + sum) -- takes 2 bytes (1 utf16 cu) | byte <= 0xef = Counter 2 (1 + sum) -- takes 2 bytes (1 utf16 cu) | byte <= 0xf7 = Counter 3 (2 + sum) -- takes 4 bytes (2 utf16 cu) | otherwise = error "not valid utf8" {-# INLINE countUtf16CodeUnits #-} -- | The Source of the entire surrounding line (cached). surroundingLine :: Source -> LineIndices -> Loc -> (Source, Text, LineCache, LineIndices) surroundingLine src li@(LineIndices map) loc@(Loc _ (Span (Pos start _) _)) = case Map.lookup start map of Just cache@(line, lineText, _) -> (line, lineText, cache, li) Nothing -> let cache = (line, lineText, mempty) in (line, lineText, cache, LineIndices (Map.insert start cache map)) where lineText = Source.toText line line = Source.slice src range range = surroundingLineRange src loc -- | The Range of the line surrounding the given location. (Takes advantage of -- the fact that we already have the row information (where newlines are) from -- tree-sitter.) surroundingLineRange :: Source -> Loc -> Range surroundingLineRange src (Loc (Range start _) (Span (Pos _ startCol) _)) = Range (start - startCol) lineEnd where lineEnd = maybe eof (start +) $ B.elemIndex lfChar remainingSource remainingSource = B.drop start (bytes src) lfChar = toEnum (ord '\n') eof = Source.length src ================================================ FILE: semantic-tags/test/Test.hs ================================================ {-# LANGUAGE OverloadedStrings #-} module Main ( main ) where import Tags.Tagging.Precise import Data.Text (Text) import Source.Source as Source import Source.Loc import Source.Span import Test.Tasty as Tasty import Test.Tasty.HUnit main :: IO () main = defaultMain $ testGroup "semantic-tags" [ testTree ] src :: Text -> Source src = Source.fromText -- | For testing calculateLineAndSpans' :: Source -> Loc -> (Text, OneIndexedSpan, UTF16CodeUnitSpan) calculateLineAndSpans' src loc = let (a, b, c, _) = calculateLineAndSpans src (LineIndices mempty) loc in (a, b, c) testTree :: Tasty.TestTree testTree = Tasty.testGroup "Tags.Tagging.Precise" [ Tasty.testGroup "countUtf16CodeUnits from utf8 encoded bytestring" [ testCase "one byte" $ do 1 @=? countUtf16CodeUnits (src "a") , testCase "null byte" $ do 1 @=? countUtf16CodeUnits (src "\0") -- NULL , testCase "two bytes" $ do 1 @=? countUtf16CodeUnits (src "\x0080") -- "€" 1 @=? countUtf16CodeUnits (src "à") , testCase "three bytes" $ do 1 @=? countUtf16CodeUnits (src "\x0800") -- "ࠀ" , testCase "four bytes" $ do 2 @=? countUtf16CodeUnits (src "𐀀") 2 @=? countUtf16CodeUnits (src "😀") , testCase "multibyte" $ do 4 @=? countUtf16CodeUnits (src "👋🏻") ] -- Range start = 13 + *num bytes in char inside ''* -- Span start col = 5 + *num bytes in char* , Tasty.testGroup "firstLineAndSpans" [ testCase "one line" $ let src = Source.fromText "def foo;end" loc = Loc (Range 4 7) (Span (Pos 0 4) (Pos 0 7)) in ( "def foo;end" , OneIndexedSpan $ Span (Pos 1 5) (Pos 1 8) -- one indexed, counting bytes , UTF16CodeUnitSpan $ Span (Pos 0 4) (Pos 0 7) -- zero-indexed, counting utf16 code units (lsp-style column offset) ) @=? calculateLineAndSpans' src loc , testCase "ascii" $ let src = Source.fromText "def foo\n 'a'.hi\nend\n" loc = Loc (Range 14 16) (Span (Pos 1 6) (Pos 1 8)) in ( "'a'.hi" , OneIndexedSpan $ Span (Pos 2 7) (Pos 2 9) -- one indexed, counting bytes , UTF16CodeUnitSpan $ Span (Pos 1 6) (Pos 1 8) -- zero-indexed, counting utf16 code units (lsp-style column offset) ) @=? calculateLineAndSpans' src loc , testCase "unicode" $ let src = Source.fromText "def foo\n 'à'.hi\nend\n" loc = Loc (Range 15 17) (Span (Pos 1 7) (Pos 1 9)) in ( "'à'.hi" , OneIndexedSpan $ Span (Pos 2 8) (Pos 2 10) -- one indexed, counting bytes , UTF16CodeUnitSpan $ Span (Pos 1 6) (Pos 1 8) -- zero-indexed, counting utf16 code units (lsp-style column offset) ) @=? calculateLineAndSpans' src loc , testCase "multi code point unicode" $ let src = Source.fromText "def foo\n '💀'.hi\nend\n" loc = Loc (Range 17 19) (Span (Pos 1 9) (Pos 1 11)) in ( "'💀'.hi" , OneIndexedSpan $ Span (Pos 2 10) (Pos 2 12) -- one indexed, counting bytes , UTF16CodeUnitSpan $ Span (Pos 1 7) (Pos 1 9) -- zero-indexed, counting utf16 code units (lsp-style column offset) ) @=? calculateLineAndSpans' src loc -- NB: This emoji (:man-woman-girl-girl:) cannot be entered into a string literal in haskell for some reason, you'll get: -- > lexical error in string/character literal at character '\8205' -- The work around is to enter the unicode directly (7 code points). -- utf-8: 25 bytes to represent -- utf-16: 23 bytes to represent , testCase "multi code point unicode :man-woman-girl-girl:" $ let src = Source.fromText "def foo\n '\128104\8205\128105\8205\128103\8205\128103'.hi\nend\n" loc = Loc (Range 38 40) (Span (Pos 1 30) (Pos 1 32)) in ( "'\128104\8205\128105\8205\128103\8205\128103'.hi" , OneIndexedSpan $ Span (Pos 2 31) (Pos 2 33) -- one indexed, counting bytes , UTF16CodeUnitSpan $ Span (Pos 1 16) (Pos 1 18) -- zero-indexed, counting utf16 code units (lsp-style column offset) ) @=? calculateLineAndSpans' src loc ] , Tasty.testGroup "slice180" [ testCase "shorter than 180 chars" $ do "def foo" @=? slice180 (Pos 0 0) "def foo" , testCase "180 chars at position 0" $ do line180chars @=? slice180 (Pos 0 0) line180chars , testCase "180 chars at position 179" $ do line180chars @=? slice180 (Pos 0 179) line180chars , testCase "240 chars at position 0" $ do line180chars @=? slice180 (Pos 0 0) line240chars , testCase "240 chars at position 179" $ do line180chars @=? slice180 (Pos 0 179) line240chars , testCase "240 chars at position 180" $ do line180chars @=? slice180 (Pos 0 180) line240chars , testCase "240 chars at position 182" $ do "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" @=? slice180 (Pos 0 182) line240chars ] ] where 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" 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" ================================================ FILE: semantic-tsx/BUILD.bazel ================================================ package(default_visibility = ["//visibility:public"]) load( "//:build/common.bzl", "semantic_language_library", "semantic_language_parsing_test", ) semantic_language_library( name = "semantic-tsx", srcs = glob(["src/**/*.hs"]), language = "tsx", nodetypes = "@tree-sitter-tsx//:vendor/tree-sitter-typescript/tsx/src/node-types.json", ts_package = "tsx", ) semantic_language_parsing_test( language = "tsx", semantic_package = "tsx", ts_package = "typescript", ) ================================================ FILE: semantic-tsx/LICENSE ================================================ MIT License Copyright (c) 2019 GitHub Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: semantic-tsx/README.md ================================================ # Semantic support for TSX This package implements `semantic` support for TSX. ================================================ FILE: semantic-tsx/Setup.hs ================================================ import Distribution.Simple main = defaultMain ================================================ FILE: semantic-tsx/semantic-tsx.cabal ================================================ cabal-version: 2.4 name: semantic-tsx version: 0.0.0.0 synopsis: Semantic support for TSX. description: Semantic support for TSX. homepage: https://github.com/github/semantic/tree/master/semantic-tsx#readme bug-reports: https://github.com/github/semantic/issues license: MIT license-file: LICENSE author: The Semantic authors maintainer: opensource+semantic@github.com copyright: (c) 2019 GitHub, Inc. category: Language build-type: Simple stability: alpha extra-source-files: README.md tested-with: GHC == 8.6.5 common haskell default-language: Haskell2010 ghc-options: -Weverything -Wno-missing-local-signatures -Wno-missing-import-lists -Wno-implicit-prelude -Wno-safe -Wno-unsafe -Wno-name-shadowing -Wno-monomorphism-restriction -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-star-is-type if (impl(ghc >= 8.8)) ghc-options: -Wno-missing-deriving-strategies if (impl(ghc >= 8.10)) ghc-options: -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module if (impl(ghc >= 9.2)) ghc-options: -Wno-missing-kind-signatures cpp-options: -DBAZEL_BUILD=0 library import: haskell exposed-modules: Language.TSX Language.TSX.AST Language.TSX.Grammar Language.TSX.Tags hs-source-dirs: src build-depends: , base >= 4.13 && < 5 , fused-effects ^>= 1.1 , semantic-ast , semantic-proto ^>= 0 , semantic-source ^>= 0.2 , semantic-tags ^>= 0.0 , template-haskell >= 2.15 && < 2.22 , text ^>= 1.2.3 , tree-sitter ^>= 0.9 , tree-sitter-tsx ^>= 0.5.0.1 test-suite test import: haskell type: exitcode-stdio-1.0 hs-source-dirs: test main-is: PreciseTest.hs build-depends: , base , semantic-ast , semantic-tsx , tasty , tree-sitter-tsx ^>= 0.5.0.1 ================================================ FILE: semantic-tsx/src/Language/TSX/AST.hs ================================================ -- Language definition for TSX, generated by ast-generate. Do not edit! {-# LANGUAGE CPP #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE QuantifiedConstraints #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} module Language.TSX.AST (module Language.TSX.AST, getTestCorpusDir) where import qualified AST.Parse import qualified AST.Token import qualified AST.Traversable1.Class import qualified AST.Unmarshal import qualified Data.Foldable import qualified Data.List as Data.OldList import qualified Data.Maybe as GHC.Maybe import qualified Data.Text.Internal import qualified Data.Traversable import qualified GHC.Base import qualified GHC.Generics import qualified GHC.Records import qualified GHC.Show import qualified TreeSitter.Node import TreeSitter.TSX (getTestCorpusDir) import qualified Prelude as GHC.Classes debugSymbolNames :: [GHC.Base.String] debugSymbolNames = debugSymbolNames_0 debugSymbolNames_0 :: [GHC.Base.String] debugSymbolNames_0 = [ "end", "identifier", "hash_bang_line", "_export", "_*", "_default", "_=", "_as", "_namespace", "_{", "_,", "_}", "_type", "_typeof", "_import", "_from", "_var", "_let", "_const", "_if", "_else", "_switch", "_for", "_(", "_)", "_await", "_in", "_of", "_while", "_do", "_try", "_with", "_break", "_continue", "_debugger", "_return", "_throw", "_;", "_:", "_case", "_catch", "_finally", "_yield", "_[", "_]", "_<", "_>", "_/", "jsx_text", "identifier", "_.", "_class", "_async", "_function", "_=>", "_new", "_+=", "_-=", "_*=", "_/=", "_%=", "_^=", "_&=", "_|=", "_>>=", "_>>>=", "_<<=", "_**=", "_...", "_?", "_&&", "_||", "_>>", "_>>>", "_<<", "_&", "_^", "_|", "_+", "_-", "_%", "_**", "_<=", "_==", "_===", "_!=", "_!==", "_>=", "_??", "_instanceof", "_!", "_~", "_void", "_delete", "_++", "_--", "_\"", "_string_token1", "_'", "_string_token2", "escape_sequence", "comment", "_`", "_${", "_/", "regex_pattern", "regex_flags", "number", "_target", "this", "super", "true", "false", "null", "undefined", "_@", "_static", "_abstract", "_get", "_set", "_declare", "_public", "_private", "_protected", "_module", "_any", "_number", "_boolean", "_string", "_symbol", "_require", "_implements", "_global", "_interface", "_extends", "_enum", "readonly", "_is", "_keyof", "_{|", "_|}", "_automatic_semicolon", "_template_chars", "program", "export_statement", "export_clause", "_import_export_specifier", "_declaration", "import", "import_statement", "import_clause", "_from_clause", "namespace_import", "named_imports", "expression_statement", "variable_declaration", "lexical_declaration", "variable_declarator", "statement_block", "if_statement", "switch_statement", "for_statement", "for_in_statement", "_for_header", "while_statement", "do_statement", "try_statement", "with_statement", "break_statement", "continue_statement", "debugger_statement", "return_statement", "throw_statement", "empty_statement", "labeled_statement", "switch_body", "switch_case", "switch_default", "catch_clause", "finally_clause", "parenthesized_expression", "_expression", "yield_expression", "object", "assignment_pattern", "array", "jsx_element", "jsx_fragment", "jsx_expression", "jsx_opening_element", "nested_identifier", "jsx_namespace_name", "jsx_closing_element", "jsx_self_closing_element", "jsx_attribute", "class", "class_declaration", "class_heritage", "function", "function_declaration", "generator_function", "generator_function_declaration", "arrow_function", "_call_signature", "call_expression", "new_expression", "await_expression", "member_expression", "subscript_expression", "assignment_expression", "augmented_assignment_expression", "_initializer", "spread_element", "ternary_expression", "binary_expression", "unary_expression", "update_expression", "sequence_expression", "string", "template_string", "template_substitution", "regex", "meta_property", "arguments", "decorator", "member_expression", "call_expression", "class_body", "public_field_definition", "formal_parameters", "rest_parameter", "method_definition", "pair", "_property_name", "computed_property_name", "non_null_expression", "method_signature", "abstract_method_signature", "function_signature", "as_expression", "import_require_clause", "implements_clause", "ambient_declaration", "abstract_class_declaration", "module", "internal_module", "_module", "import_alias", "nested_type_identifier", "interface_declaration", "extends_clause", "enum_declaration", "enum_body", "enum_assignment", "type_alias_declaration", "accessibility_modifier", "required_parameter", "optional_parameter", "_parameter_name", "type_annotation", "_type", "constructor_type", "_primary_type", "generic_type", "type_predicate", "type_query", "index_type_query", "lookup_type", "mapped_type_clause", "literal_type", "unary_expression", "existential_type", "flow_maybe_type", "parenthesized_type", "predefined_type", "type_arguments", "object_type", "call_signature", "property_signature", "type_parameters", "type_parameter", "default_type", "constraint", "construct_signature", "index_signature", "array_type", "tuple_type", "union_type", "intersection_type", "function_type", "_program_repeat1", "_export_statement_repeat1", "_export_clause_repeat1", "_named_imports_repeat1", "_variable_declaration_repeat1", "_switch_body_repeat1", "_object_repeat1", "_array_repeat1", "_jsx_element_repeat1", "_jsx_opening_element_repeat1", "_string_repeat1", "_string_repeat2", "_template_string_repeat1", "_class_body_repeat1", "_formal_parameters_repeat1", "_implements_clause_repeat1", "_extends_clause_repeat1", "_enum_body_repeat1", "_object_type_repeat1", "_type_parameters_repeat1", "array_pattern", "export_specifier", "import_specifier", "object_pattern", "property_identifier", "shorthand_property_identifier", "statement_identifier", "type_identifier" ] newtype 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)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1. AST.Traversable1.Class.Traversable1 a_1 ) instance GHC.Records.HasField "ann" (Declaration a_2) a_2 where getField = AST.Unmarshal.gann GHC.Base.. getDeclaration deriving instance GHC.Classes.Eq a_3 => GHC.Classes.Eq (Declaration a_3) deriving instance GHC.Classes.Ord a_4 => GHC.Classes.Ord (Declaration a_4) deriving instance GHC.Show.Show a_5 => GHC.Show.Show (Declaration a_5) instance AST.Unmarshal.Unmarshal Declaration instance Data.Foldable.Foldable Declaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Declaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Declaration where traverse = AST.Traversable1.Class.traverseDefault1 newtype DestructuringPattern a = DestructuringPattern {getDestructuringPattern :: ((ArrayPattern GHC.Generics.:+: ObjectPattern) a)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_6. AST.Traversable1.Class.Traversable1 a_6 ) instance GHC.Records.HasField "ann" (DestructuringPattern a_7) a_7 where getField = AST.Unmarshal.gann GHC.Base.. getDestructuringPattern deriving instance GHC.Classes.Eq a_8 => GHC.Classes.Eq (DestructuringPattern a_8) deriving instance GHC.Classes.Ord a_9 => GHC.Classes.Ord (DestructuringPattern a_9) deriving instance GHC.Show.Show a_10 => GHC.Show.Show (DestructuringPattern a_10) instance AST.Unmarshal.Unmarshal DestructuringPattern instance Data.Foldable.Foldable DestructuringPattern where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DestructuringPattern where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DestructuringPattern where traverse = AST.Traversable1.Class.traverseDefault1 newtype 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)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_11. AST.Traversable1.Class.Traversable1 a_11 ) instance GHC.Records.HasField "ann" (Expression a_12) a_12 where getField = AST.Unmarshal.gann GHC.Base.. getExpression deriving instance GHC.Classes.Eq a_13 => GHC.Classes.Eq (Expression a_13) deriving instance GHC.Classes.Ord a_14 => GHC.Classes.Ord (Expression a_14) deriving instance GHC.Show.Show a_15 => GHC.Show.Show (Expression a_15) instance AST.Unmarshal.Unmarshal Expression instance Data.Foldable.Foldable Expression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Expression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Expression where traverse = AST.Traversable1.Class.traverseDefault1 newtype 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)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_16. AST.Traversable1.Class.Traversable1 a_16 ) instance GHC.Records.HasField "ann" (Statement a_17) a_17 where getField = AST.Unmarshal.gann GHC.Base.. getStatement deriving instance GHC.Classes.Eq a_18 => GHC.Classes.Eq (Statement a_18) deriving instance GHC.Classes.Ord a_19 => GHC.Classes.Ord (Statement a_19) deriving instance GHC.Show.Show a_20 => GHC.Show.Show (Statement a_20) instance AST.Unmarshal.Unmarshal Statement instance Data.Foldable.Foldable Statement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Statement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Statement where traverse = AST.Traversable1.Class.traverseDefault1 data AbstractClassDeclaration a = AbstractClassDeclaration { ann :: a, body :: (AST.Parse.Err (ClassBody a)), name :: (AST.Parse.Err (TypeIdentifier a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ClassHeritage a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_21. AST.Traversable1.Class.Traversable1 a_21 ) instance AST.Unmarshal.SymbolMatching AbstractClassDeclaration where matchedSymbols _ = [243] showFailure _ node_22 = "expected " GHC.Base.<> ( "abstract_class_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_22 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_23 c1_24 = TreeSitter.Node.nodeStartPoint node_22 TreeSitter.Node.TSPoint r2_25 c2_26 = TreeSitter.Node.nodeEndPoint node_22 deriving instance GHC.Classes.Eq a_27 => GHC.Classes.Eq (AbstractClassDeclaration a_27) deriving instance GHC.Classes.Ord a_28 => GHC.Classes.Ord (AbstractClassDeclaration a_28) deriving instance GHC.Show.Show a_29 => GHC.Show.Show (AbstractClassDeclaration a_29) instance AST.Unmarshal.Unmarshal AbstractClassDeclaration instance Data.Foldable.Foldable AbstractClassDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AbstractClassDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AbstractClassDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data AbstractMethodSignature a = AbstractMethodSignature { ann :: a, returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))), name :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)), parameters :: (AST.Parse.Err (FormalParameters a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (AccessibilityModifier a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_30. AST.Traversable1.Class.Traversable1 a_30 ) instance AST.Unmarshal.SymbolMatching AbstractMethodSignature where matchedSymbols _ = [237] showFailure _ node_31 = "expected " GHC.Base.<> ( "abstract_method_signature" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_31 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_32 c1_33 = TreeSitter.Node.nodeStartPoint node_31 TreeSitter.Node.TSPoint r2_34 c2_35 = TreeSitter.Node.nodeEndPoint node_31 deriving instance GHC.Classes.Eq a_36 => GHC.Classes.Eq (AbstractMethodSignature a_36) deriving instance GHC.Classes.Ord a_37 => GHC.Classes.Ord (AbstractMethodSignature a_37) deriving instance GHC.Show.Show a_38 => GHC.Show.Show (AbstractMethodSignature a_38) instance AST.Unmarshal.Unmarshal AbstractMethodSignature instance Data.Foldable.Foldable AbstractMethodSignature where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AbstractMethodSignature where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AbstractMethodSignature where traverse = AST.Traversable1.Class.traverseDefault1 data AccessibilityModifier a = AccessibilityModifier {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_39. AST.Traversable1.Class.Traversable1 a_39 ) instance AST.Unmarshal.SymbolMatching AccessibilityModifier where matchedSymbols _ = [255] showFailure _ node_40 = "expected " GHC.Base.<> ( "accessibility_modifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_40 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_41 c1_42 = TreeSitter.Node.nodeStartPoint node_40 TreeSitter.Node.TSPoint r2_43 c2_44 = TreeSitter.Node.nodeEndPoint node_40 deriving instance GHC.Classes.Eq a_45 => GHC.Classes.Eq (AccessibilityModifier a_45) deriving instance GHC.Classes.Ord a_46 => GHC.Classes.Ord (AccessibilityModifier a_46) deriving instance GHC.Show.Show a_47 => GHC.Show.Show (AccessibilityModifier a_47) instance AST.Unmarshal.Unmarshal AccessibilityModifier instance Data.Foldable.Foldable AccessibilityModifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AccessibilityModifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AccessibilityModifier where traverse = AST.Traversable1.Class.traverseDefault1 data AmbientDeclaration a = AmbientDeclaration { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_48. AST.Traversable1.Class.Traversable1 a_48 ) instance AST.Unmarshal.SymbolMatching AmbientDeclaration where matchedSymbols _ = [242] showFailure _ node_49 = "expected " GHC.Base.<> ( "ambient_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_49 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_50 c1_51 = TreeSitter.Node.nodeStartPoint node_49 TreeSitter.Node.TSPoint r2_52 c2_53 = TreeSitter.Node.nodeEndPoint node_49 deriving instance GHC.Classes.Eq a_54 => GHC.Classes.Eq (AmbientDeclaration a_54) deriving instance GHC.Classes.Ord a_55 => GHC.Classes.Ord (AmbientDeclaration a_55) deriving instance GHC.Show.Show a_56 => GHC.Show.Show (AmbientDeclaration a_56) instance AST.Unmarshal.Unmarshal AmbientDeclaration instance Data.Foldable.Foldable AmbientDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AmbientDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AmbientDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data Arguments a = Arguments { ann :: a, extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: SpreadElement) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_57. AST.Traversable1.Class.Traversable1 a_57 ) instance AST.Unmarshal.SymbolMatching Arguments where matchedSymbols _ = [223] showFailure _ node_58 = "expected " GHC.Base.<> ( "arguments" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_58 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_59 c1_60 = TreeSitter.Node.nodeStartPoint node_58 TreeSitter.Node.TSPoint r2_61 c2_62 = TreeSitter.Node.nodeEndPoint node_58 deriving instance GHC.Classes.Eq a_63 => GHC.Classes.Eq (Arguments a_63) deriving instance GHC.Classes.Ord a_64 => GHC.Classes.Ord (Arguments a_64) deriving instance GHC.Show.Show a_65 => GHC.Show.Show (Arguments a_65) instance AST.Unmarshal.Unmarshal Arguments instance Data.Foldable.Foldable Arguments where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Arguments where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Arguments where traverse = AST.Traversable1.Class.traverseDefault1 data Array a = Array { ann :: a, extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: SpreadElement) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_66. AST.Traversable1.Class.Traversable1 a_66 ) instance AST.Unmarshal.SymbolMatching Array where matchedSymbols _ = [185] showFailure _ node_67 = "expected " GHC.Base.<> ( "array" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_67 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_68 c1_69 = TreeSitter.Node.nodeStartPoint node_67 TreeSitter.Node.TSPoint r2_70 c2_71 = TreeSitter.Node.nodeEndPoint node_67 deriving instance GHC.Classes.Eq a_72 => GHC.Classes.Eq (Array a_72) deriving instance GHC.Classes.Ord a_73 => GHC.Classes.Ord (Array a_73) deriving instance GHC.Show.Show a_74 => GHC.Show.Show (Array a_74) instance AST.Unmarshal.Unmarshal Array instance Data.Foldable.Foldable Array where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Array where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Array where traverse = AST.Traversable1.Class.traverseDefault1 data ArrayPattern a = ArrayPattern { ann :: a, extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: SpreadElement) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_75. AST.Traversable1.Class.Traversable1 a_75 ) instance AST.Unmarshal.SymbolMatching ArrayPattern where matchedSymbols _ = [310] showFailure _ node_76 = "expected " GHC.Base.<> ( "array_pattern" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_76 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_77 c1_78 = TreeSitter.Node.nodeStartPoint node_76 TreeSitter.Node.TSPoint r2_79 c2_80 = TreeSitter.Node.nodeEndPoint node_76 deriving instance GHC.Classes.Eq a_81 => GHC.Classes.Eq (ArrayPattern a_81) deriving instance GHC.Classes.Ord a_82 => GHC.Classes.Ord (ArrayPattern a_82) deriving instance GHC.Show.Show a_83 => GHC.Show.Show (ArrayPattern a_83) instance AST.Unmarshal.Unmarshal ArrayPattern instance Data.Foldable.Foldable ArrayPattern where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ArrayPattern where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ArrayPattern where traverse = AST.Traversable1.Class.traverseDefault1 data ArrayType a = ArrayType { ann :: a, 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_84. AST.Traversable1.Class.Traversable1 a_84 ) instance AST.Unmarshal.SymbolMatching ArrayType where matchedSymbols _ = [285] showFailure _ node_85 = "expected " GHC.Base.<> ( "array_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_85 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_86 c1_87 = TreeSitter.Node.nodeStartPoint node_85 TreeSitter.Node.TSPoint r2_88 c2_89 = TreeSitter.Node.nodeEndPoint node_85 deriving instance GHC.Classes.Eq a_90 => GHC.Classes.Eq (ArrayType a_90) deriving instance GHC.Classes.Ord a_91 => GHC.Classes.Ord (ArrayType a_91) deriving instance GHC.Show.Show a_92 => GHC.Show.Show (ArrayType a_92) instance AST.Unmarshal.Unmarshal ArrayType instance Data.Foldable.Foldable ArrayType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ArrayType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ArrayType where traverse = AST.Traversable1.Class.traverseDefault1 data ArrowFunction a = ArrowFunction { ann :: a, returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))), body :: (AST.Parse.Err ((Expression GHC.Generics.:+: StatementBlock) a)), parameters :: (GHC.Maybe.Maybe (AST.Parse.Err (FormalParameters a))), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))), parameter :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_93. AST.Traversable1.Class.Traversable1 a_93 ) instance AST.Unmarshal.SymbolMatching ArrowFunction where matchedSymbols _ = [202] showFailure _ node_94 = "expected " GHC.Base.<> ( "arrow_function" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_94 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_95 c1_96 = TreeSitter.Node.nodeStartPoint node_94 TreeSitter.Node.TSPoint r2_97 c2_98 = TreeSitter.Node.nodeEndPoint node_94 deriving instance GHC.Classes.Eq a_99 => GHC.Classes.Eq (ArrowFunction a_99) deriving instance GHC.Classes.Ord a_100 => GHC.Classes.Ord (ArrowFunction a_100) deriving instance GHC.Show.Show a_101 => GHC.Show.Show (ArrowFunction a_101) instance AST.Unmarshal.Unmarshal ArrowFunction instance Data.Foldable.Foldable ArrowFunction where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ArrowFunction where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ArrowFunction where traverse = AST.Traversable1.Class.traverseDefault1 data AsExpression a = AsExpression { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_102. AST.Traversable1.Class.Traversable1 a_102 ) instance AST.Unmarshal.SymbolMatching AsExpression where matchedSymbols _ = [239] showFailure _ node_103 = "expected " GHC.Base.<> ( "as_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_103 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_104 c1_105 = TreeSitter.Node.nodeStartPoint node_103 TreeSitter.Node.TSPoint r2_106 c2_107 = TreeSitter.Node.nodeEndPoint node_103 deriving instance GHC.Classes.Eq a_108 => GHC.Classes.Eq (AsExpression a_108) deriving instance GHC.Classes.Ord a_109 => GHC.Classes.Ord (AsExpression a_109) deriving instance GHC.Show.Show a_110 => GHC.Show.Show (AsExpression a_110) instance AST.Unmarshal.Unmarshal AsExpression instance Data.Foldable.Foldable AsExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AsExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AsExpression where traverse = AST.Traversable1.Class.traverseDefault1 data AssignmentExpression a = AssignmentExpression { ann :: a, left :: (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: Identifier GHC.Generics.:+: MemberExpression GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: SubscriptExpression) a)), right :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_111. AST.Traversable1.Class.Traversable1 a_111 ) instance AST.Unmarshal.SymbolMatching AssignmentExpression where matchedSymbols _ = [209] showFailure _ node_112 = "expected " GHC.Base.<> ( "assignment_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_112 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_113 c1_114 = TreeSitter.Node.nodeStartPoint node_112 TreeSitter.Node.TSPoint r2_115 c2_116 = TreeSitter.Node.nodeEndPoint node_112 deriving instance GHC.Classes.Eq a_117 => GHC.Classes.Eq (AssignmentExpression a_117) deriving instance GHC.Classes.Ord a_118 => GHC.Classes.Ord (AssignmentExpression a_118) deriving instance GHC.Show.Show a_119 => GHC.Show.Show (AssignmentExpression a_119) instance AST.Unmarshal.Unmarshal AssignmentExpression instance Data.Foldable.Foldable AssignmentExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AssignmentExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AssignmentExpression where traverse = AST.Traversable1.Class.traverseDefault1 data AssignmentPattern a = AssignmentPattern { ann :: a, left :: (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: ShorthandPropertyIdentifier) a)), right :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_120. AST.Traversable1.Class.Traversable1 a_120 ) instance AST.Unmarshal.SymbolMatching AssignmentPattern where matchedSymbols _ = [184] showFailure _ node_121 = "expected " GHC.Base.<> ( "assignment_pattern" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_121 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_122 c1_123 = TreeSitter.Node.nodeStartPoint node_121 TreeSitter.Node.TSPoint r2_124 c2_125 = TreeSitter.Node.nodeEndPoint node_121 deriving instance GHC.Classes.Eq a_126 => GHC.Classes.Eq (AssignmentPattern a_126) deriving instance GHC.Classes.Ord a_127 => GHC.Classes.Ord (AssignmentPattern a_127) deriving instance GHC.Show.Show a_128 => GHC.Show.Show (AssignmentPattern a_128) instance AST.Unmarshal.Unmarshal AssignmentPattern instance Data.Foldable.Foldable AssignmentPattern where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AssignmentPattern where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AssignmentPattern where traverse = AST.Traversable1.Class.traverseDefault1 data AugmentedAssignmentExpression a = AugmentedAssignmentExpression { ann :: a, left :: (AST.Parse.Err ((Identifier GHC.Generics.:+: MemberExpression GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: SubscriptExpression) a)), right :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_129. AST.Traversable1.Class.Traversable1 a_129 ) instance AST.Unmarshal.SymbolMatching AugmentedAssignmentExpression where matchedSymbols _ = [210] showFailure _ node_130 = "expected " GHC.Base.<> ( "augmented_assignment_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_130 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_131 c1_132 = TreeSitter.Node.nodeStartPoint node_130 TreeSitter.Node.TSPoint r2_133 c2_134 = TreeSitter.Node.nodeEndPoint node_130 deriving instance GHC.Classes.Eq a_135 => GHC.Classes.Eq (AugmentedAssignmentExpression a_135) deriving instance GHC.Classes.Ord a_136 => GHC.Classes.Ord (AugmentedAssignmentExpression a_136) deriving instance GHC.Show.Show a_137 => GHC.Show.Show (AugmentedAssignmentExpression a_137) instance AST.Unmarshal.Unmarshal AugmentedAssignmentExpression instance Data.Foldable.Foldable AugmentedAssignmentExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AugmentedAssignmentExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AugmentedAssignmentExpression where traverse = AST.Traversable1.Class.traverseDefault1 data AwaitExpression a = AwaitExpression { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_138. AST.Traversable1.Class.Traversable1 a_138 ) instance AST.Unmarshal.SymbolMatching AwaitExpression where matchedSymbols _ = [206] showFailure _ node_139 = "expected " GHC.Base.<> ( "await_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_139 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_140 c1_141 = TreeSitter.Node.nodeStartPoint node_139 TreeSitter.Node.TSPoint r2_142 c2_143 = TreeSitter.Node.nodeEndPoint node_139 deriving instance GHC.Classes.Eq a_144 => GHC.Classes.Eq (AwaitExpression a_144) deriving instance GHC.Classes.Ord a_145 => GHC.Classes.Ord (AwaitExpression a_145) deriving instance GHC.Show.Show a_146 => GHC.Show.Show (AwaitExpression a_146) instance AST.Unmarshal.Unmarshal AwaitExpression instance Data.Foldable.Foldable AwaitExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AwaitExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AwaitExpression where traverse = AST.Traversable1.Class.traverseDefault1 data BinaryExpression a = BinaryExpression { ann :: a, 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)), left :: (AST.Parse.Err (Expression a)), right :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_147. AST.Traversable1.Class.Traversable1 a_147 ) instance AST.Unmarshal.SymbolMatching BinaryExpression where matchedSymbols _ = [214] showFailure _ node_148 = "expected " GHC.Base.<> ( "binary_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_148 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_149 c1_150 = TreeSitter.Node.nodeStartPoint node_148 TreeSitter.Node.TSPoint r2_151 c2_152 = TreeSitter.Node.nodeEndPoint node_148 deriving instance GHC.Classes.Eq a_153 => GHC.Classes.Eq (BinaryExpression a_153) deriving instance GHC.Classes.Ord a_154 => GHC.Classes.Ord (BinaryExpression a_154) deriving instance GHC.Show.Show a_155 => GHC.Show.Show (BinaryExpression a_155) instance AST.Unmarshal.Unmarshal BinaryExpression instance Data.Foldable.Foldable BinaryExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor BinaryExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable BinaryExpression where traverse = AST.Traversable1.Class.traverseDefault1 data BreakStatement a = BreakStatement { ann :: a, label :: (GHC.Maybe.Maybe (AST.Parse.Err (StatementIdentifier a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_156. AST.Traversable1.Class.Traversable1 a_156 ) instance AST.Unmarshal.SymbolMatching BreakStatement where matchedSymbols _ = [168] showFailure _ node_157 = "expected " GHC.Base.<> ( "break_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_157 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_158 c1_159 = TreeSitter.Node.nodeStartPoint node_157 TreeSitter.Node.TSPoint r2_160 c2_161 = TreeSitter.Node.nodeEndPoint node_157 deriving instance GHC.Classes.Eq a_162 => GHC.Classes.Eq (BreakStatement a_162) deriving instance GHC.Classes.Ord a_163 => GHC.Classes.Ord (BreakStatement a_163) deriving instance GHC.Show.Show a_164 => GHC.Show.Show (BreakStatement a_164) instance AST.Unmarshal.Unmarshal BreakStatement instance Data.Foldable.Foldable BreakStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor BreakStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable BreakStatement where traverse = AST.Traversable1.Class.traverseDefault1 data CallExpression a = CallExpression { ann :: a, function :: (AST.Parse.Err (Expression a)), arguments :: (AST.Parse.Err ((Arguments GHC.Generics.:+: TemplateString) a)), typeArguments :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeArguments a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_165. AST.Traversable1.Class.Traversable1 a_165 ) instance AST.Unmarshal.SymbolMatching CallExpression where matchedSymbols _ = [204, 226] showFailure _ node_166 = "expected " GHC.Base.<> ( "call_expression, call_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_166 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_167 c1_168 = TreeSitter.Node.nodeStartPoint node_166 TreeSitter.Node.TSPoint r2_169 c2_170 = TreeSitter.Node.nodeEndPoint node_166 deriving instance GHC.Classes.Eq a_171 => GHC.Classes.Eq (CallExpression a_171) deriving instance GHC.Classes.Ord a_172 => GHC.Classes.Ord (CallExpression a_172) deriving instance GHC.Show.Show a_173 => GHC.Show.Show (CallExpression a_173) instance AST.Unmarshal.Unmarshal CallExpression instance Data.Foldable.Foldable CallExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor CallExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable CallExpression where traverse = AST.Traversable1.Class.traverseDefault1 data CallSignature a = CallSignature { ann :: a, returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))), parameters :: (AST.Parse.Err (FormalParameters a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_174. AST.Traversable1.Class.Traversable1 a_174 ) instance AST.Unmarshal.SymbolMatching CallSignature where matchedSymbols _ = [277] showFailure _ node_175 = "expected " GHC.Base.<> ( "call_signature" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_175 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_176 c1_177 = TreeSitter.Node.nodeStartPoint node_175 TreeSitter.Node.TSPoint r2_178 c2_179 = TreeSitter.Node.nodeEndPoint node_175 deriving instance GHC.Classes.Eq a_180 => GHC.Classes.Eq (CallSignature a_180) deriving instance GHC.Classes.Ord a_181 => GHC.Classes.Ord (CallSignature a_181) deriving instance GHC.Show.Show a_182 => GHC.Show.Show (CallSignature a_182) instance AST.Unmarshal.Unmarshal CallSignature instance Data.Foldable.Foldable CallSignature where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor CallSignature where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable CallSignature where traverse = AST.Traversable1.Class.traverseDefault1 data CatchClause a = CatchClause { ann :: a, body :: (AST.Parse.Err (StatementBlock a)), parameter :: (GHC.Maybe.Maybe (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: Identifier) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_183. AST.Traversable1.Class.Traversable1 a_183 ) instance AST.Unmarshal.SymbolMatching CatchClause where matchedSymbols _ = [178] showFailure _ node_184 = "expected " GHC.Base.<> ( "catch_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_184 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_185 c1_186 = TreeSitter.Node.nodeStartPoint node_184 TreeSitter.Node.TSPoint r2_187 c2_188 = TreeSitter.Node.nodeEndPoint node_184 deriving instance GHC.Classes.Eq a_189 => GHC.Classes.Eq (CatchClause a_189) deriving instance GHC.Classes.Ord a_190 => GHC.Classes.Ord (CatchClause a_190) deriving instance GHC.Show.Show a_191 => GHC.Show.Show (CatchClause a_191) instance AST.Unmarshal.Unmarshal CatchClause instance Data.Foldable.Foldable CatchClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor CatchClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable CatchClause where traverse = AST.Traversable1.Class.traverseDefault1 data Class a = Class { ann :: a, decorator :: ([AST.Parse.Err (Decorator a)]), body :: (AST.Parse.Err (ClassBody a)), name :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeIdentifier a))), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ClassHeritage a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_192. AST.Traversable1.Class.Traversable1 a_192 ) instance AST.Unmarshal.SymbolMatching Class where matchedSymbols _ = [195] showFailure _ node_193 = "expected " GHC.Base.<> ( "class" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_193 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_194 c1_195 = TreeSitter.Node.nodeStartPoint node_193 TreeSitter.Node.TSPoint r2_196 c2_197 = TreeSitter.Node.nodeEndPoint node_193 deriving instance GHC.Classes.Eq a_198 => GHC.Classes.Eq (Class a_198) deriving instance GHC.Classes.Ord a_199 => GHC.Classes.Ord (Class a_199) deriving instance GHC.Show.Show a_200 => GHC.Show.Show (Class a_200) instance AST.Unmarshal.Unmarshal Class instance Data.Foldable.Foldable Class where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Class where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Class where traverse = AST.Traversable1.Class.traverseDefault1 data ClassBody a = ClassBody { ann :: a, extraChildren :: ([AST.Parse.Err ((AbstractMethodSignature GHC.Generics.:+: Decorator GHC.Generics.:+: IndexSignature GHC.Generics.:+: MethodDefinition GHC.Generics.:+: MethodSignature GHC.Generics.:+: PublicFieldDefinition) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_201. AST.Traversable1.Class.Traversable1 a_201 ) instance AST.Unmarshal.SymbolMatching ClassBody where matchedSymbols _ = [227] showFailure _ node_202 = "expected " GHC.Base.<> ( "class_body" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_202 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_203 c1_204 = TreeSitter.Node.nodeStartPoint node_202 TreeSitter.Node.TSPoint r2_205 c2_206 = TreeSitter.Node.nodeEndPoint node_202 deriving instance GHC.Classes.Eq a_207 => GHC.Classes.Eq (ClassBody a_207) deriving instance GHC.Classes.Ord a_208 => GHC.Classes.Ord (ClassBody a_208) deriving instance GHC.Show.Show a_209 => GHC.Show.Show (ClassBody a_209) instance AST.Unmarshal.Unmarshal ClassBody instance Data.Foldable.Foldable ClassBody where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ClassBody where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ClassBody where traverse = AST.Traversable1.Class.traverseDefault1 data ClassDeclaration a = ClassDeclaration { ann :: a, decorator :: ([AST.Parse.Err (Decorator a)]), body :: (AST.Parse.Err (ClassBody a)), name :: (AST.Parse.Err (TypeIdentifier a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ClassHeritage a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_210. AST.Traversable1.Class.Traversable1 a_210 ) instance AST.Unmarshal.SymbolMatching ClassDeclaration where matchedSymbols _ = [196] showFailure _ node_211 = "expected " GHC.Base.<> ( "class_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_211 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_212 c1_213 = TreeSitter.Node.nodeStartPoint node_211 TreeSitter.Node.TSPoint r2_214 c2_215 = TreeSitter.Node.nodeEndPoint node_211 deriving instance GHC.Classes.Eq a_216 => GHC.Classes.Eq (ClassDeclaration a_216) deriving instance GHC.Classes.Ord a_217 => GHC.Classes.Ord (ClassDeclaration a_217) deriving instance GHC.Show.Show a_218 => GHC.Show.Show (ClassDeclaration a_218) instance AST.Unmarshal.Unmarshal ClassDeclaration instance Data.Foldable.Foldable ClassDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ClassDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ClassDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data ClassHeritage a = ClassHeritage { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ExtendsClause GHC.Generics.:+: ImplementsClause) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_219. AST.Traversable1.Class.Traversable1 a_219 ) instance AST.Unmarshal.SymbolMatching ClassHeritage where matchedSymbols _ = [197] showFailure _ node_220 = "expected " GHC.Base.<> ( "class_heritage" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_220 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_221 c1_222 = TreeSitter.Node.nodeStartPoint node_220 TreeSitter.Node.TSPoint r2_223 c2_224 = TreeSitter.Node.nodeEndPoint node_220 deriving instance GHC.Classes.Eq a_225 => GHC.Classes.Eq (ClassHeritage a_225) deriving instance GHC.Classes.Ord a_226 => GHC.Classes.Ord (ClassHeritage a_226) deriving instance GHC.Show.Show a_227 => GHC.Show.Show (ClassHeritage a_227) instance AST.Unmarshal.Unmarshal ClassHeritage instance Data.Foldable.Foldable ClassHeritage where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ClassHeritage where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ClassHeritage where traverse = AST.Traversable1.Class.traverseDefault1 data ComputedPropertyName a = ComputedPropertyName { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_228. AST.Traversable1.Class.Traversable1 a_228 ) instance AST.Unmarshal.SymbolMatching ComputedPropertyName where matchedSymbols _ = [234] showFailure _ node_229 = "expected " GHC.Base.<> ( "computed_property_name" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_229 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_230 c1_231 = TreeSitter.Node.nodeStartPoint node_229 TreeSitter.Node.TSPoint r2_232 c2_233 = TreeSitter.Node.nodeEndPoint node_229 deriving instance GHC.Classes.Eq a_234 => GHC.Classes.Eq (ComputedPropertyName a_234) deriving instance GHC.Classes.Ord a_235 => GHC.Classes.Ord (ComputedPropertyName a_235) deriving instance GHC.Show.Show a_236 => GHC.Show.Show (ComputedPropertyName a_236) instance AST.Unmarshal.Unmarshal ComputedPropertyName instance Data.Foldable.Foldable ComputedPropertyName where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ComputedPropertyName where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ComputedPropertyName where traverse = AST.Traversable1.Class.traverseDefault1 data Constraint a = Constraint { ann :: a, 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_237. AST.Traversable1.Class.Traversable1 a_237 ) instance AST.Unmarshal.SymbolMatching Constraint where matchedSymbols _ = [282] showFailure _ node_238 = "expected " GHC.Base.<> ( "constraint" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_238 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_239 c1_240 = TreeSitter.Node.nodeStartPoint node_238 TreeSitter.Node.TSPoint r2_241 c2_242 = TreeSitter.Node.nodeEndPoint node_238 deriving instance GHC.Classes.Eq a_243 => GHC.Classes.Eq (Constraint a_243) deriving instance GHC.Classes.Ord a_244 => GHC.Classes.Ord (Constraint a_244) deriving instance GHC.Show.Show a_245 => GHC.Show.Show (Constraint a_245) instance AST.Unmarshal.Unmarshal Constraint instance Data.Foldable.Foldable Constraint where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Constraint where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Constraint where traverse = AST.Traversable1.Class.traverseDefault1 data ConstructSignature a = ConstructSignature { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((FormalParameters GHC.Generics.:+: TypeAnnotation GHC.Generics.:+: TypeParameters) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_246. AST.Traversable1.Class.Traversable1 a_246 ) instance AST.Unmarshal.SymbolMatching ConstructSignature where matchedSymbols _ = [283] showFailure _ node_247 = "expected " GHC.Base.<> ( "construct_signature" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_247 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_248 c1_249 = TreeSitter.Node.nodeStartPoint node_247 TreeSitter.Node.TSPoint r2_250 c2_251 = TreeSitter.Node.nodeEndPoint node_247 deriving instance GHC.Classes.Eq a_252 => GHC.Classes.Eq (ConstructSignature a_252) deriving instance GHC.Classes.Ord a_253 => GHC.Classes.Ord (ConstructSignature a_253) deriving instance GHC.Show.Show a_254 => GHC.Show.Show (ConstructSignature a_254) instance AST.Unmarshal.Unmarshal ConstructSignature instance Data.Foldable.Foldable ConstructSignature where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ConstructSignature where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ConstructSignature where traverse = AST.Traversable1.Class.traverseDefault1 data ConstructorType a = ConstructorType { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_255. AST.Traversable1.Class.Traversable1 a_255 ) instance AST.Unmarshal.SymbolMatching ConstructorType where matchedSymbols _ = [261] showFailure _ node_256 = "expected " GHC.Base.<> ( "constructor_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_256 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_257 c1_258 = TreeSitter.Node.nodeStartPoint node_256 TreeSitter.Node.TSPoint r2_259 c2_260 = TreeSitter.Node.nodeEndPoint node_256 deriving instance GHC.Classes.Eq a_261 => GHC.Classes.Eq (ConstructorType a_261) deriving instance GHC.Classes.Ord a_262 => GHC.Classes.Ord (ConstructorType a_262) deriving instance GHC.Show.Show a_263 => GHC.Show.Show (ConstructorType a_263) instance AST.Unmarshal.Unmarshal ConstructorType instance Data.Foldable.Foldable ConstructorType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ConstructorType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ConstructorType where traverse = AST.Traversable1.Class.traverseDefault1 data ContinueStatement a = ContinueStatement { ann :: a, label :: (GHC.Maybe.Maybe (AST.Parse.Err (StatementIdentifier a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_264. AST.Traversable1.Class.Traversable1 a_264 ) instance AST.Unmarshal.SymbolMatching ContinueStatement where matchedSymbols _ = [169] showFailure _ node_265 = "expected " GHC.Base.<> ( "continue_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_265 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_266 c1_267 = TreeSitter.Node.nodeStartPoint node_265 TreeSitter.Node.TSPoint r2_268 c2_269 = TreeSitter.Node.nodeEndPoint node_265 deriving instance GHC.Classes.Eq a_270 => GHC.Classes.Eq (ContinueStatement a_270) deriving instance GHC.Classes.Ord a_271 => GHC.Classes.Ord (ContinueStatement a_271) deriving instance GHC.Show.Show a_272 => GHC.Show.Show (ContinueStatement a_272) instance AST.Unmarshal.Unmarshal ContinueStatement instance Data.Foldable.Foldable ContinueStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ContinueStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ContinueStatement where traverse = AST.Traversable1.Class.traverseDefault1 data DebuggerStatement a = DebuggerStatement {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_273. AST.Traversable1.Class.Traversable1 a_273 ) instance AST.Unmarshal.SymbolMatching DebuggerStatement where matchedSymbols _ = [170] showFailure _ node_274 = "expected " GHC.Base.<> ( "debugger_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_274 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_275 c1_276 = TreeSitter.Node.nodeStartPoint node_274 TreeSitter.Node.TSPoint r2_277 c2_278 = TreeSitter.Node.nodeEndPoint node_274 deriving instance GHC.Classes.Eq a_279 => GHC.Classes.Eq (DebuggerStatement a_279) deriving instance GHC.Classes.Ord a_280 => GHC.Classes.Ord (DebuggerStatement a_280) deriving instance GHC.Show.Show a_281 => GHC.Show.Show (DebuggerStatement a_281) instance AST.Unmarshal.Unmarshal DebuggerStatement instance Data.Foldable.Foldable DebuggerStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DebuggerStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DebuggerStatement where traverse = AST.Traversable1.Class.traverseDefault1 data Decorator a = Decorator { ann :: a, extraChildren :: (AST.Parse.Err ((CallExpression GHC.Generics.:+: Identifier GHC.Generics.:+: MemberExpression) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_282. AST.Traversable1.Class.Traversable1 a_282 ) instance AST.Unmarshal.SymbolMatching Decorator where matchedSymbols _ = [224] showFailure _ node_283 = "expected " GHC.Base.<> ( "decorator" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_283 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_284 c1_285 = TreeSitter.Node.nodeStartPoint node_283 TreeSitter.Node.TSPoint r2_286 c2_287 = TreeSitter.Node.nodeEndPoint node_283 deriving instance GHC.Classes.Eq a_288 => GHC.Classes.Eq (Decorator a_288) deriving instance GHC.Classes.Ord a_289 => GHC.Classes.Ord (Decorator a_289) deriving instance GHC.Show.Show a_290 => GHC.Show.Show (Decorator a_290) instance AST.Unmarshal.Unmarshal Decorator instance Data.Foldable.Foldable Decorator where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Decorator where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Decorator where traverse = AST.Traversable1.Class.traverseDefault1 data DefaultType a = DefaultType { ann :: a, 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_291. AST.Traversable1.Class.Traversable1 a_291 ) instance AST.Unmarshal.SymbolMatching DefaultType where matchedSymbols _ = [281] showFailure _ node_292 = "expected " GHC.Base.<> ( "default_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_292 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_293 c1_294 = TreeSitter.Node.nodeStartPoint node_292 TreeSitter.Node.TSPoint r2_295 c2_296 = TreeSitter.Node.nodeEndPoint node_292 deriving instance GHC.Classes.Eq a_297 => GHC.Classes.Eq (DefaultType a_297) deriving instance GHC.Classes.Ord a_298 => GHC.Classes.Ord (DefaultType a_298) deriving instance GHC.Show.Show a_299 => GHC.Show.Show (DefaultType a_299) instance AST.Unmarshal.Unmarshal DefaultType instance Data.Foldable.Foldable DefaultType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DefaultType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DefaultType where traverse = AST.Traversable1.Class.traverseDefault1 data DoStatement a = DoStatement { ann :: a, body :: (AST.Parse.Err (Statement a)), condition :: (AST.Parse.Err (ParenthesizedExpression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_300. AST.Traversable1.Class.Traversable1 a_300 ) instance AST.Unmarshal.SymbolMatching DoStatement where matchedSymbols _ = [165] showFailure _ node_301 = "expected " GHC.Base.<> ( "do_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_301 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_302 c1_303 = TreeSitter.Node.nodeStartPoint node_301 TreeSitter.Node.TSPoint r2_304 c2_305 = TreeSitter.Node.nodeEndPoint node_301 deriving instance GHC.Classes.Eq a_306 => GHC.Classes.Eq (DoStatement a_306) deriving instance GHC.Classes.Ord a_307 => GHC.Classes.Ord (DoStatement a_307) deriving instance GHC.Show.Show a_308 => GHC.Show.Show (DoStatement a_308) instance AST.Unmarshal.Unmarshal DoStatement instance Data.Foldable.Foldable DoStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DoStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DoStatement where traverse = AST.Traversable1.Class.traverseDefault1 data EmptyStatement a = EmptyStatement {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_309. AST.Traversable1.Class.Traversable1 a_309 ) instance AST.Unmarshal.SymbolMatching EmptyStatement where matchedSymbols _ = [173] showFailure _ node_310 = "expected " GHC.Base.<> ( "empty_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_310 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_311 c1_312 = TreeSitter.Node.nodeStartPoint node_310 TreeSitter.Node.TSPoint r2_313 c2_314 = TreeSitter.Node.nodeEndPoint node_310 deriving instance GHC.Classes.Eq a_315 => GHC.Classes.Eq (EmptyStatement a_315) deriving instance GHC.Classes.Ord a_316 => GHC.Classes.Ord (EmptyStatement a_316) deriving instance GHC.Show.Show a_317 => GHC.Show.Show (EmptyStatement a_317) instance AST.Unmarshal.Unmarshal EmptyStatement instance Data.Foldable.Foldable EmptyStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor EmptyStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable EmptyStatement where traverse = AST.Traversable1.Class.traverseDefault1 data EnumAssignment a = EnumAssignment { ann :: a, value :: (AST.Parse.Err (Expression a)), extraChildren :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_318. AST.Traversable1.Class.Traversable1 a_318 ) instance AST.Unmarshal.SymbolMatching EnumAssignment where matchedSymbols _ = [253] showFailure _ node_319 = "expected " GHC.Base.<> ( "enum_assignment" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_319 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_320 c1_321 = TreeSitter.Node.nodeStartPoint node_319 TreeSitter.Node.TSPoint r2_322 c2_323 = TreeSitter.Node.nodeEndPoint node_319 deriving instance GHC.Classes.Eq a_324 => GHC.Classes.Eq (EnumAssignment a_324) deriving instance GHC.Classes.Ord a_325 => GHC.Classes.Ord (EnumAssignment a_325) deriving instance GHC.Show.Show a_326 => GHC.Show.Show (EnumAssignment a_326) instance AST.Unmarshal.Unmarshal EnumAssignment instance Data.Foldable.Foldable EnumAssignment where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor EnumAssignment where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable EnumAssignment where traverse = AST.Traversable1.Class.traverseDefault1 data EnumBody a = EnumBody { ann :: a, extraChildren :: ([AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: EnumAssignment GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_327. AST.Traversable1.Class.Traversable1 a_327 ) instance AST.Unmarshal.SymbolMatching EnumBody where matchedSymbols _ = [252] showFailure _ node_328 = "expected " GHC.Base.<> ( "enum_body" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_328 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_329 c1_330 = TreeSitter.Node.nodeStartPoint node_328 TreeSitter.Node.TSPoint r2_331 c2_332 = TreeSitter.Node.nodeEndPoint node_328 deriving instance GHC.Classes.Eq a_333 => GHC.Classes.Eq (EnumBody a_333) deriving instance GHC.Classes.Ord a_334 => GHC.Classes.Ord (EnumBody a_334) deriving instance GHC.Show.Show a_335 => GHC.Show.Show (EnumBody a_335) instance AST.Unmarshal.Unmarshal EnumBody instance Data.Foldable.Foldable EnumBody where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor EnumBody where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable EnumBody where traverse = AST.Traversable1.Class.traverseDefault1 data EnumDeclaration a = EnumDeclaration { ann :: a, body :: (AST.Parse.Err (EnumBody a)), name :: (AST.Parse.Err (Identifier a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_336. AST.Traversable1.Class.Traversable1 a_336 ) instance AST.Unmarshal.SymbolMatching EnumDeclaration where matchedSymbols _ = [251] showFailure _ node_337 = "expected " GHC.Base.<> ( "enum_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_337 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_338 c1_339 = TreeSitter.Node.nodeStartPoint node_337 TreeSitter.Node.TSPoint r2_340 c2_341 = TreeSitter.Node.nodeEndPoint node_337 deriving instance GHC.Classes.Eq a_342 => GHC.Classes.Eq (EnumDeclaration a_342) deriving instance GHC.Classes.Ord a_343 => GHC.Classes.Ord (EnumDeclaration a_343) deriving instance GHC.Show.Show a_344 => GHC.Show.Show (EnumDeclaration a_344) instance AST.Unmarshal.Unmarshal EnumDeclaration instance Data.Foldable.Foldable EnumDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor EnumDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable EnumDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data ExistentialType a = ExistentialType {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_345. AST.Traversable1.Class.Traversable1 a_345 ) instance AST.Unmarshal.SymbolMatching ExistentialType where matchedSymbols _ = [271] showFailure _ node_346 = "expected " GHC.Base.<> ( "existential_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_346 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_347 c1_348 = TreeSitter.Node.nodeStartPoint node_346 TreeSitter.Node.TSPoint r2_349 c2_350 = TreeSitter.Node.nodeEndPoint node_346 deriving instance GHC.Classes.Eq a_351 => GHC.Classes.Eq (ExistentialType a_351) deriving instance GHC.Classes.Ord a_352 => GHC.Classes.Ord (ExistentialType a_352) deriving instance GHC.Show.Show a_353 => GHC.Show.Show (ExistentialType a_353) instance AST.Unmarshal.Unmarshal ExistentialType instance Data.Foldable.Foldable ExistentialType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ExistentialType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ExistentialType where traverse = AST.Traversable1.Class.traverseDefault1 data ExportClause a = ExportClause { ann :: a, extraChildren :: ([AST.Parse.Err (ExportSpecifier a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_354. AST.Traversable1.Class.Traversable1 a_354 ) instance AST.Unmarshal.SymbolMatching ExportClause where matchedSymbols _ = [145] showFailure _ node_355 = "expected " GHC.Base.<> ( "export_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_355 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_356 c1_357 = TreeSitter.Node.nodeStartPoint node_355 TreeSitter.Node.TSPoint r2_358 c2_359 = TreeSitter.Node.nodeEndPoint node_355 deriving instance GHC.Classes.Eq a_360 => GHC.Classes.Eq (ExportClause a_360) deriving instance GHC.Classes.Ord a_361 => GHC.Classes.Ord (ExportClause a_361) deriving instance GHC.Show.Show a_362 => GHC.Show.Show (ExportClause a_362) instance AST.Unmarshal.Unmarshal ExportClause instance Data.Foldable.Foldable ExportClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ExportClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ExportClause where traverse = AST.Traversable1.Class.traverseDefault1 data ExportSpecifier a = ExportSpecifier { ann :: a, alias :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a))), name :: (AST.Parse.Err (Identifier a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_363. AST.Traversable1.Class.Traversable1 a_363 ) instance AST.Unmarshal.SymbolMatching ExportSpecifier where matchedSymbols _ = [311] showFailure _ node_364 = "expected " GHC.Base.<> ( "export_specifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_364 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_365 c1_366 = TreeSitter.Node.nodeStartPoint node_364 TreeSitter.Node.TSPoint r2_367 c2_368 = TreeSitter.Node.nodeEndPoint node_364 deriving instance GHC.Classes.Eq a_369 => GHC.Classes.Eq (ExportSpecifier a_369) deriving instance GHC.Classes.Ord a_370 => GHC.Classes.Ord (ExportSpecifier a_370) deriving instance GHC.Show.Show a_371 => GHC.Show.Show (ExportSpecifier a_371) instance AST.Unmarshal.Unmarshal ExportSpecifier instance Data.Foldable.Foldable ExportSpecifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ExportSpecifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ExportSpecifier where traverse = AST.Traversable1.Class.traverseDefault1 data ExportStatement a = ExportStatement { ann :: a, decorator :: ([AST.Parse.Err (Decorator a)]), declaration :: (GHC.Maybe.Maybe (AST.Parse.Err (Declaration a))), value :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))), source :: (GHC.Maybe.Maybe (AST.Parse.Err (String a))), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err ((ExportClause GHC.Generics.:+: Identifier) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_372. AST.Traversable1.Class.Traversable1 a_372 ) instance AST.Unmarshal.SymbolMatching ExportStatement where matchedSymbols _ = [144] showFailure _ node_373 = "expected " GHC.Base.<> ( "export_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_373 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_374 c1_375 = TreeSitter.Node.nodeStartPoint node_373 TreeSitter.Node.TSPoint r2_376 c2_377 = TreeSitter.Node.nodeEndPoint node_373 deriving instance GHC.Classes.Eq a_378 => GHC.Classes.Eq (ExportStatement a_378) deriving instance GHC.Classes.Ord a_379 => GHC.Classes.Ord (ExportStatement a_379) deriving instance GHC.Show.Show a_380 => GHC.Show.Show (ExportStatement a_380) instance AST.Unmarshal.Unmarshal ExportStatement instance Data.Foldable.Foldable ExportStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ExportStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ExportStatement where traverse = AST.Traversable1.Class.traverseDefault1 data ExpressionStatement a = ExpressionStatement { ann :: a, extraChildren :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_381. AST.Traversable1.Class.Traversable1 a_381 ) instance AST.Unmarshal.SymbolMatching ExpressionStatement where matchedSymbols _ = [154] showFailure _ node_382 = "expected " GHC.Base.<> ( "expression_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_382 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_383 c1_384 = TreeSitter.Node.nodeStartPoint node_382 TreeSitter.Node.TSPoint r2_385 c2_386 = TreeSitter.Node.nodeEndPoint node_382 deriving instance GHC.Classes.Eq a_387 => GHC.Classes.Eq (ExpressionStatement a_387) deriving instance GHC.Classes.Ord a_388 => GHC.Classes.Ord (ExpressionStatement a_388) deriving instance GHC.Show.Show a_389 => GHC.Show.Show (ExpressionStatement a_389) instance AST.Unmarshal.Unmarshal ExpressionStatement instance Data.Foldable.Foldable ExpressionStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ExpressionStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ExpressionStatement where traverse = AST.Traversable1.Class.traverseDefault1 data ExtendsClause a = ExtendsClause { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: GenericType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: TypeIdentifier) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_390. AST.Traversable1.Class.Traversable1 a_390 ) instance AST.Unmarshal.SymbolMatching ExtendsClause where matchedSymbols _ = [250] showFailure _ node_391 = "expected " GHC.Base.<> ( "extends_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_391 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_392 c1_393 = TreeSitter.Node.nodeStartPoint node_391 TreeSitter.Node.TSPoint r2_394 c2_395 = TreeSitter.Node.nodeEndPoint node_391 deriving instance GHC.Classes.Eq a_396 => GHC.Classes.Eq (ExtendsClause a_396) deriving instance GHC.Classes.Ord a_397 => GHC.Classes.Ord (ExtendsClause a_397) deriving instance GHC.Show.Show a_398 => GHC.Show.Show (ExtendsClause a_398) instance AST.Unmarshal.Unmarshal ExtendsClause instance Data.Foldable.Foldable ExtendsClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ExtendsClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ExtendsClause where traverse = AST.Traversable1.Class.traverseDefault1 data FinallyClause a = FinallyClause { ann :: a, body :: (AST.Parse.Err (StatementBlock a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_399. AST.Traversable1.Class.Traversable1 a_399 ) instance AST.Unmarshal.SymbolMatching FinallyClause where matchedSymbols _ = [179] showFailure _ node_400 = "expected " GHC.Base.<> ( "finally_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_400 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_401 c1_402 = TreeSitter.Node.nodeStartPoint node_400 TreeSitter.Node.TSPoint r2_403 c2_404 = TreeSitter.Node.nodeEndPoint node_400 deriving instance GHC.Classes.Eq a_405 => GHC.Classes.Eq (FinallyClause a_405) deriving instance GHC.Classes.Ord a_406 => GHC.Classes.Ord (FinallyClause a_406) deriving instance GHC.Show.Show a_407 => GHC.Show.Show (FinallyClause a_407) instance AST.Unmarshal.Unmarshal FinallyClause instance Data.Foldable.Foldable FinallyClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FinallyClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FinallyClause where traverse = AST.Traversable1.Class.traverseDefault1 data FlowMaybeType a = FlowMaybeType { ann :: a, 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_408. AST.Traversable1.Class.Traversable1 a_408 ) instance AST.Unmarshal.SymbolMatching FlowMaybeType where matchedSymbols _ = [272] showFailure _ node_409 = "expected " GHC.Base.<> ( "flow_maybe_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_409 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_410 c1_411 = TreeSitter.Node.nodeStartPoint node_409 TreeSitter.Node.TSPoint r2_412 c2_413 = TreeSitter.Node.nodeEndPoint node_409 deriving instance GHC.Classes.Eq a_414 => GHC.Classes.Eq (FlowMaybeType a_414) deriving instance GHC.Classes.Ord a_415 => GHC.Classes.Ord (FlowMaybeType a_415) deriving instance GHC.Show.Show a_416 => GHC.Show.Show (FlowMaybeType a_416) instance AST.Unmarshal.Unmarshal FlowMaybeType instance Data.Foldable.Foldable FlowMaybeType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FlowMaybeType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FlowMaybeType where traverse = AST.Traversable1.Class.traverseDefault1 data ForInStatement a = ForInStatement { ann :: a, body :: (AST.Parse.Err (Statement a)), left :: (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: Identifier GHC.Generics.:+: MemberExpression GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: SubscriptExpression) a)), right :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_417. AST.Traversable1.Class.Traversable1 a_417 ) instance AST.Unmarshal.SymbolMatching ForInStatement where matchedSymbols _ = [162] showFailure _ node_418 = "expected " GHC.Base.<> ( "for_in_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_418 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_419 c1_420 = TreeSitter.Node.nodeStartPoint node_418 TreeSitter.Node.TSPoint r2_421 c2_422 = TreeSitter.Node.nodeEndPoint node_418 deriving instance GHC.Classes.Eq a_423 => GHC.Classes.Eq (ForInStatement a_423) deriving instance GHC.Classes.Ord a_424 => GHC.Classes.Ord (ForInStatement a_424) deriving instance GHC.Show.Show a_425 => GHC.Show.Show (ForInStatement a_425) instance AST.Unmarshal.Unmarshal ForInStatement instance Data.Foldable.Foldable ForInStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ForInStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ForInStatement where traverse = AST.Traversable1.Class.traverseDefault1 data ForStatement a = ForStatement { ann :: a, body :: (AST.Parse.Err (Statement a)), initializer :: (AST.Parse.Err ((EmptyStatement GHC.Generics.:+: ExpressionStatement GHC.Generics.:+: LexicalDeclaration GHC.Generics.:+: VariableDeclaration) a)), condition :: (AST.Parse.Err ((EmptyStatement GHC.Generics.:+: ExpressionStatement) a)), increment :: (GHC.Maybe.Maybe (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_426. AST.Traversable1.Class.Traversable1 a_426 ) instance AST.Unmarshal.SymbolMatching ForStatement where matchedSymbols _ = [161] showFailure _ node_427 = "expected " GHC.Base.<> ( "for_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_427 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_428 c1_429 = TreeSitter.Node.nodeStartPoint node_427 TreeSitter.Node.TSPoint r2_430 c2_431 = TreeSitter.Node.nodeEndPoint node_427 deriving instance GHC.Classes.Eq a_432 => GHC.Classes.Eq (ForStatement a_432) deriving instance GHC.Classes.Ord a_433 => GHC.Classes.Ord (ForStatement a_433) deriving instance GHC.Show.Show a_434 => GHC.Show.Show (ForStatement a_434) instance AST.Unmarshal.Unmarshal ForStatement instance Data.Foldable.Foldable ForStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ForStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ForStatement where traverse = AST.Traversable1.Class.traverseDefault1 data FormalParameters a = FormalParameters { ann :: a, decorator :: ([AST.Parse.Err (Decorator a)]), extraChildren :: ([AST.Parse.Err ((OptionalParameter GHC.Generics.:+: RequiredParameter GHC.Generics.:+: RestParameter) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_435. AST.Traversable1.Class.Traversable1 a_435 ) instance AST.Unmarshal.SymbolMatching FormalParameters where matchedSymbols _ = [229] showFailure _ node_436 = "expected " GHC.Base.<> ( "formal_parameters" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_436 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_437 c1_438 = TreeSitter.Node.nodeStartPoint node_436 TreeSitter.Node.TSPoint r2_439 c2_440 = TreeSitter.Node.nodeEndPoint node_436 deriving instance GHC.Classes.Eq a_441 => GHC.Classes.Eq (FormalParameters a_441) deriving instance GHC.Classes.Ord a_442 => GHC.Classes.Ord (FormalParameters a_442) deriving instance GHC.Show.Show a_443 => GHC.Show.Show (FormalParameters a_443) instance AST.Unmarshal.Unmarshal FormalParameters instance Data.Foldable.Foldable FormalParameters where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FormalParameters where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FormalParameters where traverse = AST.Traversable1.Class.traverseDefault1 data Function a = Function { ann :: a, returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))), body :: (AST.Parse.Err (StatementBlock a)), name :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a))), parameters :: (AST.Parse.Err (FormalParameters a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_444. AST.Traversable1.Class.Traversable1 a_444 ) instance AST.Unmarshal.SymbolMatching Function where matchedSymbols _ = [198] showFailure _ node_445 = "expected " GHC.Base.<> ( "function" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_445 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_446 c1_447 = TreeSitter.Node.nodeStartPoint node_445 TreeSitter.Node.TSPoint r2_448 c2_449 = TreeSitter.Node.nodeEndPoint node_445 deriving instance GHC.Classes.Eq a_450 => GHC.Classes.Eq (Function a_450) deriving instance GHC.Classes.Ord a_451 => GHC.Classes.Ord (Function a_451) deriving instance GHC.Show.Show a_452 => GHC.Show.Show (Function a_452) instance AST.Unmarshal.Unmarshal Function instance Data.Foldable.Foldable Function where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Function where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Function where traverse = AST.Traversable1.Class.traverseDefault1 data FunctionDeclaration a = FunctionDeclaration { ann :: a, returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))), body :: (AST.Parse.Err (StatementBlock a)), name :: (AST.Parse.Err (Identifier a)), parameters :: (AST.Parse.Err (FormalParameters a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_453. AST.Traversable1.Class.Traversable1 a_453 ) instance AST.Unmarshal.SymbolMatching FunctionDeclaration where matchedSymbols _ = [199] showFailure _ node_454 = "expected " GHC.Base.<> ( "function_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_454 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_455 c1_456 = TreeSitter.Node.nodeStartPoint node_454 TreeSitter.Node.TSPoint r2_457 c2_458 = TreeSitter.Node.nodeEndPoint node_454 deriving instance GHC.Classes.Eq a_459 => GHC.Classes.Eq (FunctionDeclaration a_459) deriving instance GHC.Classes.Ord a_460 => GHC.Classes.Ord (FunctionDeclaration a_460) deriving instance GHC.Show.Show a_461 => GHC.Show.Show (FunctionDeclaration a_461) instance AST.Unmarshal.Unmarshal FunctionDeclaration instance Data.Foldable.Foldable FunctionDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FunctionDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FunctionDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data FunctionSignature a = FunctionSignature { ann :: a, returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))), name :: (AST.Parse.Err (Identifier a)), parameters :: (AST.Parse.Err (FormalParameters a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_462. AST.Traversable1.Class.Traversable1 a_462 ) instance AST.Unmarshal.SymbolMatching FunctionSignature where matchedSymbols _ = [238] showFailure _ node_463 = "expected " GHC.Base.<> ( "function_signature" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_463 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_464 c1_465 = TreeSitter.Node.nodeStartPoint node_463 TreeSitter.Node.TSPoint r2_466 c2_467 = TreeSitter.Node.nodeEndPoint node_463 deriving instance GHC.Classes.Eq a_468 => GHC.Classes.Eq (FunctionSignature a_468) deriving instance GHC.Classes.Ord a_469 => GHC.Classes.Ord (FunctionSignature a_469) deriving instance GHC.Show.Show a_470 => GHC.Show.Show (FunctionSignature a_470) instance AST.Unmarshal.Unmarshal FunctionSignature instance Data.Foldable.Foldable FunctionSignature where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FunctionSignature where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FunctionSignature where traverse = AST.Traversable1.Class.traverseDefault1 data FunctionType a = FunctionType { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_471. AST.Traversable1.Class.Traversable1 a_471 ) instance AST.Unmarshal.SymbolMatching FunctionType where matchedSymbols _ = [289] showFailure _ node_472 = "expected " GHC.Base.<> ( "function_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_472 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_473 c1_474 = TreeSitter.Node.nodeStartPoint node_472 TreeSitter.Node.TSPoint r2_475 c2_476 = TreeSitter.Node.nodeEndPoint node_472 deriving instance GHC.Classes.Eq a_477 => GHC.Classes.Eq (FunctionType a_477) deriving instance GHC.Classes.Ord a_478 => GHC.Classes.Ord (FunctionType a_478) deriving instance GHC.Show.Show a_479 => GHC.Show.Show (FunctionType a_479) instance AST.Unmarshal.Unmarshal FunctionType instance Data.Foldable.Foldable FunctionType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FunctionType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FunctionType where traverse = AST.Traversable1.Class.traverseDefault1 data GeneratorFunction a = GeneratorFunction { ann :: a, returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))), body :: (AST.Parse.Err (StatementBlock a)), name :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a))), parameters :: (AST.Parse.Err (FormalParameters a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_480. AST.Traversable1.Class.Traversable1 a_480 ) instance AST.Unmarshal.SymbolMatching GeneratorFunction where matchedSymbols _ = [200] showFailure _ node_481 = "expected " GHC.Base.<> ( "generator_function" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_481 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_482 c1_483 = TreeSitter.Node.nodeStartPoint node_481 TreeSitter.Node.TSPoint r2_484 c2_485 = TreeSitter.Node.nodeEndPoint node_481 deriving instance GHC.Classes.Eq a_486 => GHC.Classes.Eq (GeneratorFunction a_486) deriving instance GHC.Classes.Ord a_487 => GHC.Classes.Ord (GeneratorFunction a_487) deriving instance GHC.Show.Show a_488 => GHC.Show.Show (GeneratorFunction a_488) instance AST.Unmarshal.Unmarshal GeneratorFunction instance Data.Foldable.Foldable GeneratorFunction where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor GeneratorFunction where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable GeneratorFunction where traverse = AST.Traversable1.Class.traverseDefault1 data GeneratorFunctionDeclaration a = GeneratorFunctionDeclaration { ann :: a, returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))), body :: (AST.Parse.Err (StatementBlock a)), name :: (AST.Parse.Err (Identifier a)), parameters :: (AST.Parse.Err (FormalParameters a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_489. AST.Traversable1.Class.Traversable1 a_489 ) instance AST.Unmarshal.SymbolMatching GeneratorFunctionDeclaration where matchedSymbols _ = [201] showFailure _ node_490 = "expected " GHC.Base.<> ( "generator_function_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_490 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_491 c1_492 = TreeSitter.Node.nodeStartPoint node_490 TreeSitter.Node.TSPoint r2_493 c2_494 = TreeSitter.Node.nodeEndPoint node_490 deriving instance GHC.Classes.Eq a_495 => GHC.Classes.Eq (GeneratorFunctionDeclaration a_495) deriving instance GHC.Classes.Ord a_496 => GHC.Classes.Ord (GeneratorFunctionDeclaration a_496) deriving instance GHC.Show.Show a_497 => GHC.Show.Show (GeneratorFunctionDeclaration a_497) instance AST.Unmarshal.Unmarshal GeneratorFunctionDeclaration instance Data.Foldable.Foldable GeneratorFunctionDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor GeneratorFunctionDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable GeneratorFunctionDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data GenericType a = GenericType { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((NestedTypeIdentifier GHC.Generics.:+: TypeArguments GHC.Generics.:+: TypeIdentifier) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_498. AST.Traversable1.Class.Traversable1 a_498 ) instance AST.Unmarshal.SymbolMatching GenericType where matchedSymbols _ = [263] showFailure _ node_499 = "expected " GHC.Base.<> ( "generic_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_499 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_500 c1_501 = TreeSitter.Node.nodeStartPoint node_499 TreeSitter.Node.TSPoint r2_502 c2_503 = TreeSitter.Node.nodeEndPoint node_499 deriving instance GHC.Classes.Eq a_504 => GHC.Classes.Eq (GenericType a_504) deriving instance GHC.Classes.Ord a_505 => GHC.Classes.Ord (GenericType a_505) deriving instance GHC.Show.Show a_506 => GHC.Show.Show (GenericType a_506) instance AST.Unmarshal.Unmarshal GenericType instance Data.Foldable.Foldable GenericType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor GenericType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable GenericType where traverse = AST.Traversable1.Class.traverseDefault1 data IfStatement a = IfStatement { ann :: a, alternative :: (GHC.Maybe.Maybe (AST.Parse.Err (Statement a))), consequence :: (AST.Parse.Err (Statement a)), condition :: (AST.Parse.Err (ParenthesizedExpression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_507. AST.Traversable1.Class.Traversable1 a_507 ) instance AST.Unmarshal.SymbolMatching IfStatement where matchedSymbols _ = [159] showFailure _ node_508 = "expected " GHC.Base.<> ( "if_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_508 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_509 c1_510 = TreeSitter.Node.nodeStartPoint node_508 TreeSitter.Node.TSPoint r2_511 c2_512 = TreeSitter.Node.nodeEndPoint node_508 deriving instance GHC.Classes.Eq a_513 => GHC.Classes.Eq (IfStatement a_513) deriving instance GHC.Classes.Ord a_514 => GHC.Classes.Ord (IfStatement a_514) deriving instance GHC.Show.Show a_515 => GHC.Show.Show (IfStatement a_515) instance AST.Unmarshal.Unmarshal IfStatement instance Data.Foldable.Foldable IfStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor IfStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable IfStatement where traverse = AST.Traversable1.Class.traverseDefault1 data ImplementsClause a = ImplementsClause { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_516. AST.Traversable1.Class.Traversable1 a_516 ) instance AST.Unmarshal.SymbolMatching ImplementsClause where matchedSymbols _ = [241] showFailure _ node_517 = "expected " GHC.Base.<> ( "implements_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_517 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_518 c1_519 = TreeSitter.Node.nodeStartPoint node_517 TreeSitter.Node.TSPoint r2_520 c2_521 = TreeSitter.Node.nodeEndPoint node_517 deriving instance GHC.Classes.Eq a_522 => GHC.Classes.Eq (ImplementsClause a_522) deriving instance GHC.Classes.Ord a_523 => GHC.Classes.Ord (ImplementsClause a_523) deriving instance GHC.Show.Show a_524 => GHC.Show.Show (ImplementsClause a_524) instance AST.Unmarshal.Unmarshal ImplementsClause instance Data.Foldable.Foldable ImplementsClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ImplementsClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ImplementsClause where traverse = AST.Traversable1.Class.traverseDefault1 data Import a = Import {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_525. AST.Traversable1.Class.Traversable1 a_525 ) instance AST.Unmarshal.SymbolMatching Import where matchedSymbols _ = [148] showFailure _ node_526 = "expected " GHC.Base.<> ( "import" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_526 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_527 c1_528 = TreeSitter.Node.nodeStartPoint node_526 TreeSitter.Node.TSPoint r2_529 c2_530 = TreeSitter.Node.nodeEndPoint node_526 deriving instance GHC.Classes.Eq a_531 => GHC.Classes.Eq (Import a_531) deriving instance GHC.Classes.Ord a_532 => GHC.Classes.Ord (Import a_532) deriving instance GHC.Show.Show a_533 => GHC.Show.Show (Import a_533) instance AST.Unmarshal.Unmarshal Import instance Data.Foldable.Foldable Import where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Import where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Import where traverse = AST.Traversable1.Class.traverseDefault1 data ImportAlias a = ImportAlias { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: NestedIdentifier) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_534. AST.Traversable1.Class.Traversable1 a_534 ) instance AST.Unmarshal.SymbolMatching ImportAlias where matchedSymbols _ = [247] showFailure _ node_535 = "expected " GHC.Base.<> ( "import_alias" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_535 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_536 c1_537 = TreeSitter.Node.nodeStartPoint node_535 TreeSitter.Node.TSPoint r2_538 c2_539 = TreeSitter.Node.nodeEndPoint node_535 deriving instance GHC.Classes.Eq a_540 => GHC.Classes.Eq (ImportAlias a_540) deriving instance GHC.Classes.Ord a_541 => GHC.Classes.Ord (ImportAlias a_541) deriving instance GHC.Show.Show a_542 => GHC.Show.Show (ImportAlias a_542) instance AST.Unmarshal.Unmarshal ImportAlias instance Data.Foldable.Foldable ImportAlias where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ImportAlias where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ImportAlias where traverse = AST.Traversable1.Class.traverseDefault1 data ImportClause a = ImportClause { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: NamedImports GHC.Generics.:+: NamespaceImport) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_543. AST.Traversable1.Class.Traversable1 a_543 ) instance AST.Unmarshal.SymbolMatching ImportClause where matchedSymbols _ = [150] showFailure _ node_544 = "expected " GHC.Base.<> ( "import_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_544 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_545 c1_546 = TreeSitter.Node.nodeStartPoint node_544 TreeSitter.Node.TSPoint r2_547 c2_548 = TreeSitter.Node.nodeEndPoint node_544 deriving instance GHC.Classes.Eq a_549 => GHC.Classes.Eq (ImportClause a_549) deriving instance GHC.Classes.Ord a_550 => GHC.Classes.Ord (ImportClause a_550) deriving instance GHC.Show.Show a_551 => GHC.Show.Show (ImportClause a_551) instance AST.Unmarshal.Unmarshal ImportClause instance Data.Foldable.Foldable ImportClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ImportClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ImportClause where traverse = AST.Traversable1.Class.traverseDefault1 data ImportRequireClause a = ImportRequireClause { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: String) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_552. AST.Traversable1.Class.Traversable1 a_552 ) instance AST.Unmarshal.SymbolMatching ImportRequireClause where matchedSymbols _ = [240] showFailure _ node_553 = "expected " GHC.Base.<> ( "import_require_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_553 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_554 c1_555 = TreeSitter.Node.nodeStartPoint node_553 TreeSitter.Node.TSPoint r2_556 c2_557 = TreeSitter.Node.nodeEndPoint node_553 deriving instance GHC.Classes.Eq a_558 => GHC.Classes.Eq (ImportRequireClause a_558) deriving instance GHC.Classes.Ord a_559 => GHC.Classes.Ord (ImportRequireClause a_559) deriving instance GHC.Show.Show a_560 => GHC.Show.Show (ImportRequireClause a_560) instance AST.Unmarshal.Unmarshal ImportRequireClause instance Data.Foldable.Foldable ImportRequireClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ImportRequireClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ImportRequireClause where traverse = AST.Traversable1.Class.traverseDefault1 data ImportSpecifier a = ImportSpecifier { ann :: a, alias :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a))), name :: (AST.Parse.Err (Identifier a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_561. AST.Traversable1.Class.Traversable1 a_561 ) instance AST.Unmarshal.SymbolMatching ImportSpecifier where matchedSymbols _ = [312] showFailure _ node_562 = "expected " GHC.Base.<> ( "import_specifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_562 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_563 c1_564 = TreeSitter.Node.nodeStartPoint node_562 TreeSitter.Node.TSPoint r2_565 c2_566 = TreeSitter.Node.nodeEndPoint node_562 deriving instance GHC.Classes.Eq a_567 => GHC.Classes.Eq (ImportSpecifier a_567) deriving instance GHC.Classes.Ord a_568 => GHC.Classes.Ord (ImportSpecifier a_568) deriving instance GHC.Show.Show a_569 => GHC.Show.Show (ImportSpecifier a_569) instance AST.Unmarshal.Unmarshal ImportSpecifier instance Data.Foldable.Foldable ImportSpecifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ImportSpecifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ImportSpecifier where traverse = AST.Traversable1.Class.traverseDefault1 data ImportStatement a = ImportStatement { ann :: a, source :: (GHC.Maybe.Maybe (AST.Parse.Err (String a))), extraChildren :: (AST.Parse.Err ((ImportClause GHC.Generics.:+: ImportRequireClause GHC.Generics.:+: String) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_570. AST.Traversable1.Class.Traversable1 a_570 ) instance AST.Unmarshal.SymbolMatching ImportStatement where matchedSymbols _ = [149] showFailure _ node_571 = "expected " GHC.Base.<> ( "import_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_571 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_572 c1_573 = TreeSitter.Node.nodeStartPoint node_571 TreeSitter.Node.TSPoint r2_574 c2_575 = TreeSitter.Node.nodeEndPoint node_571 deriving instance GHC.Classes.Eq a_576 => GHC.Classes.Eq (ImportStatement a_576) deriving instance GHC.Classes.Ord a_577 => GHC.Classes.Ord (ImportStatement a_577) deriving instance GHC.Show.Show a_578 => GHC.Show.Show (ImportStatement a_578) instance AST.Unmarshal.Unmarshal ImportStatement instance Data.Foldable.Foldable ImportStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ImportStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ImportStatement where traverse = AST.Traversable1.Class.traverseDefault1 data IndexSignature a = IndexSignature { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: MappedTypeClause GHC.Generics.:+: PredefinedType GHC.Generics.:+: TypeAnnotation) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_579. AST.Traversable1.Class.Traversable1 a_579 ) instance AST.Unmarshal.SymbolMatching IndexSignature where matchedSymbols _ = [284] showFailure _ node_580 = "expected " GHC.Base.<> ( "index_signature" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_580 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_581 c1_582 = TreeSitter.Node.nodeStartPoint node_580 TreeSitter.Node.TSPoint r2_583 c2_584 = TreeSitter.Node.nodeEndPoint node_580 deriving instance GHC.Classes.Eq a_585 => GHC.Classes.Eq (IndexSignature a_585) deriving instance GHC.Classes.Ord a_586 => GHC.Classes.Ord (IndexSignature a_586) deriving instance GHC.Show.Show a_587 => GHC.Show.Show (IndexSignature a_587) instance AST.Unmarshal.Unmarshal IndexSignature instance Data.Foldable.Foldable IndexSignature where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor IndexSignature where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable IndexSignature where traverse = AST.Traversable1.Class.traverseDefault1 data IndexTypeQuery a = IndexTypeQuery { ann :: a, extraChildren :: (AST.Parse.Err ((NestedTypeIdentifier GHC.Generics.:+: TypeIdentifier) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_588. AST.Traversable1.Class.Traversable1 a_588 ) instance AST.Unmarshal.SymbolMatching IndexTypeQuery where matchedSymbols _ = [266] showFailure _ node_589 = "expected " GHC.Base.<> ( "index_type_query" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_589 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_590 c1_591 = TreeSitter.Node.nodeStartPoint node_589 TreeSitter.Node.TSPoint r2_592 c2_593 = TreeSitter.Node.nodeEndPoint node_589 deriving instance GHC.Classes.Eq a_594 => GHC.Classes.Eq (IndexTypeQuery a_594) deriving instance GHC.Classes.Ord a_595 => GHC.Classes.Ord (IndexTypeQuery a_595) deriving instance GHC.Show.Show a_596 => GHC.Show.Show (IndexTypeQuery a_596) instance AST.Unmarshal.Unmarshal IndexTypeQuery instance Data.Foldable.Foldable IndexTypeQuery where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor IndexTypeQuery where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable IndexTypeQuery where traverse = AST.Traversable1.Class.traverseDefault1 data InterfaceDeclaration a = InterfaceDeclaration { ann :: a, body :: (AST.Parse.Err (ObjectType a)), name :: (AST.Parse.Err (TypeIdentifier a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ExtendsClause a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_597. AST.Traversable1.Class.Traversable1 a_597 ) instance AST.Unmarshal.SymbolMatching InterfaceDeclaration where matchedSymbols _ = [249] showFailure _ node_598 = "expected " GHC.Base.<> ( "interface_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_598 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_599 c1_600 = TreeSitter.Node.nodeStartPoint node_598 TreeSitter.Node.TSPoint r2_601 c2_602 = TreeSitter.Node.nodeEndPoint node_598 deriving instance GHC.Classes.Eq a_603 => GHC.Classes.Eq (InterfaceDeclaration a_603) deriving instance GHC.Classes.Ord a_604 => GHC.Classes.Ord (InterfaceDeclaration a_604) deriving instance GHC.Show.Show a_605 => GHC.Show.Show (InterfaceDeclaration a_605) instance AST.Unmarshal.Unmarshal InterfaceDeclaration instance Data.Foldable.Foldable InterfaceDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor InterfaceDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable InterfaceDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data InternalModule a = InternalModule { ann :: a, body :: (GHC.Maybe.Maybe (AST.Parse.Err (StatementBlock a))), name :: (AST.Parse.Err ((Identifier GHC.Generics.:+: NestedIdentifier GHC.Generics.:+: String) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_606. AST.Traversable1.Class.Traversable1 a_606 ) instance AST.Unmarshal.SymbolMatching InternalModule where matchedSymbols _ = [245] showFailure _ node_607 = "expected " GHC.Base.<> ( "internal_module" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_607 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_608 c1_609 = TreeSitter.Node.nodeStartPoint node_607 TreeSitter.Node.TSPoint r2_610 c2_611 = TreeSitter.Node.nodeEndPoint node_607 deriving instance GHC.Classes.Eq a_612 => GHC.Classes.Eq (InternalModule a_612) deriving instance GHC.Classes.Ord a_613 => GHC.Classes.Ord (InternalModule a_613) deriving instance GHC.Show.Show a_614 => GHC.Show.Show (InternalModule a_614) instance AST.Unmarshal.Unmarshal InternalModule instance Data.Foldable.Foldable InternalModule where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor InternalModule where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable InternalModule where traverse = AST.Traversable1.Class.traverseDefault1 data IntersectionType a = IntersectionType { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_615. AST.Traversable1.Class.Traversable1 a_615 ) instance AST.Unmarshal.SymbolMatching IntersectionType where matchedSymbols _ = [288] showFailure _ node_616 = "expected " GHC.Base.<> ( "intersection_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_616 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_617 c1_618 = TreeSitter.Node.nodeStartPoint node_616 TreeSitter.Node.TSPoint r2_619 c2_620 = TreeSitter.Node.nodeEndPoint node_616 deriving instance GHC.Classes.Eq a_621 => GHC.Classes.Eq (IntersectionType a_621) deriving instance GHC.Classes.Ord a_622 => GHC.Classes.Ord (IntersectionType a_622) deriving instance GHC.Show.Show a_623 => GHC.Show.Show (IntersectionType a_623) instance AST.Unmarshal.Unmarshal IntersectionType instance Data.Foldable.Foldable IntersectionType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor IntersectionType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable IntersectionType where traverse = AST.Traversable1.Class.traverseDefault1 data JsxAttribute a = JsxAttribute { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_624. AST.Traversable1.Class.Traversable1 a_624 ) instance AST.Unmarshal.SymbolMatching JsxAttribute where matchedSymbols _ = [194] showFailure _ node_625 = "expected " GHC.Base.<> ( "jsx_attribute" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_625 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_626 c1_627 = TreeSitter.Node.nodeStartPoint node_625 TreeSitter.Node.TSPoint r2_628 c2_629 = TreeSitter.Node.nodeEndPoint node_625 deriving instance GHC.Classes.Eq a_630 => GHC.Classes.Eq (JsxAttribute a_630) deriving instance GHC.Classes.Ord a_631 => GHC.Classes.Ord (JsxAttribute a_631) deriving instance GHC.Show.Show a_632 => GHC.Show.Show (JsxAttribute a_632) instance AST.Unmarshal.Unmarshal JsxAttribute instance Data.Foldable.Foldable JsxAttribute where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor JsxAttribute where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable JsxAttribute where traverse = AST.Traversable1.Class.traverseDefault1 data JsxClosingElement a = JsxClosingElement { ann :: a, name :: (AST.Parse.Err ((Identifier GHC.Generics.:+: JsxNamespaceName GHC.Generics.:+: NestedIdentifier) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_633. AST.Traversable1.Class.Traversable1 a_633 ) instance AST.Unmarshal.SymbolMatching JsxClosingElement where matchedSymbols _ = [192] showFailure _ node_634 = "expected " GHC.Base.<> ( "jsx_closing_element" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_634 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_635 c1_636 = TreeSitter.Node.nodeStartPoint node_634 TreeSitter.Node.TSPoint r2_637 c2_638 = TreeSitter.Node.nodeEndPoint node_634 deriving instance GHC.Classes.Eq a_639 => GHC.Classes.Eq (JsxClosingElement a_639) deriving instance GHC.Classes.Ord a_640 => GHC.Classes.Ord (JsxClosingElement a_640) deriving instance GHC.Show.Show a_641 => GHC.Show.Show (JsxClosingElement a_641) instance AST.Unmarshal.Unmarshal JsxClosingElement instance Data.Foldable.Foldable JsxClosingElement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor JsxClosingElement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable JsxClosingElement where traverse = AST.Traversable1.Class.traverseDefault1 data JsxElement a = JsxElement { ann :: a, closeTag :: (AST.Parse.Err (JsxClosingElement a)), openTag :: (AST.Parse.Err (JsxOpeningElement a)), extraChildren :: ([AST.Parse.Err ((JsxElement GHC.Generics.:+: JsxExpression GHC.Generics.:+: JsxSelfClosingElement GHC.Generics.:+: JsxText) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_642. AST.Traversable1.Class.Traversable1 a_642 ) instance AST.Unmarshal.SymbolMatching JsxElement where matchedSymbols _ = [186] showFailure _ node_643 = "expected " GHC.Base.<> ( "jsx_element" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_643 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_644 c1_645 = TreeSitter.Node.nodeStartPoint node_643 TreeSitter.Node.TSPoint r2_646 c2_647 = TreeSitter.Node.nodeEndPoint node_643 deriving instance GHC.Classes.Eq a_648 => GHC.Classes.Eq (JsxElement a_648) deriving instance GHC.Classes.Ord a_649 => GHC.Classes.Ord (JsxElement a_649) deriving instance GHC.Show.Show a_650 => GHC.Show.Show (JsxElement a_650) instance AST.Unmarshal.Unmarshal JsxElement instance Data.Foldable.Foldable JsxElement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor JsxElement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable JsxElement where traverse = AST.Traversable1.Class.traverseDefault1 data JsxExpression a = JsxExpression { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression GHC.Generics.:+: SpreadElement) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_651. AST.Traversable1.Class.Traversable1 a_651 ) instance AST.Unmarshal.SymbolMatching JsxExpression where matchedSymbols _ = [188] showFailure _ node_652 = "expected " GHC.Base.<> ( "jsx_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_652 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_653 c1_654 = TreeSitter.Node.nodeStartPoint node_652 TreeSitter.Node.TSPoint r2_655 c2_656 = TreeSitter.Node.nodeEndPoint node_652 deriving instance GHC.Classes.Eq a_657 => GHC.Classes.Eq (JsxExpression a_657) deriving instance GHC.Classes.Ord a_658 => GHC.Classes.Ord (JsxExpression a_658) deriving instance GHC.Show.Show a_659 => GHC.Show.Show (JsxExpression a_659) instance AST.Unmarshal.Unmarshal JsxExpression instance Data.Foldable.Foldable JsxExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor JsxExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable JsxExpression where traverse = AST.Traversable1.Class.traverseDefault1 data JsxFragment a = JsxFragment { ann :: a, extraChildren :: ([AST.Parse.Err ((JsxElement GHC.Generics.:+: JsxExpression GHC.Generics.:+: JsxSelfClosingElement GHC.Generics.:+: JsxText) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_660. AST.Traversable1.Class.Traversable1 a_660 ) instance AST.Unmarshal.SymbolMatching JsxFragment where matchedSymbols _ = [187] showFailure _ node_661 = "expected " GHC.Base.<> ( "jsx_fragment" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_661 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_662 c1_663 = TreeSitter.Node.nodeStartPoint node_661 TreeSitter.Node.TSPoint r2_664 c2_665 = TreeSitter.Node.nodeEndPoint node_661 deriving instance GHC.Classes.Eq a_666 => GHC.Classes.Eq (JsxFragment a_666) deriving instance GHC.Classes.Ord a_667 => GHC.Classes.Ord (JsxFragment a_667) deriving instance GHC.Show.Show a_668 => GHC.Show.Show (JsxFragment a_668) instance AST.Unmarshal.Unmarshal JsxFragment instance Data.Foldable.Foldable JsxFragment where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor JsxFragment where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable JsxFragment where traverse = AST.Traversable1.Class.traverseDefault1 data JsxNamespaceName a = JsxNamespaceName { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Identifier a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_669. AST.Traversable1.Class.Traversable1 a_669 ) instance AST.Unmarshal.SymbolMatching JsxNamespaceName where matchedSymbols _ = [191] showFailure _ node_670 = "expected " GHC.Base.<> ( "jsx_namespace_name" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_670 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_671 c1_672 = TreeSitter.Node.nodeStartPoint node_670 TreeSitter.Node.TSPoint r2_673 c2_674 = TreeSitter.Node.nodeEndPoint node_670 deriving instance GHC.Classes.Eq a_675 => GHC.Classes.Eq (JsxNamespaceName a_675) deriving instance GHC.Classes.Ord a_676 => GHC.Classes.Ord (JsxNamespaceName a_676) deriving instance GHC.Show.Show a_677 => GHC.Show.Show (JsxNamespaceName a_677) instance AST.Unmarshal.Unmarshal JsxNamespaceName instance Data.Foldable.Foldable JsxNamespaceName where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor JsxNamespaceName where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable JsxNamespaceName where traverse = AST.Traversable1.Class.traverseDefault1 data JsxOpeningElement a = JsxOpeningElement { ann :: a, attribute :: ([AST.Parse.Err ((JsxAttribute GHC.Generics.:+: JsxExpression) a)]), name :: (AST.Parse.Err ((Identifier GHC.Generics.:+: JsxNamespaceName GHC.Generics.:+: NestedIdentifier) a)), typeArguments :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeArguments a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_678. AST.Traversable1.Class.Traversable1 a_678 ) instance AST.Unmarshal.SymbolMatching JsxOpeningElement where matchedSymbols _ = [189] showFailure _ node_679 = "expected " GHC.Base.<> ( "jsx_opening_element" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_679 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_680 c1_681 = TreeSitter.Node.nodeStartPoint node_679 TreeSitter.Node.TSPoint r2_682 c2_683 = TreeSitter.Node.nodeEndPoint node_679 deriving instance GHC.Classes.Eq a_684 => GHC.Classes.Eq (JsxOpeningElement a_684) deriving instance GHC.Classes.Ord a_685 => GHC.Classes.Ord (JsxOpeningElement a_685) deriving instance GHC.Show.Show a_686 => GHC.Show.Show (JsxOpeningElement a_686) instance AST.Unmarshal.Unmarshal JsxOpeningElement instance Data.Foldable.Foldable JsxOpeningElement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor JsxOpeningElement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable JsxOpeningElement where traverse = AST.Traversable1.Class.traverseDefault1 data JsxSelfClosingElement a = JsxSelfClosingElement { ann :: a, attribute :: ([AST.Parse.Err ((JsxAttribute GHC.Generics.:+: JsxExpression) a)]), name :: (AST.Parse.Err ((Identifier GHC.Generics.:+: JsxNamespaceName GHC.Generics.:+: NestedIdentifier) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_687. AST.Traversable1.Class.Traversable1 a_687 ) instance AST.Unmarshal.SymbolMatching JsxSelfClosingElement where matchedSymbols _ = [193] showFailure _ node_688 = "expected " GHC.Base.<> ( "jsx_self_closing_element" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_688 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_689 c1_690 = TreeSitter.Node.nodeStartPoint node_688 TreeSitter.Node.TSPoint r2_691 c2_692 = TreeSitter.Node.nodeEndPoint node_688 deriving instance GHC.Classes.Eq a_693 => GHC.Classes.Eq (JsxSelfClosingElement a_693) deriving instance GHC.Classes.Ord a_694 => GHC.Classes.Ord (JsxSelfClosingElement a_694) deriving instance GHC.Show.Show a_695 => GHC.Show.Show (JsxSelfClosingElement a_695) instance AST.Unmarshal.Unmarshal JsxSelfClosingElement instance Data.Foldable.Foldable JsxSelfClosingElement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor JsxSelfClosingElement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable JsxSelfClosingElement where traverse = AST.Traversable1.Class.traverseDefault1 data LabeledStatement a = LabeledStatement { ann :: a, label :: (AST.Parse.Err (StatementIdentifier a)), extraChildren :: (AST.Parse.Err (Statement a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_696. AST.Traversable1.Class.Traversable1 a_696 ) instance AST.Unmarshal.SymbolMatching LabeledStatement where matchedSymbols _ = [174] showFailure _ node_697 = "expected " GHC.Base.<> ( "labeled_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_697 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_698 c1_699 = TreeSitter.Node.nodeStartPoint node_697 TreeSitter.Node.TSPoint r2_700 c2_701 = TreeSitter.Node.nodeEndPoint node_697 deriving instance GHC.Classes.Eq a_702 => GHC.Classes.Eq (LabeledStatement a_702) deriving instance GHC.Classes.Ord a_703 => GHC.Classes.Ord (LabeledStatement a_703) deriving instance GHC.Show.Show a_704 => GHC.Show.Show (LabeledStatement a_704) instance AST.Unmarshal.Unmarshal LabeledStatement instance Data.Foldable.Foldable LabeledStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor LabeledStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable LabeledStatement where traverse = AST.Traversable1.Class.traverseDefault1 data LexicalDeclaration a = LexicalDeclaration { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (VariableDeclarator a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_705. AST.Traversable1.Class.Traversable1 a_705 ) instance AST.Unmarshal.SymbolMatching LexicalDeclaration where matchedSymbols _ = [156] showFailure _ node_706 = "expected " GHC.Base.<> ( "lexical_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_706 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_707 c1_708 = TreeSitter.Node.nodeStartPoint node_706 TreeSitter.Node.TSPoint r2_709 c2_710 = TreeSitter.Node.nodeEndPoint node_706 deriving instance GHC.Classes.Eq a_711 => GHC.Classes.Eq (LexicalDeclaration a_711) deriving instance GHC.Classes.Ord a_712 => GHC.Classes.Ord (LexicalDeclaration a_712) deriving instance GHC.Show.Show a_713 => GHC.Show.Show (LexicalDeclaration a_713) instance AST.Unmarshal.Unmarshal LexicalDeclaration instance Data.Foldable.Foldable LexicalDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor LexicalDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable LexicalDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data LiteralType a = LiteralType { ann :: a, extraChildren :: (AST.Parse.Err ((False GHC.Generics.:+: Number GHC.Generics.:+: String GHC.Generics.:+: True GHC.Generics.:+: UnaryExpression) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_714. AST.Traversable1.Class.Traversable1 a_714 ) instance AST.Unmarshal.SymbolMatching LiteralType where matchedSymbols _ = [269] showFailure _ node_715 = "expected " GHC.Base.<> ( "literal_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_715 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_716 c1_717 = TreeSitter.Node.nodeStartPoint node_715 TreeSitter.Node.TSPoint r2_718 c2_719 = TreeSitter.Node.nodeEndPoint node_715 deriving instance GHC.Classes.Eq a_720 => GHC.Classes.Eq (LiteralType a_720) deriving instance GHC.Classes.Ord a_721 => GHC.Classes.Ord (LiteralType a_721) deriving instance GHC.Show.Show a_722 => GHC.Show.Show (LiteralType a_722) instance AST.Unmarshal.Unmarshal LiteralType instance Data.Foldable.Foldable LiteralType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor LiteralType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable LiteralType where traverse = AST.Traversable1.Class.traverseDefault1 data LookupType a = LookupType { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_723. AST.Traversable1.Class.Traversable1 a_723 ) instance AST.Unmarshal.SymbolMatching LookupType where matchedSymbols _ = [267] showFailure _ node_724 = "expected " GHC.Base.<> ( "lookup_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_724 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_725 c1_726 = TreeSitter.Node.nodeStartPoint node_724 TreeSitter.Node.TSPoint r2_727 c2_728 = TreeSitter.Node.nodeEndPoint node_724 deriving instance GHC.Classes.Eq a_729 => GHC.Classes.Eq (LookupType a_729) deriving instance GHC.Classes.Ord a_730 => GHC.Classes.Ord (LookupType a_730) deriving instance GHC.Show.Show a_731 => GHC.Show.Show (LookupType a_731) instance AST.Unmarshal.Unmarshal LookupType instance Data.Foldable.Foldable LookupType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor LookupType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable LookupType where traverse = AST.Traversable1.Class.traverseDefault1 data MappedTypeClause a = MappedTypeClause { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_732. AST.Traversable1.Class.Traversable1 a_732 ) instance AST.Unmarshal.SymbolMatching MappedTypeClause where matchedSymbols _ = [268] showFailure _ node_733 = "expected " GHC.Base.<> ( "mapped_type_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_733 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_734 c1_735 = TreeSitter.Node.nodeStartPoint node_733 TreeSitter.Node.TSPoint r2_736 c2_737 = TreeSitter.Node.nodeEndPoint node_733 deriving instance GHC.Classes.Eq a_738 => GHC.Classes.Eq (MappedTypeClause a_738) deriving instance GHC.Classes.Ord a_739 => GHC.Classes.Ord (MappedTypeClause a_739) deriving instance GHC.Show.Show a_740 => GHC.Show.Show (MappedTypeClause a_740) instance AST.Unmarshal.Unmarshal MappedTypeClause instance Data.Foldable.Foldable MappedTypeClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor MappedTypeClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable MappedTypeClause where traverse = AST.Traversable1.Class.traverseDefault1 data MemberExpression a = MemberExpression { ann :: a, property :: (AST.Parse.Err (PropertyIdentifier a)), object :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_741. AST.Traversable1.Class.Traversable1 a_741 ) instance AST.Unmarshal.SymbolMatching MemberExpression where matchedSymbols _ = [207, 225] showFailure _ node_742 = "expected " GHC.Base.<> ( "member_expression, member_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_742 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_743 c1_744 = TreeSitter.Node.nodeStartPoint node_742 TreeSitter.Node.TSPoint r2_745 c2_746 = TreeSitter.Node.nodeEndPoint node_742 deriving instance GHC.Classes.Eq a_747 => GHC.Classes.Eq (MemberExpression a_747) deriving instance GHC.Classes.Ord a_748 => GHC.Classes.Ord (MemberExpression a_748) deriving instance GHC.Show.Show a_749 => GHC.Show.Show (MemberExpression a_749) instance AST.Unmarshal.Unmarshal MemberExpression instance Data.Foldable.Foldable MemberExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor MemberExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable MemberExpression where traverse = AST.Traversable1.Class.traverseDefault1 data MetaProperty a = MetaProperty {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_750. AST.Traversable1.Class.Traversable1 a_750 ) instance AST.Unmarshal.SymbolMatching MetaProperty where matchedSymbols _ = [222] showFailure _ node_751 = "expected " GHC.Base.<> ( "meta_property" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_751 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_752 c1_753 = TreeSitter.Node.nodeStartPoint node_751 TreeSitter.Node.TSPoint r2_754 c2_755 = TreeSitter.Node.nodeEndPoint node_751 deriving instance GHC.Classes.Eq a_756 => GHC.Classes.Eq (MetaProperty a_756) deriving instance GHC.Classes.Ord a_757 => GHC.Classes.Ord (MetaProperty a_757) deriving instance GHC.Show.Show a_758 => GHC.Show.Show (MetaProperty a_758) instance AST.Unmarshal.Unmarshal MetaProperty instance Data.Foldable.Foldable MetaProperty where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor MetaProperty where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable MetaProperty where traverse = AST.Traversable1.Class.traverseDefault1 data MethodDefinition a = MethodDefinition { ann :: a, returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))), body :: (AST.Parse.Err (StatementBlock a)), name :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)), parameters :: (AST.Parse.Err (FormalParameters a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))), extraChildren :: ([AST.Parse.Err ((AccessibilityModifier GHC.Generics.:+: Readonly) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_759. AST.Traversable1.Class.Traversable1 a_759 ) instance AST.Unmarshal.SymbolMatching MethodDefinition where matchedSymbols _ = [231] showFailure _ node_760 = "expected " GHC.Base.<> ( "method_definition" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_760 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_761 c1_762 = TreeSitter.Node.nodeStartPoint node_760 TreeSitter.Node.TSPoint r2_763 c2_764 = TreeSitter.Node.nodeEndPoint node_760 deriving instance GHC.Classes.Eq a_765 => GHC.Classes.Eq (MethodDefinition a_765) deriving instance GHC.Classes.Ord a_766 => GHC.Classes.Ord (MethodDefinition a_766) deriving instance GHC.Show.Show a_767 => GHC.Show.Show (MethodDefinition a_767) instance AST.Unmarshal.Unmarshal MethodDefinition instance Data.Foldable.Foldable MethodDefinition where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor MethodDefinition where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable MethodDefinition where traverse = AST.Traversable1.Class.traverseDefault1 data MethodSignature a = MethodSignature { ann :: a, returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))), name :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)), parameters :: (AST.Parse.Err (FormalParameters a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))), extraChildren :: ([AST.Parse.Err ((AccessibilityModifier GHC.Generics.:+: Readonly) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_768. AST.Traversable1.Class.Traversable1 a_768 ) instance AST.Unmarshal.SymbolMatching MethodSignature where matchedSymbols _ = [236] showFailure _ node_769 = "expected " GHC.Base.<> ( "method_signature" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_769 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_770 c1_771 = TreeSitter.Node.nodeStartPoint node_769 TreeSitter.Node.TSPoint r2_772 c2_773 = TreeSitter.Node.nodeEndPoint node_769 deriving instance GHC.Classes.Eq a_774 => GHC.Classes.Eq (MethodSignature a_774) deriving instance GHC.Classes.Ord a_775 => GHC.Classes.Ord (MethodSignature a_775) deriving instance GHC.Show.Show a_776 => GHC.Show.Show (MethodSignature a_776) instance AST.Unmarshal.Unmarshal MethodSignature instance Data.Foldable.Foldable MethodSignature where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor MethodSignature where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable MethodSignature where traverse = AST.Traversable1.Class.traverseDefault1 data Module a = Module { ann :: a, body :: (GHC.Maybe.Maybe (AST.Parse.Err (StatementBlock a))), name :: (AST.Parse.Err ((Identifier GHC.Generics.:+: NestedIdentifier GHC.Generics.:+: String) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_777. AST.Traversable1.Class.Traversable1 a_777 ) instance AST.Unmarshal.SymbolMatching Module where matchedSymbols _ = [244] showFailure _ node_778 = "expected " GHC.Base.<> ( "module" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_778 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_779 c1_780 = TreeSitter.Node.nodeStartPoint node_778 TreeSitter.Node.TSPoint r2_781 c2_782 = TreeSitter.Node.nodeEndPoint node_778 deriving instance GHC.Classes.Eq a_783 => GHC.Classes.Eq (Module a_783) deriving instance GHC.Classes.Ord a_784 => GHC.Classes.Ord (Module a_784) deriving instance GHC.Show.Show a_785 => GHC.Show.Show (Module a_785) instance AST.Unmarshal.Unmarshal Module instance Data.Foldable.Foldable Module where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Module where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Module where traverse = AST.Traversable1.Class.traverseDefault1 data NamedImports a = NamedImports { ann :: a, extraChildren :: ([AST.Parse.Err (ImportSpecifier a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_786. AST.Traversable1.Class.Traversable1 a_786 ) instance AST.Unmarshal.SymbolMatching NamedImports where matchedSymbols _ = [153] showFailure _ node_787 = "expected " GHC.Base.<> ( "named_imports" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_787 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_788 c1_789 = TreeSitter.Node.nodeStartPoint node_787 TreeSitter.Node.TSPoint r2_790 c2_791 = TreeSitter.Node.nodeEndPoint node_787 deriving instance GHC.Classes.Eq a_792 => GHC.Classes.Eq (NamedImports a_792) deriving instance GHC.Classes.Ord a_793 => GHC.Classes.Ord (NamedImports a_793) deriving instance GHC.Show.Show a_794 => GHC.Show.Show (NamedImports a_794) instance AST.Unmarshal.Unmarshal NamedImports instance Data.Foldable.Foldable NamedImports where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor NamedImports where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable NamedImports where traverse = AST.Traversable1.Class.traverseDefault1 data NamespaceImport a = NamespaceImport { ann :: a, extraChildren :: (AST.Parse.Err (Identifier a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_795. AST.Traversable1.Class.Traversable1 a_795 ) instance AST.Unmarshal.SymbolMatching NamespaceImport where matchedSymbols _ = [152] showFailure _ node_796 = "expected " GHC.Base.<> ( "namespace_import" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_796 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_797 c1_798 = TreeSitter.Node.nodeStartPoint node_796 TreeSitter.Node.TSPoint r2_799 c2_800 = TreeSitter.Node.nodeEndPoint node_796 deriving instance GHC.Classes.Eq a_801 => GHC.Classes.Eq (NamespaceImport a_801) deriving instance GHC.Classes.Ord a_802 => GHC.Classes.Ord (NamespaceImport a_802) deriving instance GHC.Show.Show a_803 => GHC.Show.Show (NamespaceImport a_803) instance AST.Unmarshal.Unmarshal NamespaceImport instance Data.Foldable.Foldable NamespaceImport where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor NamespaceImport where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable NamespaceImport where traverse = AST.Traversable1.Class.traverseDefault1 data NestedIdentifier a = NestedIdentifier { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: NestedIdentifier) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_804. AST.Traversable1.Class.Traversable1 a_804 ) instance AST.Unmarshal.SymbolMatching NestedIdentifier where matchedSymbols _ = [190] showFailure _ node_805 = "expected " GHC.Base.<> ( "nested_identifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_805 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_806 c1_807 = TreeSitter.Node.nodeStartPoint node_805 TreeSitter.Node.TSPoint r2_808 c2_809 = TreeSitter.Node.nodeEndPoint node_805 deriving instance GHC.Classes.Eq a_810 => GHC.Classes.Eq (NestedIdentifier a_810) deriving instance GHC.Classes.Ord a_811 => GHC.Classes.Ord (NestedIdentifier a_811) deriving instance GHC.Show.Show a_812 => GHC.Show.Show (NestedIdentifier a_812) instance AST.Unmarshal.Unmarshal NestedIdentifier instance Data.Foldable.Foldable NestedIdentifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor NestedIdentifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable NestedIdentifier where traverse = AST.Traversable1.Class.traverseDefault1 data NestedTypeIdentifier a = NestedTypeIdentifier { ann :: a, name :: (AST.Parse.Err (TypeIdentifier a)), module' :: (AST.Parse.Err ((Identifier GHC.Generics.:+: NestedIdentifier) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_813. AST.Traversable1.Class.Traversable1 a_813 ) instance AST.Unmarshal.SymbolMatching NestedTypeIdentifier where matchedSymbols _ = [248] showFailure _ node_814 = "expected " GHC.Base.<> ( "nested_type_identifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_814 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_815 c1_816 = TreeSitter.Node.nodeStartPoint node_814 TreeSitter.Node.TSPoint r2_817 c2_818 = TreeSitter.Node.nodeEndPoint node_814 deriving instance GHC.Classes.Eq a_819 => GHC.Classes.Eq (NestedTypeIdentifier a_819) deriving instance GHC.Classes.Ord a_820 => GHC.Classes.Ord (NestedTypeIdentifier a_820) deriving instance GHC.Show.Show a_821 => GHC.Show.Show (NestedTypeIdentifier a_821) instance AST.Unmarshal.Unmarshal NestedTypeIdentifier instance Data.Foldable.Foldable NestedTypeIdentifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor NestedTypeIdentifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable NestedTypeIdentifier where traverse = AST.Traversable1.Class.traverseDefault1 data NewExpression a = NewExpression { ann :: a, arguments :: (GHC.Maybe.Maybe (AST.Parse.Err (Arguments a))), 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_822. AST.Traversable1.Class.Traversable1 a_822 ) instance AST.Unmarshal.SymbolMatching NewExpression where matchedSymbols _ = [205] showFailure _ node_823 = "expected " GHC.Base.<> ( "new_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_823 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_824 c1_825 = TreeSitter.Node.nodeStartPoint node_823 TreeSitter.Node.TSPoint r2_826 c2_827 = TreeSitter.Node.nodeEndPoint node_823 deriving instance GHC.Classes.Eq a_828 => GHC.Classes.Eq (NewExpression a_828) deriving instance GHC.Classes.Ord a_829 => GHC.Classes.Ord (NewExpression a_829) deriving instance GHC.Show.Show a_830 => GHC.Show.Show (NewExpression a_830) instance AST.Unmarshal.Unmarshal NewExpression instance Data.Foldable.Foldable NewExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor NewExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable NewExpression where traverse = AST.Traversable1.Class.traverseDefault1 data NonNullExpression a = NonNullExpression { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_831. AST.Traversable1.Class.Traversable1 a_831 ) instance AST.Unmarshal.SymbolMatching NonNullExpression where matchedSymbols _ = [235] showFailure _ node_832 = "expected " GHC.Base.<> ( "non_null_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_832 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_833 c1_834 = TreeSitter.Node.nodeStartPoint node_832 TreeSitter.Node.TSPoint r2_835 c2_836 = TreeSitter.Node.nodeEndPoint node_832 deriving instance GHC.Classes.Eq a_837 => GHC.Classes.Eq (NonNullExpression a_837) deriving instance GHC.Classes.Ord a_838 => GHC.Classes.Ord (NonNullExpression a_838) deriving instance GHC.Show.Show a_839 => GHC.Show.Show (NonNullExpression a_839) instance AST.Unmarshal.Unmarshal NonNullExpression instance Data.Foldable.Foldable NonNullExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor NonNullExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable NonNullExpression where traverse = AST.Traversable1.Class.traverseDefault1 data Object a = Object { ann :: a, extraChildren :: ([AST.Parse.Err ((AssignmentPattern GHC.Generics.:+: MethodDefinition GHC.Generics.:+: Pair GHC.Generics.:+: ShorthandPropertyIdentifier GHC.Generics.:+: SpreadElement) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_840. AST.Traversable1.Class.Traversable1 a_840 ) instance AST.Unmarshal.SymbolMatching Object where matchedSymbols _ = [183] showFailure _ node_841 = "expected " GHC.Base.<> ( "object" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_841 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_842 c1_843 = TreeSitter.Node.nodeStartPoint node_841 TreeSitter.Node.TSPoint r2_844 c2_845 = TreeSitter.Node.nodeEndPoint node_841 deriving instance GHC.Classes.Eq a_846 => GHC.Classes.Eq (Object a_846) deriving instance GHC.Classes.Ord a_847 => GHC.Classes.Ord (Object a_847) deriving instance GHC.Show.Show a_848 => GHC.Show.Show (Object a_848) instance AST.Unmarshal.Unmarshal Object instance Data.Foldable.Foldable Object where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Object where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Object where traverse = AST.Traversable1.Class.traverseDefault1 data ObjectPattern a = ObjectPattern { ann :: a, extraChildren :: ([AST.Parse.Err ((AssignmentPattern GHC.Generics.:+: MethodDefinition GHC.Generics.:+: Pair GHC.Generics.:+: ShorthandPropertyIdentifier GHC.Generics.:+: SpreadElement) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_849. AST.Traversable1.Class.Traversable1 a_849 ) instance AST.Unmarshal.SymbolMatching ObjectPattern where matchedSymbols _ = [313] showFailure _ node_850 = "expected " GHC.Base.<> ( "object_pattern" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_850 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_851 c1_852 = TreeSitter.Node.nodeStartPoint node_850 TreeSitter.Node.TSPoint r2_853 c2_854 = TreeSitter.Node.nodeEndPoint node_850 deriving instance GHC.Classes.Eq a_855 => GHC.Classes.Eq (ObjectPattern a_855) deriving instance GHC.Classes.Ord a_856 => GHC.Classes.Ord (ObjectPattern a_856) deriving instance GHC.Show.Show a_857 => GHC.Show.Show (ObjectPattern a_857) instance AST.Unmarshal.Unmarshal ObjectPattern instance Data.Foldable.Foldable ObjectPattern where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ObjectPattern where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ObjectPattern where traverse = AST.Traversable1.Class.traverseDefault1 data ObjectType a = ObjectType { ann :: a, extraChildren :: ([AST.Parse.Err ((CallSignature GHC.Generics.:+: ConstructSignature GHC.Generics.:+: ExportStatement GHC.Generics.:+: IndexSignature GHC.Generics.:+: MethodSignature GHC.Generics.:+: PropertySignature) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_858. AST.Traversable1.Class.Traversable1 a_858 ) instance AST.Unmarshal.SymbolMatching ObjectType where matchedSymbols _ = [276] showFailure _ node_859 = "expected " GHC.Base.<> ( "object_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_859 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_860 c1_861 = TreeSitter.Node.nodeStartPoint node_859 TreeSitter.Node.TSPoint r2_862 c2_863 = TreeSitter.Node.nodeEndPoint node_859 deriving instance GHC.Classes.Eq a_864 => GHC.Classes.Eq (ObjectType a_864) deriving instance GHC.Classes.Ord a_865 => GHC.Classes.Ord (ObjectType a_865) deriving instance GHC.Show.Show a_866 => GHC.Show.Show (ObjectType a_866) instance AST.Unmarshal.Unmarshal ObjectType instance Data.Foldable.Foldable ObjectType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ObjectType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ObjectType where traverse = AST.Traversable1.Class.traverseDefault1 data OptionalParameter a = OptionalParameter { ann :: a, value :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))), extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: AccessibilityModifier GHC.Generics.:+: Identifier GHC.Generics.:+: Readonly GHC.Generics.:+: This GHC.Generics.:+: TypeAnnotation) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_867. AST.Traversable1.Class.Traversable1 a_867 ) instance AST.Unmarshal.SymbolMatching OptionalParameter where matchedSymbols _ = [257] showFailure _ node_868 = "expected " GHC.Base.<> ( "optional_parameter" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_868 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_869 c1_870 = TreeSitter.Node.nodeStartPoint node_868 TreeSitter.Node.TSPoint r2_871 c2_872 = TreeSitter.Node.nodeEndPoint node_868 deriving instance GHC.Classes.Eq a_873 => GHC.Classes.Eq (OptionalParameter a_873) deriving instance GHC.Classes.Ord a_874 => GHC.Classes.Ord (OptionalParameter a_874) deriving instance GHC.Show.Show a_875 => GHC.Show.Show (OptionalParameter a_875) instance AST.Unmarshal.Unmarshal OptionalParameter instance Data.Foldable.Foldable OptionalParameter where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor OptionalParameter where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable OptionalParameter where traverse = AST.Traversable1.Class.traverseDefault1 data Pair a = Pair { ann :: a, value :: (AST.Parse.Err (Expression a)), key :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_876. AST.Traversable1.Class.Traversable1 a_876 ) instance AST.Unmarshal.SymbolMatching Pair where matchedSymbols _ = [232] showFailure _ node_877 = "expected " GHC.Base.<> ( "pair" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_877 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_878 c1_879 = TreeSitter.Node.nodeStartPoint node_877 TreeSitter.Node.TSPoint r2_880 c2_881 = TreeSitter.Node.nodeEndPoint node_877 deriving instance GHC.Classes.Eq a_882 => GHC.Classes.Eq (Pair a_882) deriving instance GHC.Classes.Ord a_883 => GHC.Classes.Ord (Pair a_883) deriving instance GHC.Show.Show a_884 => GHC.Show.Show (Pair a_884) instance AST.Unmarshal.Unmarshal Pair instance Data.Foldable.Foldable Pair where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Pair where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Pair where traverse = AST.Traversable1.Class.traverseDefault1 data ParenthesizedExpression a = ParenthesizedExpression { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression GHC.Generics.:+: TypeAnnotation) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_885. AST.Traversable1.Class.Traversable1 a_885 ) instance AST.Unmarshal.SymbolMatching ParenthesizedExpression where matchedSymbols _ = [180] showFailure _ node_886 = "expected " GHC.Base.<> ( "parenthesized_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_886 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_887 c1_888 = TreeSitter.Node.nodeStartPoint node_886 TreeSitter.Node.TSPoint r2_889 c2_890 = TreeSitter.Node.nodeEndPoint node_886 deriving instance GHC.Classes.Eq a_891 => GHC.Classes.Eq (ParenthesizedExpression a_891) deriving instance GHC.Classes.Ord a_892 => GHC.Classes.Ord (ParenthesizedExpression a_892) deriving instance GHC.Show.Show a_893 => GHC.Show.Show (ParenthesizedExpression a_893) instance AST.Unmarshal.Unmarshal ParenthesizedExpression instance Data.Foldable.Foldable ParenthesizedExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ParenthesizedExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ParenthesizedExpression where traverse = AST.Traversable1.Class.traverseDefault1 data ParenthesizedType a = ParenthesizedType { ann :: a, 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_894. AST.Traversable1.Class.Traversable1 a_894 ) instance AST.Unmarshal.SymbolMatching ParenthesizedType where matchedSymbols _ = [273] showFailure _ node_895 = "expected " GHC.Base.<> ( "parenthesized_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_895 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_896 c1_897 = TreeSitter.Node.nodeStartPoint node_895 TreeSitter.Node.TSPoint r2_898 c2_899 = TreeSitter.Node.nodeEndPoint node_895 deriving instance GHC.Classes.Eq a_900 => GHC.Classes.Eq (ParenthesizedType a_900) deriving instance GHC.Classes.Ord a_901 => GHC.Classes.Ord (ParenthesizedType a_901) deriving instance GHC.Show.Show a_902 => GHC.Show.Show (ParenthesizedType a_902) instance AST.Unmarshal.Unmarshal ParenthesizedType instance Data.Foldable.Foldable ParenthesizedType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ParenthesizedType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ParenthesizedType where traverse = AST.Traversable1.Class.traverseDefault1 data PredefinedType a = PredefinedType {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_903. AST.Traversable1.Class.Traversable1 a_903 ) instance AST.Unmarshal.SymbolMatching PredefinedType where matchedSymbols _ = [274] showFailure _ node_904 = "expected " GHC.Base.<> ( "predefined_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_904 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_905 c1_906 = TreeSitter.Node.nodeStartPoint node_904 TreeSitter.Node.TSPoint r2_907 c2_908 = TreeSitter.Node.nodeEndPoint node_904 deriving instance GHC.Classes.Eq a_909 => GHC.Classes.Eq (PredefinedType a_909) deriving instance GHC.Classes.Ord a_910 => GHC.Classes.Ord (PredefinedType a_910) deriving instance GHC.Show.Show a_911 => GHC.Show.Show (PredefinedType a_911) instance AST.Unmarshal.Unmarshal PredefinedType instance Data.Foldable.Foldable PredefinedType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor PredefinedType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable PredefinedType where traverse = AST.Traversable1.Class.traverseDefault1 data Program a = Program { ann :: a, extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: HashBangLine) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_912. AST.Traversable1.Class.Traversable1 a_912 ) instance AST.Unmarshal.SymbolMatching Program where matchedSymbols _ = [143] showFailure _ node_913 = "expected " GHC.Base.<> ( "program" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_913 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_914 c1_915 = TreeSitter.Node.nodeStartPoint node_913 TreeSitter.Node.TSPoint r2_916 c2_917 = TreeSitter.Node.nodeEndPoint node_913 deriving instance GHC.Classes.Eq a_918 => GHC.Classes.Eq (Program a_918) deriving instance GHC.Classes.Ord a_919 => GHC.Classes.Ord (Program a_919) deriving instance GHC.Show.Show a_920 => GHC.Show.Show (Program a_920) instance AST.Unmarshal.Unmarshal Program instance Data.Foldable.Foldable Program where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Program where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Program where traverse = AST.Traversable1.Class.traverseDefault1 data PropertySignature a = PropertySignature { ann :: a, name :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)), type' :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))), extraChildren :: ([AST.Parse.Err ((AccessibilityModifier GHC.Generics.:+: Readonly) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_921. AST.Traversable1.Class.Traversable1 a_921 ) instance AST.Unmarshal.SymbolMatching PropertySignature where matchedSymbols _ = [278] showFailure _ node_922 = "expected " GHC.Base.<> ( "property_signature" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_922 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_923 c1_924 = TreeSitter.Node.nodeStartPoint node_922 TreeSitter.Node.TSPoint r2_925 c2_926 = TreeSitter.Node.nodeEndPoint node_922 deriving instance GHC.Classes.Eq a_927 => GHC.Classes.Eq (PropertySignature a_927) deriving instance GHC.Classes.Ord a_928 => GHC.Classes.Ord (PropertySignature a_928) deriving instance GHC.Show.Show a_929 => GHC.Show.Show (PropertySignature a_929) instance AST.Unmarshal.Unmarshal PropertySignature instance Data.Foldable.Foldable PropertySignature where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor PropertySignature where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable PropertySignature where traverse = AST.Traversable1.Class.traverseDefault1 data PublicFieldDefinition a = PublicFieldDefinition { ann :: a, value :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))), name :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)), type' :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))), extraChildren :: ([AST.Parse.Err ((AccessibilityModifier GHC.Generics.:+: Readonly) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_930. AST.Traversable1.Class.Traversable1 a_930 ) instance AST.Unmarshal.SymbolMatching PublicFieldDefinition where matchedSymbols _ = [228] showFailure _ node_931 = "expected " GHC.Base.<> ( "public_field_definition" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_931 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_932 c1_933 = TreeSitter.Node.nodeStartPoint node_931 TreeSitter.Node.TSPoint r2_934 c2_935 = TreeSitter.Node.nodeEndPoint node_931 deriving instance GHC.Classes.Eq a_936 => GHC.Classes.Eq (PublicFieldDefinition a_936) deriving instance GHC.Classes.Ord a_937 => GHC.Classes.Ord (PublicFieldDefinition a_937) deriving instance GHC.Show.Show a_938 => GHC.Show.Show (PublicFieldDefinition a_938) instance AST.Unmarshal.Unmarshal PublicFieldDefinition instance Data.Foldable.Foldable PublicFieldDefinition where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor PublicFieldDefinition where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable PublicFieldDefinition where traverse = AST.Traversable1.Class.traverseDefault1 data Regex a = Regex { ann :: a, flags :: (GHC.Maybe.Maybe (AST.Parse.Err (RegexFlags a))), pattern :: (AST.Parse.Err (RegexPattern a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_939. AST.Traversable1.Class.Traversable1 a_939 ) instance AST.Unmarshal.SymbolMatching Regex where matchedSymbols _ = [221] showFailure _ node_940 = "expected " GHC.Base.<> ( "regex" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_940 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_941 c1_942 = TreeSitter.Node.nodeStartPoint node_940 TreeSitter.Node.TSPoint r2_943 c2_944 = TreeSitter.Node.nodeEndPoint node_940 deriving instance GHC.Classes.Eq a_945 => GHC.Classes.Eq (Regex a_945) deriving instance GHC.Classes.Ord a_946 => GHC.Classes.Ord (Regex a_946) deriving instance GHC.Show.Show a_947 => GHC.Show.Show (Regex a_947) instance AST.Unmarshal.Unmarshal Regex instance Data.Foldable.Foldable Regex where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Regex where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Regex where traverse = AST.Traversable1.Class.traverseDefault1 data RequiredParameter a = RequiredParameter { ann :: a, value :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))), extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: AccessibilityModifier GHC.Generics.:+: Identifier GHC.Generics.:+: Readonly GHC.Generics.:+: This GHC.Generics.:+: TypeAnnotation) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_948. AST.Traversable1.Class.Traversable1 a_948 ) instance AST.Unmarshal.SymbolMatching RequiredParameter where matchedSymbols _ = [256] showFailure _ node_949 = "expected " GHC.Base.<> ( "required_parameter" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_949 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_950 c1_951 = TreeSitter.Node.nodeStartPoint node_949 TreeSitter.Node.TSPoint r2_952 c2_953 = TreeSitter.Node.nodeEndPoint node_949 deriving instance GHC.Classes.Eq a_954 => GHC.Classes.Eq (RequiredParameter a_954) deriving instance GHC.Classes.Ord a_955 => GHC.Classes.Ord (RequiredParameter a_955) deriving instance GHC.Show.Show a_956 => GHC.Show.Show (RequiredParameter a_956) instance AST.Unmarshal.Unmarshal RequiredParameter instance Data.Foldable.Foldable RequiredParameter where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor RequiredParameter where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable RequiredParameter where traverse = AST.Traversable1.Class.traverseDefault1 data RestParameter a = RestParameter { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: TypeAnnotation) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_957. AST.Traversable1.Class.Traversable1 a_957 ) instance AST.Unmarshal.SymbolMatching RestParameter where matchedSymbols _ = [230] showFailure _ node_958 = "expected " GHC.Base.<> ( "rest_parameter" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_958 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_959 c1_960 = TreeSitter.Node.nodeStartPoint node_958 TreeSitter.Node.TSPoint r2_961 c2_962 = TreeSitter.Node.nodeEndPoint node_958 deriving instance GHC.Classes.Eq a_963 => GHC.Classes.Eq (RestParameter a_963) deriving instance GHC.Classes.Ord a_964 => GHC.Classes.Ord (RestParameter a_964) deriving instance GHC.Show.Show a_965 => GHC.Show.Show (RestParameter a_965) instance AST.Unmarshal.Unmarshal RestParameter instance Data.Foldable.Foldable RestParameter where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor RestParameter where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable RestParameter where traverse = AST.Traversable1.Class.traverseDefault1 data ReturnStatement a = ReturnStatement { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_966. AST.Traversable1.Class.Traversable1 a_966 ) instance AST.Unmarshal.SymbolMatching ReturnStatement where matchedSymbols _ = [171] showFailure _ node_967 = "expected " GHC.Base.<> ( "return_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_967 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_968 c1_969 = TreeSitter.Node.nodeStartPoint node_967 TreeSitter.Node.TSPoint r2_970 c2_971 = TreeSitter.Node.nodeEndPoint node_967 deriving instance GHC.Classes.Eq a_972 => GHC.Classes.Eq (ReturnStatement a_972) deriving instance GHC.Classes.Ord a_973 => GHC.Classes.Ord (ReturnStatement a_973) deriving instance GHC.Show.Show a_974 => GHC.Show.Show (ReturnStatement a_974) instance AST.Unmarshal.Unmarshal ReturnStatement instance Data.Foldable.Foldable ReturnStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ReturnStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ReturnStatement where traverse = AST.Traversable1.Class.traverseDefault1 data SequenceExpression a = SequenceExpression { ann :: a, left :: (AST.Parse.Err (Expression a)), right :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_975. AST.Traversable1.Class.Traversable1 a_975 ) instance AST.Unmarshal.SymbolMatching SequenceExpression where matchedSymbols _ = [217] showFailure _ node_976 = "expected " GHC.Base.<> ( "sequence_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_976 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_977 c1_978 = TreeSitter.Node.nodeStartPoint node_976 TreeSitter.Node.TSPoint r2_979 c2_980 = TreeSitter.Node.nodeEndPoint node_976 deriving instance GHC.Classes.Eq a_981 => GHC.Classes.Eq (SequenceExpression a_981) deriving instance GHC.Classes.Ord a_982 => GHC.Classes.Ord (SequenceExpression a_982) deriving instance GHC.Show.Show a_983 => GHC.Show.Show (SequenceExpression a_983) instance AST.Unmarshal.Unmarshal SequenceExpression instance Data.Foldable.Foldable SequenceExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SequenceExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SequenceExpression where traverse = AST.Traversable1.Class.traverseDefault1 data SpreadElement a = SpreadElement { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_984. AST.Traversable1.Class.Traversable1 a_984 ) instance AST.Unmarshal.SymbolMatching SpreadElement where matchedSymbols _ = [212] showFailure _ node_985 = "expected " GHC.Base.<> ( "spread_element" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_985 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_986 c1_987 = TreeSitter.Node.nodeStartPoint node_985 TreeSitter.Node.TSPoint r2_988 c2_989 = TreeSitter.Node.nodeEndPoint node_985 deriving instance GHC.Classes.Eq a_990 => GHC.Classes.Eq (SpreadElement a_990) deriving instance GHC.Classes.Ord a_991 => GHC.Classes.Ord (SpreadElement a_991) deriving instance GHC.Show.Show a_992 => GHC.Show.Show (SpreadElement a_992) instance AST.Unmarshal.Unmarshal SpreadElement instance Data.Foldable.Foldable SpreadElement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SpreadElement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SpreadElement where traverse = AST.Traversable1.Class.traverseDefault1 data StatementBlock a = StatementBlock { ann :: a, extraChildren :: ([AST.Parse.Err (Statement a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_993. AST.Traversable1.Class.Traversable1 a_993 ) instance AST.Unmarshal.SymbolMatching StatementBlock where matchedSymbols _ = [158] showFailure _ node_994 = "expected " GHC.Base.<> ( "statement_block" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_994 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_995 c1_996 = TreeSitter.Node.nodeStartPoint node_994 TreeSitter.Node.TSPoint r2_997 c2_998 = TreeSitter.Node.nodeEndPoint node_994 deriving instance GHC.Classes.Eq a_999 => GHC.Classes.Eq (StatementBlock a_999) deriving instance GHC.Classes.Ord a_1000 => GHC.Classes.Ord (StatementBlock a_1000) deriving instance GHC.Show.Show a_1001 => GHC.Show.Show (StatementBlock a_1001) instance AST.Unmarshal.Unmarshal StatementBlock instance Data.Foldable.Foldable StatementBlock where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor StatementBlock where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable StatementBlock where traverse = AST.Traversable1.Class.traverseDefault1 data String a = String { ann :: a, extraChildren :: ([AST.Parse.Err (EscapeSequence a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1002. AST.Traversable1.Class.Traversable1 a_1002 ) instance AST.Unmarshal.SymbolMatching String where matchedSymbols _ = [218] showFailure _ node_1003 = "expected " GHC.Base.<> ( "string" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1003 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1004 c1_1005 = TreeSitter.Node.nodeStartPoint node_1003 TreeSitter.Node.TSPoint r2_1006 c2_1007 = TreeSitter.Node.nodeEndPoint node_1003 deriving instance GHC.Classes.Eq a_1008 => GHC.Classes.Eq (String a_1008) deriving instance GHC.Classes.Ord a_1009 => GHC.Classes.Ord (String a_1009) deriving instance GHC.Show.Show a_1010 => GHC.Show.Show (String a_1010) instance AST.Unmarshal.Unmarshal String instance Data.Foldable.Foldable String where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor String where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable String where traverse = AST.Traversable1.Class.traverseDefault1 data SubscriptExpression a = SubscriptExpression { ann :: a, object :: (AST.Parse.Err (Expression a)), index :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1011. AST.Traversable1.Class.Traversable1 a_1011 ) instance AST.Unmarshal.SymbolMatching SubscriptExpression where matchedSymbols _ = [208] showFailure _ node_1012 = "expected " GHC.Base.<> ( "subscript_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1012 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1013 c1_1014 = TreeSitter.Node.nodeStartPoint node_1012 TreeSitter.Node.TSPoint r2_1015 c2_1016 = TreeSitter.Node.nodeEndPoint node_1012 deriving instance GHC.Classes.Eq a_1017 => GHC.Classes.Eq (SubscriptExpression a_1017) deriving instance GHC.Classes.Ord a_1018 => GHC.Classes.Ord (SubscriptExpression a_1018) deriving instance GHC.Show.Show a_1019 => GHC.Show.Show (SubscriptExpression a_1019) instance AST.Unmarshal.Unmarshal SubscriptExpression instance Data.Foldable.Foldable SubscriptExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SubscriptExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SubscriptExpression where traverse = AST.Traversable1.Class.traverseDefault1 data SwitchBody a = SwitchBody { ann :: a, extraChildren :: ([AST.Parse.Err ((SwitchCase GHC.Generics.:+: SwitchDefault) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1020. AST.Traversable1.Class.Traversable1 a_1020 ) instance AST.Unmarshal.SymbolMatching SwitchBody where matchedSymbols _ = [175] showFailure _ node_1021 = "expected " GHC.Base.<> ( "switch_body" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1021 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1022 c1_1023 = TreeSitter.Node.nodeStartPoint node_1021 TreeSitter.Node.TSPoint r2_1024 c2_1025 = TreeSitter.Node.nodeEndPoint node_1021 deriving instance GHC.Classes.Eq a_1026 => GHC.Classes.Eq (SwitchBody a_1026) deriving instance GHC.Classes.Ord a_1027 => GHC.Classes.Ord (SwitchBody a_1027) deriving instance GHC.Show.Show a_1028 => GHC.Show.Show (SwitchBody a_1028) instance AST.Unmarshal.Unmarshal SwitchBody instance Data.Foldable.Foldable SwitchBody where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SwitchBody where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SwitchBody where traverse = AST.Traversable1.Class.traverseDefault1 data SwitchCase a = SwitchCase { ann :: a, value :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a)), extraChildren :: ([AST.Parse.Err (Statement a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1029. AST.Traversable1.Class.Traversable1 a_1029 ) instance AST.Unmarshal.SymbolMatching SwitchCase where matchedSymbols _ = [176] showFailure _ node_1030 = "expected " GHC.Base.<> ( "switch_case" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1030 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1031 c1_1032 = TreeSitter.Node.nodeStartPoint node_1030 TreeSitter.Node.TSPoint r2_1033 c2_1034 = TreeSitter.Node.nodeEndPoint node_1030 deriving instance GHC.Classes.Eq a_1035 => GHC.Classes.Eq (SwitchCase a_1035) deriving instance GHC.Classes.Ord a_1036 => GHC.Classes.Ord (SwitchCase a_1036) deriving instance GHC.Show.Show a_1037 => GHC.Show.Show (SwitchCase a_1037) instance AST.Unmarshal.Unmarshal SwitchCase instance Data.Foldable.Foldable SwitchCase where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SwitchCase where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SwitchCase where traverse = AST.Traversable1.Class.traverseDefault1 data SwitchDefault a = SwitchDefault { ann :: a, extraChildren :: ([AST.Parse.Err (Statement a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1038. AST.Traversable1.Class.Traversable1 a_1038 ) instance AST.Unmarshal.SymbolMatching SwitchDefault where matchedSymbols _ = [177] showFailure _ node_1039 = "expected " GHC.Base.<> ( "switch_default" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1039 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1040 c1_1041 = TreeSitter.Node.nodeStartPoint node_1039 TreeSitter.Node.TSPoint r2_1042 c2_1043 = TreeSitter.Node.nodeEndPoint node_1039 deriving instance GHC.Classes.Eq a_1044 => GHC.Classes.Eq (SwitchDefault a_1044) deriving instance GHC.Classes.Ord a_1045 => GHC.Classes.Ord (SwitchDefault a_1045) deriving instance GHC.Show.Show a_1046 => GHC.Show.Show (SwitchDefault a_1046) instance AST.Unmarshal.Unmarshal SwitchDefault instance Data.Foldable.Foldable SwitchDefault where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SwitchDefault where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SwitchDefault where traverse = AST.Traversable1.Class.traverseDefault1 data SwitchStatement a = SwitchStatement { ann :: a, body :: (AST.Parse.Err (SwitchBody a)), value :: (AST.Parse.Err (ParenthesizedExpression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1047. AST.Traversable1.Class.Traversable1 a_1047 ) instance AST.Unmarshal.SymbolMatching SwitchStatement where matchedSymbols _ = [160] showFailure _ node_1048 = "expected " GHC.Base.<> ( "switch_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1048 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1049 c1_1050 = TreeSitter.Node.nodeStartPoint node_1048 TreeSitter.Node.TSPoint r2_1051 c2_1052 = TreeSitter.Node.nodeEndPoint node_1048 deriving instance GHC.Classes.Eq a_1053 => GHC.Classes.Eq (SwitchStatement a_1053) deriving instance GHC.Classes.Ord a_1054 => GHC.Classes.Ord (SwitchStatement a_1054) deriving instance GHC.Show.Show a_1055 => GHC.Show.Show (SwitchStatement a_1055) instance AST.Unmarshal.Unmarshal SwitchStatement instance Data.Foldable.Foldable SwitchStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SwitchStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SwitchStatement where traverse = AST.Traversable1.Class.traverseDefault1 data TemplateString a = TemplateString { ann :: a, extraChildren :: ([AST.Parse.Err ((EscapeSequence GHC.Generics.:+: TemplateSubstitution) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1056. AST.Traversable1.Class.Traversable1 a_1056 ) instance AST.Unmarshal.SymbolMatching TemplateString where matchedSymbols _ = [219] showFailure _ node_1057 = "expected " GHC.Base.<> ( "template_string" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1057 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1058 c1_1059 = TreeSitter.Node.nodeStartPoint node_1057 TreeSitter.Node.TSPoint r2_1060 c2_1061 = TreeSitter.Node.nodeEndPoint node_1057 deriving instance GHC.Classes.Eq a_1062 => GHC.Classes.Eq (TemplateString a_1062) deriving instance GHC.Classes.Ord a_1063 => GHC.Classes.Ord (TemplateString a_1063) deriving instance GHC.Show.Show a_1064 => GHC.Show.Show (TemplateString a_1064) instance AST.Unmarshal.Unmarshal TemplateString instance Data.Foldable.Foldable TemplateString where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TemplateString where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TemplateString where traverse = AST.Traversable1.Class.traverseDefault1 data TemplateSubstitution a = TemplateSubstitution { ann :: a, extraChildren :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1065. AST.Traversable1.Class.Traversable1 a_1065 ) instance AST.Unmarshal.SymbolMatching TemplateSubstitution where matchedSymbols _ = [220] showFailure _ node_1066 = "expected " GHC.Base.<> ( "template_substitution" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1066 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1067 c1_1068 = TreeSitter.Node.nodeStartPoint node_1066 TreeSitter.Node.TSPoint r2_1069 c2_1070 = TreeSitter.Node.nodeEndPoint node_1066 deriving instance GHC.Classes.Eq a_1071 => GHC.Classes.Eq (TemplateSubstitution a_1071) deriving instance GHC.Classes.Ord a_1072 => GHC.Classes.Ord (TemplateSubstitution a_1072) deriving instance GHC.Show.Show a_1073 => GHC.Show.Show (TemplateSubstitution a_1073) instance AST.Unmarshal.Unmarshal TemplateSubstitution instance Data.Foldable.Foldable TemplateSubstitution where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TemplateSubstitution where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TemplateSubstitution where traverse = AST.Traversable1.Class.traverseDefault1 data TernaryExpression a = TernaryExpression { ann :: a, alternative :: (AST.Parse.Err (Expression a)), consequence :: (AST.Parse.Err (Expression a)), condition :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1074. AST.Traversable1.Class.Traversable1 a_1074 ) instance AST.Unmarshal.SymbolMatching TernaryExpression where matchedSymbols _ = [213] showFailure _ node_1075 = "expected " GHC.Base.<> ( "ternary_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1075 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1076 c1_1077 = TreeSitter.Node.nodeStartPoint node_1075 TreeSitter.Node.TSPoint r2_1078 c2_1079 = TreeSitter.Node.nodeEndPoint node_1075 deriving instance GHC.Classes.Eq a_1080 => GHC.Classes.Eq (TernaryExpression a_1080) deriving instance GHC.Classes.Ord a_1081 => GHC.Classes.Ord (TernaryExpression a_1081) deriving instance GHC.Show.Show a_1082 => GHC.Show.Show (TernaryExpression a_1082) instance AST.Unmarshal.Unmarshal TernaryExpression instance Data.Foldable.Foldable TernaryExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TernaryExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TernaryExpression where traverse = AST.Traversable1.Class.traverseDefault1 data ThrowStatement a = ThrowStatement { ann :: a, extraChildren :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1083. AST.Traversable1.Class.Traversable1 a_1083 ) instance AST.Unmarshal.SymbolMatching ThrowStatement where matchedSymbols _ = [172] showFailure _ node_1084 = "expected " GHC.Base.<> ( "throw_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1084 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1085 c1_1086 = TreeSitter.Node.nodeStartPoint node_1084 TreeSitter.Node.TSPoint r2_1087 c2_1088 = TreeSitter.Node.nodeEndPoint node_1084 deriving instance GHC.Classes.Eq a_1089 => GHC.Classes.Eq (ThrowStatement a_1089) deriving instance GHC.Classes.Ord a_1090 => GHC.Classes.Ord (ThrowStatement a_1090) deriving instance GHC.Show.Show a_1091 => GHC.Show.Show (ThrowStatement a_1091) instance AST.Unmarshal.Unmarshal ThrowStatement instance Data.Foldable.Foldable ThrowStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ThrowStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ThrowStatement where traverse = AST.Traversable1.Class.traverseDefault1 data TryStatement a = TryStatement { ann :: a, body :: (AST.Parse.Err (StatementBlock a)), handler :: (GHC.Maybe.Maybe (AST.Parse.Err (CatchClause a))), finalizer :: (GHC.Maybe.Maybe (AST.Parse.Err (FinallyClause a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1092. AST.Traversable1.Class.Traversable1 a_1092 ) instance AST.Unmarshal.SymbolMatching TryStatement where matchedSymbols _ = [166] showFailure _ node_1093 = "expected " GHC.Base.<> ( "try_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1093 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1094 c1_1095 = TreeSitter.Node.nodeStartPoint node_1093 TreeSitter.Node.TSPoint r2_1096 c2_1097 = TreeSitter.Node.nodeEndPoint node_1093 deriving instance GHC.Classes.Eq a_1098 => GHC.Classes.Eq (TryStatement a_1098) deriving instance GHC.Classes.Ord a_1099 => GHC.Classes.Ord (TryStatement a_1099) deriving instance GHC.Show.Show a_1100 => GHC.Show.Show (TryStatement a_1100) instance AST.Unmarshal.Unmarshal TryStatement instance Data.Foldable.Foldable TryStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TryStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TryStatement where traverse = AST.Traversable1.Class.traverseDefault1 data TupleType a = TupleType { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1101. AST.Traversable1.Class.Traversable1 a_1101 ) instance AST.Unmarshal.SymbolMatching TupleType where matchedSymbols _ = [286] showFailure _ node_1102 = "expected " GHC.Base.<> ( "tuple_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1102 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1103 c1_1104 = TreeSitter.Node.nodeStartPoint node_1102 TreeSitter.Node.TSPoint r2_1105 c2_1106 = TreeSitter.Node.nodeEndPoint node_1102 deriving instance GHC.Classes.Eq a_1107 => GHC.Classes.Eq (TupleType a_1107) deriving instance GHC.Classes.Ord a_1108 => GHC.Classes.Ord (TupleType a_1108) deriving instance GHC.Show.Show a_1109 => GHC.Show.Show (TupleType a_1109) instance AST.Unmarshal.Unmarshal TupleType instance Data.Foldable.Foldable TupleType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TupleType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TupleType where traverse = AST.Traversable1.Class.traverseDefault1 data TypeAliasDeclaration a = TypeAliasDeclaration { ann :: a, 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)), name :: (AST.Parse.Err (TypeIdentifier a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1110. AST.Traversable1.Class.Traversable1 a_1110 ) instance AST.Unmarshal.SymbolMatching TypeAliasDeclaration where matchedSymbols _ = [254] showFailure _ node_1111 = "expected " GHC.Base.<> ( "type_alias_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1111 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1112 c1_1113 = TreeSitter.Node.nodeStartPoint node_1111 TreeSitter.Node.TSPoint r2_1114 c2_1115 = TreeSitter.Node.nodeEndPoint node_1111 deriving instance GHC.Classes.Eq a_1116 => GHC.Classes.Eq (TypeAliasDeclaration a_1116) deriving instance GHC.Classes.Ord a_1117 => GHC.Classes.Ord (TypeAliasDeclaration a_1117) deriving instance GHC.Show.Show a_1118 => GHC.Show.Show (TypeAliasDeclaration a_1118) instance AST.Unmarshal.Unmarshal TypeAliasDeclaration instance Data.Foldable.Foldable TypeAliasDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeAliasDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeAliasDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data TypeAnnotation a = TypeAnnotation { ann :: a, 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1119. AST.Traversable1.Class.Traversable1 a_1119 ) instance AST.Unmarshal.SymbolMatching TypeAnnotation where matchedSymbols _ = [259] showFailure _ node_1120 = "expected " GHC.Base.<> ( "type_annotation" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1120 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1121 c1_1122 = TreeSitter.Node.nodeStartPoint node_1120 TreeSitter.Node.TSPoint r2_1123 c2_1124 = TreeSitter.Node.nodeEndPoint node_1120 deriving instance GHC.Classes.Eq a_1125 => GHC.Classes.Eq (TypeAnnotation a_1125) deriving instance GHC.Classes.Ord a_1126 => GHC.Classes.Ord (TypeAnnotation a_1126) deriving instance GHC.Show.Show a_1127 => GHC.Show.Show (TypeAnnotation a_1127) instance AST.Unmarshal.Unmarshal TypeAnnotation instance Data.Foldable.Foldable TypeAnnotation where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeAnnotation where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeAnnotation where traverse = AST.Traversable1.Class.traverseDefault1 data TypeArguments a = TypeArguments { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1128. AST.Traversable1.Class.Traversable1 a_1128 ) instance AST.Unmarshal.SymbolMatching TypeArguments where matchedSymbols _ = [275] showFailure _ node_1129 = "expected " GHC.Base.<> ( "type_arguments" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1129 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1130 c1_1131 = TreeSitter.Node.nodeStartPoint node_1129 TreeSitter.Node.TSPoint r2_1132 c2_1133 = TreeSitter.Node.nodeEndPoint node_1129 deriving instance GHC.Classes.Eq a_1134 => GHC.Classes.Eq (TypeArguments a_1134) deriving instance GHC.Classes.Ord a_1135 => GHC.Classes.Ord (TypeArguments a_1135) deriving instance GHC.Show.Show a_1136 => GHC.Show.Show (TypeArguments a_1136) instance AST.Unmarshal.Unmarshal TypeArguments instance Data.Foldable.Foldable TypeArguments where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeArguments where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeArguments where traverse = AST.Traversable1.Class.traverseDefault1 data TypeParameter a = TypeParameter { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Constraint GHC.Generics.:+: DefaultType GHC.Generics.:+: TypeIdentifier) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1137. AST.Traversable1.Class.Traversable1 a_1137 ) instance AST.Unmarshal.SymbolMatching TypeParameter where matchedSymbols _ = [280] showFailure _ node_1138 = "expected " GHC.Base.<> ( "type_parameter" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1138 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1139 c1_1140 = TreeSitter.Node.nodeStartPoint node_1138 TreeSitter.Node.TSPoint r2_1141 c2_1142 = TreeSitter.Node.nodeEndPoint node_1138 deriving instance GHC.Classes.Eq a_1143 => GHC.Classes.Eq (TypeParameter a_1143) deriving instance GHC.Classes.Ord a_1144 => GHC.Classes.Ord (TypeParameter a_1144) deriving instance GHC.Show.Show a_1145 => GHC.Show.Show (TypeParameter a_1145) instance AST.Unmarshal.Unmarshal TypeParameter instance Data.Foldable.Foldable TypeParameter where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeParameter where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeParameter where traverse = AST.Traversable1.Class.traverseDefault1 data TypeParameters a = TypeParameters { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (TypeParameter a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1146. AST.Traversable1.Class.Traversable1 a_1146 ) instance AST.Unmarshal.SymbolMatching TypeParameters where matchedSymbols _ = [279] showFailure _ node_1147 = "expected " GHC.Base.<> ( "type_parameters" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1147 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1148 c1_1149 = TreeSitter.Node.nodeStartPoint node_1147 TreeSitter.Node.TSPoint r2_1150 c2_1151 = TreeSitter.Node.nodeEndPoint node_1147 deriving instance GHC.Classes.Eq a_1152 => GHC.Classes.Eq (TypeParameters a_1152) deriving instance GHC.Classes.Ord a_1153 => GHC.Classes.Ord (TypeParameters a_1153) deriving instance GHC.Show.Show a_1154 => GHC.Show.Show (TypeParameters a_1154) instance AST.Unmarshal.Unmarshal TypeParameters instance Data.Foldable.Foldable TypeParameters where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeParameters where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeParameters where traverse = AST.Traversable1.Class.traverseDefault1 data TypePredicate a = TypePredicate { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1155. AST.Traversable1.Class.Traversable1 a_1155 ) instance AST.Unmarshal.SymbolMatching TypePredicate where matchedSymbols _ = [264] showFailure _ node_1156 = "expected " GHC.Base.<> ( "type_predicate" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1156 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1157 c1_1158 = TreeSitter.Node.nodeStartPoint node_1156 TreeSitter.Node.TSPoint r2_1159 c2_1160 = TreeSitter.Node.nodeEndPoint node_1156 deriving instance GHC.Classes.Eq a_1161 => GHC.Classes.Eq (TypePredicate a_1161) deriving instance GHC.Classes.Ord a_1162 => GHC.Classes.Ord (TypePredicate a_1162) deriving instance GHC.Show.Show a_1163 => GHC.Show.Show (TypePredicate a_1163) instance AST.Unmarshal.Unmarshal TypePredicate instance Data.Foldable.Foldable TypePredicate where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypePredicate where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypePredicate where traverse = AST.Traversable1.Class.traverseDefault1 data TypeQuery a = TypeQuery { ann :: a, extraChildren :: (AST.Parse.Err ((Identifier GHC.Generics.:+: NestedIdentifier) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1164. AST.Traversable1.Class.Traversable1 a_1164 ) instance AST.Unmarshal.SymbolMatching TypeQuery where matchedSymbols _ = [265] showFailure _ node_1165 = "expected " GHC.Base.<> ( "type_query" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1165 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1166 c1_1167 = TreeSitter.Node.nodeStartPoint node_1165 TreeSitter.Node.TSPoint r2_1168 c2_1169 = TreeSitter.Node.nodeEndPoint node_1165 deriving instance GHC.Classes.Eq a_1170 => GHC.Classes.Eq (TypeQuery a_1170) deriving instance GHC.Classes.Ord a_1171 => GHC.Classes.Ord (TypeQuery a_1171) deriving instance GHC.Show.Show a_1172 => GHC.Show.Show (TypeQuery a_1172) instance AST.Unmarshal.Unmarshal TypeQuery instance Data.Foldable.Foldable TypeQuery where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeQuery where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeQuery where traverse = AST.Traversable1.Class.traverseDefault1 data UnaryExpression a = UnaryExpression { ann :: a, operator :: (AST.Parse.Err ((AnonymousBang GHC.Generics.:+: AnonymousPlus GHC.Generics.:+: AnonymousMinus GHC.Generics.:+: AnonymousDelete GHC.Generics.:+: AnonymousTypeof GHC.Generics.:+: AnonymousVoid GHC.Generics.:+: AnonymousTilde) a)), argument :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1173. AST.Traversable1.Class.Traversable1 a_1173 ) instance AST.Unmarshal.SymbolMatching UnaryExpression where matchedSymbols _ = [215, 270] showFailure _ node_1174 = "expected " GHC.Base.<> ( "unary_expression, unary_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1174 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1175 c1_1176 = TreeSitter.Node.nodeStartPoint node_1174 TreeSitter.Node.TSPoint r2_1177 c2_1178 = TreeSitter.Node.nodeEndPoint node_1174 deriving instance GHC.Classes.Eq a_1179 => GHC.Classes.Eq (UnaryExpression a_1179) deriving instance GHC.Classes.Ord a_1180 => GHC.Classes.Ord (UnaryExpression a_1180) deriving instance GHC.Show.Show a_1181 => GHC.Show.Show (UnaryExpression a_1181) instance AST.Unmarshal.Unmarshal UnaryExpression instance Data.Foldable.Foldable UnaryExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor UnaryExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable UnaryExpression where traverse = AST.Traversable1.Class.traverseDefault1 data UnionType a = UnionType { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1182. AST.Traversable1.Class.Traversable1 a_1182 ) instance AST.Unmarshal.SymbolMatching UnionType where matchedSymbols _ = [287] showFailure _ node_1183 = "expected " GHC.Base.<> ( "union_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1183 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1184 c1_1185 = TreeSitter.Node.nodeStartPoint node_1183 TreeSitter.Node.TSPoint r2_1186 c2_1187 = TreeSitter.Node.nodeEndPoint node_1183 deriving instance GHC.Classes.Eq a_1188 => GHC.Classes.Eq (UnionType a_1188) deriving instance GHC.Classes.Ord a_1189 => GHC.Classes.Ord (UnionType a_1189) deriving instance GHC.Show.Show a_1190 => GHC.Show.Show (UnionType a_1190) instance AST.Unmarshal.Unmarshal UnionType instance Data.Foldable.Foldable UnionType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor UnionType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable UnionType where traverse = AST.Traversable1.Class.traverseDefault1 data UpdateExpression a = UpdateExpression { ann :: a, operator :: (AST.Parse.Err ((AnonymousPlusPlus GHC.Generics.:+: AnonymousMinusMinus) a)), argument :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1191. AST.Traversable1.Class.Traversable1 a_1191 ) instance AST.Unmarshal.SymbolMatching UpdateExpression where matchedSymbols _ = [216] showFailure _ node_1192 = "expected " GHC.Base.<> ( "update_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1192 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1193 c1_1194 = TreeSitter.Node.nodeStartPoint node_1192 TreeSitter.Node.TSPoint r2_1195 c2_1196 = TreeSitter.Node.nodeEndPoint node_1192 deriving instance GHC.Classes.Eq a_1197 => GHC.Classes.Eq (UpdateExpression a_1197) deriving instance GHC.Classes.Ord a_1198 => GHC.Classes.Ord (UpdateExpression a_1198) deriving instance GHC.Show.Show a_1199 => GHC.Show.Show (UpdateExpression a_1199) instance AST.Unmarshal.Unmarshal UpdateExpression instance Data.Foldable.Foldable UpdateExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor UpdateExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable UpdateExpression where traverse = AST.Traversable1.Class.traverseDefault1 data VariableDeclaration a = VariableDeclaration { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (VariableDeclarator a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1200. AST.Traversable1.Class.Traversable1 a_1200 ) instance AST.Unmarshal.SymbolMatching VariableDeclaration where matchedSymbols _ = [155] showFailure _ node_1201 = "expected " GHC.Base.<> ( "variable_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1201 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1202 c1_1203 = TreeSitter.Node.nodeStartPoint node_1201 TreeSitter.Node.TSPoint r2_1204 c2_1205 = TreeSitter.Node.nodeEndPoint node_1201 deriving instance GHC.Classes.Eq a_1206 => GHC.Classes.Eq (VariableDeclaration a_1206) deriving instance GHC.Classes.Ord a_1207 => GHC.Classes.Ord (VariableDeclaration a_1207) deriving instance GHC.Show.Show a_1208 => GHC.Show.Show (VariableDeclaration a_1208) instance AST.Unmarshal.Unmarshal VariableDeclaration instance Data.Foldable.Foldable VariableDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor VariableDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable VariableDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data VariableDeclarator a = VariableDeclarator { ann :: a, value :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))), name :: (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: Identifier) a)), type' :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1209. AST.Traversable1.Class.Traversable1 a_1209 ) instance AST.Unmarshal.SymbolMatching VariableDeclarator where matchedSymbols _ = [157] showFailure _ node_1210 = "expected " GHC.Base.<> ( "variable_declarator" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1210 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1211 c1_1212 = TreeSitter.Node.nodeStartPoint node_1210 TreeSitter.Node.TSPoint r2_1213 c2_1214 = TreeSitter.Node.nodeEndPoint node_1210 deriving instance GHC.Classes.Eq a_1215 => GHC.Classes.Eq (VariableDeclarator a_1215) deriving instance GHC.Classes.Ord a_1216 => GHC.Classes.Ord (VariableDeclarator a_1216) deriving instance GHC.Show.Show a_1217 => GHC.Show.Show (VariableDeclarator a_1217) instance AST.Unmarshal.Unmarshal VariableDeclarator instance Data.Foldable.Foldable VariableDeclarator where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor VariableDeclarator where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable VariableDeclarator where traverse = AST.Traversable1.Class.traverseDefault1 data WhileStatement a = WhileStatement { ann :: a, body :: (AST.Parse.Err (Statement a)), condition :: (AST.Parse.Err (ParenthesizedExpression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1218. AST.Traversable1.Class.Traversable1 a_1218 ) instance AST.Unmarshal.SymbolMatching WhileStatement where matchedSymbols _ = [164] showFailure _ node_1219 = "expected " GHC.Base.<> ( "while_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1219 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1220 c1_1221 = TreeSitter.Node.nodeStartPoint node_1219 TreeSitter.Node.TSPoint r2_1222 c2_1223 = TreeSitter.Node.nodeEndPoint node_1219 deriving instance GHC.Classes.Eq a_1224 => GHC.Classes.Eq (WhileStatement a_1224) deriving instance GHC.Classes.Ord a_1225 => GHC.Classes.Ord (WhileStatement a_1225) deriving instance GHC.Show.Show a_1226 => GHC.Show.Show (WhileStatement a_1226) instance AST.Unmarshal.Unmarshal WhileStatement instance Data.Foldable.Foldable WhileStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor WhileStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable WhileStatement where traverse = AST.Traversable1.Class.traverseDefault1 data WithStatement a = WithStatement { ann :: a, body :: (AST.Parse.Err (Statement a)), object :: (AST.Parse.Err (ParenthesizedExpression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1227. AST.Traversable1.Class.Traversable1 a_1227 ) instance AST.Unmarshal.SymbolMatching WithStatement where matchedSymbols _ = [167] showFailure _ node_1228 = "expected " GHC.Base.<> ( "with_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1228 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1229 c1_1230 = TreeSitter.Node.nodeStartPoint node_1228 TreeSitter.Node.TSPoint r2_1231 c2_1232 = TreeSitter.Node.nodeEndPoint node_1228 deriving instance GHC.Classes.Eq a_1233 => GHC.Classes.Eq (WithStatement a_1233) deriving instance GHC.Classes.Ord a_1234 => GHC.Classes.Ord (WithStatement a_1234) deriving instance GHC.Show.Show a_1235 => GHC.Show.Show (WithStatement a_1235) instance AST.Unmarshal.Unmarshal WithStatement instance Data.Foldable.Foldable WithStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor WithStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable WithStatement where traverse = AST.Traversable1.Class.traverseDefault1 data YieldExpression a = YieldExpression { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1236. AST.Traversable1.Class.Traversable1 a_1236 ) instance AST.Unmarshal.SymbolMatching YieldExpression where matchedSymbols _ = [182] showFailure _ node_1237 = "expected " GHC.Base.<> ( "yield_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1237 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1238 c1_1239 = TreeSitter.Node.nodeStartPoint node_1237 TreeSitter.Node.TSPoint r2_1240 c2_1241 = TreeSitter.Node.nodeEndPoint node_1237 deriving instance GHC.Classes.Eq a_1242 => GHC.Classes.Eq (YieldExpression a_1242) deriving instance GHC.Classes.Ord a_1243 => GHC.Classes.Ord (YieldExpression a_1243) deriving instance GHC.Show.Show a_1244 => GHC.Show.Show (YieldExpression a_1244) instance AST.Unmarshal.Unmarshal YieldExpression instance Data.Foldable.Foldable YieldExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor YieldExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable YieldExpression where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousBang = AST.Token.Token "!" 90 type AnonymousBangEqual = AST.Token.Token "!=" 85 type AnonymousBangEqualEqual = AST.Token.Token "!==" 86 type AnonymousDQuote = AST.Token.Token "\"" 96 type AnonymousDollarLBrace = AST.Token.Token "${" 103 type AnonymousPercent = AST.Token.Token "%" 80 type AnonymousPercentEqual = AST.Token.Token "%=" 60 type AnonymousAmpersand = AST.Token.Token "&" 75 type AnonymousAmpersandAmpersand = AST.Token.Token "&&" 70 type AnonymousAmpersandEqual = AST.Token.Token "&=" 62 type AnonymousSQuote = AST.Token.Token "'" 98 type AnonymousLParen = AST.Token.Token "(" 23 type AnonymousRParen = AST.Token.Token ")" 24 type AnonymousStar = AST.Token.Token "*" 4 type AnonymousStarStar = AST.Token.Token "**" 81 type AnonymousStarStarEqual = AST.Token.Token "**=" 67 type AnonymousStarEqual = AST.Token.Token "*=" 58 type AnonymousPlus = AST.Token.Token "+" 78 type AnonymousPlusPlus = AST.Token.Token "++" 94 type AnonymousPlusEqual = AST.Token.Token "+=" 56 type AnonymousComma = AST.Token.Token "," 10 type AnonymousMinus = AST.Token.Token "-" 79 type AnonymousMinusMinus = AST.Token.Token "--" 95 type AnonymousMinusEqual = AST.Token.Token "-=" 57 type AnonymousDot = AST.Token.Token "." 50 type AnonymousDotDotDot = AST.Token.Token "..." 68 type AnonymousSlash = AST.Token.Token "/" 47 type AnonymousSlashEqual = AST.Token.Token "/=" 59 type AnonymousColon = AST.Token.Token ":" 38 type AnonymousSemicolon = AST.Token.Token ";" 37 type AnonymousLAngle = AST.Token.Token "<" 45 type AnonymousLAngleLAngle = AST.Token.Token "<<" 74 type AnonymousLAngleLAngleEqual = AST.Token.Token "<<=" 66 type AnonymousLAngleEqual = AST.Token.Token "<=" 82 type AnonymousEqual = AST.Token.Token "=" 6 type AnonymousEqualEqual = AST.Token.Token "==" 83 type AnonymousEqualEqualEqual = AST.Token.Token "===" 84 type AnonymousEqualRAngle = AST.Token.Token "=>" 54 type AnonymousRAngle = AST.Token.Token ">" 46 type AnonymousRAngleEqual = AST.Token.Token ">=" 87 type AnonymousRAngleRAngle = AST.Token.Token ">>" 72 type AnonymousRAngleRAngleEqual = AST.Token.Token ">>=" 64 type AnonymousRAngleRAngleRAngle = AST.Token.Token ">>>" 73 type AnonymousRAngleRAngleRAngleEqual = AST.Token.Token ">>>=" 65 type AnonymousQuestion = AST.Token.Token "?" 69 type AnonymousQuestionQuestion = AST.Token.Token "??" 88 type AnonymousAt = AST.Token.Token "@" 115 type AnonymousLBracket = AST.Token.Token "[" 43 type AnonymousRBracket = AST.Token.Token "]" 44 type AnonymousCaret = AST.Token.Token "^" 76 type AnonymousCaretEqual = AST.Token.Token "^=" 61 type AnonymousBacktick = AST.Token.Token "`" 102 type AnonymousAbstract = AST.Token.Token "abstract" 117 type AnonymousAny = AST.Token.Token "any" 125 type AnonymousAs = AST.Token.Token "as" 7 type AnonymousAsync = AST.Token.Token "async" 52 type AnonymousAwait = AST.Token.Token "await" 25 type AnonymousBoolean = AST.Token.Token "boolean" 127 type AnonymousBreak = AST.Token.Token "break" 32 type AnonymousCase = AST.Token.Token "case" 39 type AnonymousCatch = AST.Token.Token "catch" 40 type AnonymousClass = AST.Token.Token "class" 51 type AnonymousConst = AST.Token.Token "const" 18 type AnonymousContinue = AST.Token.Token "continue" 33 type AnonymousDebugger = AST.Token.Token "debugger" 34 type AnonymousDeclare = AST.Token.Token "declare" 120 type AnonymousDefault = AST.Token.Token "default" 5 type AnonymousDelete = AST.Token.Token "delete" 93 type AnonymousDo = AST.Token.Token "do" 29 type AnonymousElse = AST.Token.Token "else" 20 type AnonymousEnum = AST.Token.Token "enum" 135 data EscapeSequence a = EscapeSequence {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1245. AST.Traversable1.Class.Traversable1 a_1245 ) instance AST.Unmarshal.SymbolMatching EscapeSequence where matchedSymbols _ = [100] showFailure _ node_1246 = "expected " GHC.Base.<> ( "escape_sequence" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1246 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1247 c1_1248 = TreeSitter.Node.nodeStartPoint node_1246 TreeSitter.Node.TSPoint r2_1249 c2_1250 = TreeSitter.Node.nodeEndPoint node_1246 deriving instance GHC.Classes.Eq a_1251 => GHC.Classes.Eq (EscapeSequence a_1251) deriving instance GHC.Classes.Ord a_1252 => GHC.Classes.Ord (EscapeSequence a_1252) deriving instance GHC.Show.Show a_1253 => GHC.Show.Show (EscapeSequence a_1253) instance AST.Unmarshal.Unmarshal EscapeSequence instance Data.Foldable.Foldable EscapeSequence where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor EscapeSequence where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable EscapeSequence where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousExport = AST.Token.Token "export" 3 type AnonymousExtends = AST.Token.Token "extends" 134 data False a = False {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1254. AST.Traversable1.Class.Traversable1 a_1254 ) instance AST.Unmarshal.SymbolMatching False where matchedSymbols _ = [112] showFailure _ node_1255 = "expected " GHC.Base.<> ( "false" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1255 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1256 c1_1257 = TreeSitter.Node.nodeStartPoint node_1255 TreeSitter.Node.TSPoint r2_1258 c2_1259 = TreeSitter.Node.nodeEndPoint node_1255 deriving instance GHC.Classes.Eq a_1260 => GHC.Classes.Eq (False a_1260) deriving instance GHC.Classes.Ord a_1261 => GHC.Classes.Ord (False a_1261) deriving instance GHC.Show.Show a_1262 => GHC.Show.Show (False a_1262) instance AST.Unmarshal.Unmarshal False instance Data.Foldable.Foldable False where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor False where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable False where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousFinally = AST.Token.Token "finally" 41 type AnonymousFor = AST.Token.Token "for" 22 type AnonymousFrom = AST.Token.Token "from" 15 type AnonymousFunction = AST.Token.Token "function" 53 type AnonymousGet = AST.Token.Token "get" 118 type AnonymousGlobal = AST.Token.Token "global" 132 data HashBangLine a = HashBangLine {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1263. AST.Traversable1.Class.Traversable1 a_1263 ) instance AST.Unmarshal.SymbolMatching HashBangLine where matchedSymbols _ = [2] showFailure _ node_1264 = "expected " GHC.Base.<> ( "hash_bang_line" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1264 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1265 c1_1266 = TreeSitter.Node.nodeStartPoint node_1264 TreeSitter.Node.TSPoint r2_1267 c2_1268 = TreeSitter.Node.nodeEndPoint node_1264 deriving instance GHC.Classes.Eq a_1269 => GHC.Classes.Eq (HashBangLine a_1269) deriving instance GHC.Classes.Ord a_1270 => GHC.Classes.Ord (HashBangLine a_1270) deriving instance GHC.Show.Show a_1271 => GHC.Show.Show (HashBangLine a_1271) instance AST.Unmarshal.Unmarshal HashBangLine instance Data.Foldable.Foldable HashBangLine where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor HashBangLine where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable HashBangLine where traverse = AST.Traversable1.Class.traverseDefault1 data Identifier a = Identifier {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1272. AST.Traversable1.Class.Traversable1 a_1272 ) instance AST.Unmarshal.SymbolMatching Identifier where matchedSymbols _ = [1, 49] showFailure _ node_1273 = "expected " GHC.Base.<> ( "identifier, identifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1273 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1274 c1_1275 = TreeSitter.Node.nodeStartPoint node_1273 TreeSitter.Node.TSPoint r2_1276 c2_1277 = TreeSitter.Node.nodeEndPoint node_1273 deriving instance GHC.Classes.Eq a_1278 => GHC.Classes.Eq (Identifier a_1278) deriving instance GHC.Classes.Ord a_1279 => GHC.Classes.Ord (Identifier a_1279) deriving instance GHC.Show.Show a_1280 => GHC.Show.Show (Identifier a_1280) instance AST.Unmarshal.Unmarshal Identifier instance Data.Foldable.Foldable Identifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Identifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Identifier where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousIf = AST.Token.Token "if" 19 type AnonymousImplements = AST.Token.Token "implements" 131 type AnonymousImport = AST.Token.Token "import" 14 type AnonymousIn = AST.Token.Token "in" 26 type AnonymousInstanceof = AST.Token.Token "instanceof" 89 type AnonymousInterface = AST.Token.Token "interface" 133 type AnonymousIs = AST.Token.Token "is" 137 data JsxText a = JsxText {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1281. AST.Traversable1.Class.Traversable1 a_1281 ) instance AST.Unmarshal.SymbolMatching JsxText where matchedSymbols _ = [48] showFailure _ node_1282 = "expected " GHC.Base.<> ( "jsx_text" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1282 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1283 c1_1284 = TreeSitter.Node.nodeStartPoint node_1282 TreeSitter.Node.TSPoint r2_1285 c2_1286 = TreeSitter.Node.nodeEndPoint node_1282 deriving instance GHC.Classes.Eq a_1287 => GHC.Classes.Eq (JsxText a_1287) deriving instance GHC.Classes.Ord a_1288 => GHC.Classes.Ord (JsxText a_1288) deriving instance GHC.Show.Show a_1289 => GHC.Show.Show (JsxText a_1289) instance AST.Unmarshal.Unmarshal JsxText instance Data.Foldable.Foldable JsxText where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor JsxText where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable JsxText where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousKeyof = AST.Token.Token "keyof" 138 type AnonymousLet = AST.Token.Token "let" 17 type AnonymousModule = AST.Token.Token "module" 124 type AnonymousNamespace = AST.Token.Token "namespace" 8 type AnonymousNew = AST.Token.Token "new" 55 data Null a = Null {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1290. AST.Traversable1.Class.Traversable1 a_1290 ) instance AST.Unmarshal.SymbolMatching Null where matchedSymbols _ = [113] showFailure _ node_1291 = "expected " GHC.Base.<> ( "null" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1291 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1292 c1_1293 = TreeSitter.Node.nodeStartPoint node_1291 TreeSitter.Node.TSPoint r2_1294 c2_1295 = TreeSitter.Node.nodeEndPoint node_1291 deriving instance GHC.Classes.Eq a_1296 => GHC.Classes.Eq (Null a_1296) deriving instance GHC.Classes.Ord a_1297 => GHC.Classes.Ord (Null a_1297) deriving instance GHC.Show.Show a_1298 => GHC.Show.Show (Null a_1298) instance AST.Unmarshal.Unmarshal Null instance Data.Foldable.Foldable Null where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Null where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Null where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousNumber = AST.Token.Token "number" 126 data Number a = Number {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1299. AST.Traversable1.Class.Traversable1 a_1299 ) instance AST.Unmarshal.SymbolMatching Number where matchedSymbols _ = [107] showFailure _ node_1300 = "expected " GHC.Base.<> ( "number" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1300 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1301 c1_1302 = TreeSitter.Node.nodeStartPoint node_1300 TreeSitter.Node.TSPoint r2_1303 c2_1304 = TreeSitter.Node.nodeEndPoint node_1300 deriving instance GHC.Classes.Eq a_1305 => GHC.Classes.Eq (Number a_1305) deriving instance GHC.Classes.Ord a_1306 => GHC.Classes.Ord (Number a_1306) deriving instance GHC.Show.Show a_1307 => GHC.Show.Show (Number a_1307) instance AST.Unmarshal.Unmarshal Number instance Data.Foldable.Foldable Number where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Number where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Number where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousOf = AST.Token.Token "of" 27 type AnonymousPrivate = AST.Token.Token "private" 122 data PropertyIdentifier a = PropertyIdentifier {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1308. AST.Traversable1.Class.Traversable1 a_1308 ) instance AST.Unmarshal.SymbolMatching PropertyIdentifier where matchedSymbols _ = [314] showFailure _ node_1309 = "expected " GHC.Base.<> ( "property_identifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1309 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1310 c1_1311 = TreeSitter.Node.nodeStartPoint node_1309 TreeSitter.Node.TSPoint r2_1312 c2_1313 = TreeSitter.Node.nodeEndPoint node_1309 deriving instance GHC.Classes.Eq a_1314 => GHC.Classes.Eq (PropertyIdentifier a_1314) deriving instance GHC.Classes.Ord a_1315 => GHC.Classes.Ord (PropertyIdentifier a_1315) deriving instance GHC.Show.Show a_1316 => GHC.Show.Show (PropertyIdentifier a_1316) instance AST.Unmarshal.Unmarshal PropertyIdentifier instance Data.Foldable.Foldable PropertyIdentifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor PropertyIdentifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable PropertyIdentifier where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousProtected = AST.Token.Token "protected" 123 type AnonymousPublic = AST.Token.Token "public" 121 data Readonly a = Readonly {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1317. AST.Traversable1.Class.Traversable1 a_1317 ) instance AST.Unmarshal.SymbolMatching Readonly where matchedSymbols _ = [136] showFailure _ node_1318 = "expected " GHC.Base.<> ( "readonly" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1318 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1319 c1_1320 = TreeSitter.Node.nodeStartPoint node_1318 TreeSitter.Node.TSPoint r2_1321 c2_1322 = TreeSitter.Node.nodeEndPoint node_1318 deriving instance GHC.Classes.Eq a_1323 => GHC.Classes.Eq (Readonly a_1323) deriving instance GHC.Classes.Ord a_1324 => GHC.Classes.Ord (Readonly a_1324) deriving instance GHC.Show.Show a_1325 => GHC.Show.Show (Readonly a_1325) instance AST.Unmarshal.Unmarshal Readonly instance Data.Foldable.Foldable Readonly where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Readonly where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Readonly where traverse = AST.Traversable1.Class.traverseDefault1 data RegexFlags a = RegexFlags {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1326. AST.Traversable1.Class.Traversable1 a_1326 ) instance AST.Unmarshal.SymbolMatching RegexFlags where matchedSymbols _ = [106] showFailure _ node_1327 = "expected " GHC.Base.<> ( "regex_flags" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1327 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1328 c1_1329 = TreeSitter.Node.nodeStartPoint node_1327 TreeSitter.Node.TSPoint r2_1330 c2_1331 = TreeSitter.Node.nodeEndPoint node_1327 deriving instance GHC.Classes.Eq a_1332 => GHC.Classes.Eq (RegexFlags a_1332) deriving instance GHC.Classes.Ord a_1333 => GHC.Classes.Ord (RegexFlags a_1333) deriving instance GHC.Show.Show a_1334 => GHC.Show.Show (RegexFlags a_1334) instance AST.Unmarshal.Unmarshal RegexFlags instance Data.Foldable.Foldable RegexFlags where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor RegexFlags where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable RegexFlags where traverse = AST.Traversable1.Class.traverseDefault1 data RegexPattern a = RegexPattern {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1335. AST.Traversable1.Class.Traversable1 a_1335 ) instance AST.Unmarshal.SymbolMatching RegexPattern where matchedSymbols _ = [105] showFailure _ node_1336 = "expected " GHC.Base.<> ( "regex_pattern" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1336 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1337 c1_1338 = TreeSitter.Node.nodeStartPoint node_1336 TreeSitter.Node.TSPoint r2_1339 c2_1340 = TreeSitter.Node.nodeEndPoint node_1336 deriving instance GHC.Classes.Eq a_1341 => GHC.Classes.Eq (RegexPattern a_1341) deriving instance GHC.Classes.Ord a_1342 => GHC.Classes.Ord (RegexPattern a_1342) deriving instance GHC.Show.Show a_1343 => GHC.Show.Show (RegexPattern a_1343) instance AST.Unmarshal.Unmarshal RegexPattern instance Data.Foldable.Foldable RegexPattern where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor RegexPattern where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable RegexPattern where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousRequire = AST.Token.Token "require" 130 type AnonymousReturn = AST.Token.Token "return" 35 type AnonymousSet = AST.Token.Token "set" 119 data ShorthandPropertyIdentifier a = ShorthandPropertyIdentifier { ann :: a, text :: Data.Text.Internal.Text } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1344. AST.Traversable1.Class.Traversable1 a_1344 ) instance AST.Unmarshal.SymbolMatching ShorthandPropertyIdentifier where matchedSymbols _ = [315] showFailure _ node_1345 = "expected " GHC.Base.<> ( "shorthand_property_identifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1345 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1346 c1_1347 = TreeSitter.Node.nodeStartPoint node_1345 TreeSitter.Node.TSPoint r2_1348 c2_1349 = TreeSitter.Node.nodeEndPoint node_1345 deriving instance GHC.Classes.Eq a_1350 => GHC.Classes.Eq (ShorthandPropertyIdentifier a_1350) deriving instance GHC.Classes.Ord a_1351 => GHC.Classes.Ord (ShorthandPropertyIdentifier a_1351) deriving instance GHC.Show.Show a_1352 => GHC.Show.Show (ShorthandPropertyIdentifier a_1352) instance AST.Unmarshal.Unmarshal ShorthandPropertyIdentifier instance Data.Foldable.Foldable ShorthandPropertyIdentifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ShorthandPropertyIdentifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ShorthandPropertyIdentifier where traverse = AST.Traversable1.Class.traverseDefault1 data StatementIdentifier a = StatementIdentifier {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1353. AST.Traversable1.Class.Traversable1 a_1353 ) instance AST.Unmarshal.SymbolMatching StatementIdentifier where matchedSymbols _ = [316] showFailure _ node_1354 = "expected " GHC.Base.<> ( "statement_identifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1354 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1355 c1_1356 = TreeSitter.Node.nodeStartPoint node_1354 TreeSitter.Node.TSPoint r2_1357 c2_1358 = TreeSitter.Node.nodeEndPoint node_1354 deriving instance GHC.Classes.Eq a_1359 => GHC.Classes.Eq (StatementIdentifier a_1359) deriving instance GHC.Classes.Ord a_1360 => GHC.Classes.Ord (StatementIdentifier a_1360) deriving instance GHC.Show.Show a_1361 => GHC.Show.Show (StatementIdentifier a_1361) instance AST.Unmarshal.Unmarshal StatementIdentifier instance Data.Foldable.Foldable StatementIdentifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor StatementIdentifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable StatementIdentifier where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousStatic = AST.Token.Token "static" 116 type AnonymousString = AST.Token.Token "string" 128 data Super a = Super {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1362. AST.Traversable1.Class.Traversable1 a_1362 ) instance AST.Unmarshal.SymbolMatching Super where matchedSymbols _ = [110] showFailure _ node_1363 = "expected " GHC.Base.<> ( "super" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1363 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1364 c1_1365 = TreeSitter.Node.nodeStartPoint node_1363 TreeSitter.Node.TSPoint r2_1366 c2_1367 = TreeSitter.Node.nodeEndPoint node_1363 deriving instance GHC.Classes.Eq a_1368 => GHC.Classes.Eq (Super a_1368) deriving instance GHC.Classes.Ord a_1369 => GHC.Classes.Ord (Super a_1369) deriving instance GHC.Show.Show a_1370 => GHC.Show.Show (Super a_1370) instance AST.Unmarshal.Unmarshal Super instance Data.Foldable.Foldable Super where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Super where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Super where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousSwitch = AST.Token.Token "switch" 21 type AnonymousSymbol = AST.Token.Token "symbol" 129 type AnonymousTarget = AST.Token.Token "target" 108 data This a = This {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1371. AST.Traversable1.Class.Traversable1 a_1371 ) instance AST.Unmarshal.SymbolMatching This where matchedSymbols _ = [109] showFailure _ node_1372 = "expected " GHC.Base.<> ( "this" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1372 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1373 c1_1374 = TreeSitter.Node.nodeStartPoint node_1372 TreeSitter.Node.TSPoint r2_1375 c2_1376 = TreeSitter.Node.nodeEndPoint node_1372 deriving instance GHC.Classes.Eq a_1377 => GHC.Classes.Eq (This a_1377) deriving instance GHC.Classes.Ord a_1378 => GHC.Classes.Ord (This a_1378) deriving instance GHC.Show.Show a_1379 => GHC.Show.Show (This a_1379) instance AST.Unmarshal.Unmarshal This instance Data.Foldable.Foldable This where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor This where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable This where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousThrow = AST.Token.Token "throw" 36 data True a = True {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1380. AST.Traversable1.Class.Traversable1 a_1380 ) instance AST.Unmarshal.SymbolMatching True where matchedSymbols _ = [111] showFailure _ node_1381 = "expected " GHC.Base.<> ( "true" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1381 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1382 c1_1383 = TreeSitter.Node.nodeStartPoint node_1381 TreeSitter.Node.TSPoint r2_1384 c2_1385 = TreeSitter.Node.nodeEndPoint node_1381 deriving instance GHC.Classes.Eq a_1386 => GHC.Classes.Eq (True a_1386) deriving instance GHC.Classes.Ord a_1387 => GHC.Classes.Ord (True a_1387) deriving instance GHC.Show.Show a_1388 => GHC.Show.Show (True a_1388) instance AST.Unmarshal.Unmarshal True instance Data.Foldable.Foldable True where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor True where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable True where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousTry = AST.Token.Token "try" 30 type AnonymousType = AST.Token.Token "type" 12 data TypeIdentifier a = TypeIdentifier {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1389. AST.Traversable1.Class.Traversable1 a_1389 ) instance AST.Unmarshal.SymbolMatching TypeIdentifier where matchedSymbols _ = [317] showFailure _ node_1390 = "expected " GHC.Base.<> ( "type_identifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1390 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1391 c1_1392 = TreeSitter.Node.nodeStartPoint node_1390 TreeSitter.Node.TSPoint r2_1393 c2_1394 = TreeSitter.Node.nodeEndPoint node_1390 deriving instance GHC.Classes.Eq a_1395 => GHC.Classes.Eq (TypeIdentifier a_1395) deriving instance GHC.Classes.Ord a_1396 => GHC.Classes.Ord (TypeIdentifier a_1396) deriving instance GHC.Show.Show a_1397 => GHC.Show.Show (TypeIdentifier a_1397) instance AST.Unmarshal.Unmarshal TypeIdentifier instance Data.Foldable.Foldable TypeIdentifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeIdentifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeIdentifier where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousTypeof = AST.Token.Token "typeof" 13 data Undefined a = Undefined {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1398. AST.Traversable1.Class.Traversable1 a_1398 ) instance AST.Unmarshal.SymbolMatching Undefined where matchedSymbols _ = [114] showFailure _ node_1399 = "expected " GHC.Base.<> ( "undefined" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1399 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1400 c1_1401 = TreeSitter.Node.nodeStartPoint node_1399 TreeSitter.Node.TSPoint r2_1402 c2_1403 = TreeSitter.Node.nodeEndPoint node_1399 deriving instance GHC.Classes.Eq a_1404 => GHC.Classes.Eq (Undefined a_1404) deriving instance GHC.Classes.Ord a_1405 => GHC.Classes.Ord (Undefined a_1405) deriving instance GHC.Show.Show a_1406 => GHC.Show.Show (Undefined a_1406) instance AST.Unmarshal.Unmarshal Undefined instance Data.Foldable.Foldable Undefined where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Undefined where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Undefined where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousVar = AST.Token.Token "var" 16 type AnonymousVoid = AST.Token.Token "void" 92 type AnonymousWhile = AST.Token.Token "while" 28 type AnonymousWith = AST.Token.Token "with" 31 type AnonymousYield = AST.Token.Token "yield" 42 type AnonymousLBrace = AST.Token.Token "{" 9 type AnonymousLBracePipe = AST.Token.Token "{|" 139 type AnonymousPipe = AST.Token.Token "|" 77 type AnonymousPipeEqual = AST.Token.Token "|=" 63 type AnonymousPipePipe = AST.Token.Token "||" 71 type AnonymousPipeRBrace = AST.Token.Token "|}" 140 type AnonymousRBrace = AST.Token.Token "}" 11 type AnonymousTilde = AST.Token.Token "~" 91 ================================================ FILE: semantic-tsx/src/Language/TSX/Grammar.hs ================================================ {-# LANGUAGE TemplateHaskell #-} module Language.TSX.Grammar ( tree_sitter_tsx , Grammar(..) ) where import AST.Grammar.TH import Language.Haskell.TH import TreeSitter.TSX (tree_sitter_tsx) -- | Statically-known rules corresponding to symbols in the grammar. mkStaticallyKnownRuleGrammarData (mkName "Grammar") tree_sitter_tsx ================================================ FILE: semantic-tsx/src/Language/TSX/Tags.hs ================================================ {-# LANGUAGE DefaultSignatures #-} {-# LANGUAGE DisambiguateRecordFields #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} module Language.TSX.Tags ( ToTags (..), ) where import AST.Element import qualified AST.Parse as Parse import AST.Token import AST.Traversable1 import Control.Effect.Reader import Control.Effect.State import Control.Effect.Writer import Data.Foldable import Data.Text (Text) import qualified Language.TSX.AST as Tsx import Proto.Semantic as P import Source.Loc import Source.Source as Source import qualified Tags.Tagging.Precise as Tags class ToTags t where tags :: ( Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m ) => t Loc -> m () default tags :: ( Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m, Traversable1 ToTags t ) => t Loc -> m () tags = gtags instance ToTags Tsx.Function where tags t@Tsx.Function {ann = Loc {byteRange}, name = Just (Parse.Success (Tsx.Identifier {text, ann}))} = yieldTag text P.FUNCTION P.DEFINITION ann byteRange >> gtags t tags t = gtags t instance ToTags Tsx.FunctionSignature where tags t@Tsx.FunctionSignature {ann = Loc {byteRange}, name = Parse.Success (Tsx.Identifier {text, ann})} = yieldTag text P.FUNCTION P.DEFINITION ann byteRange >> gtags t tags _ = pure () instance ToTags Tsx.FunctionDeclaration where tags t@Tsx.FunctionDeclaration {ann = Loc {byteRange}, name = Parse.Success (Tsx.Identifier {text, ann})} = yieldTag text P.FUNCTION P.DEFINITION ann byteRange >> gtags t tags _ = pure () instance ToTags Tsx.MethodDefinition where tags t@Tsx.MethodDefinition {ann = Loc {byteRange}, name} = case name of EPrj Tsx.PropertyIdentifier {text, ann} -> yieldTag text P.METHOD P.DEFINITION ann byteRange >> gtags t _ -> gtags t instance ToTags Tsx.Pair where tags t@Tsx.Pair {ann = Loc {byteRange}, key, value = Parse.Success (Tsx.Expression expr)} = case (key, expr) of (EPrj Tsx.PropertyIdentifier {text, ann}, Prj Tsx.Function {}) -> yield text ann (EPrj Tsx.PropertyIdentifier {text, ann}, Prj Tsx.ArrowFunction {}) -> yield text ann _ -> gtags t where yield text loc = yieldTag text P.FUNCTION P.DEFINITION loc byteRange >> gtags t tags _ = pure () instance ToTags Tsx.ClassDeclaration where tags t@Tsx.ClassDeclaration {ann = Loc {byteRange}, name = Parse.Success (Tsx.TypeIdentifier {text, ann})} = yieldTag text P.CLASS P.DEFINITION ann byteRange >> gtags t tags _ = pure () instance ToTags Tsx.CallExpression where tags t@Tsx.CallExpression {ann = Loc {byteRange}, function = Parse.Success (Tsx.Expression expr)} = match expr where match expr = case expr of Prj Tsx.Identifier {text, ann} -> yield text ann Prj Tsx.NewExpression {constructor = EPrj Tsx.Identifier {text, ann}} -> yield text ann Prj Tsx.CallExpression {function = Parse.Success (Tsx.Expression expr)} -> match expr Prj Tsx.MemberExpression {property = Parse.Success (Tsx.PropertyIdentifier {text, ann})} -> yield text ann Prj Tsx.Function {name = Just (Parse.Success (Tsx.Identifier {text, ann}))} -> yield text ann Prj Tsx.ParenthesizedExpression {extraChildren} -> for_ extraChildren $ \x -> case x of EPrj (Tsx.Expression expr) -> match expr Parse.Success x -> tags x Parse.Fail _ -> pure () _ -> gtags t yield name loc = yieldTag name P.CALL P.REFERENCE loc byteRange >> gtags t tags _ = pure () instance ToTags Tsx.Class where tags t@Tsx.Class {ann = Loc {byteRange}, name = Just (Parse.Success (Tsx.TypeIdentifier {text, ann}))} = yieldTag text P.CLASS P.DEFINITION ann byteRange >> gtags t tags t = gtags t instance ToTags Tsx.Module where tags t@Tsx.Module {ann = Loc {byteRange}, name} = case name of EPrj Tsx.Identifier {text, ann} -> yieldTag text P.MODULE P.DEFINITION ann byteRange >> gtags t _ -> gtags t instance ToTags Tsx.VariableDeclarator where tags t@Tsx.VariableDeclarator {ann = Loc {byteRange}, name, value = Just (Parse.Success (Tsx.Expression expr))} = case (expr, name) of (Prj Tsx.Function {}, EPrj Tsx.Identifier {text, ann}) -> yield text ann (Prj Tsx.ArrowFunction {}, EPrj Tsx.Identifier {text, ann}) -> yield text ann _ -> gtags t where yield text loc = yieldTag text P.FUNCTION P.DEFINITION loc byteRange >> gtags t tags t = gtags t instance ToTags Tsx.AssignmentExpression where tags t@Tsx.AssignmentExpression {ann = Loc {byteRange}, left, right = Parse.Success (Tsx.Expression expr)} = case (left, expr) of (EPrj Tsx.Identifier {text, ann}, Prj Tsx.Function {}) -> yield text ann (EPrj Tsx.Identifier {text, ann}, Prj Tsx.ArrowFunction {}) -> yield text ann (EPrj Tsx.MemberExpression {property = Parse.Success (Tsx.PropertyIdentifier {text, ann})}, Prj Tsx.Function {}) -> yield text ann (EPrj Tsx.MemberExpression {property = Parse.Success (Tsx.PropertyIdentifier {text, ann})}, Prj Tsx.ArrowFunction {}) -> yield text ann _ -> gtags t where yield text loc = yieldTag text P.FUNCTION P.DEFINITION loc byteRange >> gtags t tags _ = pure () instance (ToTags l, ToTags r) => ToTags (l :+: r) where tags (L1 l) = tags l tags (R1 r) = tags r instance ToTags (Token sym n) where tags _ = pure () gtags :: ( Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m, Traversable1 ToTags t ) => t Loc -> m () gtags = traverse1_ @ToTags (const (pure ())) tags -- These are all valid, but point to built-in functions (e.g. require) that a la -- carte doesn't display and since we have nothing to link to yet (can't -- jump-to-def), we hide them from the current tags output. nameBlacklist :: [Text] nameBlacklist = ["require"] yieldTag :: (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 () yieldTag name P.CALL _ _ _ | name `elem` nameBlacklist = pure () yieldTag name kind ty loc srcLineRange = Tags.yield name kind ty loc srcLineRange {- ORMOLU_DISABLE -} instance ToTags Tsx.AbstractClassDeclaration instance ToTags Tsx.AbstractMethodSignature instance ToTags Tsx.AccessibilityModifier instance ToTags Tsx.AmbientDeclaration instance ToTags Tsx.Arguments instance ToTags Tsx.Array instance ToTags Tsx.ArrayPattern instance ToTags Tsx.ArrayType instance ToTags Tsx.ArrowFunction instance ToTags Tsx.AsExpression -- instance ToTags Tsx.AssignmentExpression instance ToTags Tsx.AssignmentPattern instance ToTags Tsx.AugmentedAssignmentExpression instance ToTags Tsx.AwaitExpression instance ToTags Tsx.BinaryExpression instance ToTags Tsx.BreakStatement -- instance ToTags Tsx.CallExpression instance ToTags Tsx.CallSignature instance ToTags Tsx.CatchClause -- instance ToTags Tsx.Class instance ToTags Tsx.ClassBody -- instance ToTags Tsx.ClassDeclaration instance ToTags Tsx.ClassHeritage instance ToTags Tsx.ComputedPropertyName instance ToTags Tsx.Constraint instance ToTags Tsx.ConstructSignature instance ToTags Tsx.ConstructorType instance ToTags Tsx.ContinueStatement instance ToTags Tsx.DebuggerStatement instance ToTags Tsx.Declaration instance ToTags Tsx.Decorator instance ToTags Tsx.DefaultType instance ToTags Tsx.DestructuringPattern instance ToTags Tsx.DoStatement instance ToTags Tsx.EmptyStatement instance ToTags Tsx.EnumAssignment instance ToTags Tsx.EnumBody instance ToTags Tsx.EnumDeclaration instance ToTags Tsx.EscapeSequence instance ToTags Tsx.ExistentialType instance ToTags Tsx.ExportClause instance ToTags Tsx.ExportSpecifier instance ToTags Tsx.ExportStatement instance ToTags Tsx.Expression instance ToTags Tsx.ExpressionStatement instance ToTags Tsx.ExtendsClause instance ToTags Tsx.False instance ToTags Tsx.FinallyClause instance ToTags Tsx.FlowMaybeType instance ToTags Tsx.ForInStatement instance ToTags Tsx.ForStatement instance ToTags Tsx.FormalParameters -- instance ToTags Tsx.Function -- instance ToTags Tsx.FunctionDeclaration -- instance ToTags Tsx.FunctionSignature instance ToTags Tsx.FunctionType instance ToTags Tsx.GeneratorFunction instance ToTags Tsx.GeneratorFunctionDeclaration instance ToTags Tsx.GenericType instance ToTags Tsx.HashBangLine instance ToTags Tsx.Identifier instance ToTags Tsx.IfStatement instance ToTags Tsx.ImplementsClause instance ToTags Tsx.Import instance ToTags Tsx.ImportAlias instance ToTags Tsx.ImportClause instance ToTags Tsx.ImportRequireClause instance ToTags Tsx.ImportSpecifier instance ToTags Tsx.ImportStatement instance ToTags Tsx.IndexSignature instance ToTags Tsx.IndexTypeQuery instance ToTags Tsx.InterfaceDeclaration instance ToTags Tsx.InternalModule instance ToTags Tsx.IntersectionType instance ToTags Tsx.JsxAttribute instance ToTags Tsx.JsxClosingElement instance ToTags Tsx.JsxElement instance ToTags Tsx.JsxExpression instance ToTags Tsx.JsxFragment instance ToTags Tsx.JsxNamespaceName instance ToTags Tsx.JsxOpeningElement instance ToTags Tsx.JsxSelfClosingElement instance ToTags Tsx.JsxText instance ToTags Tsx.LabeledStatement instance ToTags Tsx.LexicalDeclaration instance ToTags Tsx.LiteralType instance ToTags Tsx.LookupType instance ToTags Tsx.MappedTypeClause instance ToTags Tsx.MemberExpression instance ToTags Tsx.MetaProperty -- instance ToTags Tsx.MethodDefinition instance ToTags Tsx.MethodSignature -- instance ToTags Tsx.Module instance ToTags Tsx.NamedImports instance ToTags Tsx.NamespaceImport instance ToTags Tsx.NestedIdentifier instance ToTags Tsx.NestedTypeIdentifier instance ToTags Tsx.NewExpression instance ToTags Tsx.NonNullExpression instance ToTags Tsx.Null instance ToTags Tsx.Number instance ToTags Tsx.Object instance ToTags Tsx.ObjectPattern instance ToTags Tsx.ObjectType instance ToTags Tsx.OptionalParameter -- instance ToTags Tsx.Pair instance ToTags Tsx.ParenthesizedExpression instance ToTags Tsx.ParenthesizedType instance ToTags Tsx.PredefinedType instance ToTags Tsx.Program instance ToTags Tsx.PropertyIdentifier instance ToTags Tsx.PropertySignature instance ToTags Tsx.PublicFieldDefinition instance ToTags Tsx.Readonly instance ToTags Tsx.Regex instance ToTags Tsx.RegexFlags instance ToTags Tsx.RegexPattern instance ToTags Tsx.RequiredParameter instance ToTags Tsx.RestParameter instance ToTags Tsx.ReturnStatement instance ToTags Tsx.SequenceExpression instance ToTags Tsx.ShorthandPropertyIdentifier instance ToTags Tsx.SpreadElement instance ToTags Tsx.Statement instance ToTags Tsx.StatementBlock instance ToTags Tsx.StatementIdentifier instance ToTags Tsx.String instance ToTags Tsx.SubscriptExpression instance ToTags Tsx.Super instance ToTags Tsx.SwitchBody instance ToTags Tsx.SwitchCase instance ToTags Tsx.SwitchDefault instance ToTags Tsx.SwitchStatement instance ToTags Tsx.TemplateString instance ToTags Tsx.TemplateSubstitution instance ToTags Tsx.TernaryExpression instance ToTags Tsx.This instance ToTags Tsx.ThrowStatement instance ToTags Tsx.True instance ToTags Tsx.TryStatement instance ToTags Tsx.TupleType instance ToTags Tsx.TypeAliasDeclaration instance ToTags Tsx.TypeAnnotation instance ToTags Tsx.TypeArguments instance ToTags Tsx.TypeIdentifier instance ToTags Tsx.TypeParameter instance ToTags Tsx.TypeParameters instance ToTags Tsx.TypePredicate instance ToTags Tsx.TypeQuery instance ToTags Tsx.UnaryExpression instance ToTags Tsx.Undefined instance ToTags Tsx.UnionType instance ToTags Tsx.UpdateExpression instance ToTags Tsx.VariableDeclaration -- instance ToTags Tsx.VariableDeclarator instance ToTags Tsx.WhileStatement instance ToTags Tsx.WithStatement instance ToTags Tsx.YieldExpression {- ORMOLU_ENABLE -} ================================================ FILE: semantic-tsx/src/Language/TSX.hs ================================================ {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# OPTIONS_GHC -freduction-depth=0 #-} -- | Semantic functionality for TSX programs. module Language.TSX ( Term(..) , Language.TSX.Grammar.tree_sitter_tsx ) where import AST.Marshal.JSON import Data.Proxy import qualified Language.TSX.AST as TSX import qualified Language.TSX.Tags as TsxTags import qualified Tags.Tagging.Precise as Tags import qualified Language.TSX.Grammar (tree_sitter_tsx) import qualified AST.Unmarshal as TS newtype Term a = Term { getTerm :: TSX.Program a } deriving MarshalJSON instance TS.SymbolMatching Term where matchedSymbols _ = TS.matchedSymbols (Proxy :: Proxy TSX.Program) showFailure _ = TS.showFailure (Proxy :: Proxy TSX.Program) instance TS.Unmarshal Term where matchers = fmap (fmap (TS.hoist Term)) TS.matchers instance Tags.ToTags Term where tags src = Tags.runTagging src . TsxTags.tags . getTerm ================================================ FILE: semantic-tsx/test/PreciseTest.hs ================================================ {-# LANGUAGE CPP #-} {-# LANGUAGE DisambiguateRecordFields #-} {-# LANGUAGE ImplicitParams #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeApplications #-} {-# OPTIONS_GHC -Wno-unused-imports #-} module Main (main) where import AST.TestHelpers import AST.Unmarshal import qualified Language.TSX.AST as Tsx import qualified System.Path.Fixture as Fixture import Test.Tasty import TreeSitter.TSX main :: IO () main = do #if BAZEL_BUILD rf <- Fixture.create let ?project = "external/semantic-typescript" ?runfiles = rf let dirs = Fixture.absRelDir "tsx/corpus" #else dirs <- Tsx.getTestCorpusDir #endif readCorpusFiles' dirs >>= traverse (testCorpus parse) >>= defaultMain . tests where parse = parseByteString @Tsx.Program @() tree_sitter_tsx tests :: [TestTree] -> TestTree tests = testGroup "tree-sitter-tsx corpus tests" ================================================ FILE: semantic-typescript/BUILD.bazel ================================================ package(default_visibility = ["//visibility:public"]) load( "//:build/common.bzl", "semantic_language_library", "semantic_language_parsing_test", ) semantic_language_library( name = "semantic-typescript", srcs = glob(["src/**/*.hs"]), language = "typescript", nodetypes = "@tree-sitter-typescript//:vendor/tree-sitter-typescript/typescript/src/node-types.json", ) semantic_language_parsing_test(language = "typescript") ================================================ FILE: semantic-typescript/LICENSE ================================================ MIT License Copyright (c) 2019 GitHub Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: semantic-typescript/README.md ================================================ # Semantic support for TypeScript This package implements `semantic` support for TypeScript. ================================================ FILE: semantic-typescript/Setup.hs ================================================ import Distribution.Simple main = defaultMain ================================================ FILE: semantic-typescript/semantic-typescript.cabal ================================================ cabal-version: 2.4 name: semantic-typescript version: 0.0.0.0 synopsis: Semantic support for TypeScript. description: Semantic support for TypeScript. homepage: https://github.com/github/semantic/tree/master/semantic-typescript#readme bug-reports: https://github.com/github/semantic/issues license: MIT license-file: LICENSE author: The Semantic authors maintainer: opensource+semantic@github.com copyright: (c) 2019 GitHub, Inc. category: Language build-type: Simple stability: alpha extra-source-files: README.md tested-with: GHC == 8.6.5 common haskell default-language: Haskell2010 ghc-options: -Weverything -Wno-missing-local-signatures -Wno-missing-import-lists -Wno-implicit-prelude -Wno-safe -Wno-unsafe -Wno-name-shadowing -Wno-monomorphism-restriction -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-star-is-type if (impl(ghc >= 8.8)) ghc-options: -Wno-missing-deriving-strategies if (impl(ghc >= 8.10)) ghc-options: -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module if (impl(ghc >= 9.2)) ghc-options: -Wno-missing-kind-signatures cpp-options: -DBAZEL_BUILD=0 library import: haskell exposed-modules: Language.TypeScript Language.TypeScript.AST Language.TypeScript.Grammar Language.TypeScript.Tags hs-source-dirs: src build-depends: , base >= 4.13 && < 5 , fused-effects ^>= 1.1 , semantic-ast , semantic-proto ^>= 0 , semantic-source ^>= 0.2 , semantic-tags ^>= 0.0 , template-haskell >= 2.15 && < 2.22 , text ^>= 1.2.3 , tree-sitter ^>= 0.9.0.0 , tree-sitter-typescript ^>= 0.5.0.1 test-suite test import: haskell type: exitcode-stdio-1.0 hs-source-dirs: test main-is: PreciseTest.hs build-depends: , base , semantic-ast , semantic-typescript , tasty , tree-sitter-typescript ^>= 0.5.0.1 ================================================ FILE: semantic-typescript/src/Language/TypeScript/AST.hs ================================================ -- Language definition for TypeScript, generated by ast-generate. Do not edit! {-# LANGUAGE CPP #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE QuantifiedConstraints #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} module Language.TypeScript.AST (module Language.TypeScript.AST, getTestCorpusDir) where import qualified AST.Parse import qualified AST.Token import qualified AST.Traversable1.Class import qualified AST.Unmarshal import qualified Data.Foldable import qualified Data.List as Data.OldList import qualified Data.Maybe as GHC.Maybe import qualified Data.Text.Internal import qualified Data.Traversable import qualified GHC.Base import qualified GHC.Generics import qualified GHC.Records import qualified GHC.Show import qualified TreeSitter.Node import TreeSitter.TypeScript (getTestCorpusDir) import qualified Prelude as GHC.Classes debugSymbolNames :: [GHC.Base.String] debugSymbolNames = debugSymbolNames_0 debugSymbolNames_0 :: [GHC.Base.String] debugSymbolNames_0 = [ "end", "identifier", "hash_bang_line", "_export", "_*", "_default", "_=", "_as", "_namespace", "_{", "_,", "_}", "_type", "_typeof", "_import", "_from", "_var", "_let", "_const", "_if", "_else", "_switch", "_for", "_(", "_)", "_await", "_in", "_of", "_while", "_do", "_try", "_with", "_break", "_continue", "_debugger", "_return", "_throw", "_;", "_:", "_case", "_catch", "_finally", "_yield", "_[", "_]", "_<", "_>", "_/", "_.", "_class", "_async", "_function", "_=>", "_new", "_+=", "_-=", "_*=", "_/=", "_%=", "_^=", "_&=", "_|=", "_>>=", "_>>>=", "_<<=", "_**=", "_...", "_?", "_&&", "_||", "_>>", "_>>>", "_<<", "_&", "_^", "_|", "_+", "_-", "_%", "_**", "_<=", "_==", "_===", "_!=", "_!==", "_>=", "_??", "_instanceof", "_!", "_~", "_void", "_delete", "_++", "_--", "_\"", "_string_token1", "_'", "_string_token2", "escape_sequence", "comment", "_`", "_${", "_/", "regex_pattern", "regex_flags", "number", "_target", "this", "super", "true", "false", "null", "undefined", "_@", "_static", "_abstract", "_get", "_set", "_declare", "_public", "_private", "_protected", "_module", "_any", "_number", "_boolean", "_string", "_symbol", "_require", "_implements", "_global", "_interface", "_extends", "_enum", "readonly", "_is", "_keyof", "_{|", "_|}", "_automatic_semicolon", "_template_chars", "program", "export_statement", "export_clause", "_import_export_specifier", "_declaration", "import", "import_statement", "import_clause", "_from_clause", "namespace_import", "named_imports", "expression_statement", "variable_declaration", "lexical_declaration", "variable_declarator", "statement_block", "if_statement", "switch_statement", "for_statement", "for_in_statement", "_for_header", "while_statement", "do_statement", "try_statement", "with_statement", "break_statement", "continue_statement", "debugger_statement", "return_statement", "throw_statement", "empty_statement", "labeled_statement", "switch_body", "switch_case", "switch_default", "catch_clause", "finally_clause", "parenthesized_expression", "_expression", "yield_expression", "object", "assignment_pattern", "array", "nested_identifier", "class", "class_declaration", "class_heritage", "function", "function_declaration", "generator_function", "generator_function_declaration", "arrow_function", "_call_signature", "call_expression", "new_expression", "await_expression", "member_expression", "subscript_expression", "assignment_expression", "augmented_assignment_expression", "_initializer", "spread_element", "ternary_expression", "binary_expression", "unary_expression", "update_expression", "sequence_expression", "string", "template_string", "template_substitution", "regex", "meta_property", "arguments", "decorator", "member_expression", "call_expression", "class_body", "public_field_definition", "formal_parameters", "rest_parameter", "method_definition", "pair", "_property_name", "computed_property_name", "non_null_expression", "method_signature", "abstract_method_signature", "function_signature", "type_assertion", "as_expression", "import_require_clause", "implements_clause", "ambient_declaration", "abstract_class_declaration", "module", "internal_module", "_module", "import_alias", "nested_type_identifier", "interface_declaration", "extends_clause", "enum_declaration", "enum_body", "enum_assignment", "type_alias_declaration", "accessibility_modifier", "required_parameter", "optional_parameter", "_parameter_name", "type_annotation", "_type", "constructor_type", "_primary_type", "generic_type", "type_predicate", "type_query", "index_type_query", "lookup_type", "mapped_type_clause", "literal_type", "unary_expression", "existential_type", "flow_maybe_type", "parenthesized_type", "predefined_type", "type_arguments", "object_type", "call_signature", "property_signature", "type_parameters", "type_parameter", "default_type", "constraint", "construct_signature", "index_signature", "array_type", "tuple_type", "union_type", "intersection_type", "function_type", "_program_repeat1", "_export_statement_repeat1", "_export_clause_repeat1", "_named_imports_repeat1", "_variable_declaration_repeat1", "_switch_body_repeat1", "_object_repeat1", "_array_repeat1", "_string_repeat1", "_string_repeat2", "_template_string_repeat1", "_class_body_repeat1", "_formal_parameters_repeat1", "_implements_clause_repeat1", "_extends_clause_repeat1", "_enum_body_repeat1", "_object_type_repeat1", "_type_parameters_repeat1", "array_pattern", "export_specifier", "import_specifier", "object_pattern", "property_identifier", "shorthand_property_identifier", "statement_identifier", "type_identifier" ] newtype 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)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1. AST.Traversable1.Class.Traversable1 a_1 ) instance GHC.Records.HasField "ann" (Declaration a_2) a_2 where getField = AST.Unmarshal.gann GHC.Base.. getDeclaration deriving instance GHC.Classes.Eq a_3 => GHC.Classes.Eq (Declaration a_3) deriving instance GHC.Classes.Ord a_4 => GHC.Classes.Ord (Declaration a_4) deriving instance GHC.Show.Show a_5 => GHC.Show.Show (Declaration a_5) instance AST.Unmarshal.Unmarshal Declaration instance Data.Foldable.Foldable Declaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Declaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Declaration where traverse = AST.Traversable1.Class.traverseDefault1 newtype DestructuringPattern a = DestructuringPattern {getDestructuringPattern :: ((ArrayPattern GHC.Generics.:+: ObjectPattern) a)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_6. AST.Traversable1.Class.Traversable1 a_6 ) instance GHC.Records.HasField "ann" (DestructuringPattern a_7) a_7 where getField = AST.Unmarshal.gann GHC.Base.. getDestructuringPattern deriving instance GHC.Classes.Eq a_8 => GHC.Classes.Eq (DestructuringPattern a_8) deriving instance GHC.Classes.Ord a_9 => GHC.Classes.Ord (DestructuringPattern a_9) deriving instance GHC.Show.Show a_10 => GHC.Show.Show (DestructuringPattern a_10) instance AST.Unmarshal.Unmarshal DestructuringPattern instance Data.Foldable.Foldable DestructuringPattern where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DestructuringPattern where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DestructuringPattern where traverse = AST.Traversable1.Class.traverseDefault1 newtype 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)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_11. AST.Traversable1.Class.Traversable1 a_11 ) instance GHC.Records.HasField "ann" (Expression a_12) a_12 where getField = AST.Unmarshal.gann GHC.Base.. getExpression deriving instance GHC.Classes.Eq a_13 => GHC.Classes.Eq (Expression a_13) deriving instance GHC.Classes.Ord a_14 => GHC.Classes.Ord (Expression a_14) deriving instance GHC.Show.Show a_15 => GHC.Show.Show (Expression a_15) instance AST.Unmarshal.Unmarshal Expression instance Data.Foldable.Foldable Expression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Expression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Expression where traverse = AST.Traversable1.Class.traverseDefault1 newtype 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)} deriving newtype (AST.Unmarshal.SymbolMatching) deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_16. AST.Traversable1.Class.Traversable1 a_16 ) instance GHC.Records.HasField "ann" (Statement a_17) a_17 where getField = AST.Unmarshal.gann GHC.Base.. getStatement deriving instance GHC.Classes.Eq a_18 => GHC.Classes.Eq (Statement a_18) deriving instance GHC.Classes.Ord a_19 => GHC.Classes.Ord (Statement a_19) deriving instance GHC.Show.Show a_20 => GHC.Show.Show (Statement a_20) instance AST.Unmarshal.Unmarshal Statement instance Data.Foldable.Foldable Statement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Statement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Statement where traverse = AST.Traversable1.Class.traverseDefault1 data AbstractClassDeclaration a = AbstractClassDeclaration { ann :: a, body :: (AST.Parse.Err (ClassBody a)), name :: (AST.Parse.Err (TypeIdentifier a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ClassHeritage a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_21. AST.Traversable1.Class.Traversable1 a_21 ) instance AST.Unmarshal.SymbolMatching AbstractClassDeclaration where matchedSymbols _ = [234] showFailure _ node_22 = "expected " GHC.Base.<> ( "abstract_class_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_22 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_23 c1_24 = TreeSitter.Node.nodeStartPoint node_22 TreeSitter.Node.TSPoint r2_25 c2_26 = TreeSitter.Node.nodeEndPoint node_22 deriving instance GHC.Classes.Eq a_27 => GHC.Classes.Eq (AbstractClassDeclaration a_27) deriving instance GHC.Classes.Ord a_28 => GHC.Classes.Ord (AbstractClassDeclaration a_28) deriving instance GHC.Show.Show a_29 => GHC.Show.Show (AbstractClassDeclaration a_29) instance AST.Unmarshal.Unmarshal AbstractClassDeclaration instance Data.Foldable.Foldable AbstractClassDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AbstractClassDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AbstractClassDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data AbstractMethodSignature a = AbstractMethodSignature { ann :: a, returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))), name :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)), parameters :: (AST.Parse.Err (FormalParameters a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (AccessibilityModifier a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_30. AST.Traversable1.Class.Traversable1 a_30 ) instance AST.Unmarshal.SymbolMatching AbstractMethodSignature where matchedSymbols _ = [227] showFailure _ node_31 = "expected " GHC.Base.<> ( "abstract_method_signature" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_31 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_32 c1_33 = TreeSitter.Node.nodeStartPoint node_31 TreeSitter.Node.TSPoint r2_34 c2_35 = TreeSitter.Node.nodeEndPoint node_31 deriving instance GHC.Classes.Eq a_36 => GHC.Classes.Eq (AbstractMethodSignature a_36) deriving instance GHC.Classes.Ord a_37 => GHC.Classes.Ord (AbstractMethodSignature a_37) deriving instance GHC.Show.Show a_38 => GHC.Show.Show (AbstractMethodSignature a_38) instance AST.Unmarshal.Unmarshal AbstractMethodSignature instance Data.Foldable.Foldable AbstractMethodSignature where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AbstractMethodSignature where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AbstractMethodSignature where traverse = AST.Traversable1.Class.traverseDefault1 data AccessibilityModifier a = AccessibilityModifier {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_39. AST.Traversable1.Class.Traversable1 a_39 ) instance AST.Unmarshal.SymbolMatching AccessibilityModifier where matchedSymbols _ = [246] showFailure _ node_40 = "expected " GHC.Base.<> ( "accessibility_modifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_40 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_41 c1_42 = TreeSitter.Node.nodeStartPoint node_40 TreeSitter.Node.TSPoint r2_43 c2_44 = TreeSitter.Node.nodeEndPoint node_40 deriving instance GHC.Classes.Eq a_45 => GHC.Classes.Eq (AccessibilityModifier a_45) deriving instance GHC.Classes.Ord a_46 => GHC.Classes.Ord (AccessibilityModifier a_46) deriving instance GHC.Show.Show a_47 => GHC.Show.Show (AccessibilityModifier a_47) instance AST.Unmarshal.Unmarshal AccessibilityModifier instance Data.Foldable.Foldable AccessibilityModifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AccessibilityModifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AccessibilityModifier where traverse = AST.Traversable1.Class.traverseDefault1 data AmbientDeclaration a = AmbientDeclaration { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_48. AST.Traversable1.Class.Traversable1 a_48 ) instance AST.Unmarshal.SymbolMatching AmbientDeclaration where matchedSymbols _ = [233] showFailure _ node_49 = "expected " GHC.Base.<> ( "ambient_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_49 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_50 c1_51 = TreeSitter.Node.nodeStartPoint node_49 TreeSitter.Node.TSPoint r2_52 c2_53 = TreeSitter.Node.nodeEndPoint node_49 deriving instance GHC.Classes.Eq a_54 => GHC.Classes.Eq (AmbientDeclaration a_54) deriving instance GHC.Classes.Ord a_55 => GHC.Classes.Ord (AmbientDeclaration a_55) deriving instance GHC.Show.Show a_56 => GHC.Show.Show (AmbientDeclaration a_56) instance AST.Unmarshal.Unmarshal AmbientDeclaration instance Data.Foldable.Foldable AmbientDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AmbientDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AmbientDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data Arguments a = Arguments { ann :: a, extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: SpreadElement) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_57. AST.Traversable1.Class.Traversable1 a_57 ) instance AST.Unmarshal.SymbolMatching Arguments where matchedSymbols _ = [213] showFailure _ node_58 = "expected " GHC.Base.<> ( "arguments" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_58 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_59 c1_60 = TreeSitter.Node.nodeStartPoint node_58 TreeSitter.Node.TSPoint r2_61 c2_62 = TreeSitter.Node.nodeEndPoint node_58 deriving instance GHC.Classes.Eq a_63 => GHC.Classes.Eq (Arguments a_63) deriving instance GHC.Classes.Ord a_64 => GHC.Classes.Ord (Arguments a_64) deriving instance GHC.Show.Show a_65 => GHC.Show.Show (Arguments a_65) instance AST.Unmarshal.Unmarshal Arguments instance Data.Foldable.Foldable Arguments where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Arguments where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Arguments where traverse = AST.Traversable1.Class.traverseDefault1 data Array a = Array { ann :: a, extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: SpreadElement) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_66. AST.Traversable1.Class.Traversable1 a_66 ) instance AST.Unmarshal.SymbolMatching Array where matchedSymbols _ = [183] showFailure _ node_67 = "expected " GHC.Base.<> ( "array" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_67 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_68 c1_69 = TreeSitter.Node.nodeStartPoint node_67 TreeSitter.Node.TSPoint r2_70 c2_71 = TreeSitter.Node.nodeEndPoint node_67 deriving instance GHC.Classes.Eq a_72 => GHC.Classes.Eq (Array a_72) deriving instance GHC.Classes.Ord a_73 => GHC.Classes.Ord (Array a_73) deriving instance GHC.Show.Show a_74 => GHC.Show.Show (Array a_74) instance AST.Unmarshal.Unmarshal Array instance Data.Foldable.Foldable Array where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Array where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Array where traverse = AST.Traversable1.Class.traverseDefault1 data ArrayPattern a = ArrayPattern { ann :: a, extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: SpreadElement) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_75. AST.Traversable1.Class.Traversable1 a_75 ) instance AST.Unmarshal.SymbolMatching ArrayPattern where matchedSymbols _ = [299] showFailure _ node_76 = "expected " GHC.Base.<> ( "array_pattern" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_76 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_77 c1_78 = TreeSitter.Node.nodeStartPoint node_76 TreeSitter.Node.TSPoint r2_79 c2_80 = TreeSitter.Node.nodeEndPoint node_76 deriving instance GHC.Classes.Eq a_81 => GHC.Classes.Eq (ArrayPattern a_81) deriving instance GHC.Classes.Ord a_82 => GHC.Classes.Ord (ArrayPattern a_82) deriving instance GHC.Show.Show a_83 => GHC.Show.Show (ArrayPattern a_83) instance AST.Unmarshal.Unmarshal ArrayPattern instance Data.Foldable.Foldable ArrayPattern where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ArrayPattern where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ArrayPattern where traverse = AST.Traversable1.Class.traverseDefault1 data ArrayType a = ArrayType { ann :: a, 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_84. AST.Traversable1.Class.Traversable1 a_84 ) instance AST.Unmarshal.SymbolMatching ArrayType where matchedSymbols _ = [276] showFailure _ node_85 = "expected " GHC.Base.<> ( "array_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_85 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_86 c1_87 = TreeSitter.Node.nodeStartPoint node_85 TreeSitter.Node.TSPoint r2_88 c2_89 = TreeSitter.Node.nodeEndPoint node_85 deriving instance GHC.Classes.Eq a_90 => GHC.Classes.Eq (ArrayType a_90) deriving instance GHC.Classes.Ord a_91 => GHC.Classes.Ord (ArrayType a_91) deriving instance GHC.Show.Show a_92 => GHC.Show.Show (ArrayType a_92) instance AST.Unmarshal.Unmarshal ArrayType instance Data.Foldable.Foldable ArrayType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ArrayType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ArrayType where traverse = AST.Traversable1.Class.traverseDefault1 data ArrowFunction a = ArrowFunction { ann :: a, returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))), body :: (AST.Parse.Err ((Expression GHC.Generics.:+: StatementBlock) a)), parameters :: (GHC.Maybe.Maybe (AST.Parse.Err (FormalParameters a))), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))), parameter :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_93. AST.Traversable1.Class.Traversable1 a_93 ) instance AST.Unmarshal.SymbolMatching ArrowFunction where matchedSymbols _ = [192] showFailure _ node_94 = "expected " GHC.Base.<> ( "arrow_function" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_94 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_95 c1_96 = TreeSitter.Node.nodeStartPoint node_94 TreeSitter.Node.TSPoint r2_97 c2_98 = TreeSitter.Node.nodeEndPoint node_94 deriving instance GHC.Classes.Eq a_99 => GHC.Classes.Eq (ArrowFunction a_99) deriving instance GHC.Classes.Ord a_100 => GHC.Classes.Ord (ArrowFunction a_100) deriving instance GHC.Show.Show a_101 => GHC.Show.Show (ArrowFunction a_101) instance AST.Unmarshal.Unmarshal ArrowFunction instance Data.Foldable.Foldable ArrowFunction where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ArrowFunction where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ArrowFunction where traverse = AST.Traversable1.Class.traverseDefault1 data AsExpression a = AsExpression { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_102. AST.Traversable1.Class.Traversable1 a_102 ) instance AST.Unmarshal.SymbolMatching AsExpression where matchedSymbols _ = [230] showFailure _ node_103 = "expected " GHC.Base.<> ( "as_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_103 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_104 c1_105 = TreeSitter.Node.nodeStartPoint node_103 TreeSitter.Node.TSPoint r2_106 c2_107 = TreeSitter.Node.nodeEndPoint node_103 deriving instance GHC.Classes.Eq a_108 => GHC.Classes.Eq (AsExpression a_108) deriving instance GHC.Classes.Ord a_109 => GHC.Classes.Ord (AsExpression a_109) deriving instance GHC.Show.Show a_110 => GHC.Show.Show (AsExpression a_110) instance AST.Unmarshal.Unmarshal AsExpression instance Data.Foldable.Foldable AsExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AsExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AsExpression where traverse = AST.Traversable1.Class.traverseDefault1 data AssignmentExpression a = AssignmentExpression { ann :: a, left :: (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: Identifier GHC.Generics.:+: MemberExpression GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: SubscriptExpression) a)), right :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_111. AST.Traversable1.Class.Traversable1 a_111 ) instance AST.Unmarshal.SymbolMatching AssignmentExpression where matchedSymbols _ = [199] showFailure _ node_112 = "expected " GHC.Base.<> ( "assignment_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_112 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_113 c1_114 = TreeSitter.Node.nodeStartPoint node_112 TreeSitter.Node.TSPoint r2_115 c2_116 = TreeSitter.Node.nodeEndPoint node_112 deriving instance GHC.Classes.Eq a_117 => GHC.Classes.Eq (AssignmentExpression a_117) deriving instance GHC.Classes.Ord a_118 => GHC.Classes.Ord (AssignmentExpression a_118) deriving instance GHC.Show.Show a_119 => GHC.Show.Show (AssignmentExpression a_119) instance AST.Unmarshal.Unmarshal AssignmentExpression instance Data.Foldable.Foldable AssignmentExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AssignmentExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AssignmentExpression where traverse = AST.Traversable1.Class.traverseDefault1 data AssignmentPattern a = AssignmentPattern { ann :: a, left :: (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: ShorthandPropertyIdentifier) a)), right :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_120. AST.Traversable1.Class.Traversable1 a_120 ) instance AST.Unmarshal.SymbolMatching AssignmentPattern where matchedSymbols _ = [182] showFailure _ node_121 = "expected " GHC.Base.<> ( "assignment_pattern" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_121 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_122 c1_123 = TreeSitter.Node.nodeStartPoint node_121 TreeSitter.Node.TSPoint r2_124 c2_125 = TreeSitter.Node.nodeEndPoint node_121 deriving instance GHC.Classes.Eq a_126 => GHC.Classes.Eq (AssignmentPattern a_126) deriving instance GHC.Classes.Ord a_127 => GHC.Classes.Ord (AssignmentPattern a_127) deriving instance GHC.Show.Show a_128 => GHC.Show.Show (AssignmentPattern a_128) instance AST.Unmarshal.Unmarshal AssignmentPattern instance Data.Foldable.Foldable AssignmentPattern where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AssignmentPattern where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AssignmentPattern where traverse = AST.Traversable1.Class.traverseDefault1 data AugmentedAssignmentExpression a = AugmentedAssignmentExpression { ann :: a, left :: (AST.Parse.Err ((Identifier GHC.Generics.:+: MemberExpression GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: SubscriptExpression) a)), right :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_129. AST.Traversable1.Class.Traversable1 a_129 ) instance AST.Unmarshal.SymbolMatching AugmentedAssignmentExpression where matchedSymbols _ = [200] showFailure _ node_130 = "expected " GHC.Base.<> ( "augmented_assignment_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_130 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_131 c1_132 = TreeSitter.Node.nodeStartPoint node_130 TreeSitter.Node.TSPoint r2_133 c2_134 = TreeSitter.Node.nodeEndPoint node_130 deriving instance GHC.Classes.Eq a_135 => GHC.Classes.Eq (AugmentedAssignmentExpression a_135) deriving instance GHC.Classes.Ord a_136 => GHC.Classes.Ord (AugmentedAssignmentExpression a_136) deriving instance GHC.Show.Show a_137 => GHC.Show.Show (AugmentedAssignmentExpression a_137) instance AST.Unmarshal.Unmarshal AugmentedAssignmentExpression instance Data.Foldable.Foldable AugmentedAssignmentExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AugmentedAssignmentExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AugmentedAssignmentExpression where traverse = AST.Traversable1.Class.traverseDefault1 data AwaitExpression a = AwaitExpression { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_138. AST.Traversable1.Class.Traversable1 a_138 ) instance AST.Unmarshal.SymbolMatching AwaitExpression where matchedSymbols _ = [196] showFailure _ node_139 = "expected " GHC.Base.<> ( "await_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_139 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_140 c1_141 = TreeSitter.Node.nodeStartPoint node_139 TreeSitter.Node.TSPoint r2_142 c2_143 = TreeSitter.Node.nodeEndPoint node_139 deriving instance GHC.Classes.Eq a_144 => GHC.Classes.Eq (AwaitExpression a_144) deriving instance GHC.Classes.Ord a_145 => GHC.Classes.Ord (AwaitExpression a_145) deriving instance GHC.Show.Show a_146 => GHC.Show.Show (AwaitExpression a_146) instance AST.Unmarshal.Unmarshal AwaitExpression instance Data.Foldable.Foldable AwaitExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor AwaitExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable AwaitExpression where traverse = AST.Traversable1.Class.traverseDefault1 data BinaryExpression a = BinaryExpression { ann :: a, 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)), left :: (AST.Parse.Err (Expression a)), right :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_147. AST.Traversable1.Class.Traversable1 a_147 ) instance AST.Unmarshal.SymbolMatching BinaryExpression where matchedSymbols _ = [204] showFailure _ node_148 = "expected " GHC.Base.<> ( "binary_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_148 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_149 c1_150 = TreeSitter.Node.nodeStartPoint node_148 TreeSitter.Node.TSPoint r2_151 c2_152 = TreeSitter.Node.nodeEndPoint node_148 deriving instance GHC.Classes.Eq a_153 => GHC.Classes.Eq (BinaryExpression a_153) deriving instance GHC.Classes.Ord a_154 => GHC.Classes.Ord (BinaryExpression a_154) deriving instance GHC.Show.Show a_155 => GHC.Show.Show (BinaryExpression a_155) instance AST.Unmarshal.Unmarshal BinaryExpression instance Data.Foldable.Foldable BinaryExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor BinaryExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable BinaryExpression where traverse = AST.Traversable1.Class.traverseDefault1 data BreakStatement a = BreakStatement { ann :: a, label :: (GHC.Maybe.Maybe (AST.Parse.Err (StatementIdentifier a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_156. AST.Traversable1.Class.Traversable1 a_156 ) instance AST.Unmarshal.SymbolMatching BreakStatement where matchedSymbols _ = [166] showFailure _ node_157 = "expected " GHC.Base.<> ( "break_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_157 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_158 c1_159 = TreeSitter.Node.nodeStartPoint node_157 TreeSitter.Node.TSPoint r2_160 c2_161 = TreeSitter.Node.nodeEndPoint node_157 deriving instance GHC.Classes.Eq a_162 => GHC.Classes.Eq (BreakStatement a_162) deriving instance GHC.Classes.Ord a_163 => GHC.Classes.Ord (BreakStatement a_163) deriving instance GHC.Show.Show a_164 => GHC.Show.Show (BreakStatement a_164) instance AST.Unmarshal.Unmarshal BreakStatement instance Data.Foldable.Foldable BreakStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor BreakStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable BreakStatement where traverse = AST.Traversable1.Class.traverseDefault1 data CallExpression a = CallExpression { ann :: a, function :: (AST.Parse.Err (Expression a)), arguments :: (AST.Parse.Err ((Arguments GHC.Generics.:+: TemplateString) a)), typeArguments :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeArguments a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_165. AST.Traversable1.Class.Traversable1 a_165 ) instance AST.Unmarshal.SymbolMatching CallExpression where matchedSymbols _ = [194, 216] showFailure _ node_166 = "expected " GHC.Base.<> ( "call_expression, call_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_166 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_167 c1_168 = TreeSitter.Node.nodeStartPoint node_166 TreeSitter.Node.TSPoint r2_169 c2_170 = TreeSitter.Node.nodeEndPoint node_166 deriving instance GHC.Classes.Eq a_171 => GHC.Classes.Eq (CallExpression a_171) deriving instance GHC.Classes.Ord a_172 => GHC.Classes.Ord (CallExpression a_172) deriving instance GHC.Show.Show a_173 => GHC.Show.Show (CallExpression a_173) instance AST.Unmarshal.Unmarshal CallExpression instance Data.Foldable.Foldable CallExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor CallExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable CallExpression where traverse = AST.Traversable1.Class.traverseDefault1 data CallSignature a = CallSignature { ann :: a, returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))), parameters :: (AST.Parse.Err (FormalParameters a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_174. AST.Traversable1.Class.Traversable1 a_174 ) instance AST.Unmarshal.SymbolMatching CallSignature where matchedSymbols _ = [268] showFailure _ node_175 = "expected " GHC.Base.<> ( "call_signature" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_175 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_176 c1_177 = TreeSitter.Node.nodeStartPoint node_175 TreeSitter.Node.TSPoint r2_178 c2_179 = TreeSitter.Node.nodeEndPoint node_175 deriving instance GHC.Classes.Eq a_180 => GHC.Classes.Eq (CallSignature a_180) deriving instance GHC.Classes.Ord a_181 => GHC.Classes.Ord (CallSignature a_181) deriving instance GHC.Show.Show a_182 => GHC.Show.Show (CallSignature a_182) instance AST.Unmarshal.Unmarshal CallSignature instance Data.Foldable.Foldable CallSignature where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor CallSignature where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable CallSignature where traverse = AST.Traversable1.Class.traverseDefault1 data CatchClause a = CatchClause { ann :: a, body :: (AST.Parse.Err (StatementBlock a)), parameter :: (GHC.Maybe.Maybe (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: Identifier) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_183. AST.Traversable1.Class.Traversable1 a_183 ) instance AST.Unmarshal.SymbolMatching CatchClause where matchedSymbols _ = [176] showFailure _ node_184 = "expected " GHC.Base.<> ( "catch_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_184 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_185 c1_186 = TreeSitter.Node.nodeStartPoint node_184 TreeSitter.Node.TSPoint r2_187 c2_188 = TreeSitter.Node.nodeEndPoint node_184 deriving instance GHC.Classes.Eq a_189 => GHC.Classes.Eq (CatchClause a_189) deriving instance GHC.Classes.Ord a_190 => GHC.Classes.Ord (CatchClause a_190) deriving instance GHC.Show.Show a_191 => GHC.Show.Show (CatchClause a_191) instance AST.Unmarshal.Unmarshal CatchClause instance Data.Foldable.Foldable CatchClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor CatchClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable CatchClause where traverse = AST.Traversable1.Class.traverseDefault1 data Class a = Class { ann :: a, decorator :: ([AST.Parse.Err (Decorator a)]), body :: (AST.Parse.Err (ClassBody a)), name :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeIdentifier a))), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ClassHeritage a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_192. AST.Traversable1.Class.Traversable1 a_192 ) instance AST.Unmarshal.SymbolMatching Class where matchedSymbols _ = [185] showFailure _ node_193 = "expected " GHC.Base.<> ( "class" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_193 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_194 c1_195 = TreeSitter.Node.nodeStartPoint node_193 TreeSitter.Node.TSPoint r2_196 c2_197 = TreeSitter.Node.nodeEndPoint node_193 deriving instance GHC.Classes.Eq a_198 => GHC.Classes.Eq (Class a_198) deriving instance GHC.Classes.Ord a_199 => GHC.Classes.Ord (Class a_199) deriving instance GHC.Show.Show a_200 => GHC.Show.Show (Class a_200) instance AST.Unmarshal.Unmarshal Class instance Data.Foldable.Foldable Class where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Class where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Class where traverse = AST.Traversable1.Class.traverseDefault1 data ClassBody a = ClassBody { ann :: a, extraChildren :: ([AST.Parse.Err ((AbstractMethodSignature GHC.Generics.:+: Decorator GHC.Generics.:+: IndexSignature GHC.Generics.:+: MethodDefinition GHC.Generics.:+: MethodSignature GHC.Generics.:+: PublicFieldDefinition) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_201. AST.Traversable1.Class.Traversable1 a_201 ) instance AST.Unmarshal.SymbolMatching ClassBody where matchedSymbols _ = [217] showFailure _ node_202 = "expected " GHC.Base.<> ( "class_body" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_202 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_203 c1_204 = TreeSitter.Node.nodeStartPoint node_202 TreeSitter.Node.TSPoint r2_205 c2_206 = TreeSitter.Node.nodeEndPoint node_202 deriving instance GHC.Classes.Eq a_207 => GHC.Classes.Eq (ClassBody a_207) deriving instance GHC.Classes.Ord a_208 => GHC.Classes.Ord (ClassBody a_208) deriving instance GHC.Show.Show a_209 => GHC.Show.Show (ClassBody a_209) instance AST.Unmarshal.Unmarshal ClassBody instance Data.Foldable.Foldable ClassBody where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ClassBody where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ClassBody where traverse = AST.Traversable1.Class.traverseDefault1 data ClassDeclaration a = ClassDeclaration { ann :: a, decorator :: ([AST.Parse.Err (Decorator a)]), body :: (AST.Parse.Err (ClassBody a)), name :: (AST.Parse.Err (TypeIdentifier a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ClassHeritage a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_210. AST.Traversable1.Class.Traversable1 a_210 ) instance AST.Unmarshal.SymbolMatching ClassDeclaration where matchedSymbols _ = [186] showFailure _ node_211 = "expected " GHC.Base.<> ( "class_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_211 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_212 c1_213 = TreeSitter.Node.nodeStartPoint node_211 TreeSitter.Node.TSPoint r2_214 c2_215 = TreeSitter.Node.nodeEndPoint node_211 deriving instance GHC.Classes.Eq a_216 => GHC.Classes.Eq (ClassDeclaration a_216) deriving instance GHC.Classes.Ord a_217 => GHC.Classes.Ord (ClassDeclaration a_217) deriving instance GHC.Show.Show a_218 => GHC.Show.Show (ClassDeclaration a_218) instance AST.Unmarshal.Unmarshal ClassDeclaration instance Data.Foldable.Foldable ClassDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ClassDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ClassDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data ClassHeritage a = ClassHeritage { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ExtendsClause GHC.Generics.:+: ImplementsClause) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_219. AST.Traversable1.Class.Traversable1 a_219 ) instance AST.Unmarshal.SymbolMatching ClassHeritage where matchedSymbols _ = [187] showFailure _ node_220 = "expected " GHC.Base.<> ( "class_heritage" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_220 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_221 c1_222 = TreeSitter.Node.nodeStartPoint node_220 TreeSitter.Node.TSPoint r2_223 c2_224 = TreeSitter.Node.nodeEndPoint node_220 deriving instance GHC.Classes.Eq a_225 => GHC.Classes.Eq (ClassHeritage a_225) deriving instance GHC.Classes.Ord a_226 => GHC.Classes.Ord (ClassHeritage a_226) deriving instance GHC.Show.Show a_227 => GHC.Show.Show (ClassHeritage a_227) instance AST.Unmarshal.Unmarshal ClassHeritage instance Data.Foldable.Foldable ClassHeritage where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ClassHeritage where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ClassHeritage where traverse = AST.Traversable1.Class.traverseDefault1 data ComputedPropertyName a = ComputedPropertyName { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_228. AST.Traversable1.Class.Traversable1 a_228 ) instance AST.Unmarshal.SymbolMatching ComputedPropertyName where matchedSymbols _ = [224] showFailure _ node_229 = "expected " GHC.Base.<> ( "computed_property_name" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_229 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_230 c1_231 = TreeSitter.Node.nodeStartPoint node_229 TreeSitter.Node.TSPoint r2_232 c2_233 = TreeSitter.Node.nodeEndPoint node_229 deriving instance GHC.Classes.Eq a_234 => GHC.Classes.Eq (ComputedPropertyName a_234) deriving instance GHC.Classes.Ord a_235 => GHC.Classes.Ord (ComputedPropertyName a_235) deriving instance GHC.Show.Show a_236 => GHC.Show.Show (ComputedPropertyName a_236) instance AST.Unmarshal.Unmarshal ComputedPropertyName instance Data.Foldable.Foldable ComputedPropertyName where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ComputedPropertyName where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ComputedPropertyName where traverse = AST.Traversable1.Class.traverseDefault1 data Constraint a = Constraint { ann :: a, 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_237. AST.Traversable1.Class.Traversable1 a_237 ) instance AST.Unmarshal.SymbolMatching Constraint where matchedSymbols _ = [273] showFailure _ node_238 = "expected " GHC.Base.<> ( "constraint" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_238 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_239 c1_240 = TreeSitter.Node.nodeStartPoint node_238 TreeSitter.Node.TSPoint r2_241 c2_242 = TreeSitter.Node.nodeEndPoint node_238 deriving instance GHC.Classes.Eq a_243 => GHC.Classes.Eq (Constraint a_243) deriving instance GHC.Classes.Ord a_244 => GHC.Classes.Ord (Constraint a_244) deriving instance GHC.Show.Show a_245 => GHC.Show.Show (Constraint a_245) instance AST.Unmarshal.Unmarshal Constraint instance Data.Foldable.Foldable Constraint where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Constraint where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Constraint where traverse = AST.Traversable1.Class.traverseDefault1 data ConstructSignature a = ConstructSignature { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((FormalParameters GHC.Generics.:+: TypeAnnotation GHC.Generics.:+: TypeParameters) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_246. AST.Traversable1.Class.Traversable1 a_246 ) instance AST.Unmarshal.SymbolMatching ConstructSignature where matchedSymbols _ = [274] showFailure _ node_247 = "expected " GHC.Base.<> ( "construct_signature" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_247 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_248 c1_249 = TreeSitter.Node.nodeStartPoint node_247 TreeSitter.Node.TSPoint r2_250 c2_251 = TreeSitter.Node.nodeEndPoint node_247 deriving instance GHC.Classes.Eq a_252 => GHC.Classes.Eq (ConstructSignature a_252) deriving instance GHC.Classes.Ord a_253 => GHC.Classes.Ord (ConstructSignature a_253) deriving instance GHC.Show.Show a_254 => GHC.Show.Show (ConstructSignature a_254) instance AST.Unmarshal.Unmarshal ConstructSignature instance Data.Foldable.Foldable ConstructSignature where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ConstructSignature where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ConstructSignature where traverse = AST.Traversable1.Class.traverseDefault1 data ConstructorType a = ConstructorType { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_255. AST.Traversable1.Class.Traversable1 a_255 ) instance AST.Unmarshal.SymbolMatching ConstructorType where matchedSymbols _ = [252] showFailure _ node_256 = "expected " GHC.Base.<> ( "constructor_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_256 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_257 c1_258 = TreeSitter.Node.nodeStartPoint node_256 TreeSitter.Node.TSPoint r2_259 c2_260 = TreeSitter.Node.nodeEndPoint node_256 deriving instance GHC.Classes.Eq a_261 => GHC.Classes.Eq (ConstructorType a_261) deriving instance GHC.Classes.Ord a_262 => GHC.Classes.Ord (ConstructorType a_262) deriving instance GHC.Show.Show a_263 => GHC.Show.Show (ConstructorType a_263) instance AST.Unmarshal.Unmarshal ConstructorType instance Data.Foldable.Foldable ConstructorType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ConstructorType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ConstructorType where traverse = AST.Traversable1.Class.traverseDefault1 data ContinueStatement a = ContinueStatement { ann :: a, label :: (GHC.Maybe.Maybe (AST.Parse.Err (StatementIdentifier a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_264. AST.Traversable1.Class.Traversable1 a_264 ) instance AST.Unmarshal.SymbolMatching ContinueStatement where matchedSymbols _ = [167] showFailure _ node_265 = "expected " GHC.Base.<> ( "continue_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_265 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_266 c1_267 = TreeSitter.Node.nodeStartPoint node_265 TreeSitter.Node.TSPoint r2_268 c2_269 = TreeSitter.Node.nodeEndPoint node_265 deriving instance GHC.Classes.Eq a_270 => GHC.Classes.Eq (ContinueStatement a_270) deriving instance GHC.Classes.Ord a_271 => GHC.Classes.Ord (ContinueStatement a_271) deriving instance GHC.Show.Show a_272 => GHC.Show.Show (ContinueStatement a_272) instance AST.Unmarshal.Unmarshal ContinueStatement instance Data.Foldable.Foldable ContinueStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ContinueStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ContinueStatement where traverse = AST.Traversable1.Class.traverseDefault1 data DebuggerStatement a = DebuggerStatement {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_273. AST.Traversable1.Class.Traversable1 a_273 ) instance AST.Unmarshal.SymbolMatching DebuggerStatement where matchedSymbols _ = [168] showFailure _ node_274 = "expected " GHC.Base.<> ( "debugger_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_274 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_275 c1_276 = TreeSitter.Node.nodeStartPoint node_274 TreeSitter.Node.TSPoint r2_277 c2_278 = TreeSitter.Node.nodeEndPoint node_274 deriving instance GHC.Classes.Eq a_279 => GHC.Classes.Eq (DebuggerStatement a_279) deriving instance GHC.Classes.Ord a_280 => GHC.Classes.Ord (DebuggerStatement a_280) deriving instance GHC.Show.Show a_281 => GHC.Show.Show (DebuggerStatement a_281) instance AST.Unmarshal.Unmarshal DebuggerStatement instance Data.Foldable.Foldable DebuggerStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DebuggerStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DebuggerStatement where traverse = AST.Traversable1.Class.traverseDefault1 data Decorator a = Decorator { ann :: a, extraChildren :: (AST.Parse.Err ((CallExpression GHC.Generics.:+: Identifier GHC.Generics.:+: MemberExpression) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_282. AST.Traversable1.Class.Traversable1 a_282 ) instance AST.Unmarshal.SymbolMatching Decorator where matchedSymbols _ = [214] showFailure _ node_283 = "expected " GHC.Base.<> ( "decorator" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_283 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_284 c1_285 = TreeSitter.Node.nodeStartPoint node_283 TreeSitter.Node.TSPoint r2_286 c2_287 = TreeSitter.Node.nodeEndPoint node_283 deriving instance GHC.Classes.Eq a_288 => GHC.Classes.Eq (Decorator a_288) deriving instance GHC.Classes.Ord a_289 => GHC.Classes.Ord (Decorator a_289) deriving instance GHC.Show.Show a_290 => GHC.Show.Show (Decorator a_290) instance AST.Unmarshal.Unmarshal Decorator instance Data.Foldable.Foldable Decorator where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Decorator where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Decorator where traverse = AST.Traversable1.Class.traverseDefault1 data DefaultType a = DefaultType { ann :: a, 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_291. AST.Traversable1.Class.Traversable1 a_291 ) instance AST.Unmarshal.SymbolMatching DefaultType where matchedSymbols _ = [272] showFailure _ node_292 = "expected " GHC.Base.<> ( "default_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_292 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_293 c1_294 = TreeSitter.Node.nodeStartPoint node_292 TreeSitter.Node.TSPoint r2_295 c2_296 = TreeSitter.Node.nodeEndPoint node_292 deriving instance GHC.Classes.Eq a_297 => GHC.Classes.Eq (DefaultType a_297) deriving instance GHC.Classes.Ord a_298 => GHC.Classes.Ord (DefaultType a_298) deriving instance GHC.Show.Show a_299 => GHC.Show.Show (DefaultType a_299) instance AST.Unmarshal.Unmarshal DefaultType instance Data.Foldable.Foldable DefaultType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DefaultType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DefaultType where traverse = AST.Traversable1.Class.traverseDefault1 data DoStatement a = DoStatement { ann :: a, body :: (AST.Parse.Err (Statement a)), condition :: (AST.Parse.Err (ParenthesizedExpression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_300. AST.Traversable1.Class.Traversable1 a_300 ) instance AST.Unmarshal.SymbolMatching DoStatement where matchedSymbols _ = [163] showFailure _ node_301 = "expected " GHC.Base.<> ( "do_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_301 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_302 c1_303 = TreeSitter.Node.nodeStartPoint node_301 TreeSitter.Node.TSPoint r2_304 c2_305 = TreeSitter.Node.nodeEndPoint node_301 deriving instance GHC.Classes.Eq a_306 => GHC.Classes.Eq (DoStatement a_306) deriving instance GHC.Classes.Ord a_307 => GHC.Classes.Ord (DoStatement a_307) deriving instance GHC.Show.Show a_308 => GHC.Show.Show (DoStatement a_308) instance AST.Unmarshal.Unmarshal DoStatement instance Data.Foldable.Foldable DoStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor DoStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable DoStatement where traverse = AST.Traversable1.Class.traverseDefault1 data EmptyStatement a = EmptyStatement {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_309. AST.Traversable1.Class.Traversable1 a_309 ) instance AST.Unmarshal.SymbolMatching EmptyStatement where matchedSymbols _ = [171] showFailure _ node_310 = "expected " GHC.Base.<> ( "empty_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_310 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_311 c1_312 = TreeSitter.Node.nodeStartPoint node_310 TreeSitter.Node.TSPoint r2_313 c2_314 = TreeSitter.Node.nodeEndPoint node_310 deriving instance GHC.Classes.Eq a_315 => GHC.Classes.Eq (EmptyStatement a_315) deriving instance GHC.Classes.Ord a_316 => GHC.Classes.Ord (EmptyStatement a_316) deriving instance GHC.Show.Show a_317 => GHC.Show.Show (EmptyStatement a_317) instance AST.Unmarshal.Unmarshal EmptyStatement instance Data.Foldable.Foldable EmptyStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor EmptyStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable EmptyStatement where traverse = AST.Traversable1.Class.traverseDefault1 data EnumAssignment a = EnumAssignment { ann :: a, value :: (AST.Parse.Err (Expression a)), extraChildren :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_318. AST.Traversable1.Class.Traversable1 a_318 ) instance AST.Unmarshal.SymbolMatching EnumAssignment where matchedSymbols _ = [244] showFailure _ node_319 = "expected " GHC.Base.<> ( "enum_assignment" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_319 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_320 c1_321 = TreeSitter.Node.nodeStartPoint node_319 TreeSitter.Node.TSPoint r2_322 c2_323 = TreeSitter.Node.nodeEndPoint node_319 deriving instance GHC.Classes.Eq a_324 => GHC.Classes.Eq (EnumAssignment a_324) deriving instance GHC.Classes.Ord a_325 => GHC.Classes.Ord (EnumAssignment a_325) deriving instance GHC.Show.Show a_326 => GHC.Show.Show (EnumAssignment a_326) instance AST.Unmarshal.Unmarshal EnumAssignment instance Data.Foldable.Foldable EnumAssignment where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor EnumAssignment where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable EnumAssignment where traverse = AST.Traversable1.Class.traverseDefault1 data EnumBody a = EnumBody { ann :: a, extraChildren :: ([AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: EnumAssignment GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_327. AST.Traversable1.Class.Traversable1 a_327 ) instance AST.Unmarshal.SymbolMatching EnumBody where matchedSymbols _ = [243] showFailure _ node_328 = "expected " GHC.Base.<> ( "enum_body" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_328 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_329 c1_330 = TreeSitter.Node.nodeStartPoint node_328 TreeSitter.Node.TSPoint r2_331 c2_332 = TreeSitter.Node.nodeEndPoint node_328 deriving instance GHC.Classes.Eq a_333 => GHC.Classes.Eq (EnumBody a_333) deriving instance GHC.Classes.Ord a_334 => GHC.Classes.Ord (EnumBody a_334) deriving instance GHC.Show.Show a_335 => GHC.Show.Show (EnumBody a_335) instance AST.Unmarshal.Unmarshal EnumBody instance Data.Foldable.Foldable EnumBody where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor EnumBody where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable EnumBody where traverse = AST.Traversable1.Class.traverseDefault1 data EnumDeclaration a = EnumDeclaration { ann :: a, body :: (AST.Parse.Err (EnumBody a)), name :: (AST.Parse.Err (Identifier a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_336. AST.Traversable1.Class.Traversable1 a_336 ) instance AST.Unmarshal.SymbolMatching EnumDeclaration where matchedSymbols _ = [242] showFailure _ node_337 = "expected " GHC.Base.<> ( "enum_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_337 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_338 c1_339 = TreeSitter.Node.nodeStartPoint node_337 TreeSitter.Node.TSPoint r2_340 c2_341 = TreeSitter.Node.nodeEndPoint node_337 deriving instance GHC.Classes.Eq a_342 => GHC.Classes.Eq (EnumDeclaration a_342) deriving instance GHC.Classes.Ord a_343 => GHC.Classes.Ord (EnumDeclaration a_343) deriving instance GHC.Show.Show a_344 => GHC.Show.Show (EnumDeclaration a_344) instance AST.Unmarshal.Unmarshal EnumDeclaration instance Data.Foldable.Foldable EnumDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor EnumDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable EnumDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data ExistentialType a = ExistentialType {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_345. AST.Traversable1.Class.Traversable1 a_345 ) instance AST.Unmarshal.SymbolMatching ExistentialType where matchedSymbols _ = [262] showFailure _ node_346 = "expected " GHC.Base.<> ( "existential_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_346 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_347 c1_348 = TreeSitter.Node.nodeStartPoint node_346 TreeSitter.Node.TSPoint r2_349 c2_350 = TreeSitter.Node.nodeEndPoint node_346 deriving instance GHC.Classes.Eq a_351 => GHC.Classes.Eq (ExistentialType a_351) deriving instance GHC.Classes.Ord a_352 => GHC.Classes.Ord (ExistentialType a_352) deriving instance GHC.Show.Show a_353 => GHC.Show.Show (ExistentialType a_353) instance AST.Unmarshal.Unmarshal ExistentialType instance Data.Foldable.Foldable ExistentialType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ExistentialType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ExistentialType where traverse = AST.Traversable1.Class.traverseDefault1 data ExportClause a = ExportClause { ann :: a, extraChildren :: ([AST.Parse.Err (ExportSpecifier a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_354. AST.Traversable1.Class.Traversable1 a_354 ) instance AST.Unmarshal.SymbolMatching ExportClause where matchedSymbols _ = [143] showFailure _ node_355 = "expected " GHC.Base.<> ( "export_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_355 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_356 c1_357 = TreeSitter.Node.nodeStartPoint node_355 TreeSitter.Node.TSPoint r2_358 c2_359 = TreeSitter.Node.nodeEndPoint node_355 deriving instance GHC.Classes.Eq a_360 => GHC.Classes.Eq (ExportClause a_360) deriving instance GHC.Classes.Ord a_361 => GHC.Classes.Ord (ExportClause a_361) deriving instance GHC.Show.Show a_362 => GHC.Show.Show (ExportClause a_362) instance AST.Unmarshal.Unmarshal ExportClause instance Data.Foldable.Foldable ExportClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ExportClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ExportClause where traverse = AST.Traversable1.Class.traverseDefault1 data ExportSpecifier a = ExportSpecifier { ann :: a, alias :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a))), name :: (AST.Parse.Err (Identifier a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_363. AST.Traversable1.Class.Traversable1 a_363 ) instance AST.Unmarshal.SymbolMatching ExportSpecifier where matchedSymbols _ = [300] showFailure _ node_364 = "expected " GHC.Base.<> ( "export_specifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_364 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_365 c1_366 = TreeSitter.Node.nodeStartPoint node_364 TreeSitter.Node.TSPoint r2_367 c2_368 = TreeSitter.Node.nodeEndPoint node_364 deriving instance GHC.Classes.Eq a_369 => GHC.Classes.Eq (ExportSpecifier a_369) deriving instance GHC.Classes.Ord a_370 => GHC.Classes.Ord (ExportSpecifier a_370) deriving instance GHC.Show.Show a_371 => GHC.Show.Show (ExportSpecifier a_371) instance AST.Unmarshal.Unmarshal ExportSpecifier instance Data.Foldable.Foldable ExportSpecifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ExportSpecifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ExportSpecifier where traverse = AST.Traversable1.Class.traverseDefault1 data ExportStatement a = ExportStatement { ann :: a, decorator :: ([AST.Parse.Err (Decorator a)]), declaration :: (GHC.Maybe.Maybe (AST.Parse.Err (Declaration a))), value :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))), source :: (GHC.Maybe.Maybe (AST.Parse.Err (String a))), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err ((ExportClause GHC.Generics.:+: Identifier) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_372. AST.Traversable1.Class.Traversable1 a_372 ) instance AST.Unmarshal.SymbolMatching ExportStatement where matchedSymbols _ = [142] showFailure _ node_373 = "expected " GHC.Base.<> ( "export_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_373 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_374 c1_375 = TreeSitter.Node.nodeStartPoint node_373 TreeSitter.Node.TSPoint r2_376 c2_377 = TreeSitter.Node.nodeEndPoint node_373 deriving instance GHC.Classes.Eq a_378 => GHC.Classes.Eq (ExportStatement a_378) deriving instance GHC.Classes.Ord a_379 => GHC.Classes.Ord (ExportStatement a_379) deriving instance GHC.Show.Show a_380 => GHC.Show.Show (ExportStatement a_380) instance AST.Unmarshal.Unmarshal ExportStatement instance Data.Foldable.Foldable ExportStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ExportStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ExportStatement where traverse = AST.Traversable1.Class.traverseDefault1 data ExpressionStatement a = ExpressionStatement { ann :: a, extraChildren :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_381. AST.Traversable1.Class.Traversable1 a_381 ) instance AST.Unmarshal.SymbolMatching ExpressionStatement where matchedSymbols _ = [152] showFailure _ node_382 = "expected " GHC.Base.<> ( "expression_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_382 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_383 c1_384 = TreeSitter.Node.nodeStartPoint node_382 TreeSitter.Node.TSPoint r2_385 c2_386 = TreeSitter.Node.nodeEndPoint node_382 deriving instance GHC.Classes.Eq a_387 => GHC.Classes.Eq (ExpressionStatement a_387) deriving instance GHC.Classes.Ord a_388 => GHC.Classes.Ord (ExpressionStatement a_388) deriving instance GHC.Show.Show a_389 => GHC.Show.Show (ExpressionStatement a_389) instance AST.Unmarshal.Unmarshal ExpressionStatement instance Data.Foldable.Foldable ExpressionStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ExpressionStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ExpressionStatement where traverse = AST.Traversable1.Class.traverseDefault1 data ExtendsClause a = ExtendsClause { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: GenericType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: TypeIdentifier) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_390. AST.Traversable1.Class.Traversable1 a_390 ) instance AST.Unmarshal.SymbolMatching ExtendsClause where matchedSymbols _ = [241] showFailure _ node_391 = "expected " GHC.Base.<> ( "extends_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_391 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_392 c1_393 = TreeSitter.Node.nodeStartPoint node_391 TreeSitter.Node.TSPoint r2_394 c2_395 = TreeSitter.Node.nodeEndPoint node_391 deriving instance GHC.Classes.Eq a_396 => GHC.Classes.Eq (ExtendsClause a_396) deriving instance GHC.Classes.Ord a_397 => GHC.Classes.Ord (ExtendsClause a_397) deriving instance GHC.Show.Show a_398 => GHC.Show.Show (ExtendsClause a_398) instance AST.Unmarshal.Unmarshal ExtendsClause instance Data.Foldable.Foldable ExtendsClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ExtendsClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ExtendsClause where traverse = AST.Traversable1.Class.traverseDefault1 data FinallyClause a = FinallyClause { ann :: a, body :: (AST.Parse.Err (StatementBlock a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_399. AST.Traversable1.Class.Traversable1 a_399 ) instance AST.Unmarshal.SymbolMatching FinallyClause where matchedSymbols _ = [177] showFailure _ node_400 = "expected " GHC.Base.<> ( "finally_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_400 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_401 c1_402 = TreeSitter.Node.nodeStartPoint node_400 TreeSitter.Node.TSPoint r2_403 c2_404 = TreeSitter.Node.nodeEndPoint node_400 deriving instance GHC.Classes.Eq a_405 => GHC.Classes.Eq (FinallyClause a_405) deriving instance GHC.Classes.Ord a_406 => GHC.Classes.Ord (FinallyClause a_406) deriving instance GHC.Show.Show a_407 => GHC.Show.Show (FinallyClause a_407) instance AST.Unmarshal.Unmarshal FinallyClause instance Data.Foldable.Foldable FinallyClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FinallyClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FinallyClause where traverse = AST.Traversable1.Class.traverseDefault1 data FlowMaybeType a = FlowMaybeType { ann :: a, 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_408. AST.Traversable1.Class.Traversable1 a_408 ) instance AST.Unmarshal.SymbolMatching FlowMaybeType where matchedSymbols _ = [263] showFailure _ node_409 = "expected " GHC.Base.<> ( "flow_maybe_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_409 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_410 c1_411 = TreeSitter.Node.nodeStartPoint node_409 TreeSitter.Node.TSPoint r2_412 c2_413 = TreeSitter.Node.nodeEndPoint node_409 deriving instance GHC.Classes.Eq a_414 => GHC.Classes.Eq (FlowMaybeType a_414) deriving instance GHC.Classes.Ord a_415 => GHC.Classes.Ord (FlowMaybeType a_415) deriving instance GHC.Show.Show a_416 => GHC.Show.Show (FlowMaybeType a_416) instance AST.Unmarshal.Unmarshal FlowMaybeType instance Data.Foldable.Foldable FlowMaybeType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FlowMaybeType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FlowMaybeType where traverse = AST.Traversable1.Class.traverseDefault1 data ForInStatement a = ForInStatement { ann :: a, body :: (AST.Parse.Err (Statement a)), left :: (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: Identifier GHC.Generics.:+: MemberExpression GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: SubscriptExpression) a)), right :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_417. AST.Traversable1.Class.Traversable1 a_417 ) instance AST.Unmarshal.SymbolMatching ForInStatement where matchedSymbols _ = [160] showFailure _ node_418 = "expected " GHC.Base.<> ( "for_in_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_418 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_419 c1_420 = TreeSitter.Node.nodeStartPoint node_418 TreeSitter.Node.TSPoint r2_421 c2_422 = TreeSitter.Node.nodeEndPoint node_418 deriving instance GHC.Classes.Eq a_423 => GHC.Classes.Eq (ForInStatement a_423) deriving instance GHC.Classes.Ord a_424 => GHC.Classes.Ord (ForInStatement a_424) deriving instance GHC.Show.Show a_425 => GHC.Show.Show (ForInStatement a_425) instance AST.Unmarshal.Unmarshal ForInStatement instance Data.Foldable.Foldable ForInStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ForInStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ForInStatement where traverse = AST.Traversable1.Class.traverseDefault1 data ForStatement a = ForStatement { ann :: a, body :: (AST.Parse.Err (Statement a)), initializer :: (AST.Parse.Err ((EmptyStatement GHC.Generics.:+: ExpressionStatement GHC.Generics.:+: LexicalDeclaration GHC.Generics.:+: VariableDeclaration) a)), condition :: (AST.Parse.Err ((EmptyStatement GHC.Generics.:+: ExpressionStatement) a)), increment :: (GHC.Maybe.Maybe (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_426. AST.Traversable1.Class.Traversable1 a_426 ) instance AST.Unmarshal.SymbolMatching ForStatement where matchedSymbols _ = [159] showFailure _ node_427 = "expected " GHC.Base.<> ( "for_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_427 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_428 c1_429 = TreeSitter.Node.nodeStartPoint node_427 TreeSitter.Node.TSPoint r2_430 c2_431 = TreeSitter.Node.nodeEndPoint node_427 deriving instance GHC.Classes.Eq a_432 => GHC.Classes.Eq (ForStatement a_432) deriving instance GHC.Classes.Ord a_433 => GHC.Classes.Ord (ForStatement a_433) deriving instance GHC.Show.Show a_434 => GHC.Show.Show (ForStatement a_434) instance AST.Unmarshal.Unmarshal ForStatement instance Data.Foldable.Foldable ForStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ForStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ForStatement where traverse = AST.Traversable1.Class.traverseDefault1 data FormalParameters a = FormalParameters { ann :: a, decorator :: ([AST.Parse.Err (Decorator a)]), extraChildren :: ([AST.Parse.Err ((OptionalParameter GHC.Generics.:+: RequiredParameter GHC.Generics.:+: RestParameter) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_435. AST.Traversable1.Class.Traversable1 a_435 ) instance AST.Unmarshal.SymbolMatching FormalParameters where matchedSymbols _ = [219] showFailure _ node_436 = "expected " GHC.Base.<> ( "formal_parameters" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_436 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_437 c1_438 = TreeSitter.Node.nodeStartPoint node_436 TreeSitter.Node.TSPoint r2_439 c2_440 = TreeSitter.Node.nodeEndPoint node_436 deriving instance GHC.Classes.Eq a_441 => GHC.Classes.Eq (FormalParameters a_441) deriving instance GHC.Classes.Ord a_442 => GHC.Classes.Ord (FormalParameters a_442) deriving instance GHC.Show.Show a_443 => GHC.Show.Show (FormalParameters a_443) instance AST.Unmarshal.Unmarshal FormalParameters instance Data.Foldable.Foldable FormalParameters where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FormalParameters where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FormalParameters where traverse = AST.Traversable1.Class.traverseDefault1 data Function a = Function { ann :: a, returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))), body :: (AST.Parse.Err (StatementBlock a)), name :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a))), parameters :: (AST.Parse.Err (FormalParameters a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_444. AST.Traversable1.Class.Traversable1 a_444 ) instance AST.Unmarshal.SymbolMatching Function where matchedSymbols _ = [188] showFailure _ node_445 = "expected " GHC.Base.<> ( "function" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_445 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_446 c1_447 = TreeSitter.Node.nodeStartPoint node_445 TreeSitter.Node.TSPoint r2_448 c2_449 = TreeSitter.Node.nodeEndPoint node_445 deriving instance GHC.Classes.Eq a_450 => GHC.Classes.Eq (Function a_450) deriving instance GHC.Classes.Ord a_451 => GHC.Classes.Ord (Function a_451) deriving instance GHC.Show.Show a_452 => GHC.Show.Show (Function a_452) instance AST.Unmarshal.Unmarshal Function instance Data.Foldable.Foldable Function where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Function where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Function where traverse = AST.Traversable1.Class.traverseDefault1 data FunctionDeclaration a = FunctionDeclaration { ann :: a, returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))), body :: (AST.Parse.Err (StatementBlock a)), name :: (AST.Parse.Err (Identifier a)), parameters :: (AST.Parse.Err (FormalParameters a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_453. AST.Traversable1.Class.Traversable1 a_453 ) instance AST.Unmarshal.SymbolMatching FunctionDeclaration where matchedSymbols _ = [189] showFailure _ node_454 = "expected " GHC.Base.<> ( "function_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_454 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_455 c1_456 = TreeSitter.Node.nodeStartPoint node_454 TreeSitter.Node.TSPoint r2_457 c2_458 = TreeSitter.Node.nodeEndPoint node_454 deriving instance GHC.Classes.Eq a_459 => GHC.Classes.Eq (FunctionDeclaration a_459) deriving instance GHC.Classes.Ord a_460 => GHC.Classes.Ord (FunctionDeclaration a_460) deriving instance GHC.Show.Show a_461 => GHC.Show.Show (FunctionDeclaration a_461) instance AST.Unmarshal.Unmarshal FunctionDeclaration instance Data.Foldable.Foldable FunctionDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FunctionDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FunctionDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data FunctionSignature a = FunctionSignature { ann :: a, returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))), name :: (AST.Parse.Err (Identifier a)), parameters :: (AST.Parse.Err (FormalParameters a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_462. AST.Traversable1.Class.Traversable1 a_462 ) instance AST.Unmarshal.SymbolMatching FunctionSignature where matchedSymbols _ = [228] showFailure _ node_463 = "expected " GHC.Base.<> ( "function_signature" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_463 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_464 c1_465 = TreeSitter.Node.nodeStartPoint node_463 TreeSitter.Node.TSPoint r2_466 c2_467 = TreeSitter.Node.nodeEndPoint node_463 deriving instance GHC.Classes.Eq a_468 => GHC.Classes.Eq (FunctionSignature a_468) deriving instance GHC.Classes.Ord a_469 => GHC.Classes.Ord (FunctionSignature a_469) deriving instance GHC.Show.Show a_470 => GHC.Show.Show (FunctionSignature a_470) instance AST.Unmarshal.Unmarshal FunctionSignature instance Data.Foldable.Foldable FunctionSignature where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FunctionSignature where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FunctionSignature where traverse = AST.Traversable1.Class.traverseDefault1 data FunctionType a = FunctionType { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_471. AST.Traversable1.Class.Traversable1 a_471 ) instance AST.Unmarshal.SymbolMatching FunctionType where matchedSymbols _ = [280] showFailure _ node_472 = "expected " GHC.Base.<> ( "function_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_472 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_473 c1_474 = TreeSitter.Node.nodeStartPoint node_472 TreeSitter.Node.TSPoint r2_475 c2_476 = TreeSitter.Node.nodeEndPoint node_472 deriving instance GHC.Classes.Eq a_477 => GHC.Classes.Eq (FunctionType a_477) deriving instance GHC.Classes.Ord a_478 => GHC.Classes.Ord (FunctionType a_478) deriving instance GHC.Show.Show a_479 => GHC.Show.Show (FunctionType a_479) instance AST.Unmarshal.Unmarshal FunctionType instance Data.Foldable.Foldable FunctionType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor FunctionType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable FunctionType where traverse = AST.Traversable1.Class.traverseDefault1 data GeneratorFunction a = GeneratorFunction { ann :: a, returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))), body :: (AST.Parse.Err (StatementBlock a)), name :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a))), parameters :: (AST.Parse.Err (FormalParameters a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_480. AST.Traversable1.Class.Traversable1 a_480 ) instance AST.Unmarshal.SymbolMatching GeneratorFunction where matchedSymbols _ = [190] showFailure _ node_481 = "expected " GHC.Base.<> ( "generator_function" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_481 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_482 c1_483 = TreeSitter.Node.nodeStartPoint node_481 TreeSitter.Node.TSPoint r2_484 c2_485 = TreeSitter.Node.nodeEndPoint node_481 deriving instance GHC.Classes.Eq a_486 => GHC.Classes.Eq (GeneratorFunction a_486) deriving instance GHC.Classes.Ord a_487 => GHC.Classes.Ord (GeneratorFunction a_487) deriving instance GHC.Show.Show a_488 => GHC.Show.Show (GeneratorFunction a_488) instance AST.Unmarshal.Unmarshal GeneratorFunction instance Data.Foldable.Foldable GeneratorFunction where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor GeneratorFunction where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable GeneratorFunction where traverse = AST.Traversable1.Class.traverseDefault1 data GeneratorFunctionDeclaration a = GeneratorFunctionDeclaration { ann :: a, returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))), body :: (AST.Parse.Err (StatementBlock a)), name :: (AST.Parse.Err (Identifier a)), parameters :: (AST.Parse.Err (FormalParameters a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_489. AST.Traversable1.Class.Traversable1 a_489 ) instance AST.Unmarshal.SymbolMatching GeneratorFunctionDeclaration where matchedSymbols _ = [191] showFailure _ node_490 = "expected " GHC.Base.<> ( "generator_function_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_490 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_491 c1_492 = TreeSitter.Node.nodeStartPoint node_490 TreeSitter.Node.TSPoint r2_493 c2_494 = TreeSitter.Node.nodeEndPoint node_490 deriving instance GHC.Classes.Eq a_495 => GHC.Classes.Eq (GeneratorFunctionDeclaration a_495) deriving instance GHC.Classes.Ord a_496 => GHC.Classes.Ord (GeneratorFunctionDeclaration a_496) deriving instance GHC.Show.Show a_497 => GHC.Show.Show (GeneratorFunctionDeclaration a_497) instance AST.Unmarshal.Unmarshal GeneratorFunctionDeclaration instance Data.Foldable.Foldable GeneratorFunctionDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor GeneratorFunctionDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable GeneratorFunctionDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data GenericType a = GenericType { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((NestedTypeIdentifier GHC.Generics.:+: TypeArguments GHC.Generics.:+: TypeIdentifier) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_498. AST.Traversable1.Class.Traversable1 a_498 ) instance AST.Unmarshal.SymbolMatching GenericType where matchedSymbols _ = [254] showFailure _ node_499 = "expected " GHC.Base.<> ( "generic_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_499 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_500 c1_501 = TreeSitter.Node.nodeStartPoint node_499 TreeSitter.Node.TSPoint r2_502 c2_503 = TreeSitter.Node.nodeEndPoint node_499 deriving instance GHC.Classes.Eq a_504 => GHC.Classes.Eq (GenericType a_504) deriving instance GHC.Classes.Ord a_505 => GHC.Classes.Ord (GenericType a_505) deriving instance GHC.Show.Show a_506 => GHC.Show.Show (GenericType a_506) instance AST.Unmarshal.Unmarshal GenericType instance Data.Foldable.Foldable GenericType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor GenericType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable GenericType where traverse = AST.Traversable1.Class.traverseDefault1 data IfStatement a = IfStatement { ann :: a, alternative :: (GHC.Maybe.Maybe (AST.Parse.Err (Statement a))), consequence :: (AST.Parse.Err (Statement a)), condition :: (AST.Parse.Err (ParenthesizedExpression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_507. AST.Traversable1.Class.Traversable1 a_507 ) instance AST.Unmarshal.SymbolMatching IfStatement where matchedSymbols _ = [157] showFailure _ node_508 = "expected " GHC.Base.<> ( "if_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_508 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_509 c1_510 = TreeSitter.Node.nodeStartPoint node_508 TreeSitter.Node.TSPoint r2_511 c2_512 = TreeSitter.Node.nodeEndPoint node_508 deriving instance GHC.Classes.Eq a_513 => GHC.Classes.Eq (IfStatement a_513) deriving instance GHC.Classes.Ord a_514 => GHC.Classes.Ord (IfStatement a_514) deriving instance GHC.Show.Show a_515 => GHC.Show.Show (IfStatement a_515) instance AST.Unmarshal.Unmarshal IfStatement instance Data.Foldable.Foldable IfStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor IfStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable IfStatement where traverse = AST.Traversable1.Class.traverseDefault1 data ImplementsClause a = ImplementsClause { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_516. AST.Traversable1.Class.Traversable1 a_516 ) instance AST.Unmarshal.SymbolMatching ImplementsClause where matchedSymbols _ = [232] showFailure _ node_517 = "expected " GHC.Base.<> ( "implements_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_517 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_518 c1_519 = TreeSitter.Node.nodeStartPoint node_517 TreeSitter.Node.TSPoint r2_520 c2_521 = TreeSitter.Node.nodeEndPoint node_517 deriving instance GHC.Classes.Eq a_522 => GHC.Classes.Eq (ImplementsClause a_522) deriving instance GHC.Classes.Ord a_523 => GHC.Classes.Ord (ImplementsClause a_523) deriving instance GHC.Show.Show a_524 => GHC.Show.Show (ImplementsClause a_524) instance AST.Unmarshal.Unmarshal ImplementsClause instance Data.Foldable.Foldable ImplementsClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ImplementsClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ImplementsClause where traverse = AST.Traversable1.Class.traverseDefault1 data Import a = Import {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_525. AST.Traversable1.Class.Traversable1 a_525 ) instance AST.Unmarshal.SymbolMatching Import where matchedSymbols _ = [146] showFailure _ node_526 = "expected " GHC.Base.<> ( "import" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_526 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_527 c1_528 = TreeSitter.Node.nodeStartPoint node_526 TreeSitter.Node.TSPoint r2_529 c2_530 = TreeSitter.Node.nodeEndPoint node_526 deriving instance GHC.Classes.Eq a_531 => GHC.Classes.Eq (Import a_531) deriving instance GHC.Classes.Ord a_532 => GHC.Classes.Ord (Import a_532) deriving instance GHC.Show.Show a_533 => GHC.Show.Show (Import a_533) instance AST.Unmarshal.Unmarshal Import instance Data.Foldable.Foldable Import where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Import where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Import where traverse = AST.Traversable1.Class.traverseDefault1 data ImportAlias a = ImportAlias { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: NestedIdentifier) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_534. AST.Traversable1.Class.Traversable1 a_534 ) instance AST.Unmarshal.SymbolMatching ImportAlias where matchedSymbols _ = [238] showFailure _ node_535 = "expected " GHC.Base.<> ( "import_alias" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_535 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_536 c1_537 = TreeSitter.Node.nodeStartPoint node_535 TreeSitter.Node.TSPoint r2_538 c2_539 = TreeSitter.Node.nodeEndPoint node_535 deriving instance GHC.Classes.Eq a_540 => GHC.Classes.Eq (ImportAlias a_540) deriving instance GHC.Classes.Ord a_541 => GHC.Classes.Ord (ImportAlias a_541) deriving instance GHC.Show.Show a_542 => GHC.Show.Show (ImportAlias a_542) instance AST.Unmarshal.Unmarshal ImportAlias instance Data.Foldable.Foldable ImportAlias where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ImportAlias where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ImportAlias where traverse = AST.Traversable1.Class.traverseDefault1 data ImportClause a = ImportClause { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: NamedImports GHC.Generics.:+: NamespaceImport) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_543. AST.Traversable1.Class.Traversable1 a_543 ) instance AST.Unmarshal.SymbolMatching ImportClause where matchedSymbols _ = [148] showFailure _ node_544 = "expected " GHC.Base.<> ( "import_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_544 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_545 c1_546 = TreeSitter.Node.nodeStartPoint node_544 TreeSitter.Node.TSPoint r2_547 c2_548 = TreeSitter.Node.nodeEndPoint node_544 deriving instance GHC.Classes.Eq a_549 => GHC.Classes.Eq (ImportClause a_549) deriving instance GHC.Classes.Ord a_550 => GHC.Classes.Ord (ImportClause a_550) deriving instance GHC.Show.Show a_551 => GHC.Show.Show (ImportClause a_551) instance AST.Unmarshal.Unmarshal ImportClause instance Data.Foldable.Foldable ImportClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ImportClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ImportClause where traverse = AST.Traversable1.Class.traverseDefault1 data ImportRequireClause a = ImportRequireClause { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: String) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_552. AST.Traversable1.Class.Traversable1 a_552 ) instance AST.Unmarshal.SymbolMatching ImportRequireClause where matchedSymbols _ = [231] showFailure _ node_553 = "expected " GHC.Base.<> ( "import_require_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_553 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_554 c1_555 = TreeSitter.Node.nodeStartPoint node_553 TreeSitter.Node.TSPoint r2_556 c2_557 = TreeSitter.Node.nodeEndPoint node_553 deriving instance GHC.Classes.Eq a_558 => GHC.Classes.Eq (ImportRequireClause a_558) deriving instance GHC.Classes.Ord a_559 => GHC.Classes.Ord (ImportRequireClause a_559) deriving instance GHC.Show.Show a_560 => GHC.Show.Show (ImportRequireClause a_560) instance AST.Unmarshal.Unmarshal ImportRequireClause instance Data.Foldable.Foldable ImportRequireClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ImportRequireClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ImportRequireClause where traverse = AST.Traversable1.Class.traverseDefault1 data ImportSpecifier a = ImportSpecifier { ann :: a, alias :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a))), name :: (AST.Parse.Err (Identifier a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_561. AST.Traversable1.Class.Traversable1 a_561 ) instance AST.Unmarshal.SymbolMatching ImportSpecifier where matchedSymbols _ = [301] showFailure _ node_562 = "expected " GHC.Base.<> ( "import_specifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_562 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_563 c1_564 = TreeSitter.Node.nodeStartPoint node_562 TreeSitter.Node.TSPoint r2_565 c2_566 = TreeSitter.Node.nodeEndPoint node_562 deriving instance GHC.Classes.Eq a_567 => GHC.Classes.Eq (ImportSpecifier a_567) deriving instance GHC.Classes.Ord a_568 => GHC.Classes.Ord (ImportSpecifier a_568) deriving instance GHC.Show.Show a_569 => GHC.Show.Show (ImportSpecifier a_569) instance AST.Unmarshal.Unmarshal ImportSpecifier instance Data.Foldable.Foldable ImportSpecifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ImportSpecifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ImportSpecifier where traverse = AST.Traversable1.Class.traverseDefault1 data ImportStatement a = ImportStatement { ann :: a, source :: (GHC.Maybe.Maybe (AST.Parse.Err (String a))), extraChildren :: (AST.Parse.Err ((ImportClause GHC.Generics.:+: ImportRequireClause GHC.Generics.:+: String) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_570. AST.Traversable1.Class.Traversable1 a_570 ) instance AST.Unmarshal.SymbolMatching ImportStatement where matchedSymbols _ = [147] showFailure _ node_571 = "expected " GHC.Base.<> ( "import_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_571 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_572 c1_573 = TreeSitter.Node.nodeStartPoint node_571 TreeSitter.Node.TSPoint r2_574 c2_575 = TreeSitter.Node.nodeEndPoint node_571 deriving instance GHC.Classes.Eq a_576 => GHC.Classes.Eq (ImportStatement a_576) deriving instance GHC.Classes.Ord a_577 => GHC.Classes.Ord (ImportStatement a_577) deriving instance GHC.Show.Show a_578 => GHC.Show.Show (ImportStatement a_578) instance AST.Unmarshal.Unmarshal ImportStatement instance Data.Foldable.Foldable ImportStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ImportStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ImportStatement where traverse = AST.Traversable1.Class.traverseDefault1 data IndexSignature a = IndexSignature { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: MappedTypeClause GHC.Generics.:+: PredefinedType GHC.Generics.:+: TypeAnnotation) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_579. AST.Traversable1.Class.Traversable1 a_579 ) instance AST.Unmarshal.SymbolMatching IndexSignature where matchedSymbols _ = [275] showFailure _ node_580 = "expected " GHC.Base.<> ( "index_signature" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_580 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_581 c1_582 = TreeSitter.Node.nodeStartPoint node_580 TreeSitter.Node.TSPoint r2_583 c2_584 = TreeSitter.Node.nodeEndPoint node_580 deriving instance GHC.Classes.Eq a_585 => GHC.Classes.Eq (IndexSignature a_585) deriving instance GHC.Classes.Ord a_586 => GHC.Classes.Ord (IndexSignature a_586) deriving instance GHC.Show.Show a_587 => GHC.Show.Show (IndexSignature a_587) instance AST.Unmarshal.Unmarshal IndexSignature instance Data.Foldable.Foldable IndexSignature where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor IndexSignature where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable IndexSignature where traverse = AST.Traversable1.Class.traverseDefault1 data IndexTypeQuery a = IndexTypeQuery { ann :: a, extraChildren :: (AST.Parse.Err ((NestedTypeIdentifier GHC.Generics.:+: TypeIdentifier) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_588. AST.Traversable1.Class.Traversable1 a_588 ) instance AST.Unmarshal.SymbolMatching IndexTypeQuery where matchedSymbols _ = [257] showFailure _ node_589 = "expected " GHC.Base.<> ( "index_type_query" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_589 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_590 c1_591 = TreeSitter.Node.nodeStartPoint node_589 TreeSitter.Node.TSPoint r2_592 c2_593 = TreeSitter.Node.nodeEndPoint node_589 deriving instance GHC.Classes.Eq a_594 => GHC.Classes.Eq (IndexTypeQuery a_594) deriving instance GHC.Classes.Ord a_595 => GHC.Classes.Ord (IndexTypeQuery a_595) deriving instance GHC.Show.Show a_596 => GHC.Show.Show (IndexTypeQuery a_596) instance AST.Unmarshal.Unmarshal IndexTypeQuery instance Data.Foldable.Foldable IndexTypeQuery where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor IndexTypeQuery where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable IndexTypeQuery where traverse = AST.Traversable1.Class.traverseDefault1 data InterfaceDeclaration a = InterfaceDeclaration { ann :: a, body :: (AST.Parse.Err (ObjectType a)), name :: (AST.Parse.Err (TypeIdentifier a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))), extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ExtendsClause a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_597. AST.Traversable1.Class.Traversable1 a_597 ) instance AST.Unmarshal.SymbolMatching InterfaceDeclaration where matchedSymbols _ = [240] showFailure _ node_598 = "expected " GHC.Base.<> ( "interface_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_598 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_599 c1_600 = TreeSitter.Node.nodeStartPoint node_598 TreeSitter.Node.TSPoint r2_601 c2_602 = TreeSitter.Node.nodeEndPoint node_598 deriving instance GHC.Classes.Eq a_603 => GHC.Classes.Eq (InterfaceDeclaration a_603) deriving instance GHC.Classes.Ord a_604 => GHC.Classes.Ord (InterfaceDeclaration a_604) deriving instance GHC.Show.Show a_605 => GHC.Show.Show (InterfaceDeclaration a_605) instance AST.Unmarshal.Unmarshal InterfaceDeclaration instance Data.Foldable.Foldable InterfaceDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor InterfaceDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable InterfaceDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data InternalModule a = InternalModule { ann :: a, body :: (GHC.Maybe.Maybe (AST.Parse.Err (StatementBlock a))), name :: (AST.Parse.Err ((Identifier GHC.Generics.:+: NestedIdentifier GHC.Generics.:+: String) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_606. AST.Traversable1.Class.Traversable1 a_606 ) instance AST.Unmarshal.SymbolMatching InternalModule where matchedSymbols _ = [236] showFailure _ node_607 = "expected " GHC.Base.<> ( "internal_module" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_607 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_608 c1_609 = TreeSitter.Node.nodeStartPoint node_607 TreeSitter.Node.TSPoint r2_610 c2_611 = TreeSitter.Node.nodeEndPoint node_607 deriving instance GHC.Classes.Eq a_612 => GHC.Classes.Eq (InternalModule a_612) deriving instance GHC.Classes.Ord a_613 => GHC.Classes.Ord (InternalModule a_613) deriving instance GHC.Show.Show a_614 => GHC.Show.Show (InternalModule a_614) instance AST.Unmarshal.Unmarshal InternalModule instance Data.Foldable.Foldable InternalModule where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor InternalModule where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable InternalModule where traverse = AST.Traversable1.Class.traverseDefault1 data IntersectionType a = IntersectionType { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_615. AST.Traversable1.Class.Traversable1 a_615 ) instance AST.Unmarshal.SymbolMatching IntersectionType where matchedSymbols _ = [279] showFailure _ node_616 = "expected " GHC.Base.<> ( "intersection_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_616 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_617 c1_618 = TreeSitter.Node.nodeStartPoint node_616 TreeSitter.Node.TSPoint r2_619 c2_620 = TreeSitter.Node.nodeEndPoint node_616 deriving instance GHC.Classes.Eq a_621 => GHC.Classes.Eq (IntersectionType a_621) deriving instance GHC.Classes.Ord a_622 => GHC.Classes.Ord (IntersectionType a_622) deriving instance GHC.Show.Show a_623 => GHC.Show.Show (IntersectionType a_623) instance AST.Unmarshal.Unmarshal IntersectionType instance Data.Foldable.Foldable IntersectionType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor IntersectionType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable IntersectionType where traverse = AST.Traversable1.Class.traverseDefault1 data JsxAttribute a = JsxAttribute { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_624. AST.Traversable1.Class.Traversable1 a_624 ) instance AST.Unmarshal.SymbolMatching JsxAttribute where matchedSymbols _ = [] showFailure _ node_625 = "expected " GHC.Base.<> ( "" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_625 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_626 c1_627 = TreeSitter.Node.nodeStartPoint node_625 TreeSitter.Node.TSPoint r2_628 c2_629 = TreeSitter.Node.nodeEndPoint node_625 deriving instance GHC.Classes.Eq a_630 => GHC.Classes.Eq (JsxAttribute a_630) deriving instance GHC.Classes.Ord a_631 => GHC.Classes.Ord (JsxAttribute a_631) deriving instance GHC.Show.Show a_632 => GHC.Show.Show (JsxAttribute a_632) instance AST.Unmarshal.Unmarshal JsxAttribute instance Data.Foldable.Foldable JsxAttribute where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor JsxAttribute where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable JsxAttribute where traverse = AST.Traversable1.Class.traverseDefault1 data JsxClosingElement a = JsxClosingElement { ann :: a, name :: (AST.Parse.Err ((Identifier GHC.Generics.:+: JsxNamespaceName GHC.Generics.:+: NestedIdentifier) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_633. AST.Traversable1.Class.Traversable1 a_633 ) instance AST.Unmarshal.SymbolMatching JsxClosingElement where matchedSymbols _ = [] showFailure _ node_634 = "expected " GHC.Base.<> ( "" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_634 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_635 c1_636 = TreeSitter.Node.nodeStartPoint node_634 TreeSitter.Node.TSPoint r2_637 c2_638 = TreeSitter.Node.nodeEndPoint node_634 deriving instance GHC.Classes.Eq a_639 => GHC.Classes.Eq (JsxClosingElement a_639) deriving instance GHC.Classes.Ord a_640 => GHC.Classes.Ord (JsxClosingElement a_640) deriving instance GHC.Show.Show a_641 => GHC.Show.Show (JsxClosingElement a_641) instance AST.Unmarshal.Unmarshal JsxClosingElement instance Data.Foldable.Foldable JsxClosingElement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor JsxClosingElement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable JsxClosingElement where traverse = AST.Traversable1.Class.traverseDefault1 data JsxElement a = JsxElement { ann :: a, closeTag :: (AST.Parse.Err (JsxClosingElement a)), openTag :: (AST.Parse.Err (JsxOpeningElement a)), extraChildren :: ([AST.Parse.Err ((JsxElement GHC.Generics.:+: JsxExpression GHC.Generics.:+: JsxSelfClosingElement GHC.Generics.:+: JsxText) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_642. AST.Traversable1.Class.Traversable1 a_642 ) instance AST.Unmarshal.SymbolMatching JsxElement where matchedSymbols _ = [] showFailure _ node_643 = "expected " GHC.Base.<> ( "" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_643 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_644 c1_645 = TreeSitter.Node.nodeStartPoint node_643 TreeSitter.Node.TSPoint r2_646 c2_647 = TreeSitter.Node.nodeEndPoint node_643 deriving instance GHC.Classes.Eq a_648 => GHC.Classes.Eq (JsxElement a_648) deriving instance GHC.Classes.Ord a_649 => GHC.Classes.Ord (JsxElement a_649) deriving instance GHC.Show.Show a_650 => GHC.Show.Show (JsxElement a_650) instance AST.Unmarshal.Unmarshal JsxElement instance Data.Foldable.Foldable JsxElement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor JsxElement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable JsxElement where traverse = AST.Traversable1.Class.traverseDefault1 data JsxExpression a = JsxExpression { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression GHC.Generics.:+: SpreadElement) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_651. AST.Traversable1.Class.Traversable1 a_651 ) instance AST.Unmarshal.SymbolMatching JsxExpression where matchedSymbols _ = [] showFailure _ node_652 = "expected " GHC.Base.<> ( "" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_652 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_653 c1_654 = TreeSitter.Node.nodeStartPoint node_652 TreeSitter.Node.TSPoint r2_655 c2_656 = TreeSitter.Node.nodeEndPoint node_652 deriving instance GHC.Classes.Eq a_657 => GHC.Classes.Eq (JsxExpression a_657) deriving instance GHC.Classes.Ord a_658 => GHC.Classes.Ord (JsxExpression a_658) deriving instance GHC.Show.Show a_659 => GHC.Show.Show (JsxExpression a_659) instance AST.Unmarshal.Unmarshal JsxExpression instance Data.Foldable.Foldable JsxExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor JsxExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable JsxExpression where traverse = AST.Traversable1.Class.traverseDefault1 data JsxFragment a = JsxFragment { ann :: a, extraChildren :: ([AST.Parse.Err ((JsxElement GHC.Generics.:+: JsxExpression GHC.Generics.:+: JsxSelfClosingElement GHC.Generics.:+: JsxText) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_660. AST.Traversable1.Class.Traversable1 a_660 ) instance AST.Unmarshal.SymbolMatching JsxFragment where matchedSymbols _ = [] showFailure _ node_661 = "expected " GHC.Base.<> ( "" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_661 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_662 c1_663 = TreeSitter.Node.nodeStartPoint node_661 TreeSitter.Node.TSPoint r2_664 c2_665 = TreeSitter.Node.nodeEndPoint node_661 deriving instance GHC.Classes.Eq a_666 => GHC.Classes.Eq (JsxFragment a_666) deriving instance GHC.Classes.Ord a_667 => GHC.Classes.Ord (JsxFragment a_667) deriving instance GHC.Show.Show a_668 => GHC.Show.Show (JsxFragment a_668) instance AST.Unmarshal.Unmarshal JsxFragment instance Data.Foldable.Foldable JsxFragment where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor JsxFragment where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable JsxFragment where traverse = AST.Traversable1.Class.traverseDefault1 data JsxNamespaceName a = JsxNamespaceName { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Identifier a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_669. AST.Traversable1.Class.Traversable1 a_669 ) instance AST.Unmarshal.SymbolMatching JsxNamespaceName where matchedSymbols _ = [] showFailure _ node_670 = "expected " GHC.Base.<> ( "" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_670 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_671 c1_672 = TreeSitter.Node.nodeStartPoint node_670 TreeSitter.Node.TSPoint r2_673 c2_674 = TreeSitter.Node.nodeEndPoint node_670 deriving instance GHC.Classes.Eq a_675 => GHC.Classes.Eq (JsxNamespaceName a_675) deriving instance GHC.Classes.Ord a_676 => GHC.Classes.Ord (JsxNamespaceName a_676) deriving instance GHC.Show.Show a_677 => GHC.Show.Show (JsxNamespaceName a_677) instance AST.Unmarshal.Unmarshal JsxNamespaceName instance Data.Foldable.Foldable JsxNamespaceName where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor JsxNamespaceName where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable JsxNamespaceName where traverse = AST.Traversable1.Class.traverseDefault1 data JsxOpeningElement a = JsxOpeningElement { ann :: a, attribute :: ([AST.Parse.Err ((JsxAttribute GHC.Generics.:+: JsxExpression) a)]), name :: (AST.Parse.Err ((Identifier GHC.Generics.:+: JsxNamespaceName GHC.Generics.:+: NestedIdentifier) a)), typeArguments :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeArguments a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_678. AST.Traversable1.Class.Traversable1 a_678 ) instance AST.Unmarshal.SymbolMatching JsxOpeningElement where matchedSymbols _ = [] showFailure _ node_679 = "expected " GHC.Base.<> ( "" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_679 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_680 c1_681 = TreeSitter.Node.nodeStartPoint node_679 TreeSitter.Node.TSPoint r2_682 c2_683 = TreeSitter.Node.nodeEndPoint node_679 deriving instance GHC.Classes.Eq a_684 => GHC.Classes.Eq (JsxOpeningElement a_684) deriving instance GHC.Classes.Ord a_685 => GHC.Classes.Ord (JsxOpeningElement a_685) deriving instance GHC.Show.Show a_686 => GHC.Show.Show (JsxOpeningElement a_686) instance AST.Unmarshal.Unmarshal JsxOpeningElement instance Data.Foldable.Foldable JsxOpeningElement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor JsxOpeningElement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable JsxOpeningElement where traverse = AST.Traversable1.Class.traverseDefault1 data JsxSelfClosingElement a = JsxSelfClosingElement { ann :: a, attribute :: ([AST.Parse.Err ((JsxAttribute GHC.Generics.:+: JsxExpression) a)]), name :: (AST.Parse.Err ((Identifier GHC.Generics.:+: JsxNamespaceName GHC.Generics.:+: NestedIdentifier) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_687. AST.Traversable1.Class.Traversable1 a_687 ) instance AST.Unmarshal.SymbolMatching JsxSelfClosingElement where matchedSymbols _ = [] showFailure _ node_688 = "expected " GHC.Base.<> ( "" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_688 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_689 c1_690 = TreeSitter.Node.nodeStartPoint node_688 TreeSitter.Node.TSPoint r2_691 c2_692 = TreeSitter.Node.nodeEndPoint node_688 deriving instance GHC.Classes.Eq a_693 => GHC.Classes.Eq (JsxSelfClosingElement a_693) deriving instance GHC.Classes.Ord a_694 => GHC.Classes.Ord (JsxSelfClosingElement a_694) deriving instance GHC.Show.Show a_695 => GHC.Show.Show (JsxSelfClosingElement a_695) instance AST.Unmarshal.Unmarshal JsxSelfClosingElement instance Data.Foldable.Foldable JsxSelfClosingElement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor JsxSelfClosingElement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable JsxSelfClosingElement where traverse = AST.Traversable1.Class.traverseDefault1 data LabeledStatement a = LabeledStatement { ann :: a, label :: (AST.Parse.Err (StatementIdentifier a)), extraChildren :: (AST.Parse.Err (Statement a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_696. AST.Traversable1.Class.Traversable1 a_696 ) instance AST.Unmarshal.SymbolMatching LabeledStatement where matchedSymbols _ = [172] showFailure _ node_697 = "expected " GHC.Base.<> ( "labeled_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_697 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_698 c1_699 = TreeSitter.Node.nodeStartPoint node_697 TreeSitter.Node.TSPoint r2_700 c2_701 = TreeSitter.Node.nodeEndPoint node_697 deriving instance GHC.Classes.Eq a_702 => GHC.Classes.Eq (LabeledStatement a_702) deriving instance GHC.Classes.Ord a_703 => GHC.Classes.Ord (LabeledStatement a_703) deriving instance GHC.Show.Show a_704 => GHC.Show.Show (LabeledStatement a_704) instance AST.Unmarshal.Unmarshal LabeledStatement instance Data.Foldable.Foldable LabeledStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor LabeledStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable LabeledStatement where traverse = AST.Traversable1.Class.traverseDefault1 data LexicalDeclaration a = LexicalDeclaration { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (VariableDeclarator a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_705. AST.Traversable1.Class.Traversable1 a_705 ) instance AST.Unmarshal.SymbolMatching LexicalDeclaration where matchedSymbols _ = [154] showFailure _ node_706 = "expected " GHC.Base.<> ( "lexical_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_706 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_707 c1_708 = TreeSitter.Node.nodeStartPoint node_706 TreeSitter.Node.TSPoint r2_709 c2_710 = TreeSitter.Node.nodeEndPoint node_706 deriving instance GHC.Classes.Eq a_711 => GHC.Classes.Eq (LexicalDeclaration a_711) deriving instance GHC.Classes.Ord a_712 => GHC.Classes.Ord (LexicalDeclaration a_712) deriving instance GHC.Show.Show a_713 => GHC.Show.Show (LexicalDeclaration a_713) instance AST.Unmarshal.Unmarshal LexicalDeclaration instance Data.Foldable.Foldable LexicalDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor LexicalDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable LexicalDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data LiteralType a = LiteralType { ann :: a, extraChildren :: (AST.Parse.Err ((False GHC.Generics.:+: Number GHC.Generics.:+: String GHC.Generics.:+: True GHC.Generics.:+: UnaryExpression) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_714. AST.Traversable1.Class.Traversable1 a_714 ) instance AST.Unmarshal.SymbolMatching LiteralType where matchedSymbols _ = [260] showFailure _ node_715 = "expected " GHC.Base.<> ( "literal_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_715 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_716 c1_717 = TreeSitter.Node.nodeStartPoint node_715 TreeSitter.Node.TSPoint r2_718 c2_719 = TreeSitter.Node.nodeEndPoint node_715 deriving instance GHC.Classes.Eq a_720 => GHC.Classes.Eq (LiteralType a_720) deriving instance GHC.Classes.Ord a_721 => GHC.Classes.Ord (LiteralType a_721) deriving instance GHC.Show.Show a_722 => GHC.Show.Show (LiteralType a_722) instance AST.Unmarshal.Unmarshal LiteralType instance Data.Foldable.Foldable LiteralType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor LiteralType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable LiteralType where traverse = AST.Traversable1.Class.traverseDefault1 data LookupType a = LookupType { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_723. AST.Traversable1.Class.Traversable1 a_723 ) instance AST.Unmarshal.SymbolMatching LookupType where matchedSymbols _ = [258] showFailure _ node_724 = "expected " GHC.Base.<> ( "lookup_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_724 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_725 c1_726 = TreeSitter.Node.nodeStartPoint node_724 TreeSitter.Node.TSPoint r2_727 c2_728 = TreeSitter.Node.nodeEndPoint node_724 deriving instance GHC.Classes.Eq a_729 => GHC.Classes.Eq (LookupType a_729) deriving instance GHC.Classes.Ord a_730 => GHC.Classes.Ord (LookupType a_730) deriving instance GHC.Show.Show a_731 => GHC.Show.Show (LookupType a_731) instance AST.Unmarshal.Unmarshal LookupType instance Data.Foldable.Foldable LookupType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor LookupType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable LookupType where traverse = AST.Traversable1.Class.traverseDefault1 data MappedTypeClause a = MappedTypeClause { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_732. AST.Traversable1.Class.Traversable1 a_732 ) instance AST.Unmarshal.SymbolMatching MappedTypeClause where matchedSymbols _ = [259] showFailure _ node_733 = "expected " GHC.Base.<> ( "mapped_type_clause" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_733 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_734 c1_735 = TreeSitter.Node.nodeStartPoint node_733 TreeSitter.Node.TSPoint r2_736 c2_737 = TreeSitter.Node.nodeEndPoint node_733 deriving instance GHC.Classes.Eq a_738 => GHC.Classes.Eq (MappedTypeClause a_738) deriving instance GHC.Classes.Ord a_739 => GHC.Classes.Ord (MappedTypeClause a_739) deriving instance GHC.Show.Show a_740 => GHC.Show.Show (MappedTypeClause a_740) instance AST.Unmarshal.Unmarshal MappedTypeClause instance Data.Foldable.Foldable MappedTypeClause where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor MappedTypeClause where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable MappedTypeClause where traverse = AST.Traversable1.Class.traverseDefault1 data MemberExpression a = MemberExpression { ann :: a, property :: (AST.Parse.Err (PropertyIdentifier a)), object :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_741. AST.Traversable1.Class.Traversable1 a_741 ) instance AST.Unmarshal.SymbolMatching MemberExpression where matchedSymbols _ = [197, 215] showFailure _ node_742 = "expected " GHC.Base.<> ( "member_expression, member_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_742 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_743 c1_744 = TreeSitter.Node.nodeStartPoint node_742 TreeSitter.Node.TSPoint r2_745 c2_746 = TreeSitter.Node.nodeEndPoint node_742 deriving instance GHC.Classes.Eq a_747 => GHC.Classes.Eq (MemberExpression a_747) deriving instance GHC.Classes.Ord a_748 => GHC.Classes.Ord (MemberExpression a_748) deriving instance GHC.Show.Show a_749 => GHC.Show.Show (MemberExpression a_749) instance AST.Unmarshal.Unmarshal MemberExpression instance Data.Foldable.Foldable MemberExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor MemberExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable MemberExpression where traverse = AST.Traversable1.Class.traverseDefault1 data MetaProperty a = MetaProperty {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_750. AST.Traversable1.Class.Traversable1 a_750 ) instance AST.Unmarshal.SymbolMatching MetaProperty where matchedSymbols _ = [212] showFailure _ node_751 = "expected " GHC.Base.<> ( "meta_property" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_751 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_752 c1_753 = TreeSitter.Node.nodeStartPoint node_751 TreeSitter.Node.TSPoint r2_754 c2_755 = TreeSitter.Node.nodeEndPoint node_751 deriving instance GHC.Classes.Eq a_756 => GHC.Classes.Eq (MetaProperty a_756) deriving instance GHC.Classes.Ord a_757 => GHC.Classes.Ord (MetaProperty a_757) deriving instance GHC.Show.Show a_758 => GHC.Show.Show (MetaProperty a_758) instance AST.Unmarshal.Unmarshal MetaProperty instance Data.Foldable.Foldable MetaProperty where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor MetaProperty where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable MetaProperty where traverse = AST.Traversable1.Class.traverseDefault1 data MethodDefinition a = MethodDefinition { ann :: a, returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))), body :: (AST.Parse.Err (StatementBlock a)), name :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)), parameters :: (AST.Parse.Err (FormalParameters a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))), extraChildren :: ([AST.Parse.Err ((AccessibilityModifier GHC.Generics.:+: Readonly) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_759. AST.Traversable1.Class.Traversable1 a_759 ) instance AST.Unmarshal.SymbolMatching MethodDefinition where matchedSymbols _ = [221] showFailure _ node_760 = "expected " GHC.Base.<> ( "method_definition" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_760 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_761 c1_762 = TreeSitter.Node.nodeStartPoint node_760 TreeSitter.Node.TSPoint r2_763 c2_764 = TreeSitter.Node.nodeEndPoint node_760 deriving instance GHC.Classes.Eq a_765 => GHC.Classes.Eq (MethodDefinition a_765) deriving instance GHC.Classes.Ord a_766 => GHC.Classes.Ord (MethodDefinition a_766) deriving instance GHC.Show.Show a_767 => GHC.Show.Show (MethodDefinition a_767) instance AST.Unmarshal.Unmarshal MethodDefinition instance Data.Foldable.Foldable MethodDefinition where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor MethodDefinition where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable MethodDefinition where traverse = AST.Traversable1.Class.traverseDefault1 data MethodSignature a = MethodSignature { ann :: a, returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))), name :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)), parameters :: (AST.Parse.Err (FormalParameters a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))), extraChildren :: ([AST.Parse.Err ((AccessibilityModifier GHC.Generics.:+: Readonly) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_768. AST.Traversable1.Class.Traversable1 a_768 ) instance AST.Unmarshal.SymbolMatching MethodSignature where matchedSymbols _ = [226] showFailure _ node_769 = "expected " GHC.Base.<> ( "method_signature" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_769 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_770 c1_771 = TreeSitter.Node.nodeStartPoint node_769 TreeSitter.Node.TSPoint r2_772 c2_773 = TreeSitter.Node.nodeEndPoint node_769 deriving instance GHC.Classes.Eq a_774 => GHC.Classes.Eq (MethodSignature a_774) deriving instance GHC.Classes.Ord a_775 => GHC.Classes.Ord (MethodSignature a_775) deriving instance GHC.Show.Show a_776 => GHC.Show.Show (MethodSignature a_776) instance AST.Unmarshal.Unmarshal MethodSignature instance Data.Foldable.Foldable MethodSignature where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor MethodSignature where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable MethodSignature where traverse = AST.Traversable1.Class.traverseDefault1 data Module a = Module { ann :: a, body :: (GHC.Maybe.Maybe (AST.Parse.Err (StatementBlock a))), name :: (AST.Parse.Err ((Identifier GHC.Generics.:+: NestedIdentifier GHC.Generics.:+: String) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_777. AST.Traversable1.Class.Traversable1 a_777 ) instance AST.Unmarshal.SymbolMatching Module where matchedSymbols _ = [235] showFailure _ node_778 = "expected " GHC.Base.<> ( "module" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_778 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_779 c1_780 = TreeSitter.Node.nodeStartPoint node_778 TreeSitter.Node.TSPoint r2_781 c2_782 = TreeSitter.Node.nodeEndPoint node_778 deriving instance GHC.Classes.Eq a_783 => GHC.Classes.Eq (Module a_783) deriving instance GHC.Classes.Ord a_784 => GHC.Classes.Ord (Module a_784) deriving instance GHC.Show.Show a_785 => GHC.Show.Show (Module a_785) instance AST.Unmarshal.Unmarshal Module instance Data.Foldable.Foldable Module where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Module where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Module where traverse = AST.Traversable1.Class.traverseDefault1 data NamedImports a = NamedImports { ann :: a, extraChildren :: ([AST.Parse.Err (ImportSpecifier a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_786. AST.Traversable1.Class.Traversable1 a_786 ) instance AST.Unmarshal.SymbolMatching NamedImports where matchedSymbols _ = [151] showFailure _ node_787 = "expected " GHC.Base.<> ( "named_imports" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_787 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_788 c1_789 = TreeSitter.Node.nodeStartPoint node_787 TreeSitter.Node.TSPoint r2_790 c2_791 = TreeSitter.Node.nodeEndPoint node_787 deriving instance GHC.Classes.Eq a_792 => GHC.Classes.Eq (NamedImports a_792) deriving instance GHC.Classes.Ord a_793 => GHC.Classes.Ord (NamedImports a_793) deriving instance GHC.Show.Show a_794 => GHC.Show.Show (NamedImports a_794) instance AST.Unmarshal.Unmarshal NamedImports instance Data.Foldable.Foldable NamedImports where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor NamedImports where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable NamedImports where traverse = AST.Traversable1.Class.traverseDefault1 data NamespaceImport a = NamespaceImport { ann :: a, extraChildren :: (AST.Parse.Err (Identifier a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_795. AST.Traversable1.Class.Traversable1 a_795 ) instance AST.Unmarshal.SymbolMatching NamespaceImport where matchedSymbols _ = [150] showFailure _ node_796 = "expected " GHC.Base.<> ( "namespace_import" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_796 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_797 c1_798 = TreeSitter.Node.nodeStartPoint node_796 TreeSitter.Node.TSPoint r2_799 c2_800 = TreeSitter.Node.nodeEndPoint node_796 deriving instance GHC.Classes.Eq a_801 => GHC.Classes.Eq (NamespaceImport a_801) deriving instance GHC.Classes.Ord a_802 => GHC.Classes.Ord (NamespaceImport a_802) deriving instance GHC.Show.Show a_803 => GHC.Show.Show (NamespaceImport a_803) instance AST.Unmarshal.Unmarshal NamespaceImport instance Data.Foldable.Foldable NamespaceImport where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor NamespaceImport where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable NamespaceImport where traverse = AST.Traversable1.Class.traverseDefault1 data NestedIdentifier a = NestedIdentifier { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: NestedIdentifier) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_804. AST.Traversable1.Class.Traversable1 a_804 ) instance AST.Unmarshal.SymbolMatching NestedIdentifier where matchedSymbols _ = [184] showFailure _ node_805 = "expected " GHC.Base.<> ( "nested_identifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_805 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_806 c1_807 = TreeSitter.Node.nodeStartPoint node_805 TreeSitter.Node.TSPoint r2_808 c2_809 = TreeSitter.Node.nodeEndPoint node_805 deriving instance GHC.Classes.Eq a_810 => GHC.Classes.Eq (NestedIdentifier a_810) deriving instance GHC.Classes.Ord a_811 => GHC.Classes.Ord (NestedIdentifier a_811) deriving instance GHC.Show.Show a_812 => GHC.Show.Show (NestedIdentifier a_812) instance AST.Unmarshal.Unmarshal NestedIdentifier instance Data.Foldable.Foldable NestedIdentifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor NestedIdentifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable NestedIdentifier where traverse = AST.Traversable1.Class.traverseDefault1 data NestedTypeIdentifier a = NestedTypeIdentifier { ann :: a, name :: (AST.Parse.Err (TypeIdentifier a)), module' :: (AST.Parse.Err ((Identifier GHC.Generics.:+: NestedIdentifier) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_813. AST.Traversable1.Class.Traversable1 a_813 ) instance AST.Unmarshal.SymbolMatching NestedTypeIdentifier where matchedSymbols _ = [239] showFailure _ node_814 = "expected " GHC.Base.<> ( "nested_type_identifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_814 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_815 c1_816 = TreeSitter.Node.nodeStartPoint node_814 TreeSitter.Node.TSPoint r2_817 c2_818 = TreeSitter.Node.nodeEndPoint node_814 deriving instance GHC.Classes.Eq a_819 => GHC.Classes.Eq (NestedTypeIdentifier a_819) deriving instance GHC.Classes.Ord a_820 => GHC.Classes.Ord (NestedTypeIdentifier a_820) deriving instance GHC.Show.Show a_821 => GHC.Show.Show (NestedTypeIdentifier a_821) instance AST.Unmarshal.Unmarshal NestedTypeIdentifier instance Data.Foldable.Foldable NestedTypeIdentifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor NestedTypeIdentifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable NestedTypeIdentifier where traverse = AST.Traversable1.Class.traverseDefault1 data NewExpression a = NewExpression { ann :: a, arguments :: (GHC.Maybe.Maybe (AST.Parse.Err (Arguments a))), 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_822. AST.Traversable1.Class.Traversable1 a_822 ) instance AST.Unmarshal.SymbolMatching NewExpression where matchedSymbols _ = [195] showFailure _ node_823 = "expected " GHC.Base.<> ( "new_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_823 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_824 c1_825 = TreeSitter.Node.nodeStartPoint node_823 TreeSitter.Node.TSPoint r2_826 c2_827 = TreeSitter.Node.nodeEndPoint node_823 deriving instance GHC.Classes.Eq a_828 => GHC.Classes.Eq (NewExpression a_828) deriving instance GHC.Classes.Ord a_829 => GHC.Classes.Ord (NewExpression a_829) deriving instance GHC.Show.Show a_830 => GHC.Show.Show (NewExpression a_830) instance AST.Unmarshal.Unmarshal NewExpression instance Data.Foldable.Foldable NewExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor NewExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable NewExpression where traverse = AST.Traversable1.Class.traverseDefault1 data NonNullExpression a = NonNullExpression { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_831. AST.Traversable1.Class.Traversable1 a_831 ) instance AST.Unmarshal.SymbolMatching NonNullExpression where matchedSymbols _ = [225] showFailure _ node_832 = "expected " GHC.Base.<> ( "non_null_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_832 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_833 c1_834 = TreeSitter.Node.nodeStartPoint node_832 TreeSitter.Node.TSPoint r2_835 c2_836 = TreeSitter.Node.nodeEndPoint node_832 deriving instance GHC.Classes.Eq a_837 => GHC.Classes.Eq (NonNullExpression a_837) deriving instance GHC.Classes.Ord a_838 => GHC.Classes.Ord (NonNullExpression a_838) deriving instance GHC.Show.Show a_839 => GHC.Show.Show (NonNullExpression a_839) instance AST.Unmarshal.Unmarshal NonNullExpression instance Data.Foldable.Foldable NonNullExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor NonNullExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable NonNullExpression where traverse = AST.Traversable1.Class.traverseDefault1 data Object a = Object { ann :: a, extraChildren :: ([AST.Parse.Err ((AssignmentPattern GHC.Generics.:+: MethodDefinition GHC.Generics.:+: Pair GHC.Generics.:+: ShorthandPropertyIdentifier GHC.Generics.:+: SpreadElement) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_840. AST.Traversable1.Class.Traversable1 a_840 ) instance AST.Unmarshal.SymbolMatching Object where matchedSymbols _ = [181] showFailure _ node_841 = "expected " GHC.Base.<> ( "object" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_841 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_842 c1_843 = TreeSitter.Node.nodeStartPoint node_841 TreeSitter.Node.TSPoint r2_844 c2_845 = TreeSitter.Node.nodeEndPoint node_841 deriving instance GHC.Classes.Eq a_846 => GHC.Classes.Eq (Object a_846) deriving instance GHC.Classes.Ord a_847 => GHC.Classes.Ord (Object a_847) deriving instance GHC.Show.Show a_848 => GHC.Show.Show (Object a_848) instance AST.Unmarshal.Unmarshal Object instance Data.Foldable.Foldable Object where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Object where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Object where traverse = AST.Traversable1.Class.traverseDefault1 data ObjectPattern a = ObjectPattern { ann :: a, extraChildren :: ([AST.Parse.Err ((AssignmentPattern GHC.Generics.:+: MethodDefinition GHC.Generics.:+: Pair GHC.Generics.:+: ShorthandPropertyIdentifier GHC.Generics.:+: SpreadElement) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_849. AST.Traversable1.Class.Traversable1 a_849 ) instance AST.Unmarshal.SymbolMatching ObjectPattern where matchedSymbols _ = [302] showFailure _ node_850 = "expected " GHC.Base.<> ( "object_pattern" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_850 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_851 c1_852 = TreeSitter.Node.nodeStartPoint node_850 TreeSitter.Node.TSPoint r2_853 c2_854 = TreeSitter.Node.nodeEndPoint node_850 deriving instance GHC.Classes.Eq a_855 => GHC.Classes.Eq (ObjectPattern a_855) deriving instance GHC.Classes.Ord a_856 => GHC.Classes.Ord (ObjectPattern a_856) deriving instance GHC.Show.Show a_857 => GHC.Show.Show (ObjectPattern a_857) instance AST.Unmarshal.Unmarshal ObjectPattern instance Data.Foldable.Foldable ObjectPattern where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ObjectPattern where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ObjectPattern where traverse = AST.Traversable1.Class.traverseDefault1 data ObjectType a = ObjectType { ann :: a, extraChildren :: ([AST.Parse.Err ((CallSignature GHC.Generics.:+: ConstructSignature GHC.Generics.:+: ExportStatement GHC.Generics.:+: IndexSignature GHC.Generics.:+: MethodSignature GHC.Generics.:+: PropertySignature) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_858. AST.Traversable1.Class.Traversable1 a_858 ) instance AST.Unmarshal.SymbolMatching ObjectType where matchedSymbols _ = [267] showFailure _ node_859 = "expected " GHC.Base.<> ( "object_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_859 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_860 c1_861 = TreeSitter.Node.nodeStartPoint node_859 TreeSitter.Node.TSPoint r2_862 c2_863 = TreeSitter.Node.nodeEndPoint node_859 deriving instance GHC.Classes.Eq a_864 => GHC.Classes.Eq (ObjectType a_864) deriving instance GHC.Classes.Ord a_865 => GHC.Classes.Ord (ObjectType a_865) deriving instance GHC.Show.Show a_866 => GHC.Show.Show (ObjectType a_866) instance AST.Unmarshal.Unmarshal ObjectType instance Data.Foldable.Foldable ObjectType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ObjectType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ObjectType where traverse = AST.Traversable1.Class.traverseDefault1 data OptionalParameter a = OptionalParameter { ann :: a, value :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))), extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: AccessibilityModifier GHC.Generics.:+: Identifier GHC.Generics.:+: Readonly GHC.Generics.:+: This GHC.Generics.:+: TypeAnnotation) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_867. AST.Traversable1.Class.Traversable1 a_867 ) instance AST.Unmarshal.SymbolMatching OptionalParameter where matchedSymbols _ = [248] showFailure _ node_868 = "expected " GHC.Base.<> ( "optional_parameter" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_868 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_869 c1_870 = TreeSitter.Node.nodeStartPoint node_868 TreeSitter.Node.TSPoint r2_871 c2_872 = TreeSitter.Node.nodeEndPoint node_868 deriving instance GHC.Classes.Eq a_873 => GHC.Classes.Eq (OptionalParameter a_873) deriving instance GHC.Classes.Ord a_874 => GHC.Classes.Ord (OptionalParameter a_874) deriving instance GHC.Show.Show a_875 => GHC.Show.Show (OptionalParameter a_875) instance AST.Unmarshal.Unmarshal OptionalParameter instance Data.Foldable.Foldable OptionalParameter where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor OptionalParameter where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable OptionalParameter where traverse = AST.Traversable1.Class.traverseDefault1 data Pair a = Pair { ann :: a, value :: (AST.Parse.Err (Expression a)), key :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_876. AST.Traversable1.Class.Traversable1 a_876 ) instance AST.Unmarshal.SymbolMatching Pair where matchedSymbols _ = [222] showFailure _ node_877 = "expected " GHC.Base.<> ( "pair" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_877 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_878 c1_879 = TreeSitter.Node.nodeStartPoint node_877 TreeSitter.Node.TSPoint r2_880 c2_881 = TreeSitter.Node.nodeEndPoint node_877 deriving instance GHC.Classes.Eq a_882 => GHC.Classes.Eq (Pair a_882) deriving instance GHC.Classes.Ord a_883 => GHC.Classes.Ord (Pair a_883) deriving instance GHC.Show.Show a_884 => GHC.Show.Show (Pair a_884) instance AST.Unmarshal.Unmarshal Pair instance Data.Foldable.Foldable Pair where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Pair where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Pair where traverse = AST.Traversable1.Class.traverseDefault1 data ParenthesizedExpression a = ParenthesizedExpression { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression GHC.Generics.:+: TypeAnnotation) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_885. AST.Traversable1.Class.Traversable1 a_885 ) instance AST.Unmarshal.SymbolMatching ParenthesizedExpression where matchedSymbols _ = [178] showFailure _ node_886 = "expected " GHC.Base.<> ( "parenthesized_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_886 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_887 c1_888 = TreeSitter.Node.nodeStartPoint node_886 TreeSitter.Node.TSPoint r2_889 c2_890 = TreeSitter.Node.nodeEndPoint node_886 deriving instance GHC.Classes.Eq a_891 => GHC.Classes.Eq (ParenthesizedExpression a_891) deriving instance GHC.Classes.Ord a_892 => GHC.Classes.Ord (ParenthesizedExpression a_892) deriving instance GHC.Show.Show a_893 => GHC.Show.Show (ParenthesizedExpression a_893) instance AST.Unmarshal.Unmarshal ParenthesizedExpression instance Data.Foldable.Foldable ParenthesizedExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ParenthesizedExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ParenthesizedExpression where traverse = AST.Traversable1.Class.traverseDefault1 data ParenthesizedType a = ParenthesizedType { ann :: a, 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_894. AST.Traversable1.Class.Traversable1 a_894 ) instance AST.Unmarshal.SymbolMatching ParenthesizedType where matchedSymbols _ = [264] showFailure _ node_895 = "expected " GHC.Base.<> ( "parenthesized_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_895 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_896 c1_897 = TreeSitter.Node.nodeStartPoint node_895 TreeSitter.Node.TSPoint r2_898 c2_899 = TreeSitter.Node.nodeEndPoint node_895 deriving instance GHC.Classes.Eq a_900 => GHC.Classes.Eq (ParenthesizedType a_900) deriving instance GHC.Classes.Ord a_901 => GHC.Classes.Ord (ParenthesizedType a_901) deriving instance GHC.Show.Show a_902 => GHC.Show.Show (ParenthesizedType a_902) instance AST.Unmarshal.Unmarshal ParenthesizedType instance Data.Foldable.Foldable ParenthesizedType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ParenthesizedType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ParenthesizedType where traverse = AST.Traversable1.Class.traverseDefault1 data PredefinedType a = PredefinedType {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_903. AST.Traversable1.Class.Traversable1 a_903 ) instance AST.Unmarshal.SymbolMatching PredefinedType where matchedSymbols _ = [265] showFailure _ node_904 = "expected " GHC.Base.<> ( "predefined_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_904 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_905 c1_906 = TreeSitter.Node.nodeStartPoint node_904 TreeSitter.Node.TSPoint r2_907 c2_908 = TreeSitter.Node.nodeEndPoint node_904 deriving instance GHC.Classes.Eq a_909 => GHC.Classes.Eq (PredefinedType a_909) deriving instance GHC.Classes.Ord a_910 => GHC.Classes.Ord (PredefinedType a_910) deriving instance GHC.Show.Show a_911 => GHC.Show.Show (PredefinedType a_911) instance AST.Unmarshal.Unmarshal PredefinedType instance Data.Foldable.Foldable PredefinedType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor PredefinedType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable PredefinedType where traverse = AST.Traversable1.Class.traverseDefault1 data Program a = Program { ann :: a, extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: HashBangLine) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_912. AST.Traversable1.Class.Traversable1 a_912 ) instance AST.Unmarshal.SymbolMatching Program where matchedSymbols _ = [141] showFailure _ node_913 = "expected " GHC.Base.<> ( "program" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_913 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_914 c1_915 = TreeSitter.Node.nodeStartPoint node_913 TreeSitter.Node.TSPoint r2_916 c2_917 = TreeSitter.Node.nodeEndPoint node_913 deriving instance GHC.Classes.Eq a_918 => GHC.Classes.Eq (Program a_918) deriving instance GHC.Classes.Ord a_919 => GHC.Classes.Ord (Program a_919) deriving instance GHC.Show.Show a_920 => GHC.Show.Show (Program a_920) instance AST.Unmarshal.Unmarshal Program instance Data.Foldable.Foldable Program where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Program where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Program where traverse = AST.Traversable1.Class.traverseDefault1 data PropertySignature a = PropertySignature { ann :: a, name :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)), type' :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))), extraChildren :: ([AST.Parse.Err ((AccessibilityModifier GHC.Generics.:+: Readonly) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_921. AST.Traversable1.Class.Traversable1 a_921 ) instance AST.Unmarshal.SymbolMatching PropertySignature where matchedSymbols _ = [269] showFailure _ node_922 = "expected " GHC.Base.<> ( "property_signature" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_922 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_923 c1_924 = TreeSitter.Node.nodeStartPoint node_922 TreeSitter.Node.TSPoint r2_925 c2_926 = TreeSitter.Node.nodeEndPoint node_922 deriving instance GHC.Classes.Eq a_927 => GHC.Classes.Eq (PropertySignature a_927) deriving instance GHC.Classes.Ord a_928 => GHC.Classes.Ord (PropertySignature a_928) deriving instance GHC.Show.Show a_929 => GHC.Show.Show (PropertySignature a_929) instance AST.Unmarshal.Unmarshal PropertySignature instance Data.Foldable.Foldable PropertySignature where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor PropertySignature where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable PropertySignature where traverse = AST.Traversable1.Class.traverseDefault1 data PublicFieldDefinition a = PublicFieldDefinition { ann :: a, value :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))), name :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)), type' :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))), extraChildren :: ([AST.Parse.Err ((AccessibilityModifier GHC.Generics.:+: Readonly) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_930. AST.Traversable1.Class.Traversable1 a_930 ) instance AST.Unmarshal.SymbolMatching PublicFieldDefinition where matchedSymbols _ = [218] showFailure _ node_931 = "expected " GHC.Base.<> ( "public_field_definition" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_931 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_932 c1_933 = TreeSitter.Node.nodeStartPoint node_931 TreeSitter.Node.TSPoint r2_934 c2_935 = TreeSitter.Node.nodeEndPoint node_931 deriving instance GHC.Classes.Eq a_936 => GHC.Classes.Eq (PublicFieldDefinition a_936) deriving instance GHC.Classes.Ord a_937 => GHC.Classes.Ord (PublicFieldDefinition a_937) deriving instance GHC.Show.Show a_938 => GHC.Show.Show (PublicFieldDefinition a_938) instance AST.Unmarshal.Unmarshal PublicFieldDefinition instance Data.Foldable.Foldable PublicFieldDefinition where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor PublicFieldDefinition where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable PublicFieldDefinition where traverse = AST.Traversable1.Class.traverseDefault1 data Regex a = Regex { ann :: a, flags :: (GHC.Maybe.Maybe (AST.Parse.Err (RegexFlags a))), pattern :: (AST.Parse.Err (RegexPattern a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_939. AST.Traversable1.Class.Traversable1 a_939 ) instance AST.Unmarshal.SymbolMatching Regex where matchedSymbols _ = [211] showFailure _ node_940 = "expected " GHC.Base.<> ( "regex" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_940 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_941 c1_942 = TreeSitter.Node.nodeStartPoint node_940 TreeSitter.Node.TSPoint r2_943 c2_944 = TreeSitter.Node.nodeEndPoint node_940 deriving instance GHC.Classes.Eq a_945 => GHC.Classes.Eq (Regex a_945) deriving instance GHC.Classes.Ord a_946 => GHC.Classes.Ord (Regex a_946) deriving instance GHC.Show.Show a_947 => GHC.Show.Show (Regex a_947) instance AST.Unmarshal.Unmarshal Regex instance Data.Foldable.Foldable Regex where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Regex where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Regex where traverse = AST.Traversable1.Class.traverseDefault1 data RequiredParameter a = RequiredParameter { ann :: a, value :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))), extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: AccessibilityModifier GHC.Generics.:+: Identifier GHC.Generics.:+: Readonly GHC.Generics.:+: This GHC.Generics.:+: TypeAnnotation) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_948. AST.Traversable1.Class.Traversable1 a_948 ) instance AST.Unmarshal.SymbolMatching RequiredParameter where matchedSymbols _ = [247] showFailure _ node_949 = "expected " GHC.Base.<> ( "required_parameter" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_949 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_950 c1_951 = TreeSitter.Node.nodeStartPoint node_949 TreeSitter.Node.TSPoint r2_952 c2_953 = TreeSitter.Node.nodeEndPoint node_949 deriving instance GHC.Classes.Eq a_954 => GHC.Classes.Eq (RequiredParameter a_954) deriving instance GHC.Classes.Ord a_955 => GHC.Classes.Ord (RequiredParameter a_955) deriving instance GHC.Show.Show a_956 => GHC.Show.Show (RequiredParameter a_956) instance AST.Unmarshal.Unmarshal RequiredParameter instance Data.Foldable.Foldable RequiredParameter where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor RequiredParameter where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable RequiredParameter where traverse = AST.Traversable1.Class.traverseDefault1 data RestParameter a = RestParameter { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: TypeAnnotation) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_957. AST.Traversable1.Class.Traversable1 a_957 ) instance AST.Unmarshal.SymbolMatching RestParameter where matchedSymbols _ = [220] showFailure _ node_958 = "expected " GHC.Base.<> ( "rest_parameter" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_958 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_959 c1_960 = TreeSitter.Node.nodeStartPoint node_958 TreeSitter.Node.TSPoint r2_961 c2_962 = TreeSitter.Node.nodeEndPoint node_958 deriving instance GHC.Classes.Eq a_963 => GHC.Classes.Eq (RestParameter a_963) deriving instance GHC.Classes.Ord a_964 => GHC.Classes.Ord (RestParameter a_964) deriving instance GHC.Show.Show a_965 => GHC.Show.Show (RestParameter a_965) instance AST.Unmarshal.Unmarshal RestParameter instance Data.Foldable.Foldable RestParameter where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor RestParameter where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable RestParameter where traverse = AST.Traversable1.Class.traverseDefault1 data ReturnStatement a = ReturnStatement { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_966. AST.Traversable1.Class.Traversable1 a_966 ) instance AST.Unmarshal.SymbolMatching ReturnStatement where matchedSymbols _ = [169] showFailure _ node_967 = "expected " GHC.Base.<> ( "return_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_967 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_968 c1_969 = TreeSitter.Node.nodeStartPoint node_967 TreeSitter.Node.TSPoint r2_970 c2_971 = TreeSitter.Node.nodeEndPoint node_967 deriving instance GHC.Classes.Eq a_972 => GHC.Classes.Eq (ReturnStatement a_972) deriving instance GHC.Classes.Ord a_973 => GHC.Classes.Ord (ReturnStatement a_973) deriving instance GHC.Show.Show a_974 => GHC.Show.Show (ReturnStatement a_974) instance AST.Unmarshal.Unmarshal ReturnStatement instance Data.Foldable.Foldable ReturnStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ReturnStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ReturnStatement where traverse = AST.Traversable1.Class.traverseDefault1 data SequenceExpression a = SequenceExpression { ann :: a, left :: (AST.Parse.Err (Expression a)), right :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_975. AST.Traversable1.Class.Traversable1 a_975 ) instance AST.Unmarshal.SymbolMatching SequenceExpression where matchedSymbols _ = [207] showFailure _ node_976 = "expected " GHC.Base.<> ( "sequence_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_976 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_977 c1_978 = TreeSitter.Node.nodeStartPoint node_976 TreeSitter.Node.TSPoint r2_979 c2_980 = TreeSitter.Node.nodeEndPoint node_976 deriving instance GHC.Classes.Eq a_981 => GHC.Classes.Eq (SequenceExpression a_981) deriving instance GHC.Classes.Ord a_982 => GHC.Classes.Ord (SequenceExpression a_982) deriving instance GHC.Show.Show a_983 => GHC.Show.Show (SequenceExpression a_983) instance AST.Unmarshal.Unmarshal SequenceExpression instance Data.Foldable.Foldable SequenceExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SequenceExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SequenceExpression where traverse = AST.Traversable1.Class.traverseDefault1 data SpreadElement a = SpreadElement { ann :: a, extraChildren :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_984. AST.Traversable1.Class.Traversable1 a_984 ) instance AST.Unmarshal.SymbolMatching SpreadElement where matchedSymbols _ = [202] showFailure _ node_985 = "expected " GHC.Base.<> ( "spread_element" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_985 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_986 c1_987 = TreeSitter.Node.nodeStartPoint node_985 TreeSitter.Node.TSPoint r2_988 c2_989 = TreeSitter.Node.nodeEndPoint node_985 deriving instance GHC.Classes.Eq a_990 => GHC.Classes.Eq (SpreadElement a_990) deriving instance GHC.Classes.Ord a_991 => GHC.Classes.Ord (SpreadElement a_991) deriving instance GHC.Show.Show a_992 => GHC.Show.Show (SpreadElement a_992) instance AST.Unmarshal.Unmarshal SpreadElement instance Data.Foldable.Foldable SpreadElement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SpreadElement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SpreadElement where traverse = AST.Traversable1.Class.traverseDefault1 data StatementBlock a = StatementBlock { ann :: a, extraChildren :: ([AST.Parse.Err (Statement a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_993. AST.Traversable1.Class.Traversable1 a_993 ) instance AST.Unmarshal.SymbolMatching StatementBlock where matchedSymbols _ = [156] showFailure _ node_994 = "expected " GHC.Base.<> ( "statement_block" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_994 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_995 c1_996 = TreeSitter.Node.nodeStartPoint node_994 TreeSitter.Node.TSPoint r2_997 c2_998 = TreeSitter.Node.nodeEndPoint node_994 deriving instance GHC.Classes.Eq a_999 => GHC.Classes.Eq (StatementBlock a_999) deriving instance GHC.Classes.Ord a_1000 => GHC.Classes.Ord (StatementBlock a_1000) deriving instance GHC.Show.Show a_1001 => GHC.Show.Show (StatementBlock a_1001) instance AST.Unmarshal.Unmarshal StatementBlock instance Data.Foldable.Foldable StatementBlock where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor StatementBlock where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable StatementBlock where traverse = AST.Traversable1.Class.traverseDefault1 data String a = String { ann :: a, extraChildren :: ([AST.Parse.Err (EscapeSequence a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1002. AST.Traversable1.Class.Traversable1 a_1002 ) instance AST.Unmarshal.SymbolMatching String where matchedSymbols _ = [208] showFailure _ node_1003 = "expected " GHC.Base.<> ( "string" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1003 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1004 c1_1005 = TreeSitter.Node.nodeStartPoint node_1003 TreeSitter.Node.TSPoint r2_1006 c2_1007 = TreeSitter.Node.nodeEndPoint node_1003 deriving instance GHC.Classes.Eq a_1008 => GHC.Classes.Eq (String a_1008) deriving instance GHC.Classes.Ord a_1009 => GHC.Classes.Ord (String a_1009) deriving instance GHC.Show.Show a_1010 => GHC.Show.Show (String a_1010) instance AST.Unmarshal.Unmarshal String instance Data.Foldable.Foldable String where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor String where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable String where traverse = AST.Traversable1.Class.traverseDefault1 data SubscriptExpression a = SubscriptExpression { ann :: a, object :: (AST.Parse.Err (Expression a)), index :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1011. AST.Traversable1.Class.Traversable1 a_1011 ) instance AST.Unmarshal.SymbolMatching SubscriptExpression where matchedSymbols _ = [198] showFailure _ node_1012 = "expected " GHC.Base.<> ( "subscript_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1012 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1013 c1_1014 = TreeSitter.Node.nodeStartPoint node_1012 TreeSitter.Node.TSPoint r2_1015 c2_1016 = TreeSitter.Node.nodeEndPoint node_1012 deriving instance GHC.Classes.Eq a_1017 => GHC.Classes.Eq (SubscriptExpression a_1017) deriving instance GHC.Classes.Ord a_1018 => GHC.Classes.Ord (SubscriptExpression a_1018) deriving instance GHC.Show.Show a_1019 => GHC.Show.Show (SubscriptExpression a_1019) instance AST.Unmarshal.Unmarshal SubscriptExpression instance Data.Foldable.Foldable SubscriptExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SubscriptExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SubscriptExpression where traverse = AST.Traversable1.Class.traverseDefault1 data SwitchBody a = SwitchBody { ann :: a, extraChildren :: ([AST.Parse.Err ((SwitchCase GHC.Generics.:+: SwitchDefault) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1020. AST.Traversable1.Class.Traversable1 a_1020 ) instance AST.Unmarshal.SymbolMatching SwitchBody where matchedSymbols _ = [173] showFailure _ node_1021 = "expected " GHC.Base.<> ( "switch_body" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1021 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1022 c1_1023 = TreeSitter.Node.nodeStartPoint node_1021 TreeSitter.Node.TSPoint r2_1024 c2_1025 = TreeSitter.Node.nodeEndPoint node_1021 deriving instance GHC.Classes.Eq a_1026 => GHC.Classes.Eq (SwitchBody a_1026) deriving instance GHC.Classes.Ord a_1027 => GHC.Classes.Ord (SwitchBody a_1027) deriving instance GHC.Show.Show a_1028 => GHC.Show.Show (SwitchBody a_1028) instance AST.Unmarshal.Unmarshal SwitchBody instance Data.Foldable.Foldable SwitchBody where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SwitchBody where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SwitchBody where traverse = AST.Traversable1.Class.traverseDefault1 data SwitchCase a = SwitchCase { ann :: a, value :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a)), extraChildren :: ([AST.Parse.Err (Statement a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1029. AST.Traversable1.Class.Traversable1 a_1029 ) instance AST.Unmarshal.SymbolMatching SwitchCase where matchedSymbols _ = [174] showFailure _ node_1030 = "expected " GHC.Base.<> ( "switch_case" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1030 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1031 c1_1032 = TreeSitter.Node.nodeStartPoint node_1030 TreeSitter.Node.TSPoint r2_1033 c2_1034 = TreeSitter.Node.nodeEndPoint node_1030 deriving instance GHC.Classes.Eq a_1035 => GHC.Classes.Eq (SwitchCase a_1035) deriving instance GHC.Classes.Ord a_1036 => GHC.Classes.Ord (SwitchCase a_1036) deriving instance GHC.Show.Show a_1037 => GHC.Show.Show (SwitchCase a_1037) instance AST.Unmarshal.Unmarshal SwitchCase instance Data.Foldable.Foldable SwitchCase where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SwitchCase where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SwitchCase where traverse = AST.Traversable1.Class.traverseDefault1 data SwitchDefault a = SwitchDefault { ann :: a, extraChildren :: ([AST.Parse.Err (Statement a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1038. AST.Traversable1.Class.Traversable1 a_1038 ) instance AST.Unmarshal.SymbolMatching SwitchDefault where matchedSymbols _ = [175] showFailure _ node_1039 = "expected " GHC.Base.<> ( "switch_default" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1039 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1040 c1_1041 = TreeSitter.Node.nodeStartPoint node_1039 TreeSitter.Node.TSPoint r2_1042 c2_1043 = TreeSitter.Node.nodeEndPoint node_1039 deriving instance GHC.Classes.Eq a_1044 => GHC.Classes.Eq (SwitchDefault a_1044) deriving instance GHC.Classes.Ord a_1045 => GHC.Classes.Ord (SwitchDefault a_1045) deriving instance GHC.Show.Show a_1046 => GHC.Show.Show (SwitchDefault a_1046) instance AST.Unmarshal.Unmarshal SwitchDefault instance Data.Foldable.Foldable SwitchDefault where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SwitchDefault where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SwitchDefault where traverse = AST.Traversable1.Class.traverseDefault1 data SwitchStatement a = SwitchStatement { ann :: a, body :: (AST.Parse.Err (SwitchBody a)), value :: (AST.Parse.Err (ParenthesizedExpression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1047. AST.Traversable1.Class.Traversable1 a_1047 ) instance AST.Unmarshal.SymbolMatching SwitchStatement where matchedSymbols _ = [158] showFailure _ node_1048 = "expected " GHC.Base.<> ( "switch_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1048 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1049 c1_1050 = TreeSitter.Node.nodeStartPoint node_1048 TreeSitter.Node.TSPoint r2_1051 c2_1052 = TreeSitter.Node.nodeEndPoint node_1048 deriving instance GHC.Classes.Eq a_1053 => GHC.Classes.Eq (SwitchStatement a_1053) deriving instance GHC.Classes.Ord a_1054 => GHC.Classes.Ord (SwitchStatement a_1054) deriving instance GHC.Show.Show a_1055 => GHC.Show.Show (SwitchStatement a_1055) instance AST.Unmarshal.Unmarshal SwitchStatement instance Data.Foldable.Foldable SwitchStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor SwitchStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable SwitchStatement where traverse = AST.Traversable1.Class.traverseDefault1 data TemplateString a = TemplateString { ann :: a, extraChildren :: ([AST.Parse.Err ((EscapeSequence GHC.Generics.:+: TemplateSubstitution) a)]) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1056. AST.Traversable1.Class.Traversable1 a_1056 ) instance AST.Unmarshal.SymbolMatching TemplateString where matchedSymbols _ = [209] showFailure _ node_1057 = "expected " GHC.Base.<> ( "template_string" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1057 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1058 c1_1059 = TreeSitter.Node.nodeStartPoint node_1057 TreeSitter.Node.TSPoint r2_1060 c2_1061 = TreeSitter.Node.nodeEndPoint node_1057 deriving instance GHC.Classes.Eq a_1062 => GHC.Classes.Eq (TemplateString a_1062) deriving instance GHC.Classes.Ord a_1063 => GHC.Classes.Ord (TemplateString a_1063) deriving instance GHC.Show.Show a_1064 => GHC.Show.Show (TemplateString a_1064) instance AST.Unmarshal.Unmarshal TemplateString instance Data.Foldable.Foldable TemplateString where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TemplateString where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TemplateString where traverse = AST.Traversable1.Class.traverseDefault1 data TemplateSubstitution a = TemplateSubstitution { ann :: a, extraChildren :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1065. AST.Traversable1.Class.Traversable1 a_1065 ) instance AST.Unmarshal.SymbolMatching TemplateSubstitution where matchedSymbols _ = [210] showFailure _ node_1066 = "expected " GHC.Base.<> ( "template_substitution" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1066 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1067 c1_1068 = TreeSitter.Node.nodeStartPoint node_1066 TreeSitter.Node.TSPoint r2_1069 c2_1070 = TreeSitter.Node.nodeEndPoint node_1066 deriving instance GHC.Classes.Eq a_1071 => GHC.Classes.Eq (TemplateSubstitution a_1071) deriving instance GHC.Classes.Ord a_1072 => GHC.Classes.Ord (TemplateSubstitution a_1072) deriving instance GHC.Show.Show a_1073 => GHC.Show.Show (TemplateSubstitution a_1073) instance AST.Unmarshal.Unmarshal TemplateSubstitution instance Data.Foldable.Foldable TemplateSubstitution where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TemplateSubstitution where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TemplateSubstitution where traverse = AST.Traversable1.Class.traverseDefault1 data TernaryExpression a = TernaryExpression { ann :: a, alternative :: (AST.Parse.Err (Expression a)), consequence :: (AST.Parse.Err (Expression a)), condition :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1074. AST.Traversable1.Class.Traversable1 a_1074 ) instance AST.Unmarshal.SymbolMatching TernaryExpression where matchedSymbols _ = [203] showFailure _ node_1075 = "expected " GHC.Base.<> ( "ternary_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1075 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1076 c1_1077 = TreeSitter.Node.nodeStartPoint node_1075 TreeSitter.Node.TSPoint r2_1078 c2_1079 = TreeSitter.Node.nodeEndPoint node_1075 deriving instance GHC.Classes.Eq a_1080 => GHC.Classes.Eq (TernaryExpression a_1080) deriving instance GHC.Classes.Ord a_1081 => GHC.Classes.Ord (TernaryExpression a_1081) deriving instance GHC.Show.Show a_1082 => GHC.Show.Show (TernaryExpression a_1082) instance AST.Unmarshal.Unmarshal TernaryExpression instance Data.Foldable.Foldable TernaryExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TernaryExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TernaryExpression where traverse = AST.Traversable1.Class.traverseDefault1 data ThrowStatement a = ThrowStatement { ann :: a, extraChildren :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1083. AST.Traversable1.Class.Traversable1 a_1083 ) instance AST.Unmarshal.SymbolMatching ThrowStatement where matchedSymbols _ = [170] showFailure _ node_1084 = "expected " GHC.Base.<> ( "throw_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1084 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1085 c1_1086 = TreeSitter.Node.nodeStartPoint node_1084 TreeSitter.Node.TSPoint r2_1087 c2_1088 = TreeSitter.Node.nodeEndPoint node_1084 deriving instance GHC.Classes.Eq a_1089 => GHC.Classes.Eq (ThrowStatement a_1089) deriving instance GHC.Classes.Ord a_1090 => GHC.Classes.Ord (ThrowStatement a_1090) deriving instance GHC.Show.Show a_1091 => GHC.Show.Show (ThrowStatement a_1091) instance AST.Unmarshal.Unmarshal ThrowStatement instance Data.Foldable.Foldable ThrowStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ThrowStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ThrowStatement where traverse = AST.Traversable1.Class.traverseDefault1 data TryStatement a = TryStatement { ann :: a, body :: (AST.Parse.Err (StatementBlock a)), handler :: (GHC.Maybe.Maybe (AST.Parse.Err (CatchClause a))), finalizer :: (GHC.Maybe.Maybe (AST.Parse.Err (FinallyClause a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1092. AST.Traversable1.Class.Traversable1 a_1092 ) instance AST.Unmarshal.SymbolMatching TryStatement where matchedSymbols _ = [164] showFailure _ node_1093 = "expected " GHC.Base.<> ( "try_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1093 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1094 c1_1095 = TreeSitter.Node.nodeStartPoint node_1093 TreeSitter.Node.TSPoint r2_1096 c2_1097 = TreeSitter.Node.nodeEndPoint node_1093 deriving instance GHC.Classes.Eq a_1098 => GHC.Classes.Eq (TryStatement a_1098) deriving instance GHC.Classes.Ord a_1099 => GHC.Classes.Ord (TryStatement a_1099) deriving instance GHC.Show.Show a_1100 => GHC.Show.Show (TryStatement a_1100) instance AST.Unmarshal.Unmarshal TryStatement instance Data.Foldable.Foldable TryStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TryStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TryStatement where traverse = AST.Traversable1.Class.traverseDefault1 data TupleType a = TupleType { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1101. AST.Traversable1.Class.Traversable1 a_1101 ) instance AST.Unmarshal.SymbolMatching TupleType where matchedSymbols _ = [277] showFailure _ node_1102 = "expected " GHC.Base.<> ( "tuple_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1102 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1103 c1_1104 = TreeSitter.Node.nodeStartPoint node_1102 TreeSitter.Node.TSPoint r2_1105 c2_1106 = TreeSitter.Node.nodeEndPoint node_1102 deriving instance GHC.Classes.Eq a_1107 => GHC.Classes.Eq (TupleType a_1107) deriving instance GHC.Classes.Ord a_1108 => GHC.Classes.Ord (TupleType a_1108) deriving instance GHC.Show.Show a_1109 => GHC.Show.Show (TupleType a_1109) instance AST.Unmarshal.Unmarshal TupleType instance Data.Foldable.Foldable TupleType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TupleType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TupleType where traverse = AST.Traversable1.Class.traverseDefault1 data TypeAliasDeclaration a = TypeAliasDeclaration { ann :: a, 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)), name :: (AST.Parse.Err (TypeIdentifier a)), typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1110. AST.Traversable1.Class.Traversable1 a_1110 ) instance AST.Unmarshal.SymbolMatching TypeAliasDeclaration where matchedSymbols _ = [245] showFailure _ node_1111 = "expected " GHC.Base.<> ( "type_alias_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1111 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1112 c1_1113 = TreeSitter.Node.nodeStartPoint node_1111 TreeSitter.Node.TSPoint r2_1114 c2_1115 = TreeSitter.Node.nodeEndPoint node_1111 deriving instance GHC.Classes.Eq a_1116 => GHC.Classes.Eq (TypeAliasDeclaration a_1116) deriving instance GHC.Classes.Ord a_1117 => GHC.Classes.Ord (TypeAliasDeclaration a_1117) deriving instance GHC.Show.Show a_1118 => GHC.Show.Show (TypeAliasDeclaration a_1118) instance AST.Unmarshal.Unmarshal TypeAliasDeclaration instance Data.Foldable.Foldable TypeAliasDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeAliasDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeAliasDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data TypeAnnotation a = TypeAnnotation { ann :: a, 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)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1119. AST.Traversable1.Class.Traversable1 a_1119 ) instance AST.Unmarshal.SymbolMatching TypeAnnotation where matchedSymbols _ = [250] showFailure _ node_1120 = "expected " GHC.Base.<> ( "type_annotation" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1120 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1121 c1_1122 = TreeSitter.Node.nodeStartPoint node_1120 TreeSitter.Node.TSPoint r2_1123 c2_1124 = TreeSitter.Node.nodeEndPoint node_1120 deriving instance GHC.Classes.Eq a_1125 => GHC.Classes.Eq (TypeAnnotation a_1125) deriving instance GHC.Classes.Ord a_1126 => GHC.Classes.Ord (TypeAnnotation a_1126) deriving instance GHC.Show.Show a_1127 => GHC.Show.Show (TypeAnnotation a_1127) instance AST.Unmarshal.Unmarshal TypeAnnotation instance Data.Foldable.Foldable TypeAnnotation where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeAnnotation where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeAnnotation where traverse = AST.Traversable1.Class.traverseDefault1 data TypeArguments a = TypeArguments { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1128. AST.Traversable1.Class.Traversable1 a_1128 ) instance AST.Unmarshal.SymbolMatching TypeArguments where matchedSymbols _ = [266] showFailure _ node_1129 = "expected " GHC.Base.<> ( "type_arguments" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1129 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1130 c1_1131 = TreeSitter.Node.nodeStartPoint node_1129 TreeSitter.Node.TSPoint r2_1132 c2_1133 = TreeSitter.Node.nodeEndPoint node_1129 deriving instance GHC.Classes.Eq a_1134 => GHC.Classes.Eq (TypeArguments a_1134) deriving instance GHC.Classes.Ord a_1135 => GHC.Classes.Ord (TypeArguments a_1135) deriving instance GHC.Show.Show a_1136 => GHC.Show.Show (TypeArguments a_1136) instance AST.Unmarshal.Unmarshal TypeArguments instance Data.Foldable.Foldable TypeArguments where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeArguments where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeArguments where traverse = AST.Traversable1.Class.traverseDefault1 data TypeAssertion a = TypeAssertion { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: TypeArguments) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1137. AST.Traversable1.Class.Traversable1 a_1137 ) instance AST.Unmarshal.SymbolMatching TypeAssertion where matchedSymbols _ = [229] showFailure _ node_1138 = "expected " GHC.Base.<> ( "type_assertion" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1138 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1139 c1_1140 = TreeSitter.Node.nodeStartPoint node_1138 TreeSitter.Node.TSPoint r2_1141 c2_1142 = TreeSitter.Node.nodeEndPoint node_1138 deriving instance GHC.Classes.Eq a_1143 => GHC.Classes.Eq (TypeAssertion a_1143) deriving instance GHC.Classes.Ord a_1144 => GHC.Classes.Ord (TypeAssertion a_1144) deriving instance GHC.Show.Show a_1145 => GHC.Show.Show (TypeAssertion a_1145) instance AST.Unmarshal.Unmarshal TypeAssertion instance Data.Foldable.Foldable TypeAssertion where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeAssertion where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeAssertion where traverse = AST.Traversable1.Class.traverseDefault1 data TypeParameter a = TypeParameter { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Constraint GHC.Generics.:+: DefaultType GHC.Generics.:+: TypeIdentifier) a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1146. AST.Traversable1.Class.Traversable1 a_1146 ) instance AST.Unmarshal.SymbolMatching TypeParameter where matchedSymbols _ = [271] showFailure _ node_1147 = "expected " GHC.Base.<> ( "type_parameter" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1147 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1148 c1_1149 = TreeSitter.Node.nodeStartPoint node_1147 TreeSitter.Node.TSPoint r2_1150 c2_1151 = TreeSitter.Node.nodeEndPoint node_1147 deriving instance GHC.Classes.Eq a_1152 => GHC.Classes.Eq (TypeParameter a_1152) deriving instance GHC.Classes.Ord a_1153 => GHC.Classes.Ord (TypeParameter a_1153) deriving instance GHC.Show.Show a_1154 => GHC.Show.Show (TypeParameter a_1154) instance AST.Unmarshal.Unmarshal TypeParameter instance Data.Foldable.Foldable TypeParameter where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeParameter where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeParameter where traverse = AST.Traversable1.Class.traverseDefault1 data TypeParameters a = TypeParameters { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (TypeParameter a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1155. AST.Traversable1.Class.Traversable1 a_1155 ) instance AST.Unmarshal.SymbolMatching TypeParameters where matchedSymbols _ = [270] showFailure _ node_1156 = "expected " GHC.Base.<> ( "type_parameters" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1156 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1157 c1_1158 = TreeSitter.Node.nodeStartPoint node_1156 TreeSitter.Node.TSPoint r2_1159 c2_1160 = TreeSitter.Node.nodeEndPoint node_1156 deriving instance GHC.Classes.Eq a_1161 => GHC.Classes.Eq (TypeParameters a_1161) deriving instance GHC.Classes.Ord a_1162 => GHC.Classes.Ord (TypeParameters a_1162) deriving instance GHC.Show.Show a_1163 => GHC.Show.Show (TypeParameters a_1163) instance AST.Unmarshal.Unmarshal TypeParameters instance Data.Foldable.Foldable TypeParameters where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeParameters where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeParameters where traverse = AST.Traversable1.Class.traverseDefault1 data TypePredicate a = TypePredicate { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1164. AST.Traversable1.Class.Traversable1 a_1164 ) instance AST.Unmarshal.SymbolMatching TypePredicate where matchedSymbols _ = [255] showFailure _ node_1165 = "expected " GHC.Base.<> ( "type_predicate" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1165 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1166 c1_1167 = TreeSitter.Node.nodeStartPoint node_1165 TreeSitter.Node.TSPoint r2_1168 c2_1169 = TreeSitter.Node.nodeEndPoint node_1165 deriving instance GHC.Classes.Eq a_1170 => GHC.Classes.Eq (TypePredicate a_1170) deriving instance GHC.Classes.Ord a_1171 => GHC.Classes.Ord (TypePredicate a_1171) deriving instance GHC.Show.Show a_1172 => GHC.Show.Show (TypePredicate a_1172) instance AST.Unmarshal.Unmarshal TypePredicate instance Data.Foldable.Foldable TypePredicate where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypePredicate where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypePredicate where traverse = AST.Traversable1.Class.traverseDefault1 data TypeQuery a = TypeQuery { ann :: a, extraChildren :: (AST.Parse.Err ((Identifier GHC.Generics.:+: NestedIdentifier) a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1173. AST.Traversable1.Class.Traversable1 a_1173 ) instance AST.Unmarshal.SymbolMatching TypeQuery where matchedSymbols _ = [256] showFailure _ node_1174 = "expected " GHC.Base.<> ( "type_query" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1174 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1175 c1_1176 = TreeSitter.Node.nodeStartPoint node_1174 TreeSitter.Node.TSPoint r2_1177 c2_1178 = TreeSitter.Node.nodeEndPoint node_1174 deriving instance GHC.Classes.Eq a_1179 => GHC.Classes.Eq (TypeQuery a_1179) deriving instance GHC.Classes.Ord a_1180 => GHC.Classes.Ord (TypeQuery a_1180) deriving instance GHC.Show.Show a_1181 => GHC.Show.Show (TypeQuery a_1181) instance AST.Unmarshal.Unmarshal TypeQuery instance Data.Foldable.Foldable TypeQuery where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeQuery where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeQuery where traverse = AST.Traversable1.Class.traverseDefault1 data UnaryExpression a = UnaryExpression { ann :: a, operator :: (AST.Parse.Err ((AnonymousBang GHC.Generics.:+: AnonymousPlus GHC.Generics.:+: AnonymousMinus GHC.Generics.:+: AnonymousDelete GHC.Generics.:+: AnonymousTypeof GHC.Generics.:+: AnonymousVoid GHC.Generics.:+: AnonymousTilde) a)), argument :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1182. AST.Traversable1.Class.Traversable1 a_1182 ) instance AST.Unmarshal.SymbolMatching UnaryExpression where matchedSymbols _ = [205, 261] showFailure _ node_1183 = "expected " GHC.Base.<> ( "unary_expression, unary_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1183 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1184 c1_1185 = TreeSitter.Node.nodeStartPoint node_1183 TreeSitter.Node.TSPoint r2_1186 c2_1187 = TreeSitter.Node.nodeEndPoint node_1183 deriving instance GHC.Classes.Eq a_1188 => GHC.Classes.Eq (UnaryExpression a_1188) deriving instance GHC.Classes.Ord a_1189 => GHC.Classes.Ord (UnaryExpression a_1189) deriving instance GHC.Show.Show a_1190 => GHC.Show.Show (UnaryExpression a_1190) instance AST.Unmarshal.Unmarshal UnaryExpression instance Data.Foldable.Foldable UnaryExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor UnaryExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable UnaryExpression where traverse = AST.Traversable1.Class.traverseDefault1 data UnionType a = UnionType { ann :: a, 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))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1191. AST.Traversable1.Class.Traversable1 a_1191 ) instance AST.Unmarshal.SymbolMatching UnionType where matchedSymbols _ = [278] showFailure _ node_1192 = "expected " GHC.Base.<> ( "union_type" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1192 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1193 c1_1194 = TreeSitter.Node.nodeStartPoint node_1192 TreeSitter.Node.TSPoint r2_1195 c2_1196 = TreeSitter.Node.nodeEndPoint node_1192 deriving instance GHC.Classes.Eq a_1197 => GHC.Classes.Eq (UnionType a_1197) deriving instance GHC.Classes.Ord a_1198 => GHC.Classes.Ord (UnionType a_1198) deriving instance GHC.Show.Show a_1199 => GHC.Show.Show (UnionType a_1199) instance AST.Unmarshal.Unmarshal UnionType instance Data.Foldable.Foldable UnionType where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor UnionType where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable UnionType where traverse = AST.Traversable1.Class.traverseDefault1 data UpdateExpression a = UpdateExpression { ann :: a, operator :: (AST.Parse.Err ((AnonymousPlusPlus GHC.Generics.:+: AnonymousMinusMinus) a)), argument :: (AST.Parse.Err (Expression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1200. AST.Traversable1.Class.Traversable1 a_1200 ) instance AST.Unmarshal.SymbolMatching UpdateExpression where matchedSymbols _ = [206] showFailure _ node_1201 = "expected " GHC.Base.<> ( "update_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1201 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1202 c1_1203 = TreeSitter.Node.nodeStartPoint node_1201 TreeSitter.Node.TSPoint r2_1204 c2_1205 = TreeSitter.Node.nodeEndPoint node_1201 deriving instance GHC.Classes.Eq a_1206 => GHC.Classes.Eq (UpdateExpression a_1206) deriving instance GHC.Classes.Ord a_1207 => GHC.Classes.Ord (UpdateExpression a_1207) deriving instance GHC.Show.Show a_1208 => GHC.Show.Show (UpdateExpression a_1208) instance AST.Unmarshal.Unmarshal UpdateExpression instance Data.Foldable.Foldable UpdateExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor UpdateExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable UpdateExpression where traverse = AST.Traversable1.Class.traverseDefault1 data VariableDeclaration a = VariableDeclaration { ann :: a, extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (VariableDeclarator a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1209. AST.Traversable1.Class.Traversable1 a_1209 ) instance AST.Unmarshal.SymbolMatching VariableDeclaration where matchedSymbols _ = [153] showFailure _ node_1210 = "expected " GHC.Base.<> ( "variable_declaration" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1210 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1211 c1_1212 = TreeSitter.Node.nodeStartPoint node_1210 TreeSitter.Node.TSPoint r2_1213 c2_1214 = TreeSitter.Node.nodeEndPoint node_1210 deriving instance GHC.Classes.Eq a_1215 => GHC.Classes.Eq (VariableDeclaration a_1215) deriving instance GHC.Classes.Ord a_1216 => GHC.Classes.Ord (VariableDeclaration a_1216) deriving instance GHC.Show.Show a_1217 => GHC.Show.Show (VariableDeclaration a_1217) instance AST.Unmarshal.Unmarshal VariableDeclaration instance Data.Foldable.Foldable VariableDeclaration where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor VariableDeclaration where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable VariableDeclaration where traverse = AST.Traversable1.Class.traverseDefault1 data VariableDeclarator a = VariableDeclarator { ann :: a, value :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))), name :: (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: Identifier) a)), type' :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1218. AST.Traversable1.Class.Traversable1 a_1218 ) instance AST.Unmarshal.SymbolMatching VariableDeclarator where matchedSymbols _ = [155] showFailure _ node_1219 = "expected " GHC.Base.<> ( "variable_declarator" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1219 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1220 c1_1221 = TreeSitter.Node.nodeStartPoint node_1219 TreeSitter.Node.TSPoint r2_1222 c2_1223 = TreeSitter.Node.nodeEndPoint node_1219 deriving instance GHC.Classes.Eq a_1224 => GHC.Classes.Eq (VariableDeclarator a_1224) deriving instance GHC.Classes.Ord a_1225 => GHC.Classes.Ord (VariableDeclarator a_1225) deriving instance GHC.Show.Show a_1226 => GHC.Show.Show (VariableDeclarator a_1226) instance AST.Unmarshal.Unmarshal VariableDeclarator instance Data.Foldable.Foldable VariableDeclarator where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor VariableDeclarator where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable VariableDeclarator where traverse = AST.Traversable1.Class.traverseDefault1 data WhileStatement a = WhileStatement { ann :: a, body :: (AST.Parse.Err (Statement a)), condition :: (AST.Parse.Err (ParenthesizedExpression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1227. AST.Traversable1.Class.Traversable1 a_1227 ) instance AST.Unmarshal.SymbolMatching WhileStatement where matchedSymbols _ = [162] showFailure _ node_1228 = "expected " GHC.Base.<> ( "while_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1228 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1229 c1_1230 = TreeSitter.Node.nodeStartPoint node_1228 TreeSitter.Node.TSPoint r2_1231 c2_1232 = TreeSitter.Node.nodeEndPoint node_1228 deriving instance GHC.Classes.Eq a_1233 => GHC.Classes.Eq (WhileStatement a_1233) deriving instance GHC.Classes.Ord a_1234 => GHC.Classes.Ord (WhileStatement a_1234) deriving instance GHC.Show.Show a_1235 => GHC.Show.Show (WhileStatement a_1235) instance AST.Unmarshal.Unmarshal WhileStatement instance Data.Foldable.Foldable WhileStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor WhileStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable WhileStatement where traverse = AST.Traversable1.Class.traverseDefault1 data WithStatement a = WithStatement { ann :: a, body :: (AST.Parse.Err (Statement a)), object :: (AST.Parse.Err (ParenthesizedExpression a)) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1236. AST.Traversable1.Class.Traversable1 a_1236 ) instance AST.Unmarshal.SymbolMatching WithStatement where matchedSymbols _ = [165] showFailure _ node_1237 = "expected " GHC.Base.<> ( "with_statement" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1237 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1238 c1_1239 = TreeSitter.Node.nodeStartPoint node_1237 TreeSitter.Node.TSPoint r2_1240 c2_1241 = TreeSitter.Node.nodeEndPoint node_1237 deriving instance GHC.Classes.Eq a_1242 => GHC.Classes.Eq (WithStatement a_1242) deriving instance GHC.Classes.Ord a_1243 => GHC.Classes.Ord (WithStatement a_1243) deriving instance GHC.Show.Show a_1244 => GHC.Show.Show (WithStatement a_1244) instance AST.Unmarshal.Unmarshal WithStatement instance Data.Foldable.Foldable WithStatement where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor WithStatement where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable WithStatement where traverse = AST.Traversable1.Class.traverseDefault1 data YieldExpression a = YieldExpression { ann :: a, extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))) } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1245. AST.Traversable1.Class.Traversable1 a_1245 ) instance AST.Unmarshal.SymbolMatching YieldExpression where matchedSymbols _ = [180] showFailure _ node_1246 = "expected " GHC.Base.<> ( "yield_expression" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1246 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1247 c1_1248 = TreeSitter.Node.nodeStartPoint node_1246 TreeSitter.Node.TSPoint r2_1249 c2_1250 = TreeSitter.Node.nodeEndPoint node_1246 deriving instance GHC.Classes.Eq a_1251 => GHC.Classes.Eq (YieldExpression a_1251) deriving instance GHC.Classes.Ord a_1252 => GHC.Classes.Ord (YieldExpression a_1252) deriving instance GHC.Show.Show a_1253 => GHC.Show.Show (YieldExpression a_1253) instance AST.Unmarshal.Unmarshal YieldExpression instance Data.Foldable.Foldable YieldExpression where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor YieldExpression where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable YieldExpression where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousBang = AST.Token.Token "!" 88 type AnonymousBangEqual = AST.Token.Token "!=" 83 type AnonymousBangEqualEqual = AST.Token.Token "!==" 84 type AnonymousDQuote = AST.Token.Token "\"" 94 type AnonymousDollarLBrace = AST.Token.Token "${" 101 type AnonymousPercent = AST.Token.Token "%" 78 type AnonymousPercentEqual = AST.Token.Token "%=" 58 type AnonymousAmpersand = AST.Token.Token "&" 73 type AnonymousAmpersandAmpersand = AST.Token.Token "&&" 68 type AnonymousAmpersandEqual = AST.Token.Token "&=" 60 type AnonymousSQuote = AST.Token.Token "'" 96 type AnonymousLParen = AST.Token.Token "(" 23 type AnonymousRParen = AST.Token.Token ")" 24 type AnonymousStar = AST.Token.Token "*" 4 type AnonymousStarStar = AST.Token.Token "**" 79 type AnonymousStarStarEqual = AST.Token.Token "**=" 65 type AnonymousStarEqual = AST.Token.Token "*=" 56 type AnonymousPlus = AST.Token.Token "+" 76 type AnonymousPlusPlus = AST.Token.Token "++" 92 type AnonymousPlusEqual = AST.Token.Token "+=" 54 type AnonymousComma = AST.Token.Token "," 10 type AnonymousMinus = AST.Token.Token "-" 77 type AnonymousMinusMinus = AST.Token.Token "--" 93 type AnonymousMinusEqual = AST.Token.Token "-=" 55 type AnonymousDot = AST.Token.Token "." 48 type AnonymousDotDotDot = AST.Token.Token "..." 66 type AnonymousSlash = AST.Token.Token "/" 47 type AnonymousSlashEqual = AST.Token.Token "/=" 57 type AnonymousColon = AST.Token.Token ":" 38 type AnonymousSemicolon = AST.Token.Token ";" 37 type AnonymousLAngle = AST.Token.Token "<" 45 type AnonymousLAngleLAngle = AST.Token.Token "<<" 72 type AnonymousLAngleLAngleEqual = AST.Token.Token "<<=" 64 type AnonymousLAngleEqual = AST.Token.Token "<=" 80 type AnonymousEqual = AST.Token.Token "=" 6 type AnonymousEqualEqual = AST.Token.Token "==" 81 type AnonymousEqualEqualEqual = AST.Token.Token "===" 82 type AnonymousEqualRAngle = AST.Token.Token "=>" 52 type AnonymousRAngle = AST.Token.Token ">" 46 type AnonymousRAngleEqual = AST.Token.Token ">=" 85 type AnonymousRAngleRAngle = AST.Token.Token ">>" 70 type AnonymousRAngleRAngleEqual = AST.Token.Token ">>=" 62 type AnonymousRAngleRAngleRAngle = AST.Token.Token ">>>" 71 type AnonymousRAngleRAngleRAngleEqual = AST.Token.Token ">>>=" 63 type AnonymousQuestion = AST.Token.Token "?" 67 type AnonymousQuestionQuestion = AST.Token.Token "??" 86 type AnonymousAt = AST.Token.Token "@" 113 type AnonymousLBracket = AST.Token.Token "[" 43 type AnonymousRBracket = AST.Token.Token "]" 44 type AnonymousCaret = AST.Token.Token "^" 74 type AnonymousCaretEqual = AST.Token.Token "^=" 59 type AnonymousBacktick = AST.Token.Token "`" 100 type AnonymousAbstract = AST.Token.Token "abstract" 115 type AnonymousAny = AST.Token.Token "any" 123 type AnonymousAs = AST.Token.Token "as" 7 type AnonymousAsync = AST.Token.Token "async" 50 type AnonymousAwait = AST.Token.Token "await" 25 type AnonymousBoolean = AST.Token.Token "boolean" 125 type AnonymousBreak = AST.Token.Token "break" 32 type AnonymousCase = AST.Token.Token "case" 39 type AnonymousCatch = AST.Token.Token "catch" 40 type AnonymousClass = AST.Token.Token "class" 49 type AnonymousConst = AST.Token.Token "const" 18 type AnonymousContinue = AST.Token.Token "continue" 33 type AnonymousDebugger = AST.Token.Token "debugger" 34 type AnonymousDeclare = AST.Token.Token "declare" 118 type AnonymousDefault = AST.Token.Token "default" 5 type AnonymousDelete = AST.Token.Token "delete" 91 type AnonymousDo = AST.Token.Token "do" 29 type AnonymousElse = AST.Token.Token "else" 20 type AnonymousEnum = AST.Token.Token "enum" 133 data EscapeSequence a = EscapeSequence {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1254. AST.Traversable1.Class.Traversable1 a_1254 ) instance AST.Unmarshal.SymbolMatching EscapeSequence where matchedSymbols _ = [98] showFailure _ node_1255 = "expected " GHC.Base.<> ( "escape_sequence" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1255 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1256 c1_1257 = TreeSitter.Node.nodeStartPoint node_1255 TreeSitter.Node.TSPoint r2_1258 c2_1259 = TreeSitter.Node.nodeEndPoint node_1255 deriving instance GHC.Classes.Eq a_1260 => GHC.Classes.Eq (EscapeSequence a_1260) deriving instance GHC.Classes.Ord a_1261 => GHC.Classes.Ord (EscapeSequence a_1261) deriving instance GHC.Show.Show a_1262 => GHC.Show.Show (EscapeSequence a_1262) instance AST.Unmarshal.Unmarshal EscapeSequence instance Data.Foldable.Foldable EscapeSequence where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor EscapeSequence where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable EscapeSequence where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousExport = AST.Token.Token "export" 3 type AnonymousExtends = AST.Token.Token "extends" 132 data False a = False {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1263. AST.Traversable1.Class.Traversable1 a_1263 ) instance AST.Unmarshal.SymbolMatching False where matchedSymbols _ = [110] showFailure _ node_1264 = "expected " GHC.Base.<> ( "false" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1264 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1265 c1_1266 = TreeSitter.Node.nodeStartPoint node_1264 TreeSitter.Node.TSPoint r2_1267 c2_1268 = TreeSitter.Node.nodeEndPoint node_1264 deriving instance GHC.Classes.Eq a_1269 => GHC.Classes.Eq (False a_1269) deriving instance GHC.Classes.Ord a_1270 => GHC.Classes.Ord (False a_1270) deriving instance GHC.Show.Show a_1271 => GHC.Show.Show (False a_1271) instance AST.Unmarshal.Unmarshal False instance Data.Foldable.Foldable False where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor False where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable False where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousFinally = AST.Token.Token "finally" 41 type AnonymousFor = AST.Token.Token "for" 22 type AnonymousFrom = AST.Token.Token "from" 15 type AnonymousFunction = AST.Token.Token "function" 51 type AnonymousGet = AST.Token.Token "get" 116 type AnonymousGlobal = AST.Token.Token "global" 130 data HashBangLine a = HashBangLine {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1272. AST.Traversable1.Class.Traversable1 a_1272 ) instance AST.Unmarshal.SymbolMatching HashBangLine where matchedSymbols _ = [2] showFailure _ node_1273 = "expected " GHC.Base.<> ( "hash_bang_line" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1273 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1274 c1_1275 = TreeSitter.Node.nodeStartPoint node_1273 TreeSitter.Node.TSPoint r2_1276 c2_1277 = TreeSitter.Node.nodeEndPoint node_1273 deriving instance GHC.Classes.Eq a_1278 => GHC.Classes.Eq (HashBangLine a_1278) deriving instance GHC.Classes.Ord a_1279 => GHC.Classes.Ord (HashBangLine a_1279) deriving instance GHC.Show.Show a_1280 => GHC.Show.Show (HashBangLine a_1280) instance AST.Unmarshal.Unmarshal HashBangLine instance Data.Foldable.Foldable HashBangLine where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor HashBangLine where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable HashBangLine where traverse = AST.Traversable1.Class.traverseDefault1 data Identifier a = Identifier {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1281. AST.Traversable1.Class.Traversable1 a_1281 ) instance AST.Unmarshal.SymbolMatching Identifier where matchedSymbols _ = [1] showFailure _ node_1282 = "expected " GHC.Base.<> ( "identifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1282 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1283 c1_1284 = TreeSitter.Node.nodeStartPoint node_1282 TreeSitter.Node.TSPoint r2_1285 c2_1286 = TreeSitter.Node.nodeEndPoint node_1282 deriving instance GHC.Classes.Eq a_1287 => GHC.Classes.Eq (Identifier a_1287) deriving instance GHC.Classes.Ord a_1288 => GHC.Classes.Ord (Identifier a_1288) deriving instance GHC.Show.Show a_1289 => GHC.Show.Show (Identifier a_1289) instance AST.Unmarshal.Unmarshal Identifier instance Data.Foldable.Foldable Identifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Identifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Identifier where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousIf = AST.Token.Token "if" 19 type AnonymousImplements = AST.Token.Token "implements" 129 type AnonymousImport = AST.Token.Token "import" 14 type AnonymousIn = AST.Token.Token "in" 26 type AnonymousInstanceof = AST.Token.Token "instanceof" 87 type AnonymousInterface = AST.Token.Token "interface" 131 type AnonymousIs = AST.Token.Token "is" 135 data JsxText a = JsxText {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1290. AST.Traversable1.Class.Traversable1 a_1290 ) instance AST.Unmarshal.SymbolMatching JsxText where matchedSymbols _ = [] showFailure _ node_1291 = "expected " GHC.Base.<> ( "" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1291 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1292 c1_1293 = TreeSitter.Node.nodeStartPoint node_1291 TreeSitter.Node.TSPoint r2_1294 c2_1295 = TreeSitter.Node.nodeEndPoint node_1291 deriving instance GHC.Classes.Eq a_1296 => GHC.Classes.Eq (JsxText a_1296) deriving instance GHC.Classes.Ord a_1297 => GHC.Classes.Ord (JsxText a_1297) deriving instance GHC.Show.Show a_1298 => GHC.Show.Show (JsxText a_1298) instance AST.Unmarshal.Unmarshal JsxText instance Data.Foldable.Foldable JsxText where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor JsxText where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable JsxText where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousKeyof = AST.Token.Token "keyof" 136 type AnonymousLet = AST.Token.Token "let" 17 type AnonymousModule = AST.Token.Token "module" 122 type AnonymousNamespace = AST.Token.Token "namespace" 8 type AnonymousNew = AST.Token.Token "new" 53 data Null a = Null {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1299. AST.Traversable1.Class.Traversable1 a_1299 ) instance AST.Unmarshal.SymbolMatching Null where matchedSymbols _ = [111] showFailure _ node_1300 = "expected " GHC.Base.<> ( "null" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1300 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1301 c1_1302 = TreeSitter.Node.nodeStartPoint node_1300 TreeSitter.Node.TSPoint r2_1303 c2_1304 = TreeSitter.Node.nodeEndPoint node_1300 deriving instance GHC.Classes.Eq a_1305 => GHC.Classes.Eq (Null a_1305) deriving instance GHC.Classes.Ord a_1306 => GHC.Classes.Ord (Null a_1306) deriving instance GHC.Show.Show a_1307 => GHC.Show.Show (Null a_1307) instance AST.Unmarshal.Unmarshal Null instance Data.Foldable.Foldable Null where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Null where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Null where traverse = AST.Traversable1.Class.traverseDefault1 data Number a = Number {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1308. AST.Traversable1.Class.Traversable1 a_1308 ) instance AST.Unmarshal.SymbolMatching Number where matchedSymbols _ = [105] showFailure _ node_1309 = "expected " GHC.Base.<> ( "number" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1309 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1310 c1_1311 = TreeSitter.Node.nodeStartPoint node_1309 TreeSitter.Node.TSPoint r2_1312 c2_1313 = TreeSitter.Node.nodeEndPoint node_1309 deriving instance GHC.Classes.Eq a_1314 => GHC.Classes.Eq (Number a_1314) deriving instance GHC.Classes.Ord a_1315 => GHC.Classes.Ord (Number a_1315) deriving instance GHC.Show.Show a_1316 => GHC.Show.Show (Number a_1316) instance AST.Unmarshal.Unmarshal Number instance Data.Foldable.Foldable Number where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Number where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Number where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousNumber = AST.Token.Token "number" 124 type AnonymousOf = AST.Token.Token "of" 27 type AnonymousPrivate = AST.Token.Token "private" 120 data PropertyIdentifier a = PropertyIdentifier {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1317. AST.Traversable1.Class.Traversable1 a_1317 ) instance AST.Unmarshal.SymbolMatching PropertyIdentifier where matchedSymbols _ = [303] showFailure _ node_1318 = "expected " GHC.Base.<> ( "property_identifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1318 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1319 c1_1320 = TreeSitter.Node.nodeStartPoint node_1318 TreeSitter.Node.TSPoint r2_1321 c2_1322 = TreeSitter.Node.nodeEndPoint node_1318 deriving instance GHC.Classes.Eq a_1323 => GHC.Classes.Eq (PropertyIdentifier a_1323) deriving instance GHC.Classes.Ord a_1324 => GHC.Classes.Ord (PropertyIdentifier a_1324) deriving instance GHC.Show.Show a_1325 => GHC.Show.Show (PropertyIdentifier a_1325) instance AST.Unmarshal.Unmarshal PropertyIdentifier instance Data.Foldable.Foldable PropertyIdentifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor PropertyIdentifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable PropertyIdentifier where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousProtected = AST.Token.Token "protected" 121 type AnonymousPublic = AST.Token.Token "public" 119 data Readonly a = Readonly {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1326. AST.Traversable1.Class.Traversable1 a_1326 ) instance AST.Unmarshal.SymbolMatching Readonly where matchedSymbols _ = [134] showFailure _ node_1327 = "expected " GHC.Base.<> ( "readonly" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1327 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1328 c1_1329 = TreeSitter.Node.nodeStartPoint node_1327 TreeSitter.Node.TSPoint r2_1330 c2_1331 = TreeSitter.Node.nodeEndPoint node_1327 deriving instance GHC.Classes.Eq a_1332 => GHC.Classes.Eq (Readonly a_1332) deriving instance GHC.Classes.Ord a_1333 => GHC.Classes.Ord (Readonly a_1333) deriving instance GHC.Show.Show a_1334 => GHC.Show.Show (Readonly a_1334) instance AST.Unmarshal.Unmarshal Readonly instance Data.Foldable.Foldable Readonly where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Readonly where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Readonly where traverse = AST.Traversable1.Class.traverseDefault1 data RegexFlags a = RegexFlags {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1335. AST.Traversable1.Class.Traversable1 a_1335 ) instance AST.Unmarshal.SymbolMatching RegexFlags where matchedSymbols _ = [104] showFailure _ node_1336 = "expected " GHC.Base.<> ( "regex_flags" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1336 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1337 c1_1338 = TreeSitter.Node.nodeStartPoint node_1336 TreeSitter.Node.TSPoint r2_1339 c2_1340 = TreeSitter.Node.nodeEndPoint node_1336 deriving instance GHC.Classes.Eq a_1341 => GHC.Classes.Eq (RegexFlags a_1341) deriving instance GHC.Classes.Ord a_1342 => GHC.Classes.Ord (RegexFlags a_1342) deriving instance GHC.Show.Show a_1343 => GHC.Show.Show (RegexFlags a_1343) instance AST.Unmarshal.Unmarshal RegexFlags instance Data.Foldable.Foldable RegexFlags where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor RegexFlags where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable RegexFlags where traverse = AST.Traversable1.Class.traverseDefault1 data RegexPattern a = RegexPattern {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1344. AST.Traversable1.Class.Traversable1 a_1344 ) instance AST.Unmarshal.SymbolMatching RegexPattern where matchedSymbols _ = [103] showFailure _ node_1345 = "expected " GHC.Base.<> ( "regex_pattern" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1345 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1346 c1_1347 = TreeSitter.Node.nodeStartPoint node_1345 TreeSitter.Node.TSPoint r2_1348 c2_1349 = TreeSitter.Node.nodeEndPoint node_1345 deriving instance GHC.Classes.Eq a_1350 => GHC.Classes.Eq (RegexPattern a_1350) deriving instance GHC.Classes.Ord a_1351 => GHC.Classes.Ord (RegexPattern a_1351) deriving instance GHC.Show.Show a_1352 => GHC.Show.Show (RegexPattern a_1352) instance AST.Unmarshal.Unmarshal RegexPattern instance Data.Foldable.Foldable RegexPattern where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor RegexPattern where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable RegexPattern where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousRequire = AST.Token.Token "require" 128 type AnonymousReturn = AST.Token.Token "return" 35 type AnonymousSet = AST.Token.Token "set" 117 data ShorthandPropertyIdentifier a = ShorthandPropertyIdentifier { ann :: a, text :: Data.Text.Internal.Text } deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1353. AST.Traversable1.Class.Traversable1 a_1353 ) instance AST.Unmarshal.SymbolMatching ShorthandPropertyIdentifier where matchedSymbols _ = [304] showFailure _ node_1354 = "expected " GHC.Base.<> ( "shorthand_property_identifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1354 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1355 c1_1356 = TreeSitter.Node.nodeStartPoint node_1354 TreeSitter.Node.TSPoint r2_1357 c2_1358 = TreeSitter.Node.nodeEndPoint node_1354 deriving instance GHC.Classes.Eq a_1359 => GHC.Classes.Eq (ShorthandPropertyIdentifier a_1359) deriving instance GHC.Classes.Ord a_1360 => GHC.Classes.Ord (ShorthandPropertyIdentifier a_1360) deriving instance GHC.Show.Show a_1361 => GHC.Show.Show (ShorthandPropertyIdentifier a_1361) instance AST.Unmarshal.Unmarshal ShorthandPropertyIdentifier instance Data.Foldable.Foldable ShorthandPropertyIdentifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor ShorthandPropertyIdentifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable ShorthandPropertyIdentifier where traverse = AST.Traversable1.Class.traverseDefault1 data StatementIdentifier a = StatementIdentifier {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1362. AST.Traversable1.Class.Traversable1 a_1362 ) instance AST.Unmarshal.SymbolMatching StatementIdentifier where matchedSymbols _ = [305] showFailure _ node_1363 = "expected " GHC.Base.<> ( "statement_identifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1363 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1364 c1_1365 = TreeSitter.Node.nodeStartPoint node_1363 TreeSitter.Node.TSPoint r2_1366 c2_1367 = TreeSitter.Node.nodeEndPoint node_1363 deriving instance GHC.Classes.Eq a_1368 => GHC.Classes.Eq (StatementIdentifier a_1368) deriving instance GHC.Classes.Ord a_1369 => GHC.Classes.Ord (StatementIdentifier a_1369) deriving instance GHC.Show.Show a_1370 => GHC.Show.Show (StatementIdentifier a_1370) instance AST.Unmarshal.Unmarshal StatementIdentifier instance Data.Foldable.Foldable StatementIdentifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor StatementIdentifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable StatementIdentifier where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousStatic = AST.Token.Token "static" 114 type AnonymousString = AST.Token.Token "string" 126 data Super a = Super {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1371. AST.Traversable1.Class.Traversable1 a_1371 ) instance AST.Unmarshal.SymbolMatching Super where matchedSymbols _ = [108] showFailure _ node_1372 = "expected " GHC.Base.<> ( "super" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1372 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1373 c1_1374 = TreeSitter.Node.nodeStartPoint node_1372 TreeSitter.Node.TSPoint r2_1375 c2_1376 = TreeSitter.Node.nodeEndPoint node_1372 deriving instance GHC.Classes.Eq a_1377 => GHC.Classes.Eq (Super a_1377) deriving instance GHC.Classes.Ord a_1378 => GHC.Classes.Ord (Super a_1378) deriving instance GHC.Show.Show a_1379 => GHC.Show.Show (Super a_1379) instance AST.Unmarshal.Unmarshal Super instance Data.Foldable.Foldable Super where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Super where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Super where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousSwitch = AST.Token.Token "switch" 21 type AnonymousSymbol = AST.Token.Token "symbol" 127 type AnonymousTarget = AST.Token.Token "target" 106 data This a = This {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1380. AST.Traversable1.Class.Traversable1 a_1380 ) instance AST.Unmarshal.SymbolMatching This where matchedSymbols _ = [107] showFailure _ node_1381 = "expected " GHC.Base.<> ( "this" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1381 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1382 c1_1383 = TreeSitter.Node.nodeStartPoint node_1381 TreeSitter.Node.TSPoint r2_1384 c2_1385 = TreeSitter.Node.nodeEndPoint node_1381 deriving instance GHC.Classes.Eq a_1386 => GHC.Classes.Eq (This a_1386) deriving instance GHC.Classes.Ord a_1387 => GHC.Classes.Ord (This a_1387) deriving instance GHC.Show.Show a_1388 => GHC.Show.Show (This a_1388) instance AST.Unmarshal.Unmarshal This instance Data.Foldable.Foldable This where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor This where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable This where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousThrow = AST.Token.Token "throw" 36 data True a = True {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1389. AST.Traversable1.Class.Traversable1 a_1389 ) instance AST.Unmarshal.SymbolMatching True where matchedSymbols _ = [109] showFailure _ node_1390 = "expected " GHC.Base.<> ( "true" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1390 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1391 c1_1392 = TreeSitter.Node.nodeStartPoint node_1390 TreeSitter.Node.TSPoint r2_1393 c2_1394 = TreeSitter.Node.nodeEndPoint node_1390 deriving instance GHC.Classes.Eq a_1395 => GHC.Classes.Eq (True a_1395) deriving instance GHC.Classes.Ord a_1396 => GHC.Classes.Ord (True a_1396) deriving instance GHC.Show.Show a_1397 => GHC.Show.Show (True a_1397) instance AST.Unmarshal.Unmarshal True instance Data.Foldable.Foldable True where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor True where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable True where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousTry = AST.Token.Token "try" 30 type AnonymousType = AST.Token.Token "type" 12 data TypeIdentifier a = TypeIdentifier {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1398. AST.Traversable1.Class.Traversable1 a_1398 ) instance AST.Unmarshal.SymbolMatching TypeIdentifier where matchedSymbols _ = [306] showFailure _ node_1399 = "expected " GHC.Base.<> ( "type_identifier" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1399 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1400 c1_1401 = TreeSitter.Node.nodeStartPoint node_1399 TreeSitter.Node.TSPoint r2_1402 c2_1403 = TreeSitter.Node.nodeEndPoint node_1399 deriving instance GHC.Classes.Eq a_1404 => GHC.Classes.Eq (TypeIdentifier a_1404) deriving instance GHC.Classes.Ord a_1405 => GHC.Classes.Ord (TypeIdentifier a_1405) deriving instance GHC.Show.Show a_1406 => GHC.Show.Show (TypeIdentifier a_1406) instance AST.Unmarshal.Unmarshal TypeIdentifier instance Data.Foldable.Foldable TypeIdentifier where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor TypeIdentifier where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable TypeIdentifier where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousTypeof = AST.Token.Token "typeof" 13 data Undefined a = Undefined {ann :: a, text :: Data.Text.Internal.Text} deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1) deriving anyclass ( forall a_1407. AST.Traversable1.Class.Traversable1 a_1407 ) instance AST.Unmarshal.SymbolMatching Undefined where matchedSymbols _ = [112] showFailure _ node_1408 = "expected " GHC.Base.<> ( "undefined" GHC.Base.<> ( " but got " GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1408 GHC.Classes.== 65535 then "ERROR" 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.<> "]"))))))))) ) ) ) where TreeSitter.Node.TSPoint r1_1409 c1_1410 = TreeSitter.Node.nodeStartPoint node_1408 TreeSitter.Node.TSPoint r2_1411 c2_1412 = TreeSitter.Node.nodeEndPoint node_1408 deriving instance GHC.Classes.Eq a_1413 => GHC.Classes.Eq (Undefined a_1413) deriving instance GHC.Classes.Ord a_1414 => GHC.Classes.Ord (Undefined a_1414) deriving instance GHC.Show.Show a_1415 => GHC.Show.Show (Undefined a_1415) instance AST.Unmarshal.Unmarshal Undefined instance Data.Foldable.Foldable Undefined where foldMap = AST.Traversable1.Class.foldMapDefault1 instance GHC.Base.Functor Undefined where fmap = AST.Traversable1.Class.fmapDefault1 instance Data.Traversable.Traversable Undefined where traverse = AST.Traversable1.Class.traverseDefault1 type AnonymousVar = AST.Token.Token "var" 16 type AnonymousVoid = AST.Token.Token "void" 90 type AnonymousWhile = AST.Token.Token "while" 28 type AnonymousWith = AST.Token.Token "with" 31 type AnonymousYield = AST.Token.Token "yield" 42 type AnonymousLBrace = AST.Token.Token "{" 9 type AnonymousLBracePipe = AST.Token.Token "{|" 137 type AnonymousPipe = AST.Token.Token "|" 75 type AnonymousPipeEqual = AST.Token.Token "|=" 61 type AnonymousPipePipe = AST.Token.Token "||" 69 type AnonymousPipeRBrace = AST.Token.Token "|}" 138 type AnonymousRBrace = AST.Token.Token "}" 11 type AnonymousTilde = AST.Token.Token "~" 89 ================================================ FILE: semantic-typescript/src/Language/TypeScript/Grammar.hs ================================================ {-# LANGUAGE TemplateHaskell #-} module Language.TypeScript.Grammar ( tree_sitter_typescript , Grammar(..) ) where import AST.Grammar.TH import Language.Haskell.TH import TreeSitter.TypeScript (tree_sitter_typescript) -- | Statically-known rules corresponding to symbols in the grammar. mkStaticallyKnownRuleGrammarData (mkName "Grammar") tree_sitter_typescript ================================================ FILE: semantic-typescript/src/Language/TypeScript/Tags.hs ================================================ {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE DefaultSignatures #-} {-# LANGUAGE DisambiguateRecordFields #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} module Language.TypeScript.Tags ( ToTags (..), ) where import AST.Element import qualified AST.Parse as Parse import AST.Token import AST.Traversable1 import Control.Effect.Reader import Control.Effect.State import Control.Effect.Writer import Data.Foldable import Data.Text (Text) import qualified Language.TypeScript.AST as Ts import Proto.Semantic as P import Source.Loc import Source.Source as Source import qualified Tags.Tagging.Precise as Tags class ToTags (t :: * -> *) where tags :: ( Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m ) => t Loc -> m () default tags :: ( Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m, Traversable1 ToTags t ) => t Loc -> m () tags = gtags instance ToTags Ts.Function where tags t@Ts.Function {ann = Loc {byteRange}, name = Just (Parse.Success Ts.Identifier {text, ann})} = yieldTag text P.FUNCTION P.DEFINITION ann byteRange >> gtags t tags t = gtags t instance ToTags Ts.FunctionSignature where tags t@Ts.FunctionSignature {ann = Loc {byteRange}, name = Parse.Success (Ts.Identifier {text, ann})} = yieldTag text P.FUNCTION P.DEFINITION ann byteRange >> gtags t tags _ = pure () instance ToTags Ts.FunctionDeclaration where tags t@Ts.FunctionDeclaration {ann = Loc {byteRange}, name = Parse.Success (Ts.Identifier {text, ann})} = yieldTag text P.FUNCTION P.DEFINITION ann byteRange >> gtags t tags _ = pure () instance ToTags Ts.MethodDefinition where tags t@Ts.MethodDefinition {ann = Loc {byteRange}, name} = case name of Parse.Success (Prj Ts.PropertyIdentifier {text, ann}) -> yieldTag text P.METHOD P.DEFINITION ann byteRange >> gtags t _ -> gtags t instance ToTags Ts.Pair where tags t@Ts.Pair {ann = Loc {byteRange}, key = Parse.Success key, value = Parse.Success (Ts.Expression expr)} = case (key, expr) of (Prj Ts.PropertyIdentifier {text, ann}, Prj Ts.Function {}) -> yield text ann (Prj Ts.PropertyIdentifier {text, ann}, Prj Ts.ArrowFunction {}) -> yield text ann _ -> gtags t where yield text loc = yieldTag text P.FUNCTION P.DEFINITION loc byteRange >> gtags t tags _ = pure () instance ToTags Ts.ClassDeclaration where tags t@Ts.ClassDeclaration {ann = Loc {byteRange}, name = Parse.Success (Ts.TypeIdentifier {text, ann})} = yieldTag text P.CLASS P.DEFINITION ann byteRange >> gtags t tags _ = pure () instance ToTags Ts.CallExpression where tags t@Ts.CallExpression {ann = Loc {byteRange}, function = Parse.Success (Ts.Expression expr)} = match expr where match expr = case expr of Prj Ts.Identifier {text, ann} -> yield text ann Prj Ts.NewExpression {constructor = EPrj Ts.Identifier {text, ann}} -> yield text ann Prj Ts.CallExpression {function = Parse.Success (Ts.Expression expr)} -> match expr Prj Ts.MemberExpression {property = Parse.Success (Ts.PropertyIdentifier {text, ann})} -> yield text ann Prj Ts.Function {name = Just (Parse.Success (Ts.Identifier {text, ann}))} -> yield text ann Prj Ts.ParenthesizedExpression {extraChildren} -> for_ extraChildren $ \x -> case x of EPrj (Ts.Expression expr) -> match expr Parse.Success x -> tags x Parse.Fail _ -> pure () _ -> gtags t yield name loc = yieldTag name P.CALL P.REFERENCE loc byteRange >> gtags t tags _ = pure () instance ToTags Ts.Class where tags t@Ts.Class {ann = Loc {byteRange}, name = Just (Parse.Success Ts.TypeIdentifier {text, ann})} = yieldTag text P.CLASS P.DEFINITION ann byteRange >> gtags t tags t = gtags t instance ToTags Ts.Module where tags t@Ts.Module {ann = Loc {byteRange}, name} = case name of Parse.Success (Prj Ts.Identifier {text, ann}) -> yieldTag text P.MODULE P.DEFINITION ann byteRange >> gtags t _ -> gtags t instance ToTags Ts.VariableDeclarator where tags t@Ts.VariableDeclarator {ann = Loc {byteRange}, name, value = Just (Parse.Success (Ts.Expression expr))} = case (expr, name) of (Prj Ts.Function {}, Parse.Success (Prj Ts.Identifier {text, ann})) -> yield text ann (Prj Ts.ArrowFunction {}, Parse.Success (Prj Ts.Identifier {text, ann})) -> yield text ann _ -> gtags t where yield text loc = yieldTag text P.FUNCTION P.DEFINITION loc byteRange >> gtags t tags t = gtags t instance ToTags Ts.AssignmentExpression where tags t@Ts.AssignmentExpression {ann = Loc {byteRange}, left, right = Parse.Success (Ts.Expression expr)} = case (left, expr) of (Parse.Success (Prj Ts.Identifier {text, ann}), Prj Ts.Function {}) -> yield text ann (Parse.Success (Prj Ts.Identifier {text, ann}), Prj Ts.ArrowFunction {}) -> yield text ann (EPrj Ts.MemberExpression {property = Parse.Success (Ts.PropertyIdentifier {text, ann})}, Prj Ts.Function {}) -> yield text ann (EPrj Ts.MemberExpression {property = Parse.Success (Ts.PropertyIdentifier {text, ann})}, Prj Ts.ArrowFunction {}) -> yield text ann _ -> gtags t where yield text loc = yieldTag text P.FUNCTION P.DEFINITION loc byteRange >> gtags t tags _ = pure () instance (ToTags l, ToTags r) => ToTags (l :+: r) where tags (L1 l) = tags l tags (R1 r) = tags r instance ToTags (Token sym n) where tags _ = pure () gtags :: ( Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m, Traversable1 ToTags t ) => t Loc -> m () gtags = traverse1_ @ToTags (const (pure ())) tags -- These are all valid, but point to built-in functions (e.g. require) that a la -- carte doesn't display and since we have nothing to link to yet (can't -- jump-to-def), we hide them from the current tags output. nameBlacklist :: [Text] nameBlacklist = ["require"] yieldTag :: (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 () yieldTag name P.CALL _ _ _ | name `elem` nameBlacklist = pure () yieldTag name kind ty loc srcLineRange = Tags.yield name kind ty loc srcLineRange {- ORMOLU_DISABLE -} instance ToTags Ts.AbstractClassDeclaration instance ToTags Ts.AbstractMethodSignature instance ToTags Ts.AccessibilityModifier instance ToTags Ts.AmbientDeclaration instance ToTags Ts.Arguments instance ToTags Ts.Array instance ToTags Ts.ArrayPattern instance ToTags Ts.ArrayType instance ToTags Ts.ArrowFunction instance ToTags Ts.AsExpression -- instance ToTags Ts.AssignmentExpression instance ToTags Ts.AssignmentPattern instance ToTags Ts.AugmentedAssignmentExpression instance ToTags Ts.AwaitExpression instance ToTags Ts.BinaryExpression instance ToTags Ts.BreakStatement -- instance ToTags Ts.CallExpression instance ToTags Ts.CallSignature instance ToTags Ts.CatchClause -- instance ToTags Ts.Class instance ToTags Ts.ClassBody -- instance ToTags Ts.ClassDeclaration instance ToTags Ts.ClassHeritage instance ToTags Ts.ComputedPropertyName instance ToTags Ts.Constraint instance ToTags Ts.ConstructSignature instance ToTags Ts.ConstructorType instance ToTags Ts.ContinueStatement instance ToTags Ts.DebuggerStatement instance ToTags Ts.Declaration instance ToTags Ts.Decorator instance ToTags Ts.DefaultType instance ToTags Ts.DestructuringPattern instance ToTags Ts.DoStatement instance ToTags Ts.EmptyStatement instance ToTags Ts.EnumAssignment instance ToTags Ts.EnumBody instance ToTags Ts.EnumDeclaration instance ToTags Ts.EscapeSequence instance ToTags Ts.ExistentialType instance ToTags Ts.ExportClause instance ToTags Ts.ExportSpecifier instance ToTags Ts.ExportStatement instance ToTags Ts.Expression instance ToTags Ts.ExpressionStatement instance ToTags Ts.ExtendsClause instance ToTags Ts.False instance ToTags Ts.FinallyClause instance ToTags Ts.FlowMaybeType instance ToTags Ts.ForInStatement instance ToTags Ts.ForStatement instance ToTags Ts.FormalParameters -- instance ToTags Ts.Function -- instance ToTags Ts.FunctionDeclaration -- instance ToTags Ts.FunctionSignature instance ToTags Ts.FunctionType instance ToTags Ts.GeneratorFunction instance ToTags Ts.GeneratorFunctionDeclaration instance ToTags Ts.GenericType instance ToTags Ts.HashBangLine instance ToTags Ts.Identifier instance ToTags Ts.IfStatement instance ToTags Ts.ImplementsClause instance ToTags Ts.Import instance ToTags Ts.ImportAlias instance ToTags Ts.ImportClause instance ToTags Ts.ImportRequireClause instance ToTags Ts.ImportSpecifier instance ToTags Ts.ImportStatement instance ToTags Ts.IndexSignature instance ToTags Ts.IndexTypeQuery instance ToTags Ts.InterfaceDeclaration instance ToTags Ts.InternalModule instance ToTags Ts.IntersectionType instance ToTags Ts.JsxAttribute instance ToTags Ts.JsxClosingElement instance ToTags Ts.JsxElement instance ToTags Ts.JsxExpression instance ToTags Ts.JsxFragment instance ToTags Ts.JsxNamespaceName instance ToTags Ts.JsxOpeningElement instance ToTags Ts.JsxSelfClosingElement instance ToTags Ts.JsxText instance ToTags Ts.LabeledStatement instance ToTags Ts.LexicalDeclaration instance ToTags Ts.LiteralType instance ToTags Ts.LookupType instance ToTags Ts.MappedTypeClause instance ToTags Ts.MemberExpression instance ToTags Ts.MetaProperty -- instance ToTags Ts.MethodDefinition instance ToTags Ts.MethodSignature -- instance ToTags Ts.Module instance ToTags Ts.NamedImports instance ToTags Ts.NamespaceImport instance ToTags Ts.NestedIdentifier instance ToTags Ts.NestedTypeIdentifier instance ToTags Ts.NewExpression instance ToTags Ts.NonNullExpression instance ToTags Ts.Null instance ToTags Ts.Number instance ToTags Ts.Object instance ToTags Ts.ObjectPattern instance ToTags Ts.ObjectType instance ToTags Ts.OptionalParameter -- instance ToTags Ts.Pair instance ToTags Ts.ParenthesizedExpression instance ToTags Ts.ParenthesizedType instance ToTags Ts.PredefinedType instance ToTags Ts.Program instance ToTags Ts.PropertyIdentifier instance ToTags Ts.PropertySignature instance ToTags Ts.PublicFieldDefinition instance ToTags Ts.Readonly instance ToTags Ts.Regex instance ToTags Ts.RegexFlags instance ToTags Ts.RegexPattern instance ToTags Ts.RequiredParameter instance ToTags Ts.RestParameter instance ToTags Ts.ReturnStatement instance ToTags Ts.SequenceExpression instance ToTags Ts.ShorthandPropertyIdentifier instance ToTags Ts.SpreadElement instance ToTags Ts.Statement instance ToTags Ts.StatementBlock instance ToTags Ts.StatementIdentifier instance ToTags Ts.String instance ToTags Ts.SubscriptExpression instance ToTags Ts.Super instance ToTags Ts.SwitchBody instance ToTags Ts.SwitchCase instance ToTags Ts.SwitchDefault instance ToTags Ts.SwitchStatement instance ToTags Ts.TemplateString instance ToTags Ts.TemplateSubstitution instance ToTags Ts.TernaryExpression instance ToTags Ts.This instance ToTags Ts.ThrowStatement instance ToTags Ts.True instance ToTags Ts.TryStatement instance ToTags Ts.TupleType instance ToTags Ts.TypeAliasDeclaration instance ToTags Ts.TypeAssertion instance ToTags Ts.TypeAnnotation instance ToTags Ts.TypeArguments instance ToTags Ts.TypeIdentifier instance ToTags Ts.TypeParameter instance ToTags Ts.TypeParameters instance ToTags Ts.TypePredicate instance ToTags Ts.TypeQuery instance ToTags Ts.UnaryExpression instance ToTags Ts.Undefined instance ToTags Ts.UnionType instance ToTags Ts.UpdateExpression instance ToTags Ts.VariableDeclaration -- instance ToTags Ts.VariableDeclarator instance ToTags Ts.WhileStatement instance ToTags Ts.WithStatement instance ToTags Ts.YieldExpression {- ORMOLU_ENABLE -} ================================================ FILE: semantic-typescript/src/Language/TypeScript.hs ================================================ {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# OPTIONS_GHC -freduction-depth=0 #-} -- | Semantic functionality for TypeScript programs. module Language.TypeScript ( Term(..) , Language.TypeScript.Grammar.tree_sitter_typescript ) where import AST.Marshal.JSON import Data.Proxy import qualified Language.TypeScript.AST as TypeScript import qualified Language.TypeScript.Tags as TsTags import qualified Tags.Tagging.Precise as Tags import qualified Language.TypeScript.Grammar (tree_sitter_typescript) import qualified AST.Unmarshal as TS newtype Term a = Term { getTerm :: TypeScript.Program a } deriving MarshalJSON instance TS.SymbolMatching Term where matchedSymbols _ = TS.matchedSymbols (Proxy :: Proxy TypeScript.Program) showFailure _ = TS.showFailure (Proxy :: Proxy TypeScript.Program) instance TS.Unmarshal Term where matchers = fmap (fmap (TS.hoist Term)) TS.matchers instance Tags.ToTags Term where tags src = Tags.runTagging src . TsTags.tags . getTerm ================================================ FILE: semantic-typescript/test/PreciseTest.hs ================================================ {-# LANGUAGE CPP #-} {-# LANGUAGE DisambiguateRecordFields #-} {-# LANGUAGE ImplicitParams #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeApplications #-} {-# OPTIONS_GHC -Wno-unused-imports #-} module Main (main) where import AST.TestHelpers import AST.Unmarshal import qualified Language.TypeScript.AST as Ts import qualified System.Path.Fixture as Fixture import Test.Tasty import TreeSitter.TypeScript main :: IO () main = do #if BAZEL_BUILD rf <- Fixture.create let ?project = "external/tree-sitter-typescript" ?runfiles = rf let dirs = Fixture.absRelDir "typescript/corpus" #else dirs <- Ts.getTestCorpusDir #endif readCorpusFiles' dirs >>= traverse (testCorpus parse) >>= defaultMain . tests where parse = parseByteString @Ts.Program @() tree_sitter_typescript tests :: [TestTree] -> TestTree tests = testGroup "tree-sitter-typescript corpus tests" ================================================ FILE: stack-snapshot.yaml ================================================ resolver: nightly-2020-08-16 packages: - Interpolation-0.3.0 - fused-effects-1.1.0.0 - fused-effects-exceptions-1.1.0.0 - fused-effects-readline-0.1.0.0 - haskeline-0.8.0.0 - lingo-0.5.0.1 - proto-lens-jsonpb-0.2.0.2 - semilattices-0.0.0.4 - tree-sitter-0.9.0.2 - unliftio-core-0.2.0.1 ================================================ FILE: stackage_snapshot.json ================================================ { "__GENERATED_FILE_DO_NOT_MODIFY_MANUALLY": 1264514574, "all-cabal-hashes": "https://raw.githubusercontent.com/commercialhaskell/all-cabal-hashes/bc8207695b49b91c30534145bb60fe75189f605d", "resolved": { "Cabal": {"dependencies":[],"location":{"type":"core"},"name":"Cabal","version":"3.2.0.0"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "array": {"dependencies":[],"location":{"type":"core"},"name":"array","version":"0.5.4.0"}, "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"}, "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"}, "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"}, "base": {"dependencies":[],"location":{"type":"core"},"name":"base","version":"4.14.0.0"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "binary": {"dependencies":[],"location":{"type":"core"},"name":"binary","version":"0.8.8.0"}, "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"}, "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"}, "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"}, "bytestring": {"dependencies":[],"location":{"type":"core"},"name":"bytestring","version":"0.10.10.0"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "containers": {"dependencies":[],"location":{"type":"core"},"name":"containers","version":"0.6.2.1"}, "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"}, "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"}, "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"}, "deepseq": {"dependencies":[],"location":{"type":"core"},"name":"deepseq","version":"1.4.4.0"}, "directory": {"dependencies":[],"location":{"type":"core"},"name":"directory","version":"1.3.6.0"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "filepath": {"dependencies":[],"location":{"type":"core"},"name":"filepath","version":"1.4.2.1"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "ghc": {"dependencies":[],"location":{"type":"core"},"name":"ghc","version":"8.10.1"}, "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"}, "ghc-prim": {"dependencies":[],"location":{"type":"core"},"name":"ghc-prim","version":"0.6.1"}, "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"}, "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"}, "haskeline": {"dependencies":["base","bytestring","containers","directory","exceptions","filepath","process","stm","terminfo","transformers","unix"],"location":{"type":"core"},"name":"haskeline","version":"0.8.0.0"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "integer-gmp": {"dependencies":[],"location":{"type":"core"},"name":"integer-gmp","version":"1.0.3.0"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "mtl": {"dependencies":[],"location":{"type":"core"},"name":"mtl","version":"2.2.2"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "parsec": {"dependencies":[],"location":{"type":"core"},"name":"parsec","version":"3.1.14.0"}, "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"}, "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"}, "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"}, "pretty": {"dependencies":[],"location":{"type":"core"},"name":"pretty","version":"1.1.3.6"}, "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"}, "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"}, "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"}, "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"}, "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"}, "process": {"dependencies":[],"location":{"type":"core"},"name":"process","version":"1.6.8.2"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "stm": {"dependencies":[],"location":{"type":"core"},"name":"stm","version":"2.5.0.0"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "template-haskell": {"dependencies":[],"location":{"type":"core"},"name":"template-haskell","version":"2.16.0.0"}, "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"}, "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"}, "terminfo": {"dependencies":[],"location":{"type":"core"},"name":"terminfo","version":"0.4.1.4"}, "text": {"dependencies":[],"location":{"type":"core"},"name":"text","version":"1.2.3.2"}, "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"}, "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"}, "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"}, "time": {"dependencies":[],"location":{"type":"core"},"name":"time","version":"1.9.3"}, "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"}, "transformers": {"dependencies":[],"location":{"type":"core"},"name":"transformers","version":"0.5.6.2"}, "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"}, "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"}, "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"}, "tree-sitter-go": {"dependencies":["base","tree-sitter"],"location":{"type":"vendored"},"name":"tree-sitter-go","version":"0.5.0.2"}, "tree-sitter-java": {"dependencies":["base","tree-sitter"],"location":{"type":"vendored"},"name":"tree-sitter-java","version":"0.7.0.2"}, "tree-sitter-json": {"dependencies":["base","tree-sitter"],"location":{"type":"vendored"},"name":"tree-sitter-json","version":"0.7.0.2"}, "tree-sitter-php": {"dependencies":["base","tree-sitter"],"location":{"type":"vendored"},"name":"tree-sitter-php","version":"0.5.0.1"}, "tree-sitter-python": {"dependencies":["base","tree-sitter"],"location":{"type":"vendored"},"name":"tree-sitter-python","version":"0.9.0.3"}, "tree-sitter-ql": {"dependencies":["base","tree-sitter"],"location":{"type":"vendored"},"name":"tree-sitter-ql","version":"0.1.0.4"}, "tree-sitter-ruby": {"dependencies":["base","tree-sitter"],"location":{"type":"vendored"},"name":"tree-sitter-ruby","version":"0.5.0.3"}, "tree-sitter-rust": {"dependencies":["base","tree-sitter"],"location":{"type":"vendored"},"name":"tree-sitter-rust","version":"0.1.0.1"}, "tree-sitter-tsx": {"dependencies":["base","tree-sitter"],"location":{"type":"vendored"},"name":"tree-sitter-tsx","version":"0.5.0.2"}, "tree-sitter-typescript": {"dependencies":["base","tree-sitter"],"location":{"type":"vendored"},"name":"tree-sitter-typescript","version":"0.5.0.2"}, "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"}, "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"}, "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"}, "unix": {"dependencies":[],"location":{"type":"core"},"name":"unix","version":"2.7.2.2"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"}, "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"} } }