From 18b6b71ebca14e298f26a2410353639a9b1bfdd8 Mon Sep 17 00:00:00 2001 From: James Brock Date: Mon, 19 Dec 2022 10:18:04 +0900 Subject: [PATCH 01/20] test TryPureScript example --- test/Main.purs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test/Main.purs b/test/Main.purs index f9b6abf..bdcb188 100644 --- a/test/Main.purs +++ b/test/Main.purs @@ -1145,6 +1145,17 @@ main = do , expected: [ "Expected letter at position index:6 (line:2, column:1)", "▼", "🍷bbbb" ] } + do + let input = "aCaB" + assertEqual' "parseErrorHuman ayebee" + { actual: parseErrorHuman input 20 $ fromLeft (ParseError "" initialPos) + $ runParser input do + _ <- char 'a' + b <- char 'b' <|> char 'B' + pure (b == 'B') + , expected: [ "Expected 'B' at position index:1 (line:1, column:2)", " ▼", input ] + } + log "\nTESTS recursion" do From 2251099b289f4e0556815454abd8ebfd1c4ccb79 Mon Sep 17 00:00:00 2001 From: James Brock Date: Sun, 12 Mar 2023 21:10:18 +0900 Subject: [PATCH 02/20] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c0dfdf0..48aaa07 100644 --- a/README.md +++ b/README.md @@ -166,7 +166,8 @@ There are lots of other great monadic parsing tutorials on the internet. ## Related Packages - [__`parsing-dataview`__](https://pursuit.purescript.org/packages/purescript-parsing-dataview) primitive parsers for binary parsing of `ArrayBuffer`. -- [__`datetime-parsing`__](https://pursuit.purescript.org/packages/purescript-datetime-parsing) for parsing dates and times. +- [__`datetime-parsing`__](https://pursuit.purescript.org/packages/purescript-datetime-parsing) parsers for dates and times. +- [__`formatters`__](https://pursuit.purescript.org/packages/purescript-formatters) parsers for dates and times and various other things. ## Documentation From accf9290bac9ae6125a17a2c4afe1df4fbc745e7 Mon Sep 17 00:00:00 2001 From: mstream Date: Sat, 29 Apr 2023 12:07:05 +0100 Subject: [PATCH 03/20] Makes "float" parser of GenTokenParser parse negative numbers. Resolves #115 --- CHANGELOG.md | 1 + src/Parsing/Token.purs | 9 ++++++--- test/Main.purs | 3 +++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 99db87c..aa272ed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ Notable changes to this project are documented in this file. The format is based ## [Unreleased] Bugfixes: +- `float` parser of `GenTokenParser` does not parse negative numbers (by @mstream) Breaking changes: diff --git a/src/Parsing/Token.purs b/src/Parsing/Token.purs index 347ff9f..08802c2 100644 --- a/src/Parsing/Token.purs +++ b/src/Parsing/Token.purs @@ -34,7 +34,7 @@ import Data.Int (toNumber) import Data.List (List(..)) import Data.List as List import Data.List.NonEmpty (NonEmptyList) -import Data.Maybe (Maybe(..), maybe) +import Data.Maybe (Maybe(..), fromMaybe, maybe) import Data.Number (pow) import Data.String (null, toLower) import Data.String.CodePoints (codePointFromChar) @@ -43,7 +43,7 @@ import Data.String.CodeUnits as SCU import Data.String.Unicode as Unicode import Data.Tuple (Tuple(..)) import Parsing (ParseState(..), ParserT, Position, consume, fail, getParserT, stateParserT) -import Parsing.Combinators (between, choice, notFollowedBy, option, sepBy, sepBy1, skipMany, skipMany1, try, tryRethrow, (), ()) +import Parsing.Combinators (between, choice, notFollowedBy, option, optionMaybe, sepBy, sepBy1, skipMany, skipMany1, try, tryRethrow, (), ()) import Parsing.String (char, satisfy, satisfyCodePoint, string) import Parsing.String.Basic (alphaNum, digit, hexDigit, letter, noneOf, octDigit, oneOf, space, upper) import Parsing.String.Basic as Basic @@ -608,7 +608,10 @@ makeTokenParser (LanguageDef languageDef) = -- floats floating :: ParserT String m Number - floating = decimal >>= fractExponent + floating = do + f <- fromMaybe identity <$> optionMaybe sign + x <- decimal >>= fractExponent + pure $ f x natFloat :: ParserT String m (Either Int Number) natFloat = char '0' *> zeroNumFloat diff --git a/test/Main.purs b/test/Main.purs index bdcb188..02ec89c 100644 --- a/test/Main.purs +++ b/test/Main.purs @@ -392,6 +392,9 @@ tokenParserFloatTest = do -- parse float parseTest "100.5" 100.5 testTokenParser.float + -- parse a negative float + parseTest "-100.5" (-100.5) testTokenParser.float + -- parse float with exponent parseTest "100e1" 1000.0 testTokenParser.float From d6dd52c9d32ee3d9fbad1c84cc6954ed70c3d076 Mon Sep 17 00:00:00 2001 From: mstream Date: Sat, 29 Apr 2023 12:48:32 +0100 Subject: [PATCH 04/20] Provide more sign-related tests for the `float` parser --- test/Main.purs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/Main.purs b/test/Main.purs index 02ec89c..a204298 100644 --- a/test/Main.purs +++ b/test/Main.purs @@ -392,6 +392,9 @@ tokenParserFloatTest = do -- parse float parseTest "100.5" 100.5 testTokenParser.float + -- parse float prefixed with a plus sign + parseTest "+100.5" 100.5 testTokenParser.float + -- parse a negative float parseTest "-100.5" (-100.5) testTokenParser.float @@ -401,6 +404,9 @@ tokenParserFloatTest = do -- parse float with exponent parseTest "100.5e1" 1005.0 testTokenParser.float + -- parse a negative float with exponent + parseTest "-100.5e1" (-1005.0) testTokenParser.float + -- fail on nonfloat parseErrorTestPosition testTokenParser.float "100.e1" $ mkPos 5 From 0dbfe47d5fdb599fc99b4fa95d844f8bc9e0ee1d Mon Sep 17 00:00:00 2001 From: Serhii Khoma Date: Sun, 29 Sep 2024 22:29:17 +0700 Subject: [PATCH 05/20] feat: tests -> IndentationTests -> add --- spago.lock | 1238 +++++++++++++++++++++++++++++++ spago.yaml | 38 + src/Parsing.purs | 4 + test/Test/IndentationTests.purs | 133 ++++ test/Test/Lib.purs | 57 ++ test/{ => Test}/Main.purs | 43 +- 6 files changed, 1486 insertions(+), 27 deletions(-) create mode 100644 spago.lock create mode 100644 spago.yaml create mode 100644 test/Test/IndentationTests.purs create mode 100644 test/Test/Lib.purs rename test/{ => Test}/Main.purs (97%) diff --git a/spago.lock b/spago.lock new file mode 100644 index 0000000..5bb3085 --- /dev/null +++ b/spago.lock @@ -0,0 +1,1238 @@ +workspace: + packages: + parsing: + path: ./ + core: + dependencies: + - arrays + - control + - effect + - either + - enums + - foldable-traversable + - functions + - identity + - integers + - lazy + - lists + - maybe + - newtype + - nullable + - numbers + - partial + - prelude + - st + - strings + - tailrec + - transformers + - tuples + - unfoldable + - unicode + - unsafe-coerce + build_plan: + - arrays + - bifunctors + - const + - contravariant + - control + - distributive + - effect + - either + - enums + - exceptions + - exists + - foldable-traversable + - functions + - functors + - gen + - identity + - integers + - invariant + - lazy + - lists + - maybe + - newtype + - nonempty + - nullable + - numbers + - orders + - partial + - prelude + - profunctor + - refs + - safe-coerce + - st + - strings + - tailrec + - transformers + - tuples + - type-equality + - unfoldable + - unicode + - unsafe-coerce + test: + dependencies: + - assert + - debug + - node-process + build_plan: + - aff + - arraybuffer-types + - arrays + - assert + - bifunctors + - console + - const + - contravariant + - control + - datetime + - debug + - distributive + - effect + - either + - enums + - exceptions + - exists + - foldable-traversable + - foreign + - foreign-object + - functions + - functors + - gen + - identity + - integers + - invariant + - lazy + - lists + - maybe + - newtype + - node-buffer + - node-event-emitter + - node-process + - node-streams + - nonempty + - nullable + - numbers + - ordered-collections + - orders + - parallel + - partial + - posix-types + - prelude + - profunctor + - refs + - safe-coerce + - st + - strings + - tailrec + - transformers + - tuples + - type-equality + - typelevel-prelude + - unfoldable + - unsafe-coerce + package_set: + address: + registry: 60.2.1 + compiler: ">=0.15.15 <0.16.0" + content: + abc-parser: 2.0.1 + ace: 9.1.0 + address-rfc2821: 0.1.1 + aff: 8.0.0 + aff-bus: 6.0.0 + aff-coroutines: 9.0.0 + aff-promise: 4.0.0 + aff-retry: 2.0.0 + affjax: 13.0.0 + affjax-node: 1.0.0 + affjax-web: 1.0.0 + ansi: 7.0.0 + apexcharts: 0.5.0 + applicative-phases: 1.0.0 + argonaut: 9.0.0 + argonaut-aeson-generic: 0.4.1 + argonaut-codecs: 9.1.0 + argonaut-core: 7.0.0 + argonaut-generic: 8.0.0 + argonaut-traversals: 10.0.0 + argparse-basic: 2.0.0 + array-builder: 0.1.2 + array-search: 0.6.0 + arraybuffer: 13.2.0 + arraybuffer-builder: 3.1.0 + arraybuffer-types: 3.0.2 + arrays: 7.3.0 + arrays-extra: 0.6.1 + arrays-zipper: 2.0.1 + ask: 1.0.0 + assert: 6.0.0 + assert-multiple: 0.4.0 + avar: 5.0.0 + b64: 0.0.8 + barbies: 1.0.1 + barlow-lens: 0.9.0 + bifunctors: 6.0.0 + bigints: 7.0.1 + bolson: 0.3.9 + bookhound: 0.1.7 + bower-json: 3.0.0 + call-by-name: 4.0.1 + canvas: 6.0.0 + canvas-action: 9.0.0 + cartesian: 1.0.6 + catenable-lists: 7.0.0 + cbor-stream: 1.3.0 + chameleon: 1.0.0 + chameleon-halogen: 1.0.3 + chameleon-react-basic: 1.1.0 + chameleon-styled: 2.5.0 + chameleon-transformers: 1.0.0 + channel: 1.0.0 + checked-exceptions: 3.1.1 + choku: 1.0.1 + classless: 0.1.1 + classless-arbitrary: 0.1.1 + classless-decode-json: 0.1.1 + classless-encode-json: 0.1.3 + classnames: 2.0.0 + codec: 6.1.0 + codec-argonaut: 10.0.0 + codec-json: 2.0.0 + colors: 7.0.1 + concur-core: 0.5.0 + concur-react: 0.5.0 + concurrent-queues: 3.0.0 + console: 6.1.0 + const: 6.0.0 + contravariant: 6.0.0 + control: 6.0.0 + convertable-options: 1.0.0 + coroutines: 7.0.0 + css: 6.0.0 + css-frameworks: 1.0.1 + csv-stream: 2.3.0 + data-mvc: 0.0.2 + datetime: 6.1.0 + datetime-parsing: 0.2.0 + debounce: 0.1.0 + debug: 6.0.2 + decimals: 7.1.0 + default-values: 1.0.1 + deku: 0.9.23 + deno: 0.0.5 + dissect: 1.0.0 + distributive: 6.0.0 + dom-filereader: 7.0.0 + dom-indexed: 12.0.0 + dom-simple: 0.4.0 + dotenv: 4.0.3 + droplet: 0.6.0 + dts: 1.0.0 + dual-numbers: 1.0.3 + dynamic-buffer: 3.0.1 + echarts-simple: 0.0.1 + effect: 4.0.0 + either: 6.1.0 + elmish: 0.13.0 + elmish-enzyme: 0.1.1 + elmish-hooks: 0.10.3 + elmish-html: 0.9.0 + elmish-testing-library: 0.3.2 + email-validate: 7.0.0 + encoding: 0.0.9 + enums: 6.0.1 + env-names: 0.4.0 + error: 2.0.0 + eta-conversion: 0.3.2 + exceptions: 6.1.0 + exists: 6.0.0 + exitcodes: 4.0.0 + expect-inferred: 3.0.0 + ezfetch: 1.0.0 + fahrtwind: 2.0.0 + fallback: 0.1.0 + fast-vect: 1.2.0 + fetch: 4.1.0 + fetch-argonaut: 1.0.1 + fetch-core: 5.1.0 + fetch-yoga-json: 1.1.0 + ffi-simple: 0.5.1 + fft-js: 0.1.0 + filterable: 5.0.0 + fix-functor: 0.1.0 + fixed-points: 7.0.0 + fixed-precision: 5.0.0 + flame: 1.3.0 + float32: 2.0.0 + fmt: 0.2.1 + foldable-traversable: 6.0.0 + foldable-traversable-extra: 0.0.6 + foreign: 7.0.0 + foreign-object: 4.1.0 + foreign-readwrite: 3.4.0 + forgetmenot: 0.1.0 + fork: 6.0.0 + form-urlencoded: 7.0.0 + formatters: 7.0.0 + framer-motion: 1.0.1 + free: 7.1.0 + freeap: 7.0.0 + freer-free: 0.0.1 + freet: 7.0.0 + functions: 6.0.0 + functor1: 3.0.0 + functors: 5.0.0 + fuzzy: 0.4.0 + gen: 4.0.0 + generate-values: 1.0.1 + generic-router: 0.0.1 + geojson: 0.0.5 + geometria: 2.2.0 + gojs: 0.1.1 + grain: 3.0.0 + grain-router: 3.0.0 + grain-virtualized: 3.0.0 + graphs: 8.1.0 + group: 4.1.1 + halogen: 7.0.0 + halogen-bootstrap5: 5.3.2 + halogen-canvas: 1.0.0 + halogen-css: 10.0.0 + halogen-echarts-simple: 0.0.4 + halogen-formless: 4.0.3 + halogen-helix: 1.0.1 + halogen-hooks: 0.6.3 + halogen-hooks-extra: 0.9.0 + halogen-infinite-scroll: 1.1.0 + halogen-store: 0.5.4 + halogen-storybook: 2.0.0 + halogen-subscriptions: 2.0.0 + halogen-svg-elems: 8.0.0 + halogen-typewriter: 1.0.4 + halogen-vdom: 8.0.0 + halogen-vdom-string-renderer: 0.5.0 + halogen-xterm: 2.0.0 + heckin: 2.0.1 + heterogeneous: 0.6.0 + homogeneous: 0.4.0 + http-methods: 6.0.0 + httpurple: 4.0.0 + huffman: 0.4.0 + humdrum: 0.0.1 + hyrule: 2.3.8 + identity: 6.0.0 + identy: 4.0.1 + indexed-db: 1.0.0 + indexed-monad: 3.0.0 + int64: 3.0.0 + integers: 6.0.0 + interpolate: 5.0.2 + intersection-observer: 1.0.1 + invariant: 6.0.0 + jarilo: 1.0.1 + jelly: 0.10.0 + jelly-router: 0.3.0 + jelly-signal: 0.4.0 + jest: 1.0.0 + js-abort-controller: 1.0.0 + js-bigints: 2.2.1 + js-date: 8.0.0 + js-fetch: 0.2.1 + js-fileio: 3.0.0 + js-intl: 1.0.4 + js-iterators: 0.1.1 + js-maps: 0.1.2 + js-promise: 1.0.0 + js-promise-aff: 1.0.0 + js-timers: 6.1.0 + js-uri: 3.1.0 + json: 1.1.0 + json-codecs: 5.0.0 + justifill: 0.5.0 + jwt: 0.0.9 + labeled-data: 0.2.0 + language-cst-parser: 0.14.0 + lazy: 6.0.0 + lazy-joe: 1.0.0 + lcg: 4.0.0 + leibniz: 5.0.0 + leveldb: 1.0.1 + liminal: 1.0.1 + linalg: 6.0.0 + lists: 7.0.0 + literals: 1.0.2 + logging: 3.0.0 + logging-journald: 0.4.0 + lumi-components: 18.0.0 + machines: 7.0.0 + maps-eager: 0.5.0 + marionette: 1.0.0 + marionette-react-basic-hooks: 0.1.1 + marked: 0.1.0 + matrices: 5.0.1 + matryoshka: 1.0.0 + maybe: 6.0.0 + media-types: 6.0.0 + meowclient: 1.0.0 + midi: 4.0.0 + milkis: 9.0.0 + minibench: 4.0.1 + mmorph: 7.0.0 + monad-control: 5.0.0 + monad-logger: 1.3.1 + monad-loops: 0.5.0 + monad-unlift: 1.0.1 + monoid-extras: 0.0.1 + monoidal: 0.16.0 + morello: 0.4.0 + mote: 3.0.0 + motsunabe: 2.0.0 + mvc: 0.0.1 + mysql: 6.0.1 + n3: 0.1.0 + nano-id: 1.1.0 + nanoid: 0.1.0 + naturals: 3.0.0 + nested-functor: 0.2.1 + newtype: 5.0.0 + nextjs: 0.1.1 + nextui: 0.2.0 + node-buffer: 9.0.0 + node-child-process: 11.1.0 + node-event-emitter: 3.0.0 + node-execa: 5.0.0 + node-fs: 9.2.0 + node-glob-basic: 1.3.0 + node-http: 9.1.0 + node-http2: 1.1.1 + node-human-signals: 1.0.0 + node-net: 5.1.0 + node-os: 5.1.0 + node-path: 5.0.0 + node-process: 11.2.0 + node-readline: 8.1.1 + node-sqlite3: 8.0.0 + node-stream-pipes: 2.1.6 + node-streams: 9.0.0 + node-tls: 0.3.1 + node-url: 7.0.1 + node-zlib: 0.4.0 + nonempty: 7.0.0 + now: 6.0.0 + npm-package-json: 2.0.0 + nullable: 6.0.0 + numberfield: 0.2.2 + numbers: 9.0.1 + oak: 3.1.1 + oak-debug: 1.2.2 + object-maps: 0.3.0 + ocarina: 1.5.4 + oooooooooorrrrrrrmm-lib: 0.0.1 + open-folds: 6.4.0 + open-foreign-generic: 11.0.3 + open-memoize: 6.2.0 + open-mkdirp-aff: 1.2.0 + open-pairing: 6.2.0 + open-smolder: 12.0.2 + options: 7.0.0 + optparse: 5.0.1 + ordered-collections: 3.2.0 + ordered-set: 0.4.0 + orders: 6.0.0 + owoify: 1.2.0 + pairs: 9.0.1 + parallel: 7.0.0 + parsing: 10.2.0 + parsing-dataview: 3.2.4 + partial: 4.0.0 + pathy: 9.0.0 + pha: 0.13.0 + phaser: 0.7.0 + phylio: 1.1.2 + pipes: 8.0.0 + pirates-charm: 0.0.1 + pmock: 0.9.0 + point-free: 1.0.0 + pointed-list: 0.5.1 + polymorphic-vectors: 4.0.0 + posix-types: 6.0.0 + postgresql: 2.0.19 + precise: 6.0.0 + precise-datetime: 7.0.0 + prelude: 6.0.1 + prettier-printer: 3.0.0 + priority-queue: 0.1.2 + profunctor: 6.0.1 + profunctor-lenses: 8.0.0 + protobuf: 4.3.0 + psa-utils: 8.0.0 + psci-support: 6.0.0 + punycode: 1.0.0 + qualified-do: 2.2.0 + quantities: 12.2.0 + quickcheck: 8.0.1 + quickcheck-combinators: 0.1.3 + quickcheck-laws: 7.0.0 + quickcheck-utf8: 0.0.0 + random: 6.0.0 + rationals: 6.0.0 + rdf: 0.1.0 + react: 11.0.0 + react-aria: 0.2.0 + react-basic: 17.0.0 + react-basic-classic: 3.0.0 + react-basic-dnd: 10.1.0 + react-basic-dom: 6.1.0 + react-basic-emotion: 7.1.0 + react-basic-hooks: 8.2.0 + react-basic-storybook: 2.0.0 + react-dom: 8.0.0 + react-halo: 3.0.0 + react-icons: 1.1.5 + react-markdown: 0.1.0 + react-testing-library: 4.0.1 + react-virtuoso: 1.0.0 + reactix: 0.6.1 + read: 1.0.1 + recharts: 1.1.0 + record: 4.0.0 + record-extra: 5.0.1 + record-ptional-fields: 0.1.2 + record-studio: 1.0.4 + refs: 6.0.0 + remotedata: 5.0.1 + repr: 0.5.0 + resize-observer: 1.0.0 + resource: 2.0.1 + resourcet: 1.0.0 + result: 1.0.3 + return: 0.2.0 + ring-modules: 5.0.1 + rito: 0.3.4 + roman: 0.4.0 + rough-notation: 1.0.2 + routing: 11.0.0 + routing-duplex: 0.7.0 + run: 5.0.0 + safe-coerce: 2.0.0 + safely: 4.0.1 + school-of-music: 1.3.0 + selection-foldable: 0.2.0 + selective-functors: 1.0.1 + semirings: 7.0.0 + signal: 13.0.0 + simple-emitter: 3.0.1 + simple-i18n: 2.0.1 + simple-json: 9.0.0 + simple-json-generics: 0.2.1 + simple-ulid: 3.0.0 + sized-matrices: 1.0.0 + sized-vectors: 5.0.2 + slug: 3.1.0 + small-ffi: 4.0.1 + soundfonts: 4.1.0 + sparse-matrices: 2.0.1 + sparse-polynomials: 3.0.1 + spec: 8.0.0 + spec-discovery: 8.3.0 + spec-mocha: 5.1.1 + spec-node: 0.0.2 + spec-quickcheck: 5.0.2 + spec-reporter-xunit: 0.7.1 + splitmix: 2.1.0 + ssrs: 1.0.0 + st: 6.2.0 + statistics: 0.3.2 + strictlypositiveint: 1.0.1 + string-parsers: 8.0.0 + strings: 6.0.1 + strings-extra: 4.0.0 + stringutils: 0.0.12 + substitute: 0.2.3 + supply: 0.2.0 + svg-parser: 3.0.0 + systemd-journald: 0.3.0 + tagged: 4.0.2 + tailrec: 6.1.0 + tecton: 0.2.1 + tecton-halogen: 0.2.0 + test-unit: 17.0.0 + thermite: 6.3.1 + thermite-dom: 0.3.1 + these: 6.0.0 + threading: 0.0.3 + tldr: 0.0.0 + toestand: 0.9.0 + transformation-matrix: 1.0.1 + transformers: 6.1.0 + tree-rose: 4.0.2 + ts-bridge: 4.0.0 + tuples: 7.0.0 + two-or-more: 1.0.0 + type-equality: 4.0.1 + typedenv: 2.0.1 + typelevel: 6.0.0 + typelevel-lists: 2.1.0 + typelevel-peano: 1.0.1 + typelevel-prelude: 7.0.0 + typelevel-regex: 0.0.3 + typelevel-rows: 0.1.0 + typisch: 0.4.0 + uint: 7.0.0 + ulid: 3.0.1 + uncurried-transformers: 1.1.0 + undefined: 2.0.0 + undefined-is-not-a-problem: 1.1.0 + unfoldable: 6.0.0 + unicode: 6.0.0 + unique: 0.6.1 + unlift: 1.0.1 + unordered-collections: 3.1.0 + unsafe-coerce: 6.0.0 + unsafe-reference: 5.0.0 + untagged-to-tagged: 0.1.4 + untagged-union: 1.0.0 + uri: 9.0.0 + url-immutable: 1.0.0 + uuid: 9.0.0 + uuidv4: 1.0.0 + validation: 6.0.0 + variant: 8.0.0 + variant-encodings: 2.0.0 + vectorfield: 1.0.1 + vectors: 2.1.0 + versions: 7.0.0 + visx: 0.0.2 + web-clipboard: 6.0.0 + web-cssom: 2.0.0 + web-cssom-view: 0.1.0 + web-dom: 6.0.0 + web-dom-parser: 8.0.0 + web-dom-xpath: 3.0.0 + web-encoding: 3.0.0 + web-events: 4.0.0 + web-fetch: 4.0.1 + web-file: 4.0.0 + web-geometry: 0.1.0 + web-html: 4.1.0 + web-pointerevents: 2.0.0 + web-proletarian: 1.0.0 + web-promise: 3.2.0 + web-resize-observer: 2.1.0 + web-router: 1.0.0 + web-socket: 4.0.0 + web-storage: 5.0.0 + web-streams: 4.0.0 + web-touchevents: 4.0.0 + web-uievents: 5.0.0 + web-url: 2.0.0 + web-workers: 1.1.0 + web-xhr: 5.0.1 + webextension-polyfill: 0.1.0 + webgpu: 0.0.1 + which: 2.0.0 + xterm: 1.0.0 + yoga-fetch: 1.0.1 + yoga-json: 5.1.0 + yoga-om: 0.1.0 + yoga-postgres: 6.0.0 + yoga-tree: 1.0.0 + z3: 0.0.2 + zipperarray: 2.0.0 + extra_packages: {} +packages: + aff: + type: registry + version: 8.0.0 + integrity: sha256-5MmdI4+0RHBtSBy+YlU3/Cq4R5W2ih3OaRedJIrVHdk= + dependencies: + - bifunctors + - control + - datetime + - effect + - either + - exceptions + - foldable-traversable + - functions + - maybe + - newtype + - parallel + - prelude + - refs + - tailrec + - transformers + - unsafe-coerce + arraybuffer-types: + type: registry + version: 3.0.2 + integrity: sha256-mQKokysYVkooS4uXbO+yovmV/s8b138Ws3zQvOwIHRA= + dependencies: [] + arrays: + type: registry + version: 7.3.0 + integrity: sha256-tmcklBlc/muUtUfr9RapdCPwnlQeB3aSrC4dK85gQlc= + dependencies: + - bifunctors + - control + - foldable-traversable + - functions + - maybe + - nonempty + - partial + - prelude + - safe-coerce + - st + - tailrec + - tuples + - unfoldable + - unsafe-coerce + assert: + type: registry + version: 6.0.0 + integrity: sha256-hCSYcCw9kj3qujoDcriWhCdmrpPZoguSPDZhEMnTl3A= + dependencies: + - console + - effect + - prelude + bifunctors: + type: registry + version: 6.0.0 + integrity: sha256-/gZwC9YhNxZNQpnHa5BIYerCGM2jeX9ukZiEvYxm5Nw= + dependencies: + - const + - either + - newtype + - prelude + - tuples + console: + type: registry + version: 6.1.0 + integrity: sha256-CxmAzjgyuGDmt9FZW51VhV6rBPwR6o0YeKUzA9rSzcM= + dependencies: + - effect + - prelude + const: + type: registry + version: 6.0.0 + integrity: sha256-tNrxDW8D8H4jdHE2HiPzpLy08zkzJMmGHdRqt5BQuTc= + dependencies: + - invariant + - newtype + - prelude + contravariant: + type: registry + version: 6.0.0 + integrity: sha256-TP+ooAp3vvmdjfQsQJSichF5B4BPDHp3wAJoWchip6c= + dependencies: + - const + - either + - newtype + - prelude + - tuples + control: + type: registry + version: 6.0.0 + integrity: sha256-sH7Pg9E96JCPF9PIA6oQ8+BjTyO/BH1ZuE/bOcyj4Jk= + dependencies: + - newtype + - prelude + datetime: + type: registry + version: 6.1.0 + integrity: sha256-g/5X5BBegQWLpI9IWD+sY6mcaYpzzlW5lz5NBzaMtyI= + dependencies: + - bifunctors + - control + - either + - enums + - foldable-traversable + - functions + - gen + - integers + - lists + - maybe + - newtype + - numbers + - ordered-collections + - partial + - prelude + - tuples + debug: + type: registry + version: 6.0.2 + integrity: sha256-vmkYFuXYuELBzeauvgHG6E6Kf/Hp1dAnxwE9ByHfwSg= + dependencies: + - functions + - prelude + distributive: + type: registry + version: 6.0.0 + integrity: sha256-HTDdmEnzigMl+02SJB88j+gAXDx9VKsbvR4MJGDPbOQ= + dependencies: + - identity + - newtype + - prelude + - tuples + - type-equality + effect: + type: registry + version: 4.0.0 + integrity: sha256-eBtZu+HZcMa5HilvI6kaDyVX3ji8p0W9MGKy2K4T6+M= + dependencies: + - prelude + either: + type: registry + version: 6.1.0 + integrity: sha256-6hgTPisnMWVwQivOu2PKYcH8uqjEOOqDyaDQVUchTpY= + dependencies: + - control + - invariant + - maybe + - prelude + enums: + type: registry + version: 6.0.1 + integrity: sha256-HWaD73JFLorc4A6trKIRUeDMdzE+GpkJaEOM1nTNkC8= + dependencies: + - control + - either + - gen + - maybe + - newtype + - nonempty + - partial + - prelude + - tuples + - unfoldable + exceptions: + type: registry + version: 6.1.0 + integrity: sha256-K0T89IHtF3vBY7eSAO7eDOqSb2J9kZGAcDN5+IKsF8E= + dependencies: + - effect + - either + - maybe + - prelude + exists: + type: registry + version: 6.0.0 + integrity: sha256-A0JQHpTfo1dNOj9U5/Fd3xndlRSE0g2IQWOGor2yXn8= + dependencies: + - unsafe-coerce + foldable-traversable: + type: registry + version: 6.0.0 + integrity: sha256-fLeqRYM4jUrZD5H4WqcwUgzU7XfYkzO4zhgtNc3jcWM= + dependencies: + - bifunctors + - const + - control + - either + - functors + - identity + - maybe + - newtype + - orders + - prelude + - tuples + foreign: + type: registry + version: 7.0.0 + integrity: sha256-1ORiqoS3HW+qfwSZAppHPWy4/6AQysxZ2t29jcdUMNA= + dependencies: + - either + - functions + - identity + - integers + - lists + - maybe + - prelude + - strings + - transformers + foreign-object: + type: registry + version: 4.1.0 + integrity: sha256-q24okj6mT+yGHYQ+ei/pYPj5ih6sTbu7eDv/WU56JVo= + dependencies: + - arrays + - foldable-traversable + - functions + - gen + - lists + - maybe + - prelude + - st + - tailrec + - tuples + - typelevel-prelude + - unfoldable + functions: + type: registry + version: 6.0.0 + integrity: sha256-adMyJNEnhGde2unHHAP79gPtlNjNqzgLB8arEOn9hLI= + dependencies: + - prelude + functors: + type: registry + version: 5.0.0 + integrity: sha256-zfPWWYisbD84MqwpJSZFlvM6v86McM68ob8p9s27ywU= + dependencies: + - bifunctors + - const + - contravariant + - control + - distributive + - either + - invariant + - maybe + - newtype + - prelude + - profunctor + - tuples + - unsafe-coerce + gen: + type: registry + version: 4.0.0 + integrity: sha256-f7yzAXWwr+xnaqEOcvyO3ezKdoes8+WXWdXIHDBCAPI= + dependencies: + - either + - foldable-traversable + - identity + - maybe + - newtype + - nonempty + - prelude + - tailrec + - tuples + - unfoldable + identity: + type: registry + version: 6.0.0 + integrity: sha256-4wY0XZbAksjY6UAg99WkuKyJlQlWAfTi2ssadH0wVMY= + dependencies: + - control + - invariant + - newtype + - prelude + integers: + type: registry + version: 6.0.0 + integrity: sha256-sf+sK26R1hzwl3NhXR7WAu9zCDjQnfoXwcyGoseX158= + dependencies: + - maybe + - numbers + - prelude + invariant: + type: registry + version: 6.0.0 + integrity: sha256-RGWWyYrz0Hs1KjPDA+87Kia67ZFBhfJ5lMGOMCEFoLo= + dependencies: + - control + - prelude + lazy: + type: registry + version: 6.0.0 + integrity: sha256-lMsfFOnlqfe4KzRRiW8ot5ge6HtcU3Eyh2XkXcP5IgU= + dependencies: + - control + - foldable-traversable + - invariant + - prelude + lists: + type: registry + version: 7.0.0 + integrity: sha256-EKF15qYqucuXP2lT/xPxhqy58f0FFT6KHdIB/yBOayI= + dependencies: + - bifunctors + - control + - foldable-traversable + - lazy + - maybe + - newtype + - nonempty + - partial + - prelude + - tailrec + - tuples + - unfoldable + maybe: + type: registry + version: 6.0.0 + integrity: sha256-5cCIb0wPwbat2PRkQhUeZO0jcAmf8jCt2qE0wbC3v2Q= + dependencies: + - control + - invariant + - newtype + - prelude + newtype: + type: registry + version: 5.0.0 + integrity: sha256-gdrQu8oGe9eZE6L3wOI8ql/igOg+zEGB5ITh2g+uttw= + dependencies: + - prelude + - safe-coerce + node-buffer: + type: registry + version: 9.0.0 + integrity: sha256-PWE2DJ5ruBLCmeA/fUiuySEFmUJ/VuRfyrnCuVZBlu4= + dependencies: + - arraybuffer-types + - effect + - maybe + - nullable + - st + - unsafe-coerce + node-event-emitter: + type: registry + version: 3.0.0 + integrity: sha256-Qw0MjsT4xRH2j2i4K8JmRjcMKnH5z1Cw39t00q4LE4w= + dependencies: + - effect + - either + - functions + - maybe + - nullable + - prelude + - unsafe-coerce + node-process: + type: registry + version: 11.2.0 + integrity: sha256-+2MQDYChjGbVbapCyJtuWYwD41jk+BntF/kcOTKBMVs= + dependencies: + - effect + - foreign + - foreign-object + - maybe + - node-event-emitter + - node-streams + - posix-types + - prelude + - unsafe-coerce + node-streams: + type: registry + version: 9.0.0 + integrity: sha256-2n6dq7YWleTDmD1Kur/ul7Cn08IvWrScgPf+0PgX2TQ= + dependencies: + - aff + - effect + - either + - exceptions + - node-buffer + - node-event-emitter + - nullable + - prelude + nonempty: + type: registry + version: 7.0.0 + integrity: sha256-54ablJZUHGvvlTJzi3oXyPCuvY6zsrWJuH/dMJ/MFLs= + dependencies: + - control + - foldable-traversable + - maybe + - prelude + - tuples + - unfoldable + nullable: + type: registry + version: 6.0.0 + integrity: sha256-yiGBVl3AD+Guy4kNWWeN+zl1gCiJK+oeIFtZtPCw4+o= + dependencies: + - effect + - functions + - maybe + numbers: + type: registry + version: 9.0.1 + integrity: sha256-/9M6aeMDBdB4cwYDeJvLFprAHZ49EbtKQLIJsneXLIk= + dependencies: + - functions + - maybe + ordered-collections: + type: registry + version: 3.2.0 + integrity: sha256-o9jqsj5rpJmMdoe/zyufWHFjYYFTTsJpgcuCnqCO6PM= + dependencies: + - arrays + - foldable-traversable + - gen + - lists + - maybe + - partial + - prelude + - st + - tailrec + - tuples + - unfoldable + orders: + type: registry + version: 6.0.0 + integrity: sha256-nBA0g3/ai0euH8q9pSbGqk53W2q6agm/dECZTHcoink= + dependencies: + - newtype + - prelude + parallel: + type: registry + version: 7.0.0 + integrity: sha256-gUC9i4Txnx9K9RcMLsjujbwZz6BB1bnE2MLvw4GIw5o= + dependencies: + - control + - effect + - either + - foldable-traversable + - functors + - maybe + - newtype + - prelude + - profunctor + - refs + - transformers + partial: + type: registry + version: 4.0.0 + integrity: sha256-fwXerld6Xw1VkReh8yeQsdtLVrjfGiVuC5bA1Wyo/J4= + dependencies: [] + posix-types: + type: registry + version: 6.0.0 + integrity: sha256-ZfFz8RR1lee/o/Prccyeut3Q+9tYd08mlR72sIh6GzA= + dependencies: + - maybe + - prelude + prelude: + type: registry + version: 6.0.1 + integrity: sha256-o8p6SLYmVPqzXZhQFd2hGAWEwBoXl1swxLG/scpJ0V0= + dependencies: [] + profunctor: + type: registry + version: 6.0.1 + integrity: sha256-E58hSYdJvF2Qjf9dnWLPlJKh2Z2fLfFLkQoYi16vsFk= + dependencies: + - control + - distributive + - either + - exists + - invariant + - newtype + - prelude + - tuples + refs: + type: registry + version: 6.0.0 + integrity: sha256-Vgwne7jIbD3ZMoLNNETLT8Litw6lIYo3MfYNdtYWj9s= + dependencies: + - effect + - prelude + safe-coerce: + type: registry + version: 2.0.0 + integrity: sha256-a1ibQkiUcbODbLE/WAq7Ttbbh9ex+x33VCQ7GngKudU= + dependencies: + - unsafe-coerce + st: + type: registry + version: 6.2.0 + integrity: sha256-z9X0WsOUlPwNx9GlCC+YccCyz8MejC8Wb0C4+9fiBRY= + dependencies: + - partial + - prelude + - tailrec + - unsafe-coerce + strings: + type: registry + version: 6.0.1 + integrity: sha256-WssD3DbX4OPzxSdjvRMX0yvc9+pS7n5gyPv5I2Trb7k= + dependencies: + - arrays + - control + - either + - enums + - foldable-traversable + - gen + - integers + - maybe + - newtype + - nonempty + - partial + - prelude + - tailrec + - tuples + - unfoldable + - unsafe-coerce + tailrec: + type: registry + version: 6.1.0 + integrity: sha256-Xx19ECVDRrDWpz9D2GxQHHV89vd61dnXxQm0IcYQHGk= + dependencies: + - bifunctors + - effect + - either + - identity + - maybe + - partial + - prelude + - refs + transformers: + type: registry + version: 6.1.0 + integrity: sha256-3Bm+Z6tsC/paG888XkywDngJ2JMos+JfOhRlkVfb7gI= + dependencies: + - control + - distributive + - effect + - either + - exceptions + - foldable-traversable + - identity + - lazy + - maybe + - newtype + - prelude + - st + - tailrec + - tuples + - unfoldable + tuples: + type: registry + version: 7.0.0 + integrity: sha256-1rXgTomes9105BjgXqIw0FL6Fz1lqqUTLWOumhWec1M= + dependencies: + - control + - invariant + - prelude + type-equality: + type: registry + version: 4.0.1 + integrity: sha256-Hs9D6Y71zFi/b+qu5NSbuadUQXe5iv5iWx0226vOHUw= + dependencies: [] + typelevel-prelude: + type: registry + version: 7.0.0 + integrity: sha256-uFF2ph+vHcQpfPuPf2a3ukJDFmLhApmkpTMviHIWgJM= + dependencies: + - prelude + - type-equality + unfoldable: + type: registry + version: 6.0.0 + integrity: sha256-JtikvJdktRap7vr/K4ITlxUX1QexpnqBq0G/InLr6eg= + dependencies: + - foldable-traversable + - maybe + - partial + - prelude + - tuples + unicode: + type: registry + version: 6.0.0 + integrity: sha256-QJnTVZpmihEAUiMeYrfkusVoziJWp2hJsgi9bMQLue8= + dependencies: + - foldable-traversable + - maybe + - strings + unsafe-coerce: + type: registry + version: 6.0.0 + integrity: sha256-IqIYW4Vkevn8sI+6aUwRGvd87tVL36BBeOr0cGAE7t0= + dependencies: [] diff --git a/spago.yaml b/spago.yaml new file mode 100644 index 0000000..2611d55 --- /dev/null +++ b/spago.yaml @@ -0,0 +1,38 @@ +package: + name: parsing + dependencies: + - arrays + - control + - effect + - either + - enums + - foldable-traversable + - functions + - identity + - integers + - lazy + - lists + - maybe + - newtype + - nullable + - numbers + - partial + - prelude + - st + - strings + - tailrec + - transformers + - tuples + - unfoldable + - unicode + - unsafe-coerce + test: + main: Test.Main + dependencies: + - assert + - node-process + - debug +workspace: + extraPackages: {} + packageSet: + registry: 60.2.1 diff --git a/src/Parsing.purs b/src/Parsing.purs index ffff1b1..11e0d67 100644 --- a/src/Parsing.purs +++ b/src/Parsing.purs @@ -28,6 +28,7 @@ module Parsing , getParserT , hoistParserT , mapParserT + , eqPositionFull ) where import Prelude @@ -464,6 +465,9 @@ instance Show Position where instance Eq Position where eq (Position l) (Position r) = l.index == r.index +eqPositionFull :: Position -> Position -> Boolean +eqPositionFull (Position l) (Position r) = l.index == r.index && l.line == r.line && l.column == r.column + instance Ord Position where compare (Position l) (Position r) = compare l.index r.index diff --git a/test/Test/IndentationTests.purs b/test/Test/IndentationTests.purs new file mode 100644 index 0000000..6e0592b --- /dev/null +++ b/test/Test/IndentationTests.purs @@ -0,0 +1,133 @@ +module Test.IndentationTests where + +import Parsing.Indent (IndentParser, checkIndent, indentParens, indented, runIndent, withPos) +import Prelude (class Eq, class Show, Unit, bind, discard, pure, void, ($), (*>), (<$>), (<*), (<<<)) +import Test.Lib (class ParseErrorHuman__OnlyString, TestM, mkParseErrorTestMessage, mkParseErrorTestPosition, mkParseErrorTestPositionAndMessage, mkParseTest) + +import Control.Alt ((<|>)) +import Data.Array as Array +import Data.Array.NonEmpty as NonEmpty +import Data.Generic.Rep (class Generic) +import Data.List (fromFoldable) +import Data.Show.Generic (genericShow) +import Data.String (joinWith) +import Data.String.CodeUnits (fromCharArray) +import Effect (Effect) +import Parsing (Position(..), runParserT) +import Parsing.Combinators (many, sepBy) +import Parsing.Combinators.Array as Combinators.Array +import Parsing.Indent as Indent +import Parsing.String (char, eof, string) +import Parsing.String.Basic (alphaNum, intDecimal, skipSpaces) + +parseTest :: forall s a. Show a => Eq a => ParseErrorHuman__OnlyString s => s -> a -> IndentParser s a -> Effect Unit +parseTest = mkParseTest (\input -> runIndent <<< runParserT input) + +parseErrorTestPosition :: forall s a. Show a => IndentParser s a -> s -> Position -> Effect Unit +parseErrorTestPosition = mkParseErrorTestPosition (\input -> runIndent <<< runParserT input) + +parseErrorTestMessage :: forall s a. Show a => IndentParser s a -> s -> String -> Effect Unit +parseErrorTestMessage = mkParseErrorTestMessage (\input -> runIndent <<< runParserT input) + +parseErrorTestPositionAndMessage :: forall s a. Show a => IndentParser s a -> s -> String -> Position -> Effect Unit +parseErrorTestPositionAndMessage = mkParseErrorTestPositionAndMessage (\input -> runIndent <<< runParserT input) + +-- test from https://github.com/jaspervdj/indents/blob/f9e10707c1fe91d7c1aa2dbaf9fb107e146255da/tests/Text/Parsec/Indent/Tests.hs#L12 +data Taxonomy = Taxonomy String (Array Taxonomy) + +derive instance Generic Taxonomy _ +derive instance Eq Taxonomy +instance Show Taxonomy where + show x = genericShow x + +-- | NOTE: skipSpaces will skip " \n " in +-- | ```purs +-- | [ "k \n" +-- | , " a1 \n" +-- | ... +-- | ``` +pTerm :: IndentParser String String +pTerm = ((fromCharArray <$> NonEmpty.toArray) <$> Combinators.Array.many1 alphaNum) <* skipSpaces + +pTaxonomy :: IndentParser String Taxonomy +pTaxonomy = withPos $ do + term <- pTerm + subs <- many $ Indent.indented *> pTaxonomy + pure $ Taxonomy term (Array.fromFoldable subs) + +testIndentationParser :: TestM +testIndentationParser = do + parseTest + ( joinWith "\n" + [ "k \n" + , " a1 \n" + , " a2 \n" + , " b1 \n" + , " a3 \n" + , " haha \n" + , " it \n" + , " works \n" + , " " + ] + ) + ( Taxonomy "k" + [ Taxonomy "a1" [] + , Taxonomy "a2" + [ Taxonomy "b1" [] + ] + , Taxonomy "a3" + [ Taxonomy "haha" [] + , Taxonomy "it" [] + , Taxonomy "works" [] + ] + ] + ) + (pTaxonomy <* eof) + + -- Testing function 'indented' + parseTest "111\n 222\n 333" { x: 111, y: 222, z: 333 } do + x <- intDecimal + void $ string "\n " + indented *> withPos do + checkIndent + y <- intDecimal + void $ string "\n " + indented *> withPos do + checkIndent + z <- intDecimal + eof + pure { x, y, z } + + parseErrorTestPositionAndMessage (do + x <- intDecimal + void $ string "\n " + indented *> withPos do + checkIndent -- This should pass. + y <- intDecimal + void $ string "\n" + indented *> withPos do -- indented should fail + z <- intDecimal + eof + pure { x, y, z } + ) + "111\n 222\n333" + """not indented""" + (Position { column: 1, index: 10, line: 3 }) + + -- Testing function 'indentParens' + parseTest "(1,2,3)" (fromFoldable ["1", "2", "3"]) $ + indentParens $ sepBy (string "1" <|> string "2" <|> string "3") (char ',') + + -- doesnt work, dont understand idea of this method + -- parseTest """(\n 1,\n 2,\n 3)""" (fromFoldable ["1", "2", "3"]) $ + -- indentParens $ sepBy (string "1" <|> string "2" <|> string "3") (char ',') + -- + -- parseTest """(1,\n 2,\n 3)""" (fromFoldable ["1", "2", "3"]) $ + -- indentParens $ sepBy (string "1" <|> string "2" <|> string "3") (char ',') + + parseErrorTestPositionAndMessage + (indentParens $ sepBy (string "1" <|> string "2" <|> string "3") (char ',')) + "(1, 2,3)" + """Expected "3"""" + (Position { column: 4, index: 3, line: 1 }) + diff --git a/test/Test/Lib.purs b/test/Test/Lib.purs new file mode 100644 index 0000000..91aad88 --- /dev/null +++ b/test/Test/Lib.purs @@ -0,0 +1,57 @@ +module Test.Lib where + +import Prelude hiding (between, when) + +import Data.Either (Either(..)) +import Data.String (joinWith) +import Effect (Effect) +import Effect.Console (logShow) +import Parsing (ParseError, ParserT, Position, eqPositionFull, parseErrorMessage, parseErrorPosition) +import Parsing.String (parseErrorHuman) +import Test.Assert (assert') + +type TestM = Effect Unit + +-- For pretty printing error if input is string, but print nothing if input is not string +class ParseErrorHuman__OnlyString s where + parseErrorHuman__onlyString :: s -> Int -> ParseError -> Array String + +instance ParseErrorHuman__OnlyString String where + parseErrorHuman__onlyString = parseErrorHuman +else instance ParseErrorHuman__OnlyString a where + parseErrorHuman__onlyString _ _ _ = [] + +-- | Generalized version of `mkParseTest` that works with any input type +mkParseTest :: forall s a m. Show a => Eq a => ParseErrorHuman__OnlyString s => (s -> ParserT s m a -> Either ParseError a) -> s -> a -> ParserT s m a -> Effect Unit +mkParseTest runParser input expected p = case runParser input p of + Right actual -> do + assert' ("expected output: " <> show expected <> ", actual output: " <> show actual) (expected == actual) + logShow actual + Left err -> assert' (joinWith "\n" $ ["error: " <> show err] <> parseErrorHuman__onlyString input 60 err) false + +mkParseErrorTestPosition :: forall s a m. Show a => (s -> ParserT s m a -> Either ParseError a) -> ParserT s m a -> s -> Position -> Effect Unit +mkParseErrorTestPosition runParser p input expected = case runParser input p of + Right x -> assert' ("ParseError expected at " <> show expected <> " but parsed " <> show x) false + Left err -> do + let pos = parseErrorPosition err + assert' ("expected position: " <> show expected <> ", actual position: " <> show pos) (eqPositionFull expected pos) + logShow expected + +mkParseErrorTestMessage :: forall s a m. Show a => (s -> ParserT s m a -> Either ParseError a) -> ParserT s m a -> s -> String -> Effect Unit +mkParseErrorTestMessage runParser p input expected = case runParser input p of + Right x -> assert' ("ParseError expected '" <> expected <> "' but parsed " <> show x) false + Left err -> do + let msg = parseErrorMessage err + assert' ("expected message: " <> expected <> ", actual message: " <> msg) (expected == msg) + logShow expected + +mkParseErrorTestPositionAndMessage :: forall s a m. Show a => (s -> ParserT s m a -> Either ParseError a) -> ParserT s m a -> s -> String -> Position -> Effect Unit +mkParseErrorTestPositionAndMessage runParser p input expectedMessage expectedPosition = case runParser input p of + Right x -> assert' ("ParseError '" <> expectedMessage <> "' expected at " <> show expectedPosition <> " but parsed " <> show x) false + Left err -> do + let pos = parseErrorPosition err + let msg = parseErrorMessage err + assert' ("expected position: " <> show expectedPosition <> ", actual position: " <> show pos) (eqPositionFull expectedPosition pos) + assert' ("expected message: " <> expectedMessage <> ", actual message: " <> msg) (expectedMessage == msg) + logShow expectedMessage + logShow expectedPosition diff --git a/test/Main.purs b/test/Test/Main.purs similarity index 97% rename from test/Main.purs rename to test/Test/Main.purs index a204298..e2c0e23 100644 --- a/test/Main.purs +++ b/test/Test/Main.purs @@ -5,7 +5,7 @@ module Test.Main where -import Prelude hiding (between, when) +import Prelude (class Eq, class Show, Unit, append, bind, const, discard, div, flip, identity, map, negate, pure, show, unit, void, ($), ($>), (*), (*>), (+), (-), (/), (/=), (<$), (<$>), (<*), (<*>), (<>), (==), (>>=)) import Control.Alt ((<|>)) import Control.Lazy (fix, defer) @@ -35,7 +35,7 @@ import Effect (Effect) import Effect.Console (log, logShow) import Effect.Unsafe (unsafePerformEffect) import Node.Process (lookupEnv) -import Parsing (ParseError(..), ParseState(..), Parser, ParserT, Position(..), consume, fail, getParserT, initialPos, parseErrorMessage, parseErrorPosition, position, region, runParser) +import Parsing (ParseError(..), ParseState(..), Parser, ParserT, Position(..), consume, fail, getParserT, initialPos, parseErrorPosition, position, region, runParser) import Parsing.Combinators (advance, between, chainl, chainl1, chainr, chainr1, choice, empty, endBy, endBy1, lookAhead, many, many1, many1Till, many1Till_, manyIndex, manyTill, manyTill_, notFollowedBy, optionMaybe, replicateA, sepBy, sepBy1, sepEndBy, sepEndBy1, skipMany, skipMany1, try, tryRethrow, (), (), (<~?>)) import Parsing.Combinators.Array as Combinators.Array import Parsing.Expr (Assoc(..), Operator(..), buildExprParser) @@ -48,6 +48,17 @@ import Parsing.Token (TokenParser, makeTokenParser, token, when) import Parsing.Token as Token import Partial.Unsafe (unsafePartial) import Test.Assert (assert', assertEqual') +import Test.IndentationTests as IndentationTests +import Test.Lib + +parseTest :: forall s a. Show a => Eq a => ParseErrorHuman__OnlyString s => s -> a -> Parser s a -> Effect Unit +parseTest = mkParseTest runParser + +parseErrorTestPosition :: forall s a. Show a => Parser s a -> s -> Position -> Effect Unit +parseErrorTestPosition = mkParseErrorTestPosition runParser + +parseErrorTestMessage :: forall s a. Show a => Parser s a -> s -> String -> Effect Unit +parseErrorTestMessage = mkParseErrorTestMessage runParser parens :: forall m a. ParserT String m a -> ParserT String m a parens = between (string "(") (string ")") @@ -59,29 +70,6 @@ nested = fix \p -> pure 0 ) <|> ((+) 1) <$> parens p -parseTest :: forall s a. Show a => Eq a => s -> a -> Parser s a -> Effect Unit -parseTest input expected p = case runParser input p of - Right actual -> do - assert' ("expected: " <> show expected <> ", actual: " <> show actual) (expected == actual) - logShow actual - Left err -> assert' ("error: " <> show err) false - -parseErrorTestPosition :: forall s a. Show a => Parser s a -> s -> Position -> Effect Unit -parseErrorTestPosition p input expected = case runParser input p of - Right x -> assert' ("ParseError expected at " <> show expected <> " but parsed " <> show x) false - Left err -> do - let pos = parseErrorPosition err - assert' ("expected: " <> show expected <> ", pos: " <> show pos) (expected == pos) - logShow expected - -parseErrorTestMessage :: forall s a. Show a => Parser s a -> s -> String -> Effect Unit -parseErrorTestMessage p input expected = case runParser input p of - Right x -> assert' ("ParseError expected '" <> expected <> "' but parsed " <> show x) false - Left err -> do - let msg = parseErrorMessage err - assert' ("expected: " <> expected <> ", message: " <> msg) (expected == msg) - logShow expected - opTest :: Parser String String opTest = chainl (singleton <$> anyChar) (char '+' $> append) "" @@ -259,8 +247,6 @@ testTokenParser = makeTokenParser haskellDef mkPos :: Int -> Position mkPos n = Position { index: n - 1, line: 1, column: n } -type TestM = Effect Unit - tokenParserIdentifierTest :: TestM tokenParserIdentifierTest = do -- parse normal identifier @@ -589,6 +575,9 @@ javaStyleTest = do main :: Effect Unit main = do + log "\nTESTS Indentation\n" + IndentationTests.testIndentationParser + log "\nTESTS String\n" parseErrorTestPosition (many $ char 'f' *> char '?') From 2a61f99f00f550c9f09b60d9a350c3f6627a450a Mon Sep 17 00:00:00 2001 From: James Brock Date: Mon, 30 Sep 2024 13:39:05 +0900 Subject: [PATCH 06/20] purs-tidy format-in-place src test bench --- test/Test/IndentationTests.purs | 68 +++++++++++++++++---------------- test/Test/Lib.purs | 2 +- 2 files changed, 36 insertions(+), 34 deletions(-) diff --git a/test/Test/IndentationTests.purs b/test/Test/IndentationTests.purs index 6e0592b..d886c40 100644 --- a/test/Test/IndentationTests.purs +++ b/test/Test/IndentationTests.purs @@ -59,28 +59,28 @@ testIndentationParser :: TestM testIndentationParser = do parseTest ( joinWith "\n" - [ "k \n" - , " a1 \n" - , " a2 \n" - , " b1 \n" - , " a3 \n" - , " haha \n" - , " it \n" - , " works \n" - , " " - ] + [ "k \n" + , " a1 \n" + , " a2 \n" + , " b1 \n" + , " a3 \n" + , " haha \n" + , " it \n" + , " works \n" + , " " + ] ) ( Taxonomy "k" - [ Taxonomy "a1" [] - , Taxonomy "a2" - [ Taxonomy "b1" [] - ] - , Taxonomy "a3" - [ Taxonomy "haha" [] - , Taxonomy "it" [] - , Taxonomy "works" [] - ] - ] + [ Taxonomy "a1" [] + , Taxonomy "a2" + [ Taxonomy "b1" [] + ] + , Taxonomy "a3" + [ Taxonomy "haha" [] + , Taxonomy "it" [] + , Taxonomy "works" [] + ] + ] ) (pTaxonomy <* eof) @@ -98,25 +98,27 @@ testIndentationParser = do eof pure { x, y, z } - parseErrorTestPositionAndMessage (do - x <- intDecimal - void $ string "\n " - indented *> withPos do - checkIndent -- This should pass. - y <- intDecimal - void $ string "\n" - indented *> withPos do -- indented should fail - z <- intDecimal - eof - pure { x, y, z } + parseErrorTestPositionAndMessage + ( do + x <- intDecimal + void $ string "\n " + indented *> withPos do + checkIndent -- This should pass. + y <- intDecimal + void $ string "\n" + indented *> withPos do -- indented should fail + z <- intDecimal + eof + pure { x, y, z } ) "111\n 222\n333" """not indented""" (Position { column: 1, index: 10, line: 3 }) -- Testing function 'indentParens' - parseTest "(1,2,3)" (fromFoldable ["1", "2", "3"]) $ - indentParens $ sepBy (string "1" <|> string "2" <|> string "3") (char ',') + parseTest "(1,2,3)" (fromFoldable [ "1", "2", "3" ]) + $ indentParens + $ sepBy (string "1" <|> string "2" <|> string "3") (char ',') -- doesnt work, dont understand idea of this method -- parseTest """(\n 1,\n 2,\n 3)""" (fromFoldable ["1", "2", "3"]) $ diff --git a/test/Test/Lib.purs b/test/Test/Lib.purs index 91aad88..79e719d 100644 --- a/test/Test/Lib.purs +++ b/test/Test/Lib.purs @@ -27,7 +27,7 @@ mkParseTest runParser input expected p = case runParser input p of Right actual -> do assert' ("expected output: " <> show expected <> ", actual output: " <> show actual) (expected == actual) logShow actual - Left err -> assert' (joinWith "\n" $ ["error: " <> show err] <> parseErrorHuman__onlyString input 60 err) false + Left err -> assert' (joinWith "\n" $ [ "error: " <> show err ] <> parseErrorHuman__onlyString input 60 err) false mkParseErrorTestPosition :: forall s a m. Show a => (s -> ParserT s m a -> Either ParseError a) -> ParserT s m a -> s -> Position -> Effect Unit mkParseErrorTestPosition runParser p input expected = case runParser input p of From 2ab8d478e0a3d6ea58d93520b8c2243274d28f8e Mon Sep 17 00:00:00 2001 From: James Brock Date: Mon, 30 Sep 2024 13:42:29 +0900 Subject: [PATCH 07/20] CI remove step Verify Bower & Pulp --- .github/workflows/ci.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 33917af..10a6d8a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -41,9 +41,3 @@ jobs: - name: Check formatting run: purs-tidy check src test bench - - - name: Verify Bower & Pulp - run: | - npm install bower pulp@16.0.0-0 - npx bower install - npx pulp build -- --censor-lib --strict From c38e6eaaafff2ad6a2eb631012432a4d769ca05b Mon Sep 17 00:00:00 2001 From: Serhii Khoma Date: Wed, 9 Oct 2024 16:04:40 +0700 Subject: [PATCH 08/20] fix: ci --- .github/workflows/ci.yml | 22 +- spago.lock | 2590 ++++++++++++++++++++------------------ spago.yaml | 4 +- 3 files changed, 1363 insertions(+), 1253 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 10a6d8a..c28e56b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,35 +9,29 @@ on: jobs: build: runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Set up a PureScript toolchain uses: purescript-contrib/setup-purescript@main with: - purescript: "unstable" + purescript: "latest" purs-tidy: "latest" + spago: "unstable" - name: Cache PureScript dependencies - uses: actions/cache@v2 + uses: actions/cache@v4 with: - key: ${{ runner.os }}-spago-${{ hashFiles('**/*.dhall') }}-2 + key: ${{ runner.os }}-spago-${{ hashFiles('**/spago.lock') }} path: | .spago output - - name: Install dependencies - run: spago install - - name: Build source - run: spago build --no-install --purs-args '--censor-lib --strict --censor-codes='UserDefinedWarning'' - - - name: Install dev dependencies - run: spago -x spago-dev.dhall install + run: spago build --censor-stats --strict --pedantic-packages - name: Run tests - run: spago -x spago-dev.dhall test --no-install + run: spago test --offline --censor-stats --strict --pedantic-packages -- --censor-codes=UserDefinedWarning - - name: Check formatting + - name: Verify formatting run: purs-tidy check src test bench diff --git a/spago.lock b/spago.lock index 5bb3085..34ea870 100644 --- a/spago.lock +++ b/spago.lock @@ -1,1238 +1,1352 @@ -workspace: - packages: - parsing: - path: ./ - core: - dependencies: - - arrays - - control - - effect - - either - - enums - - foldable-traversable - - functions - - identity - - integers - - lazy - - lists - - maybe - - newtype - - nullable - - numbers - - partial - - prelude - - st - - strings - - tailrec - - transformers - - tuples - - unfoldable - - unicode - - unsafe-coerce - build_plan: - - arrays - - bifunctors - - const - - contravariant - - control - - distributive - - effect - - either - - enums - - exceptions - - exists - - foldable-traversable - - functions - - functors - - gen - - identity - - integers - - invariant - - lazy - - lists - - maybe - - newtype - - nonempty - - nullable - - numbers - - orders - - partial - - prelude - - profunctor - - refs - - safe-coerce - - st - - strings - - tailrec - - transformers - - tuples - - type-equality - - unfoldable - - unicode - - unsafe-coerce - test: - dependencies: - - assert - - debug - - node-process - build_plan: - - aff - - arraybuffer-types - - arrays - - assert - - bifunctors - - console - - const - - contravariant - - control - - datetime - - debug - - distributive - - effect - - either - - enums - - exceptions - - exists - - foldable-traversable - - foreign - - foreign-object - - functions - - functors - - gen - - identity - - integers - - invariant - - lazy - - lists - - maybe - - newtype - - node-buffer - - node-event-emitter - - node-process - - node-streams - - nonempty - - nullable - - numbers - - ordered-collections - - orders - - parallel - - partial - - posix-types - - prelude - - profunctor - - refs - - safe-coerce - - st - - strings - - tailrec - - transformers - - tuples - - type-equality - - typelevel-prelude - - unfoldable - - unsafe-coerce - package_set: - address: - registry: 60.2.1 - compiler: ">=0.15.15 <0.16.0" - content: - abc-parser: 2.0.1 - ace: 9.1.0 - address-rfc2821: 0.1.1 - aff: 8.0.0 - aff-bus: 6.0.0 - aff-coroutines: 9.0.0 - aff-promise: 4.0.0 - aff-retry: 2.0.0 - affjax: 13.0.0 - affjax-node: 1.0.0 - affjax-web: 1.0.0 - ansi: 7.0.0 - apexcharts: 0.5.0 - applicative-phases: 1.0.0 - argonaut: 9.0.0 - argonaut-aeson-generic: 0.4.1 - argonaut-codecs: 9.1.0 - argonaut-core: 7.0.0 - argonaut-generic: 8.0.0 - argonaut-traversals: 10.0.0 - argparse-basic: 2.0.0 - array-builder: 0.1.2 - array-search: 0.6.0 - arraybuffer: 13.2.0 - arraybuffer-builder: 3.1.0 - arraybuffer-types: 3.0.2 - arrays: 7.3.0 - arrays-extra: 0.6.1 - arrays-zipper: 2.0.1 - ask: 1.0.0 - assert: 6.0.0 - assert-multiple: 0.4.0 - avar: 5.0.0 - b64: 0.0.8 - barbies: 1.0.1 - barlow-lens: 0.9.0 - bifunctors: 6.0.0 - bigints: 7.0.1 - bolson: 0.3.9 - bookhound: 0.1.7 - bower-json: 3.0.0 - call-by-name: 4.0.1 - canvas: 6.0.0 - canvas-action: 9.0.0 - cartesian: 1.0.6 - catenable-lists: 7.0.0 - cbor-stream: 1.3.0 - chameleon: 1.0.0 - chameleon-halogen: 1.0.3 - chameleon-react-basic: 1.1.0 - chameleon-styled: 2.5.0 - chameleon-transformers: 1.0.0 - channel: 1.0.0 - checked-exceptions: 3.1.1 - choku: 1.0.1 - classless: 0.1.1 - classless-arbitrary: 0.1.1 - classless-decode-json: 0.1.1 - classless-encode-json: 0.1.3 - classnames: 2.0.0 - codec: 6.1.0 - codec-argonaut: 10.0.0 - codec-json: 2.0.0 - colors: 7.0.1 - concur-core: 0.5.0 - concur-react: 0.5.0 - concurrent-queues: 3.0.0 - console: 6.1.0 - const: 6.0.0 - contravariant: 6.0.0 - control: 6.0.0 - convertable-options: 1.0.0 - coroutines: 7.0.0 - css: 6.0.0 - css-frameworks: 1.0.1 - csv-stream: 2.3.0 - data-mvc: 0.0.2 - datetime: 6.1.0 - datetime-parsing: 0.2.0 - debounce: 0.1.0 - debug: 6.0.2 - decimals: 7.1.0 - default-values: 1.0.1 - deku: 0.9.23 - deno: 0.0.5 - dissect: 1.0.0 - distributive: 6.0.0 - dom-filereader: 7.0.0 - dom-indexed: 12.0.0 - dom-simple: 0.4.0 - dotenv: 4.0.3 - droplet: 0.6.0 - dts: 1.0.0 - dual-numbers: 1.0.3 - dynamic-buffer: 3.0.1 - echarts-simple: 0.0.1 - effect: 4.0.0 - either: 6.1.0 - elmish: 0.13.0 - elmish-enzyme: 0.1.1 - elmish-hooks: 0.10.3 - elmish-html: 0.9.0 - elmish-testing-library: 0.3.2 - email-validate: 7.0.0 - encoding: 0.0.9 - enums: 6.0.1 - env-names: 0.4.0 - error: 2.0.0 - eta-conversion: 0.3.2 - exceptions: 6.1.0 - exists: 6.0.0 - exitcodes: 4.0.0 - expect-inferred: 3.0.0 - ezfetch: 1.0.0 - fahrtwind: 2.0.0 - fallback: 0.1.0 - fast-vect: 1.2.0 - fetch: 4.1.0 - fetch-argonaut: 1.0.1 - fetch-core: 5.1.0 - fetch-yoga-json: 1.1.0 - ffi-simple: 0.5.1 - fft-js: 0.1.0 - filterable: 5.0.0 - fix-functor: 0.1.0 - fixed-points: 7.0.0 - fixed-precision: 5.0.0 - flame: 1.3.0 - float32: 2.0.0 - fmt: 0.2.1 - foldable-traversable: 6.0.0 - foldable-traversable-extra: 0.0.6 - foreign: 7.0.0 - foreign-object: 4.1.0 - foreign-readwrite: 3.4.0 - forgetmenot: 0.1.0 - fork: 6.0.0 - form-urlencoded: 7.0.0 - formatters: 7.0.0 - framer-motion: 1.0.1 - free: 7.1.0 - freeap: 7.0.0 - freer-free: 0.0.1 - freet: 7.0.0 - functions: 6.0.0 - functor1: 3.0.0 - functors: 5.0.0 - fuzzy: 0.4.0 - gen: 4.0.0 - generate-values: 1.0.1 - generic-router: 0.0.1 - geojson: 0.0.5 - geometria: 2.2.0 - gojs: 0.1.1 - grain: 3.0.0 - grain-router: 3.0.0 - grain-virtualized: 3.0.0 - graphs: 8.1.0 - group: 4.1.1 - halogen: 7.0.0 - halogen-bootstrap5: 5.3.2 - halogen-canvas: 1.0.0 - halogen-css: 10.0.0 - halogen-echarts-simple: 0.0.4 - halogen-formless: 4.0.3 - halogen-helix: 1.0.1 - halogen-hooks: 0.6.3 - halogen-hooks-extra: 0.9.0 - halogen-infinite-scroll: 1.1.0 - halogen-store: 0.5.4 - halogen-storybook: 2.0.0 - halogen-subscriptions: 2.0.0 - halogen-svg-elems: 8.0.0 - halogen-typewriter: 1.0.4 - halogen-vdom: 8.0.0 - halogen-vdom-string-renderer: 0.5.0 - halogen-xterm: 2.0.0 - heckin: 2.0.1 - heterogeneous: 0.6.0 - homogeneous: 0.4.0 - http-methods: 6.0.0 - httpurple: 4.0.0 - huffman: 0.4.0 - humdrum: 0.0.1 - hyrule: 2.3.8 - identity: 6.0.0 - identy: 4.0.1 - indexed-db: 1.0.0 - indexed-monad: 3.0.0 - int64: 3.0.0 - integers: 6.0.0 - interpolate: 5.0.2 - intersection-observer: 1.0.1 - invariant: 6.0.0 - jarilo: 1.0.1 - jelly: 0.10.0 - jelly-router: 0.3.0 - jelly-signal: 0.4.0 - jest: 1.0.0 - js-abort-controller: 1.0.0 - js-bigints: 2.2.1 - js-date: 8.0.0 - js-fetch: 0.2.1 - js-fileio: 3.0.0 - js-intl: 1.0.4 - js-iterators: 0.1.1 - js-maps: 0.1.2 - js-promise: 1.0.0 - js-promise-aff: 1.0.0 - js-timers: 6.1.0 - js-uri: 3.1.0 - json: 1.1.0 - json-codecs: 5.0.0 - justifill: 0.5.0 - jwt: 0.0.9 - labeled-data: 0.2.0 - language-cst-parser: 0.14.0 - lazy: 6.0.0 - lazy-joe: 1.0.0 - lcg: 4.0.0 - leibniz: 5.0.0 - leveldb: 1.0.1 - liminal: 1.0.1 - linalg: 6.0.0 - lists: 7.0.0 - literals: 1.0.2 - logging: 3.0.0 - logging-journald: 0.4.0 - lumi-components: 18.0.0 - machines: 7.0.0 - maps-eager: 0.5.0 - marionette: 1.0.0 - marionette-react-basic-hooks: 0.1.1 - marked: 0.1.0 - matrices: 5.0.1 - matryoshka: 1.0.0 - maybe: 6.0.0 - media-types: 6.0.0 - meowclient: 1.0.0 - midi: 4.0.0 - milkis: 9.0.0 - minibench: 4.0.1 - mmorph: 7.0.0 - monad-control: 5.0.0 - monad-logger: 1.3.1 - monad-loops: 0.5.0 - monad-unlift: 1.0.1 - monoid-extras: 0.0.1 - monoidal: 0.16.0 - morello: 0.4.0 - mote: 3.0.0 - motsunabe: 2.0.0 - mvc: 0.0.1 - mysql: 6.0.1 - n3: 0.1.0 - nano-id: 1.1.0 - nanoid: 0.1.0 - naturals: 3.0.0 - nested-functor: 0.2.1 - newtype: 5.0.0 - nextjs: 0.1.1 - nextui: 0.2.0 - node-buffer: 9.0.0 - node-child-process: 11.1.0 - node-event-emitter: 3.0.0 - node-execa: 5.0.0 - node-fs: 9.2.0 - node-glob-basic: 1.3.0 - node-http: 9.1.0 - node-http2: 1.1.1 - node-human-signals: 1.0.0 - node-net: 5.1.0 - node-os: 5.1.0 - node-path: 5.0.0 - node-process: 11.2.0 - node-readline: 8.1.1 - node-sqlite3: 8.0.0 - node-stream-pipes: 2.1.6 - node-streams: 9.0.0 - node-tls: 0.3.1 - node-url: 7.0.1 - node-zlib: 0.4.0 - nonempty: 7.0.0 - now: 6.0.0 - npm-package-json: 2.0.0 - nullable: 6.0.0 - numberfield: 0.2.2 - numbers: 9.0.1 - oak: 3.1.1 - oak-debug: 1.2.2 - object-maps: 0.3.0 - ocarina: 1.5.4 - oooooooooorrrrrrrmm-lib: 0.0.1 - open-folds: 6.4.0 - open-foreign-generic: 11.0.3 - open-memoize: 6.2.0 - open-mkdirp-aff: 1.2.0 - open-pairing: 6.2.0 - open-smolder: 12.0.2 - options: 7.0.0 - optparse: 5.0.1 - ordered-collections: 3.2.0 - ordered-set: 0.4.0 - orders: 6.0.0 - owoify: 1.2.0 - pairs: 9.0.1 - parallel: 7.0.0 - parsing: 10.2.0 - parsing-dataview: 3.2.4 - partial: 4.0.0 - pathy: 9.0.0 - pha: 0.13.0 - phaser: 0.7.0 - phylio: 1.1.2 - pipes: 8.0.0 - pirates-charm: 0.0.1 - pmock: 0.9.0 - point-free: 1.0.0 - pointed-list: 0.5.1 - polymorphic-vectors: 4.0.0 - posix-types: 6.0.0 - postgresql: 2.0.19 - precise: 6.0.0 - precise-datetime: 7.0.0 - prelude: 6.0.1 - prettier-printer: 3.0.0 - priority-queue: 0.1.2 - profunctor: 6.0.1 - profunctor-lenses: 8.0.0 - protobuf: 4.3.0 - psa-utils: 8.0.0 - psci-support: 6.0.0 - punycode: 1.0.0 - qualified-do: 2.2.0 - quantities: 12.2.0 - quickcheck: 8.0.1 - quickcheck-combinators: 0.1.3 - quickcheck-laws: 7.0.0 - quickcheck-utf8: 0.0.0 - random: 6.0.0 - rationals: 6.0.0 - rdf: 0.1.0 - react: 11.0.0 - react-aria: 0.2.0 - react-basic: 17.0.0 - react-basic-classic: 3.0.0 - react-basic-dnd: 10.1.0 - react-basic-dom: 6.1.0 - react-basic-emotion: 7.1.0 - react-basic-hooks: 8.2.0 - react-basic-storybook: 2.0.0 - react-dom: 8.0.0 - react-halo: 3.0.0 - react-icons: 1.1.5 - react-markdown: 0.1.0 - react-testing-library: 4.0.1 - react-virtuoso: 1.0.0 - reactix: 0.6.1 - read: 1.0.1 - recharts: 1.1.0 - record: 4.0.0 - record-extra: 5.0.1 - record-ptional-fields: 0.1.2 - record-studio: 1.0.4 - refs: 6.0.0 - remotedata: 5.0.1 - repr: 0.5.0 - resize-observer: 1.0.0 - resource: 2.0.1 - resourcet: 1.0.0 - result: 1.0.3 - return: 0.2.0 - ring-modules: 5.0.1 - rito: 0.3.4 - roman: 0.4.0 - rough-notation: 1.0.2 - routing: 11.0.0 - routing-duplex: 0.7.0 - run: 5.0.0 - safe-coerce: 2.0.0 - safely: 4.0.1 - school-of-music: 1.3.0 - selection-foldable: 0.2.0 - selective-functors: 1.0.1 - semirings: 7.0.0 - signal: 13.0.0 - simple-emitter: 3.0.1 - simple-i18n: 2.0.1 - simple-json: 9.0.0 - simple-json-generics: 0.2.1 - simple-ulid: 3.0.0 - sized-matrices: 1.0.0 - sized-vectors: 5.0.2 - slug: 3.1.0 - small-ffi: 4.0.1 - soundfonts: 4.1.0 - sparse-matrices: 2.0.1 - sparse-polynomials: 3.0.1 - spec: 8.0.0 - spec-discovery: 8.3.0 - spec-mocha: 5.1.1 - spec-node: 0.0.2 - spec-quickcheck: 5.0.2 - spec-reporter-xunit: 0.7.1 - splitmix: 2.1.0 - ssrs: 1.0.0 - st: 6.2.0 - statistics: 0.3.2 - strictlypositiveint: 1.0.1 - string-parsers: 8.0.0 - strings: 6.0.1 - strings-extra: 4.0.0 - stringutils: 0.0.12 - substitute: 0.2.3 - supply: 0.2.0 - svg-parser: 3.0.0 - systemd-journald: 0.3.0 - tagged: 4.0.2 - tailrec: 6.1.0 - tecton: 0.2.1 - tecton-halogen: 0.2.0 - test-unit: 17.0.0 - thermite: 6.3.1 - thermite-dom: 0.3.1 - these: 6.0.0 - threading: 0.0.3 - tldr: 0.0.0 - toestand: 0.9.0 - transformation-matrix: 1.0.1 - transformers: 6.1.0 - tree-rose: 4.0.2 - ts-bridge: 4.0.0 - tuples: 7.0.0 - two-or-more: 1.0.0 - type-equality: 4.0.1 - typedenv: 2.0.1 - typelevel: 6.0.0 - typelevel-lists: 2.1.0 - typelevel-peano: 1.0.1 - typelevel-prelude: 7.0.0 - typelevel-regex: 0.0.3 - typelevel-rows: 0.1.0 - typisch: 0.4.0 - uint: 7.0.0 - ulid: 3.0.1 - uncurried-transformers: 1.1.0 - undefined: 2.0.0 - undefined-is-not-a-problem: 1.1.0 - unfoldable: 6.0.0 - unicode: 6.0.0 - unique: 0.6.1 - unlift: 1.0.1 - unordered-collections: 3.1.0 - unsafe-coerce: 6.0.0 - unsafe-reference: 5.0.0 - untagged-to-tagged: 0.1.4 - untagged-union: 1.0.0 - uri: 9.0.0 - url-immutable: 1.0.0 - uuid: 9.0.0 - uuidv4: 1.0.0 - validation: 6.0.0 - variant: 8.0.0 - variant-encodings: 2.0.0 - vectorfield: 1.0.1 - vectors: 2.1.0 - versions: 7.0.0 - visx: 0.0.2 - web-clipboard: 6.0.0 - web-cssom: 2.0.0 - web-cssom-view: 0.1.0 - web-dom: 6.0.0 - web-dom-parser: 8.0.0 - web-dom-xpath: 3.0.0 - web-encoding: 3.0.0 - web-events: 4.0.0 - web-fetch: 4.0.1 - web-file: 4.0.0 - web-geometry: 0.1.0 - web-html: 4.1.0 - web-pointerevents: 2.0.0 - web-proletarian: 1.0.0 - web-promise: 3.2.0 - web-resize-observer: 2.1.0 - web-router: 1.0.0 - web-socket: 4.0.0 - web-storage: 5.0.0 - web-streams: 4.0.0 - web-touchevents: 4.0.0 - web-uievents: 5.0.0 - web-url: 2.0.0 - web-workers: 1.1.0 - web-xhr: 5.0.1 - webextension-polyfill: 0.1.0 - webgpu: 0.0.1 - which: 2.0.0 - xterm: 1.0.0 - yoga-fetch: 1.0.1 - yoga-json: 5.1.0 - yoga-om: 0.1.0 - yoga-postgres: 6.0.0 - yoga-tree: 1.0.0 - z3: 0.0.2 - zipperarray: 2.0.0 - extra_packages: {} -packages: - aff: - type: registry - version: 8.0.0 - integrity: sha256-5MmdI4+0RHBtSBy+YlU3/Cq4R5W2ih3OaRedJIrVHdk= - dependencies: - - bifunctors - - control - - datetime - - effect - - either - - exceptions - - foldable-traversable - - functions - - maybe - - newtype - - parallel - - prelude - - refs - - tailrec - - transformers - - unsafe-coerce - arraybuffer-types: - type: registry - version: 3.0.2 - integrity: sha256-mQKokysYVkooS4uXbO+yovmV/s8b138Ws3zQvOwIHRA= - dependencies: [] - arrays: - type: registry - version: 7.3.0 - integrity: sha256-tmcklBlc/muUtUfr9RapdCPwnlQeB3aSrC4dK85gQlc= - dependencies: - - bifunctors - - control - - foldable-traversable - - functions - - maybe - - nonempty - - partial - - prelude - - safe-coerce - - st - - tailrec - - tuples - - unfoldable - - unsafe-coerce - assert: - type: registry - version: 6.0.0 - integrity: sha256-hCSYcCw9kj3qujoDcriWhCdmrpPZoguSPDZhEMnTl3A= - dependencies: - - console - - effect - - prelude - bifunctors: - type: registry - version: 6.0.0 - integrity: sha256-/gZwC9YhNxZNQpnHa5BIYerCGM2jeX9ukZiEvYxm5Nw= - dependencies: - - const - - either - - newtype - - prelude - - tuples - console: - type: registry - version: 6.1.0 - integrity: sha256-CxmAzjgyuGDmt9FZW51VhV6rBPwR6o0YeKUzA9rSzcM= - dependencies: - - effect - - prelude - const: - type: registry - version: 6.0.0 - integrity: sha256-tNrxDW8D8H4jdHE2HiPzpLy08zkzJMmGHdRqt5BQuTc= - dependencies: - - invariant - - newtype - - prelude - contravariant: - type: registry - version: 6.0.0 - integrity: sha256-TP+ooAp3vvmdjfQsQJSichF5B4BPDHp3wAJoWchip6c= - dependencies: - - const - - either - - newtype - - prelude - - tuples - control: - type: registry - version: 6.0.0 - integrity: sha256-sH7Pg9E96JCPF9PIA6oQ8+BjTyO/BH1ZuE/bOcyj4Jk= - dependencies: - - newtype - - prelude - datetime: - type: registry - version: 6.1.0 - integrity: sha256-g/5X5BBegQWLpI9IWD+sY6mcaYpzzlW5lz5NBzaMtyI= - dependencies: - - bifunctors - - control - - either - - enums - - foldable-traversable - - functions - - gen - - integers - - lists - - maybe - - newtype - - numbers - - ordered-collections - - partial - - prelude - - tuples - debug: - type: registry - version: 6.0.2 - integrity: sha256-vmkYFuXYuELBzeauvgHG6E6Kf/Hp1dAnxwE9ByHfwSg= - dependencies: - - functions - - prelude - distributive: - type: registry - version: 6.0.0 - integrity: sha256-HTDdmEnzigMl+02SJB88j+gAXDx9VKsbvR4MJGDPbOQ= - dependencies: - - identity - - newtype - - prelude - - tuples - - type-equality - effect: - type: registry - version: 4.0.0 - integrity: sha256-eBtZu+HZcMa5HilvI6kaDyVX3ji8p0W9MGKy2K4T6+M= - dependencies: - - prelude - either: - type: registry - version: 6.1.0 - integrity: sha256-6hgTPisnMWVwQivOu2PKYcH8uqjEOOqDyaDQVUchTpY= - dependencies: - - control - - invariant - - maybe - - prelude - enums: - type: registry - version: 6.0.1 - integrity: sha256-HWaD73JFLorc4A6trKIRUeDMdzE+GpkJaEOM1nTNkC8= - dependencies: - - control - - either - - gen - - maybe - - newtype - - nonempty - - partial - - prelude - - tuples - - unfoldable - exceptions: - type: registry - version: 6.1.0 - integrity: sha256-K0T89IHtF3vBY7eSAO7eDOqSb2J9kZGAcDN5+IKsF8E= - dependencies: - - effect - - either - - maybe - - prelude - exists: - type: registry - version: 6.0.0 - integrity: sha256-A0JQHpTfo1dNOj9U5/Fd3xndlRSE0g2IQWOGor2yXn8= - dependencies: - - unsafe-coerce - foldable-traversable: - type: registry - version: 6.0.0 - integrity: sha256-fLeqRYM4jUrZD5H4WqcwUgzU7XfYkzO4zhgtNc3jcWM= - dependencies: - - bifunctors - - const - - control - - either - - functors - - identity - - maybe - - newtype - - orders - - prelude - - tuples - foreign: - type: registry - version: 7.0.0 - integrity: sha256-1ORiqoS3HW+qfwSZAppHPWy4/6AQysxZ2t29jcdUMNA= - dependencies: - - either - - functions - - identity - - integers - - lists - - maybe - - prelude - - strings - - transformers - foreign-object: - type: registry - version: 4.1.0 - integrity: sha256-q24okj6mT+yGHYQ+ei/pYPj5ih6sTbu7eDv/WU56JVo= - dependencies: - - arrays - - foldable-traversable - - functions - - gen - - lists - - maybe - - prelude - - st - - tailrec - - tuples - - typelevel-prelude - - unfoldable - functions: - type: registry - version: 6.0.0 - integrity: sha256-adMyJNEnhGde2unHHAP79gPtlNjNqzgLB8arEOn9hLI= - dependencies: - - prelude - functors: - type: registry - version: 5.0.0 - integrity: sha256-zfPWWYisbD84MqwpJSZFlvM6v86McM68ob8p9s27ywU= - dependencies: - - bifunctors - - const - - contravariant - - control - - distributive - - either - - invariant - - maybe - - newtype - - prelude - - profunctor - - tuples - - unsafe-coerce - gen: - type: registry - version: 4.0.0 - integrity: sha256-f7yzAXWwr+xnaqEOcvyO3ezKdoes8+WXWdXIHDBCAPI= - dependencies: - - either - - foldable-traversable - - identity - - maybe - - newtype - - nonempty - - prelude - - tailrec - - tuples - - unfoldable - identity: - type: registry - version: 6.0.0 - integrity: sha256-4wY0XZbAksjY6UAg99WkuKyJlQlWAfTi2ssadH0wVMY= - dependencies: - - control - - invariant - - newtype - - prelude - integers: - type: registry - version: 6.0.0 - integrity: sha256-sf+sK26R1hzwl3NhXR7WAu9zCDjQnfoXwcyGoseX158= - dependencies: - - maybe - - numbers - - prelude - invariant: - type: registry - version: 6.0.0 - integrity: sha256-RGWWyYrz0Hs1KjPDA+87Kia67ZFBhfJ5lMGOMCEFoLo= - dependencies: - - control - - prelude - lazy: - type: registry - version: 6.0.0 - integrity: sha256-lMsfFOnlqfe4KzRRiW8ot5ge6HtcU3Eyh2XkXcP5IgU= - dependencies: - - control - - foldable-traversable - - invariant - - prelude - lists: - type: registry - version: 7.0.0 - integrity: sha256-EKF15qYqucuXP2lT/xPxhqy58f0FFT6KHdIB/yBOayI= - dependencies: - - bifunctors - - control - - foldable-traversable - - lazy - - maybe - - newtype - - nonempty - - partial - - prelude - - tailrec - - tuples - - unfoldable - maybe: - type: registry - version: 6.0.0 - integrity: sha256-5cCIb0wPwbat2PRkQhUeZO0jcAmf8jCt2qE0wbC3v2Q= - dependencies: - - control - - invariant - - newtype - - prelude - newtype: - type: registry - version: 5.0.0 - integrity: sha256-gdrQu8oGe9eZE6L3wOI8ql/igOg+zEGB5ITh2g+uttw= - dependencies: - - prelude - - safe-coerce - node-buffer: - type: registry - version: 9.0.0 - integrity: sha256-PWE2DJ5ruBLCmeA/fUiuySEFmUJ/VuRfyrnCuVZBlu4= - dependencies: - - arraybuffer-types - - effect - - maybe - - nullable - - st - - unsafe-coerce - node-event-emitter: - type: registry - version: 3.0.0 - integrity: sha256-Qw0MjsT4xRH2j2i4K8JmRjcMKnH5z1Cw39t00q4LE4w= - dependencies: - - effect - - either - - functions - - maybe - - nullable - - prelude - - unsafe-coerce - node-process: - type: registry - version: 11.2.0 - integrity: sha256-+2MQDYChjGbVbapCyJtuWYwD41jk+BntF/kcOTKBMVs= - dependencies: - - effect - - foreign - - foreign-object - - maybe - - node-event-emitter - - node-streams - - posix-types - - prelude - - unsafe-coerce - node-streams: - type: registry - version: 9.0.0 - integrity: sha256-2n6dq7YWleTDmD1Kur/ul7Cn08IvWrScgPf+0PgX2TQ= - dependencies: - - aff - - effect - - either - - exceptions - - node-buffer - - node-event-emitter - - nullable - - prelude - nonempty: - type: registry - version: 7.0.0 - integrity: sha256-54ablJZUHGvvlTJzi3oXyPCuvY6zsrWJuH/dMJ/MFLs= - dependencies: - - control - - foldable-traversable - - maybe - - prelude - - tuples - - unfoldable - nullable: - type: registry - version: 6.0.0 - integrity: sha256-yiGBVl3AD+Guy4kNWWeN+zl1gCiJK+oeIFtZtPCw4+o= - dependencies: - - effect - - functions - - maybe - numbers: - type: registry - version: 9.0.1 - integrity: sha256-/9M6aeMDBdB4cwYDeJvLFprAHZ49EbtKQLIJsneXLIk= - dependencies: - - functions - - maybe - ordered-collections: - type: registry - version: 3.2.0 - integrity: sha256-o9jqsj5rpJmMdoe/zyufWHFjYYFTTsJpgcuCnqCO6PM= - dependencies: - - arrays - - foldable-traversable - - gen - - lists - - maybe - - partial - - prelude - - st - - tailrec - - tuples - - unfoldable - orders: - type: registry - version: 6.0.0 - integrity: sha256-nBA0g3/ai0euH8q9pSbGqk53W2q6agm/dECZTHcoink= - dependencies: - - newtype - - prelude - parallel: - type: registry - version: 7.0.0 - integrity: sha256-gUC9i4Txnx9K9RcMLsjujbwZz6BB1bnE2MLvw4GIw5o= - dependencies: - - control - - effect - - either - - foldable-traversable - - functors - - maybe - - newtype - - prelude - - profunctor - - refs - - transformers - partial: - type: registry - version: 4.0.0 - integrity: sha256-fwXerld6Xw1VkReh8yeQsdtLVrjfGiVuC5bA1Wyo/J4= - dependencies: [] - posix-types: - type: registry - version: 6.0.0 - integrity: sha256-ZfFz8RR1lee/o/Prccyeut3Q+9tYd08mlR72sIh6GzA= - dependencies: - - maybe - - prelude - prelude: - type: registry - version: 6.0.1 - integrity: sha256-o8p6SLYmVPqzXZhQFd2hGAWEwBoXl1swxLG/scpJ0V0= - dependencies: [] - profunctor: - type: registry - version: 6.0.1 - integrity: sha256-E58hSYdJvF2Qjf9dnWLPlJKh2Z2fLfFLkQoYi16vsFk= - dependencies: - - control - - distributive - - either - - exists - - invariant - - newtype - - prelude - - tuples - refs: - type: registry - version: 6.0.0 - integrity: sha256-Vgwne7jIbD3ZMoLNNETLT8Litw6lIYo3MfYNdtYWj9s= - dependencies: - - effect - - prelude - safe-coerce: - type: registry - version: 2.0.0 - integrity: sha256-a1ibQkiUcbODbLE/WAq7Ttbbh9ex+x33VCQ7GngKudU= - dependencies: - - unsafe-coerce - st: - type: registry - version: 6.2.0 - integrity: sha256-z9X0WsOUlPwNx9GlCC+YccCyz8MejC8Wb0C4+9fiBRY= - dependencies: - - partial - - prelude - - tailrec - - unsafe-coerce - strings: - type: registry - version: 6.0.1 - integrity: sha256-WssD3DbX4OPzxSdjvRMX0yvc9+pS7n5gyPv5I2Trb7k= - dependencies: - - arrays - - control - - either - - enums - - foldable-traversable - - gen - - integers - - maybe - - newtype - - nonempty - - partial - - prelude - - tailrec - - tuples - - unfoldable - - unsafe-coerce - tailrec: - type: registry - version: 6.1.0 - integrity: sha256-Xx19ECVDRrDWpz9D2GxQHHV89vd61dnXxQm0IcYQHGk= - dependencies: - - bifunctors - - effect - - either - - identity - - maybe - - partial - - prelude - - refs - transformers: - type: registry - version: 6.1.0 - integrity: sha256-3Bm+Z6tsC/paG888XkywDngJ2JMos+JfOhRlkVfb7gI= - dependencies: - - control - - distributive - - effect - - either - - exceptions - - foldable-traversable - - identity - - lazy - - maybe - - newtype - - prelude - - st - - tailrec - - tuples - - unfoldable - tuples: - type: registry - version: 7.0.0 - integrity: sha256-1rXgTomes9105BjgXqIw0FL6Fz1lqqUTLWOumhWec1M= - dependencies: - - control - - invariant - - prelude - type-equality: - type: registry - version: 4.0.1 - integrity: sha256-Hs9D6Y71zFi/b+qu5NSbuadUQXe5iv5iWx0226vOHUw= - dependencies: [] - typelevel-prelude: - type: registry - version: 7.0.0 - integrity: sha256-uFF2ph+vHcQpfPuPf2a3ukJDFmLhApmkpTMviHIWgJM= - dependencies: - - prelude - - type-equality - unfoldable: - type: registry - version: 6.0.0 - integrity: sha256-JtikvJdktRap7vr/K4ITlxUX1QexpnqBq0G/InLr6eg= - dependencies: - - foldable-traversable - - maybe - - partial - - prelude - - tuples - unicode: - type: registry - version: 6.0.0 - integrity: sha256-QJnTVZpmihEAUiMeYrfkusVoziJWp2hJsgi9bMQLue8= - dependencies: - - foldable-traversable - - maybe - - strings - unsafe-coerce: - type: registry - version: 6.0.0 - integrity: sha256-IqIYW4Vkevn8sI+6aUwRGvd87tVL36BBeOr0cGAE7t0= - dependencies: [] +{ + "workspace": { + "packages": { + "parsing": { + "path": "./", + "core": { + "dependencies": [ + "arrays", + "control", + "effect", + "either", + "enums", + "foldable-traversable", + "functions", + "identity", + "integers", + "lazy", + "lists", + "maybe", + "newtype", + "nullable", + "numbers", + "partial", + "prelude", + "st", + "strings", + "tailrec", + "transformers", + "tuples", + "unfoldable", + "unicode", + "unsafe-coerce" + ], + "build_plan": [ + "arrays", + "bifunctors", + "const", + "contravariant", + "control", + "distributive", + "effect", + "either", + "enums", + "exceptions", + "exists", + "foldable-traversable", + "functions", + "functors", + "gen", + "identity", + "integers", + "invariant", + "lazy", + "lists", + "maybe", + "newtype", + "nonempty", + "nullable", + "numbers", + "orders", + "partial", + "prelude", + "profunctor", + "refs", + "safe-coerce", + "st", + "strings", + "tailrec", + "transformers", + "tuples", + "type-equality", + "unfoldable", + "unicode", + "unsafe-coerce" + ] + }, + "test": { + "dependencies": [ + "assert", + "bifunctors", + "console", + "node-process", + "nonempty" + ], + "build_plan": [ + "aff", + "arraybuffer-types", + "arrays", + "assert", + "bifunctors", + "console", + "const", + "contravariant", + "control", + "datetime", + "distributive", + "effect", + "either", + "enums", + "exceptions", + "exists", + "foldable-traversable", + "foreign", + "foreign-object", + "functions", + "functors", + "gen", + "identity", + "integers", + "invariant", + "lazy", + "lists", + "maybe", + "newtype", + "node-buffer", + "node-event-emitter", + "node-process", + "node-streams", + "nonempty", + "nullable", + "numbers", + "ordered-collections", + "orders", + "parallel", + "partial", + "posix-types", + "prelude", + "profunctor", + "refs", + "safe-coerce", + "st", + "strings", + "tailrec", + "transformers", + "tuples", + "type-equality", + "typelevel-prelude", + "unfoldable", + "unsafe-coerce" + ] + } + } + }, + "package_set": { + "address": { + "registry": "60.2.1" + }, + "compiler": ">=0.15.15 <0.16.0", + "content": { + "abc-parser": "2.0.1", + "ace": "9.1.0", + "address-rfc2821": "0.1.1", + "aff": "8.0.0", + "aff-bus": "6.0.0", + "aff-coroutines": "9.0.0", + "aff-promise": "4.0.0", + "aff-retry": "2.0.0", + "affjax": "13.0.0", + "affjax-node": "1.0.0", + "affjax-web": "1.0.0", + "ansi": "7.0.0", + "apexcharts": "0.5.0", + "applicative-phases": "1.0.0", + "argonaut": "9.0.0", + "argonaut-aeson-generic": "0.4.1", + "argonaut-codecs": "9.1.0", + "argonaut-core": "7.0.0", + "argonaut-generic": "8.0.0", + "argonaut-traversals": "10.0.0", + "argparse-basic": "2.0.0", + "array-builder": "0.1.2", + "array-search": "0.6.0", + "arraybuffer": "13.2.0", + "arraybuffer-builder": "3.1.0", + "arraybuffer-types": "3.0.2", + "arrays": "7.3.0", + "arrays-extra": "0.6.1", + "arrays-zipper": "2.0.1", + "ask": "1.0.0", + "assert": "6.0.0", + "assert-multiple": "0.4.0", + "avar": "5.0.0", + "b64": "0.0.8", + "barbies": "1.0.1", + "barlow-lens": "0.9.0", + "bifunctors": "6.0.0", + "bigints": "7.0.1", + "bolson": "0.3.9", + "bookhound": "0.1.7", + "bower-json": "3.0.0", + "call-by-name": "4.0.1", + "canvas": "6.0.0", + "canvas-action": "9.0.0", + "cartesian": "1.0.6", + "catenable-lists": "7.0.0", + "cbor-stream": "1.3.0", + "chameleon": "1.0.0", + "chameleon-halogen": "1.0.3", + "chameleon-react-basic": "1.1.0", + "chameleon-styled": "2.5.0", + "chameleon-transformers": "1.0.0", + "channel": "1.0.0", + "checked-exceptions": "3.1.1", + "choku": "1.0.1", + "classless": "0.1.1", + "classless-arbitrary": "0.1.1", + "classless-decode-json": "0.1.1", + "classless-encode-json": "0.1.3", + "classnames": "2.0.0", + "codec": "6.1.0", + "codec-argonaut": "10.0.0", + "codec-json": "2.0.0", + "colors": "7.0.1", + "concur-core": "0.5.0", + "concur-react": "0.5.0", + "concurrent-queues": "3.0.0", + "console": "6.1.0", + "const": "6.0.0", + "contravariant": "6.0.0", + "control": "6.0.0", + "convertable-options": "1.0.0", + "coroutines": "7.0.0", + "css": "6.0.0", + "css-frameworks": "1.0.1", + "csv-stream": "2.3.0", + "data-mvc": "0.0.2", + "datetime": "6.1.0", + "datetime-parsing": "0.2.0", + "debounce": "0.1.0", + "debug": "6.0.2", + "decimals": "7.1.0", + "default-values": "1.0.1", + "deku": "0.9.23", + "deno": "0.0.5", + "dissect": "1.0.0", + "distributive": "6.0.0", + "dom-filereader": "7.0.0", + "dom-indexed": "12.0.0", + "dom-simple": "0.4.0", + "dotenv": "4.0.3", + "droplet": "0.6.0", + "dts": "1.0.0", + "dual-numbers": "1.0.3", + "dynamic-buffer": "3.0.1", + "echarts-simple": "0.0.1", + "effect": "4.0.0", + "either": "6.1.0", + "elmish": "0.13.0", + "elmish-enzyme": "0.1.1", + "elmish-hooks": "0.10.3", + "elmish-html": "0.9.0", + "elmish-testing-library": "0.3.2", + "email-validate": "7.0.0", + "encoding": "0.0.9", + "enums": "6.0.1", + "env-names": "0.4.0", + "error": "2.0.0", + "eta-conversion": "0.3.2", + "exceptions": "6.1.0", + "exists": "6.0.0", + "exitcodes": "4.0.0", + "expect-inferred": "3.0.0", + "ezfetch": "1.0.0", + "fahrtwind": "2.0.0", + "fallback": "0.1.0", + "fast-vect": "1.2.0", + "fetch": "4.1.0", + "fetch-argonaut": "1.0.1", + "fetch-core": "5.1.0", + "fetch-yoga-json": "1.1.0", + "ffi-simple": "0.5.1", + "fft-js": "0.1.0", + "filterable": "5.0.0", + "fix-functor": "0.1.0", + "fixed-points": "7.0.0", + "fixed-precision": "5.0.0", + "flame": "1.3.0", + "float32": "2.0.0", + "fmt": "0.2.1", + "foldable-traversable": "6.0.0", + "foldable-traversable-extra": "0.0.6", + "foreign": "7.0.0", + "foreign-object": "4.1.0", + "foreign-readwrite": "3.4.0", + "forgetmenot": "0.1.0", + "fork": "6.0.0", + "form-urlencoded": "7.0.0", + "formatters": "7.0.0", + "framer-motion": "1.0.1", + "free": "7.1.0", + "freeap": "7.0.0", + "freer-free": "0.0.1", + "freet": "7.0.0", + "functions": "6.0.0", + "functor1": "3.0.0", + "functors": "5.0.0", + "fuzzy": "0.4.0", + "gen": "4.0.0", + "generate-values": "1.0.1", + "generic-router": "0.0.1", + "geojson": "0.0.5", + "geometria": "2.2.0", + "gojs": "0.1.1", + "grain": "3.0.0", + "grain-router": "3.0.0", + "grain-virtualized": "3.0.0", + "graphs": "8.1.0", + "group": "4.1.1", + "halogen": "7.0.0", + "halogen-bootstrap5": "5.3.2", + "halogen-canvas": "1.0.0", + "halogen-css": "10.0.0", + "halogen-echarts-simple": "0.0.4", + "halogen-formless": "4.0.3", + "halogen-helix": "1.0.1", + "halogen-hooks": "0.6.3", + "halogen-hooks-extra": "0.9.0", + "halogen-infinite-scroll": "1.1.0", + "halogen-store": "0.5.4", + "halogen-storybook": "2.0.0", + "halogen-subscriptions": "2.0.0", + "halogen-svg-elems": "8.0.0", + "halogen-typewriter": "1.0.4", + "halogen-vdom": "8.0.0", + "halogen-vdom-string-renderer": "0.5.0", + "halogen-xterm": "2.0.0", + "heckin": "2.0.1", + "heterogeneous": "0.6.0", + "homogeneous": "0.4.0", + "http-methods": "6.0.0", + "httpurple": "4.0.0", + "huffman": "0.4.0", + "humdrum": "0.0.1", + "hyrule": "2.3.8", + "identity": "6.0.0", + "identy": "4.0.1", + "indexed-db": "1.0.0", + "indexed-monad": "3.0.0", + "int64": "3.0.0", + "integers": "6.0.0", + "interpolate": "5.0.2", + "intersection-observer": "1.0.1", + "invariant": "6.0.0", + "jarilo": "1.0.1", + "jelly": "0.10.0", + "jelly-router": "0.3.0", + "jelly-signal": "0.4.0", + "jest": "1.0.0", + "js-abort-controller": "1.0.0", + "js-bigints": "2.2.1", + "js-date": "8.0.0", + "js-fetch": "0.2.1", + "js-fileio": "3.0.0", + "js-intl": "1.0.4", + "js-iterators": "0.1.1", + "js-maps": "0.1.2", + "js-promise": "1.0.0", + "js-promise-aff": "1.0.0", + "js-timers": "6.1.0", + "js-uri": "3.1.0", + "json": "1.1.0", + "json-codecs": "5.0.0", + "justifill": "0.5.0", + "jwt": "0.0.9", + "labeled-data": "0.2.0", + "language-cst-parser": "0.14.0", + "lazy": "6.0.0", + "lazy-joe": "1.0.0", + "lcg": "4.0.0", + "leibniz": "5.0.0", + "leveldb": "1.0.1", + "liminal": "1.0.1", + "linalg": "6.0.0", + "lists": "7.0.0", + "literals": "1.0.2", + "logging": "3.0.0", + "logging-journald": "0.4.0", + "lumi-components": "18.0.0", + "machines": "7.0.0", + "maps-eager": "0.5.0", + "marionette": "1.0.0", + "marionette-react-basic-hooks": "0.1.1", + "marked": "0.1.0", + "matrices": "5.0.1", + "matryoshka": "1.0.0", + "maybe": "6.0.0", + "media-types": "6.0.0", + "meowclient": "1.0.0", + "midi": "4.0.0", + "milkis": "9.0.0", + "minibench": "4.0.1", + "mmorph": "7.0.0", + "monad-control": "5.0.0", + "monad-logger": "1.3.1", + "monad-loops": "0.5.0", + "monad-unlift": "1.0.1", + "monoid-extras": "0.0.1", + "monoidal": "0.16.0", + "morello": "0.4.0", + "mote": "3.0.0", + "motsunabe": "2.0.0", + "mvc": "0.0.1", + "mysql": "6.0.1", + "n3": "0.1.0", + "nano-id": "1.1.0", + "nanoid": "0.1.0", + "naturals": "3.0.0", + "nested-functor": "0.2.1", + "newtype": "5.0.0", + "nextjs": "0.1.1", + "nextui": "0.2.0", + "node-buffer": "9.0.0", + "node-child-process": "11.1.0", + "node-event-emitter": "3.0.0", + "node-execa": "5.0.0", + "node-fs": "9.2.0", + "node-glob-basic": "1.3.0", + "node-http": "9.1.0", + "node-http2": "1.1.1", + "node-human-signals": "1.0.0", + "node-net": "5.1.0", + "node-os": "5.1.0", + "node-path": "5.0.0", + "node-process": "11.2.0", + "node-readline": "8.1.1", + "node-sqlite3": "8.0.0", + "node-stream-pipes": "2.1.6", + "node-streams": "9.0.0", + "node-tls": "0.3.1", + "node-url": "7.0.1", + "node-zlib": "0.4.0", + "nonempty": "7.0.0", + "now": "6.0.0", + "npm-package-json": "2.0.0", + "nullable": "6.0.0", + "numberfield": "0.2.2", + "numbers": "9.0.1", + "oak": "3.1.1", + "oak-debug": "1.2.2", + "object-maps": "0.3.0", + "ocarina": "1.5.4", + "oooooooooorrrrrrrmm-lib": "0.0.1", + "open-folds": "6.4.0", + "open-foreign-generic": "11.0.3", + "open-memoize": "6.2.0", + "open-mkdirp-aff": "1.2.0", + "open-pairing": "6.2.0", + "open-smolder": "12.0.2", + "options": "7.0.0", + "optparse": "5.0.1", + "ordered-collections": "3.2.0", + "ordered-set": "0.4.0", + "orders": "6.0.0", + "owoify": "1.2.0", + "pairs": "9.0.1", + "parallel": "7.0.0", + "parsing": "10.2.0", + "parsing-dataview": "3.2.4", + "partial": "4.0.0", + "pathy": "9.0.0", + "pha": "0.13.0", + "phaser": "0.7.0", + "phylio": "1.1.2", + "pipes": "8.0.0", + "pirates-charm": "0.0.1", + "pmock": "0.9.0", + "point-free": "1.0.0", + "pointed-list": "0.5.1", + "polymorphic-vectors": "4.0.0", + "posix-types": "6.0.0", + "postgresql": "2.0.19", + "precise": "6.0.0", + "precise-datetime": "7.0.0", + "prelude": "6.0.1", + "prettier-printer": "3.0.0", + "priority-queue": "0.1.2", + "profunctor": "6.0.1", + "profunctor-lenses": "8.0.0", + "protobuf": "4.3.0", + "psa-utils": "8.0.0", + "psci-support": "6.0.0", + "punycode": "1.0.0", + "qualified-do": "2.2.0", + "quantities": "12.2.0", + "quickcheck": "8.0.1", + "quickcheck-combinators": "0.1.3", + "quickcheck-laws": "7.0.0", + "quickcheck-utf8": "0.0.0", + "random": "6.0.0", + "rationals": "6.0.0", + "rdf": "0.1.0", + "react": "11.0.0", + "react-aria": "0.2.0", + "react-basic": "17.0.0", + "react-basic-classic": "3.0.0", + "react-basic-dnd": "10.1.0", + "react-basic-dom": "6.1.0", + "react-basic-emotion": "7.1.0", + "react-basic-hooks": "8.2.0", + "react-basic-storybook": "2.0.0", + "react-dom": "8.0.0", + "react-halo": "3.0.0", + "react-icons": "1.1.5", + "react-markdown": "0.1.0", + "react-testing-library": "4.0.1", + "react-virtuoso": "1.0.0", + "reactix": "0.6.1", + "read": "1.0.1", + "recharts": "1.1.0", + "record": "4.0.0", + "record-extra": "5.0.1", + "record-ptional-fields": "0.1.2", + "record-studio": "1.0.4", + "refs": "6.0.0", + "remotedata": "5.0.1", + "repr": "0.5.0", + "resize-observer": "1.0.0", + "resource": "2.0.1", + "resourcet": "1.0.0", + "result": "1.0.3", + "return": "0.2.0", + "ring-modules": "5.0.1", + "rito": "0.3.4", + "roman": "0.4.0", + "rough-notation": "1.0.2", + "routing": "11.0.0", + "routing-duplex": "0.7.0", + "run": "5.0.0", + "safe-coerce": "2.0.0", + "safely": "4.0.1", + "school-of-music": "1.3.0", + "selection-foldable": "0.2.0", + "selective-functors": "1.0.1", + "semirings": "7.0.0", + "signal": "13.0.0", + "simple-emitter": "3.0.1", + "simple-i18n": "2.0.1", + "simple-json": "9.0.0", + "simple-json-generics": "0.2.1", + "simple-ulid": "3.0.0", + "sized-matrices": "1.0.0", + "sized-vectors": "5.0.2", + "slug": "3.1.0", + "small-ffi": "4.0.1", + "soundfonts": "4.1.0", + "sparse-matrices": "2.0.1", + "sparse-polynomials": "3.0.1", + "spec": "8.0.0", + "spec-discovery": "8.3.0", + "spec-mocha": "5.1.1", + "spec-node": "0.0.2", + "spec-quickcheck": "5.0.2", + "spec-reporter-xunit": "0.7.1", + "splitmix": "2.1.0", + "ssrs": "1.0.0", + "st": "6.2.0", + "statistics": "0.3.2", + "strictlypositiveint": "1.0.1", + "string-parsers": "8.0.0", + "strings": "6.0.1", + "strings-extra": "4.0.0", + "stringutils": "0.0.12", + "substitute": "0.2.3", + "supply": "0.2.0", + "svg-parser": "3.0.0", + "systemd-journald": "0.3.0", + "tagged": "4.0.2", + "tailrec": "6.1.0", + "tecton": "0.2.1", + "tecton-halogen": "0.2.0", + "test-unit": "17.0.0", + "thermite": "6.3.1", + "thermite-dom": "0.3.1", + "these": "6.0.0", + "threading": "0.0.3", + "tldr": "0.0.0", + "toestand": "0.9.0", + "transformation-matrix": "1.0.1", + "transformers": "6.1.0", + "tree-rose": "4.0.2", + "ts-bridge": "4.0.0", + "tuples": "7.0.0", + "two-or-more": "1.0.0", + "type-equality": "4.0.1", + "typedenv": "2.0.1", + "typelevel": "6.0.0", + "typelevel-lists": "2.1.0", + "typelevel-peano": "1.0.1", + "typelevel-prelude": "7.0.0", + "typelevel-regex": "0.0.3", + "typelevel-rows": "0.1.0", + "typisch": "0.4.0", + "uint": "7.0.0", + "ulid": "3.0.1", + "uncurried-transformers": "1.1.0", + "undefined": "2.0.0", + "undefined-is-not-a-problem": "1.1.0", + "unfoldable": "6.0.0", + "unicode": "6.0.0", + "unique": "0.6.1", + "unlift": "1.0.1", + "unordered-collections": "3.1.0", + "unsafe-coerce": "6.0.0", + "unsafe-reference": "5.0.0", + "untagged-to-tagged": "0.1.4", + "untagged-union": "1.0.0", + "uri": "9.0.0", + "url-immutable": "1.0.0", + "uuid": "9.0.0", + "uuidv4": "1.0.0", + "validation": "6.0.0", + "variant": "8.0.0", + "variant-encodings": "2.0.0", + "vectorfield": "1.0.1", + "vectors": "2.1.0", + "versions": "7.0.0", + "visx": "0.0.2", + "web-clipboard": "6.0.0", + "web-cssom": "2.0.0", + "web-cssom-view": "0.1.0", + "web-dom": "6.0.0", + "web-dom-parser": "8.0.0", + "web-dom-xpath": "3.0.0", + "web-encoding": "3.0.0", + "web-events": "4.0.0", + "web-fetch": "4.0.1", + "web-file": "4.0.0", + "web-geometry": "0.1.0", + "web-html": "4.1.0", + "web-pointerevents": "2.0.0", + "web-proletarian": "1.0.0", + "web-promise": "3.2.0", + "web-resize-observer": "2.1.0", + "web-router": "1.0.0", + "web-socket": "4.0.0", + "web-storage": "5.0.0", + "web-streams": "4.0.0", + "web-touchevents": "4.0.0", + "web-uievents": "5.0.0", + "web-url": "2.0.0", + "web-workers": "1.1.0", + "web-xhr": "5.0.1", + "webextension-polyfill": "0.1.0", + "webgpu": "0.0.1", + "which": "2.0.0", + "xterm": "1.0.0", + "yoga-fetch": "1.0.1", + "yoga-json": "5.1.0", + "yoga-om": "0.1.0", + "yoga-postgres": "6.0.0", + "yoga-tree": "1.0.0", + "z3": "0.0.2", + "zipperarray": "2.0.0" + } + }, + "extra_packages": {} + }, + "packages": { + "aff": { + "type": "registry", + "version": "8.0.0", + "integrity": "sha256-5MmdI4+0RHBtSBy+YlU3/Cq4R5W2ih3OaRedJIrVHdk=", + "dependencies": [ + "bifunctors", + "control", + "datetime", + "effect", + "either", + "exceptions", + "foldable-traversable", + "functions", + "maybe", + "newtype", + "parallel", + "prelude", + "refs", + "tailrec", + "transformers", + "unsafe-coerce" + ] + }, + "arraybuffer-types": { + "type": "registry", + "version": "3.0.2", + "integrity": "sha256-mQKokysYVkooS4uXbO+yovmV/s8b138Ws3zQvOwIHRA=", + "dependencies": [] + }, + "arrays": { + "type": "registry", + "version": "7.3.0", + "integrity": "sha256-tmcklBlc/muUtUfr9RapdCPwnlQeB3aSrC4dK85gQlc=", + "dependencies": [ + "bifunctors", + "control", + "foldable-traversable", + "functions", + "maybe", + "nonempty", + "partial", + "prelude", + "safe-coerce", + "st", + "tailrec", + "tuples", + "unfoldable", + "unsafe-coerce" + ] + }, + "assert": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-hCSYcCw9kj3qujoDcriWhCdmrpPZoguSPDZhEMnTl3A=", + "dependencies": [ + "console", + "effect", + "prelude" + ] + }, + "bifunctors": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-/gZwC9YhNxZNQpnHa5BIYerCGM2jeX9ukZiEvYxm5Nw=", + "dependencies": [ + "const", + "either", + "newtype", + "prelude", + "tuples" + ] + }, + "console": { + "type": "registry", + "version": "6.1.0", + "integrity": "sha256-CxmAzjgyuGDmt9FZW51VhV6rBPwR6o0YeKUzA9rSzcM=", + "dependencies": [ + "effect", + "prelude" + ] + }, + "const": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-tNrxDW8D8H4jdHE2HiPzpLy08zkzJMmGHdRqt5BQuTc=", + "dependencies": [ + "invariant", + "newtype", + "prelude" + ] + }, + "contravariant": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-TP+ooAp3vvmdjfQsQJSichF5B4BPDHp3wAJoWchip6c=", + "dependencies": [ + "const", + "either", + "newtype", + "prelude", + "tuples" + ] + }, + "control": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-sH7Pg9E96JCPF9PIA6oQ8+BjTyO/BH1ZuE/bOcyj4Jk=", + "dependencies": [ + "newtype", + "prelude" + ] + }, + "datetime": { + "type": "registry", + "version": "6.1.0", + "integrity": "sha256-g/5X5BBegQWLpI9IWD+sY6mcaYpzzlW5lz5NBzaMtyI=", + "dependencies": [ + "bifunctors", + "control", + "either", + "enums", + "foldable-traversable", + "functions", + "gen", + "integers", + "lists", + "maybe", + "newtype", + "numbers", + "ordered-collections", + "partial", + "prelude", + "tuples" + ] + }, + "distributive": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-HTDdmEnzigMl+02SJB88j+gAXDx9VKsbvR4MJGDPbOQ=", + "dependencies": [ + "identity", + "newtype", + "prelude", + "tuples", + "type-equality" + ] + }, + "effect": { + "type": "registry", + "version": "4.0.0", + "integrity": "sha256-eBtZu+HZcMa5HilvI6kaDyVX3ji8p0W9MGKy2K4T6+M=", + "dependencies": [ + "prelude" + ] + }, + "either": { + "type": "registry", + "version": "6.1.0", + "integrity": "sha256-6hgTPisnMWVwQivOu2PKYcH8uqjEOOqDyaDQVUchTpY=", + "dependencies": [ + "control", + "invariant", + "maybe", + "prelude" + ] + }, + "enums": { + "type": "registry", + "version": "6.0.1", + "integrity": "sha256-HWaD73JFLorc4A6trKIRUeDMdzE+GpkJaEOM1nTNkC8=", + "dependencies": [ + "control", + "either", + "gen", + "maybe", + "newtype", + "nonempty", + "partial", + "prelude", + "tuples", + "unfoldable" + ] + }, + "exceptions": { + "type": "registry", + "version": "6.1.0", + "integrity": "sha256-K0T89IHtF3vBY7eSAO7eDOqSb2J9kZGAcDN5+IKsF8E=", + "dependencies": [ + "effect", + "either", + "maybe", + "prelude" + ] + }, + "exists": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-A0JQHpTfo1dNOj9U5/Fd3xndlRSE0g2IQWOGor2yXn8=", + "dependencies": [ + "unsafe-coerce" + ] + }, + "foldable-traversable": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-fLeqRYM4jUrZD5H4WqcwUgzU7XfYkzO4zhgtNc3jcWM=", + "dependencies": [ + "bifunctors", + "const", + "control", + "either", + "functors", + "identity", + "maybe", + "newtype", + "orders", + "prelude", + "tuples" + ] + }, + "foreign": { + "type": "registry", + "version": "7.0.0", + "integrity": "sha256-1ORiqoS3HW+qfwSZAppHPWy4/6AQysxZ2t29jcdUMNA=", + "dependencies": [ + "either", + "functions", + "identity", + "integers", + "lists", + "maybe", + "prelude", + "strings", + "transformers" + ] + }, + "foreign-object": { + "type": "registry", + "version": "4.1.0", + "integrity": "sha256-q24okj6mT+yGHYQ+ei/pYPj5ih6sTbu7eDv/WU56JVo=", + "dependencies": [ + "arrays", + "foldable-traversable", + "functions", + "gen", + "lists", + "maybe", + "prelude", + "st", + "tailrec", + "tuples", + "typelevel-prelude", + "unfoldable" + ] + }, + "functions": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-adMyJNEnhGde2unHHAP79gPtlNjNqzgLB8arEOn9hLI=", + "dependencies": [ + "prelude" + ] + }, + "functors": { + "type": "registry", + "version": "5.0.0", + "integrity": "sha256-zfPWWYisbD84MqwpJSZFlvM6v86McM68ob8p9s27ywU=", + "dependencies": [ + "bifunctors", + "const", + "contravariant", + "control", + "distributive", + "either", + "invariant", + "maybe", + "newtype", + "prelude", + "profunctor", + "tuples", + "unsafe-coerce" + ] + }, + "gen": { + "type": "registry", + "version": "4.0.0", + "integrity": "sha256-f7yzAXWwr+xnaqEOcvyO3ezKdoes8+WXWdXIHDBCAPI=", + "dependencies": [ + "either", + "foldable-traversable", + "identity", + "maybe", + "newtype", + "nonempty", + "prelude", + "tailrec", + "tuples", + "unfoldable" + ] + }, + "identity": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-4wY0XZbAksjY6UAg99WkuKyJlQlWAfTi2ssadH0wVMY=", + "dependencies": [ + "control", + "invariant", + "newtype", + "prelude" + ] + }, + "integers": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-sf+sK26R1hzwl3NhXR7WAu9zCDjQnfoXwcyGoseX158=", + "dependencies": [ + "maybe", + "numbers", + "prelude" + ] + }, + "invariant": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-RGWWyYrz0Hs1KjPDA+87Kia67ZFBhfJ5lMGOMCEFoLo=", + "dependencies": [ + "control", + "prelude" + ] + }, + "lazy": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-lMsfFOnlqfe4KzRRiW8ot5ge6HtcU3Eyh2XkXcP5IgU=", + "dependencies": [ + "control", + "foldable-traversable", + "invariant", + "prelude" + ] + }, + "lists": { + "type": "registry", + "version": "7.0.0", + "integrity": "sha256-EKF15qYqucuXP2lT/xPxhqy58f0FFT6KHdIB/yBOayI=", + "dependencies": [ + "bifunctors", + "control", + "foldable-traversable", + "lazy", + "maybe", + "newtype", + "nonempty", + "partial", + "prelude", + "tailrec", + "tuples", + "unfoldable" + ] + }, + "maybe": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-5cCIb0wPwbat2PRkQhUeZO0jcAmf8jCt2qE0wbC3v2Q=", + "dependencies": [ + "control", + "invariant", + "newtype", + "prelude" + ] + }, + "newtype": { + "type": "registry", + "version": "5.0.0", + "integrity": "sha256-gdrQu8oGe9eZE6L3wOI8ql/igOg+zEGB5ITh2g+uttw=", + "dependencies": [ + "prelude", + "safe-coerce" + ] + }, + "node-buffer": { + "type": "registry", + "version": "9.0.0", + "integrity": "sha256-PWE2DJ5ruBLCmeA/fUiuySEFmUJ/VuRfyrnCuVZBlu4=", + "dependencies": [ + "arraybuffer-types", + "effect", + "maybe", + "nullable", + "st", + "unsafe-coerce" + ] + }, + "node-event-emitter": { + "type": "registry", + "version": "3.0.0", + "integrity": "sha256-Qw0MjsT4xRH2j2i4K8JmRjcMKnH5z1Cw39t00q4LE4w=", + "dependencies": [ + "effect", + "either", + "functions", + "maybe", + "nullable", + "prelude", + "unsafe-coerce" + ] + }, + "node-process": { + "type": "registry", + "version": "11.2.0", + "integrity": "sha256-+2MQDYChjGbVbapCyJtuWYwD41jk+BntF/kcOTKBMVs=", + "dependencies": [ + "effect", + "foreign", + "foreign-object", + "maybe", + "node-event-emitter", + "node-streams", + "posix-types", + "prelude", + "unsafe-coerce" + ] + }, + "node-streams": { + "type": "registry", + "version": "9.0.0", + "integrity": "sha256-2n6dq7YWleTDmD1Kur/ul7Cn08IvWrScgPf+0PgX2TQ=", + "dependencies": [ + "aff", + "effect", + "either", + "exceptions", + "node-buffer", + "node-event-emitter", + "nullable", + "prelude" + ] + }, + "nonempty": { + "type": "registry", + "version": "7.0.0", + "integrity": "sha256-54ablJZUHGvvlTJzi3oXyPCuvY6zsrWJuH/dMJ/MFLs=", + "dependencies": [ + "control", + "foldable-traversable", + "maybe", + "prelude", + "tuples", + "unfoldable" + ] + }, + "nullable": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-yiGBVl3AD+Guy4kNWWeN+zl1gCiJK+oeIFtZtPCw4+o=", + "dependencies": [ + "effect", + "functions", + "maybe" + ] + }, + "numbers": { + "type": "registry", + "version": "9.0.1", + "integrity": "sha256-/9M6aeMDBdB4cwYDeJvLFprAHZ49EbtKQLIJsneXLIk=", + "dependencies": [ + "functions", + "maybe" + ] + }, + "ordered-collections": { + "type": "registry", + "version": "3.2.0", + "integrity": "sha256-o9jqsj5rpJmMdoe/zyufWHFjYYFTTsJpgcuCnqCO6PM=", + "dependencies": [ + "arrays", + "foldable-traversable", + "gen", + "lists", + "maybe", + "partial", + "prelude", + "st", + "tailrec", + "tuples", + "unfoldable" + ] + }, + "orders": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-nBA0g3/ai0euH8q9pSbGqk53W2q6agm/dECZTHcoink=", + "dependencies": [ + "newtype", + "prelude" + ] + }, + "parallel": { + "type": "registry", + "version": "7.0.0", + "integrity": "sha256-gUC9i4Txnx9K9RcMLsjujbwZz6BB1bnE2MLvw4GIw5o=", + "dependencies": [ + "control", + "effect", + "either", + "foldable-traversable", + "functors", + "maybe", + "newtype", + "prelude", + "profunctor", + "refs", + "transformers" + ] + }, + "partial": { + "type": "registry", + "version": "4.0.0", + "integrity": "sha256-fwXerld6Xw1VkReh8yeQsdtLVrjfGiVuC5bA1Wyo/J4=", + "dependencies": [] + }, + "posix-types": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-ZfFz8RR1lee/o/Prccyeut3Q+9tYd08mlR72sIh6GzA=", + "dependencies": [ + "maybe", + "prelude" + ] + }, + "prelude": { + "type": "registry", + "version": "6.0.1", + "integrity": "sha256-o8p6SLYmVPqzXZhQFd2hGAWEwBoXl1swxLG/scpJ0V0=", + "dependencies": [] + }, + "profunctor": { + "type": "registry", + "version": "6.0.1", + "integrity": "sha256-E58hSYdJvF2Qjf9dnWLPlJKh2Z2fLfFLkQoYi16vsFk=", + "dependencies": [ + "control", + "distributive", + "either", + "exists", + "invariant", + "newtype", + "prelude", + "tuples" + ] + }, + "refs": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-Vgwne7jIbD3ZMoLNNETLT8Litw6lIYo3MfYNdtYWj9s=", + "dependencies": [ + "effect", + "prelude" + ] + }, + "safe-coerce": { + "type": "registry", + "version": "2.0.0", + "integrity": "sha256-a1ibQkiUcbODbLE/WAq7Ttbbh9ex+x33VCQ7GngKudU=", + "dependencies": [ + "unsafe-coerce" + ] + }, + "st": { + "type": "registry", + "version": "6.2.0", + "integrity": "sha256-z9X0WsOUlPwNx9GlCC+YccCyz8MejC8Wb0C4+9fiBRY=", + "dependencies": [ + "partial", + "prelude", + "tailrec", + "unsafe-coerce" + ] + }, + "strings": { + "type": "registry", + "version": "6.0.1", + "integrity": "sha256-WssD3DbX4OPzxSdjvRMX0yvc9+pS7n5gyPv5I2Trb7k=", + "dependencies": [ + "arrays", + "control", + "either", + "enums", + "foldable-traversable", + "gen", + "integers", + "maybe", + "newtype", + "nonempty", + "partial", + "prelude", + "tailrec", + "tuples", + "unfoldable", + "unsafe-coerce" + ] + }, + "tailrec": { + "type": "registry", + "version": "6.1.0", + "integrity": "sha256-Xx19ECVDRrDWpz9D2GxQHHV89vd61dnXxQm0IcYQHGk=", + "dependencies": [ + "bifunctors", + "effect", + "either", + "identity", + "maybe", + "partial", + "prelude", + "refs" + ] + }, + "transformers": { + "type": "registry", + "version": "6.1.0", + "integrity": "sha256-3Bm+Z6tsC/paG888XkywDngJ2JMos+JfOhRlkVfb7gI=", + "dependencies": [ + "control", + "distributive", + "effect", + "either", + "exceptions", + "foldable-traversable", + "identity", + "lazy", + "maybe", + "newtype", + "prelude", + "st", + "tailrec", + "tuples", + "unfoldable" + ] + }, + "tuples": { + "type": "registry", + "version": "7.0.0", + "integrity": "sha256-1rXgTomes9105BjgXqIw0FL6Fz1lqqUTLWOumhWec1M=", + "dependencies": [ + "control", + "invariant", + "prelude" + ] + }, + "type-equality": { + "type": "registry", + "version": "4.0.1", + "integrity": "sha256-Hs9D6Y71zFi/b+qu5NSbuadUQXe5iv5iWx0226vOHUw=", + "dependencies": [] + }, + "typelevel-prelude": { + "type": "registry", + "version": "7.0.0", + "integrity": "sha256-uFF2ph+vHcQpfPuPf2a3ukJDFmLhApmkpTMviHIWgJM=", + "dependencies": [ + "prelude", + "type-equality" + ] + }, + "unfoldable": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-JtikvJdktRap7vr/K4ITlxUX1QexpnqBq0G/InLr6eg=", + "dependencies": [ + "foldable-traversable", + "maybe", + "partial", + "prelude", + "tuples" + ] + }, + "unicode": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-QJnTVZpmihEAUiMeYrfkusVoziJWp2hJsgi9bMQLue8=", + "dependencies": [ + "foldable-traversable", + "maybe", + "strings" + ] + }, + "unsafe-coerce": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-IqIYW4Vkevn8sI+6aUwRGvd87tVL36BBeOr0cGAE7t0=", + "dependencies": [] + } + } +} diff --git a/spago.yaml b/spago.yaml index 2611d55..a501927 100644 --- a/spago.yaml +++ b/spago.yaml @@ -30,8 +30,10 @@ package: main: Test.Main dependencies: - assert + - bifunctors + - console - node-process - - debug + - nonempty workspace: extraPackages: {} packageSet: From 145c543463a44b91e40532278fdc2610f3b95d52 Mon Sep 17 00:00:00 2001 From: Konstantin Kharlamov Date: Sat, 1 Mar 2025 22:45:03 +0300 Subject: [PATCH 09/20] consumeWith: propagate `consumed` flag when it was set The Parsing design implies that if input was consumed, it must propagate further unless `try` is used to reset that. Fixes: https://github.com/purescript-contrib/purescript-parsing/issues/236 --- src/Parsing/String.purs | 4 ++-- test/Test/Main.purs | 13 ++++++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/Parsing/String.purs b/src/Parsing/String.purs index 29c7652..3ce0854 100644 --- a/src/Parsing/String.purs +++ b/src/Parsing/String.purs @@ -282,12 +282,12 @@ consumeWith . (String -> Either String { value :: a, consumed :: String, remainder :: String }) -> ParserT String m a consumeWith f = ParserT - ( mkFn5 \state1@(ParseState input pos _) _ _ throw done -> + ( mkFn5 \state1@(ParseState input pos oldConsumed) _ _ throw done -> case f input of Left err -> runFn2 throw state1 (ParseError err pos) Right { value, consumed, remainder } -> - runFn2 done (ParseState remainder (updatePosString pos consumed remainder) (not (String.null consumed))) value + runFn2 done (ParseState remainder (updatePosString pos consumed remainder) (oldConsumed || not (String.null consumed))) value ) -- | Combinator which finds the first position in the input `String` where the diff --git a/test/Test/Main.purs b/test/Test/Main.purs index e2c0e23..68fdb6f 100644 --- a/test/Test/Main.purs +++ b/test/Test/Main.purs @@ -36,7 +36,7 @@ import Effect.Console (log, logShow) import Effect.Unsafe (unsafePerformEffect) import Node.Process (lookupEnv) import Parsing (ParseError(..), ParseState(..), Parser, ParserT, Position(..), consume, fail, getParserT, initialPos, parseErrorPosition, position, region, runParser) -import Parsing.Combinators (advance, between, chainl, chainl1, chainr, chainr1, choice, empty, endBy, endBy1, lookAhead, many, many1, many1Till, many1Till_, manyIndex, manyTill, manyTill_, notFollowedBy, optionMaybe, replicateA, sepBy, sepBy1, sepEndBy, sepEndBy1, skipMany, skipMany1, try, tryRethrow, (), (), (<~?>)) +import Parsing.Combinators (advance, between, chainl, chainl1, chainr, chainr1, choice, empty, endBy, endBy1, lookAhead, many, many1, many1Till, many1Till_, manyIndex, manyTill, manyTill_, notFollowedBy, optional, optionMaybe, replicateA, sepBy, sepBy1, sepEndBy, sepEndBy1, skipMany, skipMany1, try, tryRethrow, (), (), (<~?>)) import Parsing.Combinators.Array as Combinators.Array import Parsing.Expr (Assoc(..), Operator(..), buildExprParser) import Parsing.Language (haskellDef, haskellStyle, javaStyle) @@ -572,6 +572,15 @@ javaStyleTest = do "hello {- comment\n -} foo" (mkPos 7) +takeWhilePropagateFail :: TestM +takeWhilePropagateFail = do + -- `takeWhile` always succeeds, but if input was consumed prior and failure happens + -- later, then the failure with consumption should propagate past `optional` #236 + parseErrorTestPosition + (optional (char 'f' <* takeWhile (const false) <* fail "failure")) + "f" + (Position { index: 1, line: 1, column: 2 }) + main :: Effect Unit main = do @@ -734,6 +743,8 @@ main = do , expected: Left $ ParseError "Expected letter" (Position { index: 0, line: 1, column: 1 }) } + takeWhilePropagateFail + log "\nTESTS number\n" -- assert' "Number.fromString" $ Just infinity == Data.Number.fromString "Infinity" From 1493c0fc3c6a4e98ebfb75d5c31da951418e935b Mon Sep 17 00:00:00 2001 From: Nathan Faubion Date: Thu, 6 Mar 2025 06:06:47 -0800 Subject: [PATCH 10/20] Fix consumed semantics This effectively treats the consumed flag as a monoid appended on each sequential action (ie, Writer). This means it can always be a local decision so low-level combinators don't need to consult the previous state. Fixes #235 --- src/Parsing.purs | 35 +++++++++++++++++----------- src/Parsing/String.purs | 4 ++-- test/Test/Main.purs | 51 ++++++++++++++++++++++++++++++++++++++--- 3 files changed, 72 insertions(+), 18 deletions(-) diff --git a/src/Parsing.purs b/src/Parsing.purs index 11e0d67..a6d5110 100644 --- a/src/Parsing.purs +++ b/src/Parsing.purs @@ -93,6 +93,12 @@ data ParseState s = ParseState s Position Boolean -- -- http://blog.ezyang.com/2014/05/parsec-try-a-or-b-considered-harmful/ +appendConsumed :: forall a. ParseState a -> ParseState a -> ParseState a +appendConsumed (ParseState _ _ consumed1) state@(ParseState a b consumed2) = + case consumed1, consumed2 of + true, false -> ParseState a b true + _, _ -> state + -- | The `Parser s` monad with a monad transformer parameter `m`. newtype ParserT s m a = ParserT -- The parser is implemented using continuation-passing-style with uncurried @@ -231,11 +237,12 @@ instance Apply (ParserT s m) where more \_ -> runFn5 k1 state1 more lift throw ( mkFn2 \state2 f -> - more \_ -> - runFn5 k2 state2 more lift throw + more \_ -> do + let state2' = state1 `appendConsumed` state2 + runFn5 k2 state2' more lift throw ( mkFn2 \state3 a -> more \_ -> - runFn2 done state3 (f a) + runFn2 done (state2' `appendConsumed` state3) (f a) ) ) ) @@ -254,7 +261,7 @@ instance Bind (ParserT s m) where ( mkFn2 \state2 a -> more \_ -> do let (ParserT k2) = next a - runFn5 k2 state2 more lift throw done + runFn5 k2 (state1 `appendConsumed` state2) more lift throw done ) ) @@ -271,15 +278,17 @@ instance MonadRec (ParserT s m) where loop = mkFn3 \state2 arg gas -> do let (ParserT k1) = next arg runFn5 k1 state2 more lift throw - ( mkFn2 \state3 step -> case step of - Loop nextArg -> - if gas == 0 then - more \_ -> - runFn3 loop state3 nextArg 30 - else - runFn3 loop state3 nextArg (gas - 1) - Done res -> - runFn2 done state3 res + ( mkFn2 \state3 step -> do + let state3' = state2 `appendConsumed` state3 + case step of + Loop nextArg -> + if gas == 0 then + more \_ -> + runFn3 loop state3' nextArg 30 + else + runFn3 loop state3' nextArg (gas - 1) + Done res -> + runFn2 done state3' res ) runFn3 loop state1 initArg 30 ) diff --git a/src/Parsing/String.purs b/src/Parsing/String.purs index 3ce0854..29c7652 100644 --- a/src/Parsing/String.purs +++ b/src/Parsing/String.purs @@ -282,12 +282,12 @@ consumeWith . (String -> Either String { value :: a, consumed :: String, remainder :: String }) -> ParserT String m a consumeWith f = ParserT - ( mkFn5 \state1@(ParseState input pos oldConsumed) _ _ throw done -> + ( mkFn5 \state1@(ParseState input pos _) _ _ throw done -> case f input of Left err -> runFn2 throw state1 (ParseError err pos) Right { value, consumed, remainder } -> - runFn2 done (ParseState remainder (updatePosString pos consumed remainder) (oldConsumed || not (String.null consumed))) value + runFn2 done (ParseState remainder (updatePosString pos consumed remainder) (not (String.null consumed))) value ) -- | Combinator which finds the first position in the input `String` where the diff --git a/test/Test/Main.purs b/test/Test/Main.purs index 68fdb6f..0c78b66 100644 --- a/test/Test/Main.purs +++ b/test/Test/Main.purs @@ -5,10 +5,11 @@ module Test.Main where -import Prelude (class Eq, class Show, Unit, append, bind, const, discard, div, flip, identity, map, negate, pure, show, unit, void, ($), ($>), (*), (*>), (+), (-), (/), (/=), (<$), (<$>), (<*), (<*>), (<>), (==), (>>=)) +import Prelude hiding (between, when) import Control.Alt ((<|>)) import Control.Lazy (fix, defer) +import Control.Monad.Rec.Class (Step(..), tailRecM) import Control.Monad.State (State, lift, modify, runState) import Data.Array (some, toUnfoldable) import Data.Array as Array @@ -16,6 +17,7 @@ import Data.Bifunctor (lmap, rmap) import Data.CodePoint.Unicode as CodePoint.Unicode import Data.Either (Either(..), either, fromLeft, hush) import Data.Foldable (oneOf) +import Data.Function.Uncurried (mkFn5, runFn2) import Data.List (List(..), fromFoldable, (:)) import Data.List as List import Data.List.NonEmpty (NonEmptyList(..), catMaybes, cons, cons') @@ -35,7 +37,7 @@ import Effect (Effect) import Effect.Console (log, logShow) import Effect.Unsafe (unsafePerformEffect) import Node.Process (lookupEnv) -import Parsing (ParseError(..), ParseState(..), Parser, ParserT, Position(..), consume, fail, getParserT, initialPos, parseErrorPosition, position, region, runParser) +import Parsing (ParseError(..), ParseState(..), Parser, ParserT(..), Position(..), consume, fail, getParserT, initialPos, parseErrorPosition, position, region, runParser) import Parsing.Combinators (advance, between, chainl, chainl1, chainr, chainr1, choice, empty, endBy, endBy1, lookAhead, many, many1, many1Till, many1Till_, manyIndex, manyTill, manyTill_, notFollowedBy, optional, optionMaybe, replicateA, sepBy, sepBy1, sepEndBy, sepEndBy1, skipMany, skipMany1, try, tryRethrow, (), (), (<~?>)) import Parsing.Combinators.Array as Combinators.Array import Parsing.Expr (Assoc(..), Operator(..), buildExprParser) @@ -49,7 +51,7 @@ import Parsing.Token as Token import Partial.Unsafe (unsafePartial) import Test.Assert (assert', assertEqual') import Test.IndentationTests as IndentationTests -import Test.Lib +import Test.Lib (class ParseErrorHuman__OnlyString, TestM, mkParseErrorTestMessage, mkParseErrorTestPosition, mkParseTest) parseTest :: forall s a. Show a => Eq a => ParseErrorHuman__OnlyString s => s -> a -> Parser s a -> Effect Unit parseTest = mkParseTest runParser @@ -60,6 +62,13 @@ parseErrorTestPosition = mkParseErrorTestPosition runParser parseErrorTestMessage :: forall s a. Show a => Parser s a -> s -> String -> Effect Unit parseErrorTestMessage = mkParseErrorTestMessage runParser +parseState :: forall m s a. (ParseState s -> Tuple (ParseState s) a) -> ParserT s m a +parseState k = ParserT + ( mkFn5 \state1 _ _ _ done -> do + let Tuple state2 res = k state1 + runFn2 done state2 res + ) + parens :: forall m a. ParserT String m a -> ParserT String m a parens = between (string "(") (string ")") @@ -581,8 +590,44 @@ takeWhilePropagateFail = do "f" (Position { index: 1, line: 1, column: 2 }) +applicativeSemantics :: Parser String String +applicativeSemantics = + ( string "foo" + <* parseState (\(ParseState a b _) -> Tuple (ParseState a b false) unit) + <* fail "fail" + ) + <|> pure "" + +bindSemantics :: Parser String String +bindSemantics = + ( do + _ <- string "foo" + parseState (\(ParseState a b _) -> Tuple (ParseState a b false) unit) + fail "fail" + ) + <|> pure "" + +monadRecSemantics :: Parser String String +monadRecSemantics = loop <|> pure "" + where + loop = tailRecM + ( case _ of + 1 -> do + _ <- string "foo" + pure (Loop 2) + 2 -> + parseState (\(ParseState a b _) -> Tuple (ParseState a b false) (Loop 3)) + _ -> + fail "fail" + ) + 1 + main :: Effect Unit main = do + log "\nTESTS Semantics\n" + parseErrorTestMessage applicativeSemantics "foo" "fail" + parseErrorTestMessage bindSemantics "foo" "fail" + parseErrorTestMessage monadRecSemantics "foo" "fail" log "\nTESTS Indentation\n" IndentationTests.testIndentationParser From 651105dbbc1188fcf84d73369ba75b76c9b9c8be Mon Sep 17 00:00:00 2001 From: Nathan Faubion Date: Thu, 6 Mar 2025 06:12:33 -0800 Subject: [PATCH 11/20] Update CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index aa272ed..abf682d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ Notable changes to this project are documented in this file. The format is based Bugfixes: - `float` parser of `GenTokenParser` does not parse negative numbers (by @mstream) +- Fixes `consumed` semantics which could cause unexpected backtracking instead of a failure (by @natefaubion) Breaking changes: From 6e23d3b866a2b878e41ed246a526d52ff3de8412 Mon Sep 17 00:00:00 2001 From: Nathan Faubion Date: Thu, 6 Mar 2025 06:14:12 -0800 Subject: [PATCH 12/20] Formatting --- src/Parsing.purs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Parsing.purs b/src/Parsing.purs index a6d5110..1cf811e 100644 --- a/src/Parsing.purs +++ b/src/Parsing.purs @@ -80,6 +80,7 @@ derive instance ordParseError :: Ord ParseError -- | - If the left parser fails *without consuming any input*, then backtrack and try the right parser. -- | - If the left parser fails and consumes input, then fail immediately. data ParseState s = ParseState s Position Boolean + -- ParseState constructor has three parameters, -- s: the remaining input -- Position: the current position From a7029c0209848d90a94f1e0cc7b4e2d0dfc8234a Mon Sep 17 00:00:00 2001 From: Konstantin Kharlamov Date: Sat, 1 Mar 2025 23:30:04 +0300 Subject: [PATCH 13/20] spago.dhall: add missing "console" package --- spago.dhall | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spago.dhall b/spago.dhall index 66bd831..37f8f41 100644 --- a/spago.dhall +++ b/spago.dhall @@ -3,6 +3,7 @@ , repository = "https://github.com/purescript-contrib/purescript-parsing.git" , dependencies = [ "arrays" + , "console" , "control" , "effect" , "either" @@ -15,8 +16,8 @@ , "lists" , "maybe" , "newtype" - , "numbers" , "nullable" + , "numbers" , "partial" , "prelude" , "st" From 41682396d6646105604f19f4d0e597fb512a5814 Mon Sep 17 00:00:00 2001 From: James Brock Date: Sat, 8 Mar 2025 12:34:35 +0900 Subject: [PATCH 14/20] spago lock --- spago.lock | 2542 ++++++++++++++++++++++++---------------------------- 1 file changed, 1190 insertions(+), 1352 deletions(-) diff --git a/spago.lock b/spago.lock index 34ea870..cc814c4 100644 --- a/spago.lock +++ b/spago.lock @@ -1,1352 +1,1190 @@ -{ - "workspace": { - "packages": { - "parsing": { - "path": "./", - "core": { - "dependencies": [ - "arrays", - "control", - "effect", - "either", - "enums", - "foldable-traversable", - "functions", - "identity", - "integers", - "lazy", - "lists", - "maybe", - "newtype", - "nullable", - "numbers", - "partial", - "prelude", - "st", - "strings", - "tailrec", - "transformers", - "tuples", - "unfoldable", - "unicode", - "unsafe-coerce" - ], - "build_plan": [ - "arrays", - "bifunctors", - "const", - "contravariant", - "control", - "distributive", - "effect", - "either", - "enums", - "exceptions", - "exists", - "foldable-traversable", - "functions", - "functors", - "gen", - "identity", - "integers", - "invariant", - "lazy", - "lists", - "maybe", - "newtype", - "nonempty", - "nullable", - "numbers", - "orders", - "partial", - "prelude", - "profunctor", - "refs", - "safe-coerce", - "st", - "strings", - "tailrec", - "transformers", - "tuples", - "type-equality", - "unfoldable", - "unicode", - "unsafe-coerce" - ] - }, - "test": { - "dependencies": [ - "assert", - "bifunctors", - "console", - "node-process", - "nonempty" - ], - "build_plan": [ - "aff", - "arraybuffer-types", - "arrays", - "assert", - "bifunctors", - "console", - "const", - "contravariant", - "control", - "datetime", - "distributive", - "effect", - "either", - "enums", - "exceptions", - "exists", - "foldable-traversable", - "foreign", - "foreign-object", - "functions", - "functors", - "gen", - "identity", - "integers", - "invariant", - "lazy", - "lists", - "maybe", - "newtype", - "node-buffer", - "node-event-emitter", - "node-process", - "node-streams", - "nonempty", - "nullable", - "numbers", - "ordered-collections", - "orders", - "parallel", - "partial", - "posix-types", - "prelude", - "profunctor", - "refs", - "safe-coerce", - "st", - "strings", - "tailrec", - "transformers", - "tuples", - "type-equality", - "typelevel-prelude", - "unfoldable", - "unsafe-coerce" - ] - } - } - }, - "package_set": { - "address": { - "registry": "60.2.1" - }, - "compiler": ">=0.15.15 <0.16.0", - "content": { - "abc-parser": "2.0.1", - "ace": "9.1.0", - "address-rfc2821": "0.1.1", - "aff": "8.0.0", - "aff-bus": "6.0.0", - "aff-coroutines": "9.0.0", - "aff-promise": "4.0.0", - "aff-retry": "2.0.0", - "affjax": "13.0.0", - "affjax-node": "1.0.0", - "affjax-web": "1.0.0", - "ansi": "7.0.0", - "apexcharts": "0.5.0", - "applicative-phases": "1.0.0", - "argonaut": "9.0.0", - "argonaut-aeson-generic": "0.4.1", - "argonaut-codecs": "9.1.0", - "argonaut-core": "7.0.0", - "argonaut-generic": "8.0.0", - "argonaut-traversals": "10.0.0", - "argparse-basic": "2.0.0", - "array-builder": "0.1.2", - "array-search": "0.6.0", - "arraybuffer": "13.2.0", - "arraybuffer-builder": "3.1.0", - "arraybuffer-types": "3.0.2", - "arrays": "7.3.0", - "arrays-extra": "0.6.1", - "arrays-zipper": "2.0.1", - "ask": "1.0.0", - "assert": "6.0.0", - "assert-multiple": "0.4.0", - "avar": "5.0.0", - "b64": "0.0.8", - "barbies": "1.0.1", - "barlow-lens": "0.9.0", - "bifunctors": "6.0.0", - "bigints": "7.0.1", - "bolson": "0.3.9", - "bookhound": "0.1.7", - "bower-json": "3.0.0", - "call-by-name": "4.0.1", - "canvas": "6.0.0", - "canvas-action": "9.0.0", - "cartesian": "1.0.6", - "catenable-lists": "7.0.0", - "cbor-stream": "1.3.0", - "chameleon": "1.0.0", - "chameleon-halogen": "1.0.3", - "chameleon-react-basic": "1.1.0", - "chameleon-styled": "2.5.0", - "chameleon-transformers": "1.0.0", - "channel": "1.0.0", - "checked-exceptions": "3.1.1", - "choku": "1.0.1", - "classless": "0.1.1", - "classless-arbitrary": "0.1.1", - "classless-decode-json": "0.1.1", - "classless-encode-json": "0.1.3", - "classnames": "2.0.0", - "codec": "6.1.0", - "codec-argonaut": "10.0.0", - "codec-json": "2.0.0", - "colors": "7.0.1", - "concur-core": "0.5.0", - "concur-react": "0.5.0", - "concurrent-queues": "3.0.0", - "console": "6.1.0", - "const": "6.0.0", - "contravariant": "6.0.0", - "control": "6.0.0", - "convertable-options": "1.0.0", - "coroutines": "7.0.0", - "css": "6.0.0", - "css-frameworks": "1.0.1", - "csv-stream": "2.3.0", - "data-mvc": "0.0.2", - "datetime": "6.1.0", - "datetime-parsing": "0.2.0", - "debounce": "0.1.0", - "debug": "6.0.2", - "decimals": "7.1.0", - "default-values": "1.0.1", - "deku": "0.9.23", - "deno": "0.0.5", - "dissect": "1.0.0", - "distributive": "6.0.0", - "dom-filereader": "7.0.0", - "dom-indexed": "12.0.0", - "dom-simple": "0.4.0", - "dotenv": "4.0.3", - "droplet": "0.6.0", - "dts": "1.0.0", - "dual-numbers": "1.0.3", - "dynamic-buffer": "3.0.1", - "echarts-simple": "0.0.1", - "effect": "4.0.0", - "either": "6.1.0", - "elmish": "0.13.0", - "elmish-enzyme": "0.1.1", - "elmish-hooks": "0.10.3", - "elmish-html": "0.9.0", - "elmish-testing-library": "0.3.2", - "email-validate": "7.0.0", - "encoding": "0.0.9", - "enums": "6.0.1", - "env-names": "0.4.0", - "error": "2.0.0", - "eta-conversion": "0.3.2", - "exceptions": "6.1.0", - "exists": "6.0.0", - "exitcodes": "4.0.0", - "expect-inferred": "3.0.0", - "ezfetch": "1.0.0", - "fahrtwind": "2.0.0", - "fallback": "0.1.0", - "fast-vect": "1.2.0", - "fetch": "4.1.0", - "fetch-argonaut": "1.0.1", - "fetch-core": "5.1.0", - "fetch-yoga-json": "1.1.0", - "ffi-simple": "0.5.1", - "fft-js": "0.1.0", - "filterable": "5.0.0", - "fix-functor": "0.1.0", - "fixed-points": "7.0.0", - "fixed-precision": "5.0.0", - "flame": "1.3.0", - "float32": "2.0.0", - "fmt": "0.2.1", - "foldable-traversable": "6.0.0", - "foldable-traversable-extra": "0.0.6", - "foreign": "7.0.0", - "foreign-object": "4.1.0", - "foreign-readwrite": "3.4.0", - "forgetmenot": "0.1.0", - "fork": "6.0.0", - "form-urlencoded": "7.0.0", - "formatters": "7.0.0", - "framer-motion": "1.0.1", - "free": "7.1.0", - "freeap": "7.0.0", - "freer-free": "0.0.1", - "freet": "7.0.0", - "functions": "6.0.0", - "functor1": "3.0.0", - "functors": "5.0.0", - "fuzzy": "0.4.0", - "gen": "4.0.0", - "generate-values": "1.0.1", - "generic-router": "0.0.1", - "geojson": "0.0.5", - "geometria": "2.2.0", - "gojs": "0.1.1", - "grain": "3.0.0", - "grain-router": "3.0.0", - "grain-virtualized": "3.0.0", - "graphs": "8.1.0", - "group": "4.1.1", - "halogen": "7.0.0", - "halogen-bootstrap5": "5.3.2", - "halogen-canvas": "1.0.0", - "halogen-css": "10.0.0", - "halogen-echarts-simple": "0.0.4", - "halogen-formless": "4.0.3", - "halogen-helix": "1.0.1", - "halogen-hooks": "0.6.3", - "halogen-hooks-extra": "0.9.0", - "halogen-infinite-scroll": "1.1.0", - "halogen-store": "0.5.4", - "halogen-storybook": "2.0.0", - "halogen-subscriptions": "2.0.0", - "halogen-svg-elems": "8.0.0", - "halogen-typewriter": "1.0.4", - "halogen-vdom": "8.0.0", - "halogen-vdom-string-renderer": "0.5.0", - "halogen-xterm": "2.0.0", - "heckin": "2.0.1", - "heterogeneous": "0.6.0", - "homogeneous": "0.4.0", - "http-methods": "6.0.0", - "httpurple": "4.0.0", - "huffman": "0.4.0", - "humdrum": "0.0.1", - "hyrule": "2.3.8", - "identity": "6.0.0", - "identy": "4.0.1", - "indexed-db": "1.0.0", - "indexed-monad": "3.0.0", - "int64": "3.0.0", - "integers": "6.0.0", - "interpolate": "5.0.2", - "intersection-observer": "1.0.1", - "invariant": "6.0.0", - "jarilo": "1.0.1", - "jelly": "0.10.0", - "jelly-router": "0.3.0", - "jelly-signal": "0.4.0", - "jest": "1.0.0", - "js-abort-controller": "1.0.0", - "js-bigints": "2.2.1", - "js-date": "8.0.0", - "js-fetch": "0.2.1", - "js-fileio": "3.0.0", - "js-intl": "1.0.4", - "js-iterators": "0.1.1", - "js-maps": "0.1.2", - "js-promise": "1.0.0", - "js-promise-aff": "1.0.0", - "js-timers": "6.1.0", - "js-uri": "3.1.0", - "json": "1.1.0", - "json-codecs": "5.0.0", - "justifill": "0.5.0", - "jwt": "0.0.9", - "labeled-data": "0.2.0", - "language-cst-parser": "0.14.0", - "lazy": "6.0.0", - "lazy-joe": "1.0.0", - "lcg": "4.0.0", - "leibniz": "5.0.0", - "leveldb": "1.0.1", - "liminal": "1.0.1", - "linalg": "6.0.0", - "lists": "7.0.0", - "literals": "1.0.2", - "logging": "3.0.0", - "logging-journald": "0.4.0", - "lumi-components": "18.0.0", - "machines": "7.0.0", - "maps-eager": "0.5.0", - "marionette": "1.0.0", - "marionette-react-basic-hooks": "0.1.1", - "marked": "0.1.0", - "matrices": "5.0.1", - "matryoshka": "1.0.0", - "maybe": "6.0.0", - "media-types": "6.0.0", - "meowclient": "1.0.0", - "midi": "4.0.0", - "milkis": "9.0.0", - "minibench": "4.0.1", - "mmorph": "7.0.0", - "monad-control": "5.0.0", - "monad-logger": "1.3.1", - "monad-loops": "0.5.0", - "monad-unlift": "1.0.1", - "monoid-extras": "0.0.1", - "monoidal": "0.16.0", - "morello": "0.4.0", - "mote": "3.0.0", - "motsunabe": "2.0.0", - "mvc": "0.0.1", - "mysql": "6.0.1", - "n3": "0.1.0", - "nano-id": "1.1.0", - "nanoid": "0.1.0", - "naturals": "3.0.0", - "nested-functor": "0.2.1", - "newtype": "5.0.0", - "nextjs": "0.1.1", - "nextui": "0.2.0", - "node-buffer": "9.0.0", - "node-child-process": "11.1.0", - "node-event-emitter": "3.0.0", - "node-execa": "5.0.0", - "node-fs": "9.2.0", - "node-glob-basic": "1.3.0", - "node-http": "9.1.0", - "node-http2": "1.1.1", - "node-human-signals": "1.0.0", - "node-net": "5.1.0", - "node-os": "5.1.0", - "node-path": "5.0.0", - "node-process": "11.2.0", - "node-readline": "8.1.1", - "node-sqlite3": "8.0.0", - "node-stream-pipes": "2.1.6", - "node-streams": "9.0.0", - "node-tls": "0.3.1", - "node-url": "7.0.1", - "node-zlib": "0.4.0", - "nonempty": "7.0.0", - "now": "6.0.0", - "npm-package-json": "2.0.0", - "nullable": "6.0.0", - "numberfield": "0.2.2", - "numbers": "9.0.1", - "oak": "3.1.1", - "oak-debug": "1.2.2", - "object-maps": "0.3.0", - "ocarina": "1.5.4", - "oooooooooorrrrrrrmm-lib": "0.0.1", - "open-folds": "6.4.0", - "open-foreign-generic": "11.0.3", - "open-memoize": "6.2.0", - "open-mkdirp-aff": "1.2.0", - "open-pairing": "6.2.0", - "open-smolder": "12.0.2", - "options": "7.0.0", - "optparse": "5.0.1", - "ordered-collections": "3.2.0", - "ordered-set": "0.4.0", - "orders": "6.0.0", - "owoify": "1.2.0", - "pairs": "9.0.1", - "parallel": "7.0.0", - "parsing": "10.2.0", - "parsing-dataview": "3.2.4", - "partial": "4.0.0", - "pathy": "9.0.0", - "pha": "0.13.0", - "phaser": "0.7.0", - "phylio": "1.1.2", - "pipes": "8.0.0", - "pirates-charm": "0.0.1", - "pmock": "0.9.0", - "point-free": "1.0.0", - "pointed-list": "0.5.1", - "polymorphic-vectors": "4.0.0", - "posix-types": "6.0.0", - "postgresql": "2.0.19", - "precise": "6.0.0", - "precise-datetime": "7.0.0", - "prelude": "6.0.1", - "prettier-printer": "3.0.0", - "priority-queue": "0.1.2", - "profunctor": "6.0.1", - "profunctor-lenses": "8.0.0", - "protobuf": "4.3.0", - "psa-utils": "8.0.0", - "psci-support": "6.0.0", - "punycode": "1.0.0", - "qualified-do": "2.2.0", - "quantities": "12.2.0", - "quickcheck": "8.0.1", - "quickcheck-combinators": "0.1.3", - "quickcheck-laws": "7.0.0", - "quickcheck-utf8": "0.0.0", - "random": "6.0.0", - "rationals": "6.0.0", - "rdf": "0.1.0", - "react": "11.0.0", - "react-aria": "0.2.0", - "react-basic": "17.0.0", - "react-basic-classic": "3.0.0", - "react-basic-dnd": "10.1.0", - "react-basic-dom": "6.1.0", - "react-basic-emotion": "7.1.0", - "react-basic-hooks": "8.2.0", - "react-basic-storybook": "2.0.0", - "react-dom": "8.0.0", - "react-halo": "3.0.0", - "react-icons": "1.1.5", - "react-markdown": "0.1.0", - "react-testing-library": "4.0.1", - "react-virtuoso": "1.0.0", - "reactix": "0.6.1", - "read": "1.0.1", - "recharts": "1.1.0", - "record": "4.0.0", - "record-extra": "5.0.1", - "record-ptional-fields": "0.1.2", - "record-studio": "1.0.4", - "refs": "6.0.0", - "remotedata": "5.0.1", - "repr": "0.5.0", - "resize-observer": "1.0.0", - "resource": "2.0.1", - "resourcet": "1.0.0", - "result": "1.0.3", - "return": "0.2.0", - "ring-modules": "5.0.1", - "rito": "0.3.4", - "roman": "0.4.0", - "rough-notation": "1.0.2", - "routing": "11.0.0", - "routing-duplex": "0.7.0", - "run": "5.0.0", - "safe-coerce": "2.0.0", - "safely": "4.0.1", - "school-of-music": "1.3.0", - "selection-foldable": "0.2.0", - "selective-functors": "1.0.1", - "semirings": "7.0.0", - "signal": "13.0.0", - "simple-emitter": "3.0.1", - "simple-i18n": "2.0.1", - "simple-json": "9.0.0", - "simple-json-generics": "0.2.1", - "simple-ulid": "3.0.0", - "sized-matrices": "1.0.0", - "sized-vectors": "5.0.2", - "slug": "3.1.0", - "small-ffi": "4.0.1", - "soundfonts": "4.1.0", - "sparse-matrices": "2.0.1", - "sparse-polynomials": "3.0.1", - "spec": "8.0.0", - "spec-discovery": "8.3.0", - "spec-mocha": "5.1.1", - "spec-node": "0.0.2", - "spec-quickcheck": "5.0.2", - "spec-reporter-xunit": "0.7.1", - "splitmix": "2.1.0", - "ssrs": "1.0.0", - "st": "6.2.0", - "statistics": "0.3.2", - "strictlypositiveint": "1.0.1", - "string-parsers": "8.0.0", - "strings": "6.0.1", - "strings-extra": "4.0.0", - "stringutils": "0.0.12", - "substitute": "0.2.3", - "supply": "0.2.0", - "svg-parser": "3.0.0", - "systemd-journald": "0.3.0", - "tagged": "4.0.2", - "tailrec": "6.1.0", - "tecton": "0.2.1", - "tecton-halogen": "0.2.0", - "test-unit": "17.0.0", - "thermite": "6.3.1", - "thermite-dom": "0.3.1", - "these": "6.0.0", - "threading": "0.0.3", - "tldr": "0.0.0", - "toestand": "0.9.0", - "transformation-matrix": "1.0.1", - "transformers": "6.1.0", - "tree-rose": "4.0.2", - "ts-bridge": "4.0.0", - "tuples": "7.0.0", - "two-or-more": "1.0.0", - "type-equality": "4.0.1", - "typedenv": "2.0.1", - "typelevel": "6.0.0", - "typelevel-lists": "2.1.0", - "typelevel-peano": "1.0.1", - "typelevel-prelude": "7.0.0", - "typelevel-regex": "0.0.3", - "typelevel-rows": "0.1.0", - "typisch": "0.4.0", - "uint": "7.0.0", - "ulid": "3.0.1", - "uncurried-transformers": "1.1.0", - "undefined": "2.0.0", - "undefined-is-not-a-problem": "1.1.0", - "unfoldable": "6.0.0", - "unicode": "6.0.0", - "unique": "0.6.1", - "unlift": "1.0.1", - "unordered-collections": "3.1.0", - "unsafe-coerce": "6.0.0", - "unsafe-reference": "5.0.0", - "untagged-to-tagged": "0.1.4", - "untagged-union": "1.0.0", - "uri": "9.0.0", - "url-immutable": "1.0.0", - "uuid": "9.0.0", - "uuidv4": "1.0.0", - "validation": "6.0.0", - "variant": "8.0.0", - "variant-encodings": "2.0.0", - "vectorfield": "1.0.1", - "vectors": "2.1.0", - "versions": "7.0.0", - "visx": "0.0.2", - "web-clipboard": "6.0.0", - "web-cssom": "2.0.0", - "web-cssom-view": "0.1.0", - "web-dom": "6.0.0", - "web-dom-parser": "8.0.0", - "web-dom-xpath": "3.0.0", - "web-encoding": "3.0.0", - "web-events": "4.0.0", - "web-fetch": "4.0.1", - "web-file": "4.0.0", - "web-geometry": "0.1.0", - "web-html": "4.1.0", - "web-pointerevents": "2.0.0", - "web-proletarian": "1.0.0", - "web-promise": "3.2.0", - "web-resize-observer": "2.1.0", - "web-router": "1.0.0", - "web-socket": "4.0.0", - "web-storage": "5.0.0", - "web-streams": "4.0.0", - "web-touchevents": "4.0.0", - "web-uievents": "5.0.0", - "web-url": "2.0.0", - "web-workers": "1.1.0", - "web-xhr": "5.0.1", - "webextension-polyfill": "0.1.0", - "webgpu": "0.0.1", - "which": "2.0.0", - "xterm": "1.0.0", - "yoga-fetch": "1.0.1", - "yoga-json": "5.1.0", - "yoga-om": "0.1.0", - "yoga-postgres": "6.0.0", - "yoga-tree": "1.0.0", - "z3": "0.0.2", - "zipperarray": "2.0.0" - } - }, - "extra_packages": {} - }, - "packages": { - "aff": { - "type": "registry", - "version": "8.0.0", - "integrity": "sha256-5MmdI4+0RHBtSBy+YlU3/Cq4R5W2ih3OaRedJIrVHdk=", - "dependencies": [ - "bifunctors", - "control", - "datetime", - "effect", - "either", - "exceptions", - "foldable-traversable", - "functions", - "maybe", - "newtype", - "parallel", - "prelude", - "refs", - "tailrec", - "transformers", - "unsafe-coerce" - ] - }, - "arraybuffer-types": { - "type": "registry", - "version": "3.0.2", - "integrity": "sha256-mQKokysYVkooS4uXbO+yovmV/s8b138Ws3zQvOwIHRA=", - "dependencies": [] - }, - "arrays": { - "type": "registry", - "version": "7.3.0", - "integrity": "sha256-tmcklBlc/muUtUfr9RapdCPwnlQeB3aSrC4dK85gQlc=", - "dependencies": [ - "bifunctors", - "control", - "foldable-traversable", - "functions", - "maybe", - "nonempty", - "partial", - "prelude", - "safe-coerce", - "st", - "tailrec", - "tuples", - "unfoldable", - "unsafe-coerce" - ] - }, - "assert": { - "type": "registry", - "version": "6.0.0", - "integrity": "sha256-hCSYcCw9kj3qujoDcriWhCdmrpPZoguSPDZhEMnTl3A=", - "dependencies": [ - "console", - "effect", - "prelude" - ] - }, - "bifunctors": { - "type": "registry", - "version": "6.0.0", - "integrity": "sha256-/gZwC9YhNxZNQpnHa5BIYerCGM2jeX9ukZiEvYxm5Nw=", - "dependencies": [ - "const", - "either", - "newtype", - "prelude", - "tuples" - ] - }, - "console": { - "type": "registry", - "version": "6.1.0", - "integrity": "sha256-CxmAzjgyuGDmt9FZW51VhV6rBPwR6o0YeKUzA9rSzcM=", - "dependencies": [ - "effect", - "prelude" - ] - }, - "const": { - "type": "registry", - "version": "6.0.0", - "integrity": "sha256-tNrxDW8D8H4jdHE2HiPzpLy08zkzJMmGHdRqt5BQuTc=", - "dependencies": [ - "invariant", - "newtype", - "prelude" - ] - }, - "contravariant": { - "type": "registry", - "version": "6.0.0", - "integrity": "sha256-TP+ooAp3vvmdjfQsQJSichF5B4BPDHp3wAJoWchip6c=", - "dependencies": [ - "const", - "either", - "newtype", - "prelude", - "tuples" - ] - }, - "control": { - "type": "registry", - "version": "6.0.0", - "integrity": "sha256-sH7Pg9E96JCPF9PIA6oQ8+BjTyO/BH1ZuE/bOcyj4Jk=", - "dependencies": [ - "newtype", - "prelude" - ] - }, - "datetime": { - "type": "registry", - "version": "6.1.0", - "integrity": "sha256-g/5X5BBegQWLpI9IWD+sY6mcaYpzzlW5lz5NBzaMtyI=", - "dependencies": [ - "bifunctors", - "control", - "either", - "enums", - "foldable-traversable", - "functions", - "gen", - "integers", - "lists", - "maybe", - "newtype", - "numbers", - "ordered-collections", - "partial", - "prelude", - "tuples" - ] - }, - "distributive": { - "type": "registry", - "version": "6.0.0", - "integrity": "sha256-HTDdmEnzigMl+02SJB88j+gAXDx9VKsbvR4MJGDPbOQ=", - "dependencies": [ - "identity", - "newtype", - "prelude", - "tuples", - "type-equality" - ] - }, - "effect": { - "type": "registry", - "version": "4.0.0", - "integrity": "sha256-eBtZu+HZcMa5HilvI6kaDyVX3ji8p0W9MGKy2K4T6+M=", - "dependencies": [ - "prelude" - ] - }, - "either": { - "type": "registry", - "version": "6.1.0", - "integrity": "sha256-6hgTPisnMWVwQivOu2PKYcH8uqjEOOqDyaDQVUchTpY=", - "dependencies": [ - "control", - "invariant", - "maybe", - "prelude" - ] - }, - "enums": { - "type": "registry", - "version": "6.0.1", - "integrity": "sha256-HWaD73JFLorc4A6trKIRUeDMdzE+GpkJaEOM1nTNkC8=", - "dependencies": [ - "control", - "either", - "gen", - "maybe", - "newtype", - "nonempty", - "partial", - "prelude", - "tuples", - "unfoldable" - ] - }, - "exceptions": { - "type": "registry", - "version": "6.1.0", - "integrity": "sha256-K0T89IHtF3vBY7eSAO7eDOqSb2J9kZGAcDN5+IKsF8E=", - "dependencies": [ - "effect", - "either", - "maybe", - "prelude" - ] - }, - "exists": { - "type": "registry", - "version": "6.0.0", - "integrity": "sha256-A0JQHpTfo1dNOj9U5/Fd3xndlRSE0g2IQWOGor2yXn8=", - "dependencies": [ - "unsafe-coerce" - ] - }, - "foldable-traversable": { - "type": "registry", - "version": "6.0.0", - "integrity": "sha256-fLeqRYM4jUrZD5H4WqcwUgzU7XfYkzO4zhgtNc3jcWM=", - "dependencies": [ - "bifunctors", - "const", - "control", - "either", - "functors", - "identity", - "maybe", - "newtype", - "orders", - "prelude", - "tuples" - ] - }, - "foreign": { - "type": "registry", - "version": "7.0.0", - "integrity": "sha256-1ORiqoS3HW+qfwSZAppHPWy4/6AQysxZ2t29jcdUMNA=", - "dependencies": [ - "either", - "functions", - "identity", - "integers", - "lists", - "maybe", - "prelude", - "strings", - "transformers" - ] - }, - "foreign-object": { - "type": "registry", - "version": "4.1.0", - "integrity": "sha256-q24okj6mT+yGHYQ+ei/pYPj5ih6sTbu7eDv/WU56JVo=", - "dependencies": [ - "arrays", - "foldable-traversable", - "functions", - "gen", - "lists", - "maybe", - "prelude", - "st", - "tailrec", - "tuples", - "typelevel-prelude", - "unfoldable" - ] - }, - "functions": { - "type": "registry", - "version": "6.0.0", - "integrity": "sha256-adMyJNEnhGde2unHHAP79gPtlNjNqzgLB8arEOn9hLI=", - "dependencies": [ - "prelude" - ] - }, - "functors": { - "type": "registry", - "version": "5.0.0", - "integrity": "sha256-zfPWWYisbD84MqwpJSZFlvM6v86McM68ob8p9s27ywU=", - "dependencies": [ - "bifunctors", - "const", - "contravariant", - "control", - "distributive", - "either", - "invariant", - "maybe", - "newtype", - "prelude", - "profunctor", - "tuples", - "unsafe-coerce" - ] - }, - "gen": { - "type": "registry", - "version": "4.0.0", - "integrity": "sha256-f7yzAXWwr+xnaqEOcvyO3ezKdoes8+WXWdXIHDBCAPI=", - "dependencies": [ - "either", - "foldable-traversable", - "identity", - "maybe", - "newtype", - "nonempty", - "prelude", - "tailrec", - "tuples", - "unfoldable" - ] - }, - "identity": { - "type": "registry", - "version": "6.0.0", - "integrity": "sha256-4wY0XZbAksjY6UAg99WkuKyJlQlWAfTi2ssadH0wVMY=", - "dependencies": [ - "control", - "invariant", - "newtype", - "prelude" - ] - }, - "integers": { - "type": "registry", - "version": "6.0.0", - "integrity": "sha256-sf+sK26R1hzwl3NhXR7WAu9zCDjQnfoXwcyGoseX158=", - "dependencies": [ - "maybe", - "numbers", - "prelude" - ] - }, - "invariant": { - "type": "registry", - "version": "6.0.0", - "integrity": "sha256-RGWWyYrz0Hs1KjPDA+87Kia67ZFBhfJ5lMGOMCEFoLo=", - "dependencies": [ - "control", - "prelude" - ] - }, - "lazy": { - "type": "registry", - "version": "6.0.0", - "integrity": "sha256-lMsfFOnlqfe4KzRRiW8ot5ge6HtcU3Eyh2XkXcP5IgU=", - "dependencies": [ - "control", - "foldable-traversable", - "invariant", - "prelude" - ] - }, - "lists": { - "type": "registry", - "version": "7.0.0", - "integrity": "sha256-EKF15qYqucuXP2lT/xPxhqy58f0FFT6KHdIB/yBOayI=", - "dependencies": [ - "bifunctors", - "control", - "foldable-traversable", - "lazy", - "maybe", - "newtype", - "nonempty", - "partial", - "prelude", - "tailrec", - "tuples", - "unfoldable" - ] - }, - "maybe": { - "type": "registry", - "version": "6.0.0", - "integrity": "sha256-5cCIb0wPwbat2PRkQhUeZO0jcAmf8jCt2qE0wbC3v2Q=", - "dependencies": [ - "control", - "invariant", - "newtype", - "prelude" - ] - }, - "newtype": { - "type": "registry", - "version": "5.0.0", - "integrity": "sha256-gdrQu8oGe9eZE6L3wOI8ql/igOg+zEGB5ITh2g+uttw=", - "dependencies": [ - "prelude", - "safe-coerce" - ] - }, - "node-buffer": { - "type": "registry", - "version": "9.0.0", - "integrity": "sha256-PWE2DJ5ruBLCmeA/fUiuySEFmUJ/VuRfyrnCuVZBlu4=", - "dependencies": [ - "arraybuffer-types", - "effect", - "maybe", - "nullable", - "st", - "unsafe-coerce" - ] - }, - "node-event-emitter": { - "type": "registry", - "version": "3.0.0", - "integrity": "sha256-Qw0MjsT4xRH2j2i4K8JmRjcMKnH5z1Cw39t00q4LE4w=", - "dependencies": [ - "effect", - "either", - "functions", - "maybe", - "nullable", - "prelude", - "unsafe-coerce" - ] - }, - "node-process": { - "type": "registry", - "version": "11.2.0", - "integrity": "sha256-+2MQDYChjGbVbapCyJtuWYwD41jk+BntF/kcOTKBMVs=", - "dependencies": [ - "effect", - "foreign", - "foreign-object", - "maybe", - "node-event-emitter", - "node-streams", - "posix-types", - "prelude", - "unsafe-coerce" - ] - }, - "node-streams": { - "type": "registry", - "version": "9.0.0", - "integrity": "sha256-2n6dq7YWleTDmD1Kur/ul7Cn08IvWrScgPf+0PgX2TQ=", - "dependencies": [ - "aff", - "effect", - "either", - "exceptions", - "node-buffer", - "node-event-emitter", - "nullable", - "prelude" - ] - }, - "nonempty": { - "type": "registry", - "version": "7.0.0", - "integrity": "sha256-54ablJZUHGvvlTJzi3oXyPCuvY6zsrWJuH/dMJ/MFLs=", - "dependencies": [ - "control", - "foldable-traversable", - "maybe", - "prelude", - "tuples", - "unfoldable" - ] - }, - "nullable": { - "type": "registry", - "version": "6.0.0", - "integrity": "sha256-yiGBVl3AD+Guy4kNWWeN+zl1gCiJK+oeIFtZtPCw4+o=", - "dependencies": [ - "effect", - "functions", - "maybe" - ] - }, - "numbers": { - "type": "registry", - "version": "9.0.1", - "integrity": "sha256-/9M6aeMDBdB4cwYDeJvLFprAHZ49EbtKQLIJsneXLIk=", - "dependencies": [ - "functions", - "maybe" - ] - }, - "ordered-collections": { - "type": "registry", - "version": "3.2.0", - "integrity": "sha256-o9jqsj5rpJmMdoe/zyufWHFjYYFTTsJpgcuCnqCO6PM=", - "dependencies": [ - "arrays", - "foldable-traversable", - "gen", - "lists", - "maybe", - "partial", - "prelude", - "st", - "tailrec", - "tuples", - "unfoldable" - ] - }, - "orders": { - "type": "registry", - "version": "6.0.0", - "integrity": "sha256-nBA0g3/ai0euH8q9pSbGqk53W2q6agm/dECZTHcoink=", - "dependencies": [ - "newtype", - "prelude" - ] - }, - "parallel": { - "type": "registry", - "version": "7.0.0", - "integrity": "sha256-gUC9i4Txnx9K9RcMLsjujbwZz6BB1bnE2MLvw4GIw5o=", - "dependencies": [ - "control", - "effect", - "either", - "foldable-traversable", - "functors", - "maybe", - "newtype", - "prelude", - "profunctor", - "refs", - "transformers" - ] - }, - "partial": { - "type": "registry", - "version": "4.0.0", - "integrity": "sha256-fwXerld6Xw1VkReh8yeQsdtLVrjfGiVuC5bA1Wyo/J4=", - "dependencies": [] - }, - "posix-types": { - "type": "registry", - "version": "6.0.0", - "integrity": "sha256-ZfFz8RR1lee/o/Prccyeut3Q+9tYd08mlR72sIh6GzA=", - "dependencies": [ - "maybe", - "prelude" - ] - }, - "prelude": { - "type": "registry", - "version": "6.0.1", - "integrity": "sha256-o8p6SLYmVPqzXZhQFd2hGAWEwBoXl1swxLG/scpJ0V0=", - "dependencies": [] - }, - "profunctor": { - "type": "registry", - "version": "6.0.1", - "integrity": "sha256-E58hSYdJvF2Qjf9dnWLPlJKh2Z2fLfFLkQoYi16vsFk=", - "dependencies": [ - "control", - "distributive", - "either", - "exists", - "invariant", - "newtype", - "prelude", - "tuples" - ] - }, - "refs": { - "type": "registry", - "version": "6.0.0", - "integrity": "sha256-Vgwne7jIbD3ZMoLNNETLT8Litw6lIYo3MfYNdtYWj9s=", - "dependencies": [ - "effect", - "prelude" - ] - }, - "safe-coerce": { - "type": "registry", - "version": "2.0.0", - "integrity": "sha256-a1ibQkiUcbODbLE/WAq7Ttbbh9ex+x33VCQ7GngKudU=", - "dependencies": [ - "unsafe-coerce" - ] - }, - "st": { - "type": "registry", - "version": "6.2.0", - "integrity": "sha256-z9X0WsOUlPwNx9GlCC+YccCyz8MejC8Wb0C4+9fiBRY=", - "dependencies": [ - "partial", - "prelude", - "tailrec", - "unsafe-coerce" - ] - }, - "strings": { - "type": "registry", - "version": "6.0.1", - "integrity": "sha256-WssD3DbX4OPzxSdjvRMX0yvc9+pS7n5gyPv5I2Trb7k=", - "dependencies": [ - "arrays", - "control", - "either", - "enums", - "foldable-traversable", - "gen", - "integers", - "maybe", - "newtype", - "nonempty", - "partial", - "prelude", - "tailrec", - "tuples", - "unfoldable", - "unsafe-coerce" - ] - }, - "tailrec": { - "type": "registry", - "version": "6.1.0", - "integrity": "sha256-Xx19ECVDRrDWpz9D2GxQHHV89vd61dnXxQm0IcYQHGk=", - "dependencies": [ - "bifunctors", - "effect", - "either", - "identity", - "maybe", - "partial", - "prelude", - "refs" - ] - }, - "transformers": { - "type": "registry", - "version": "6.1.0", - "integrity": "sha256-3Bm+Z6tsC/paG888XkywDngJ2JMos+JfOhRlkVfb7gI=", - "dependencies": [ - "control", - "distributive", - "effect", - "either", - "exceptions", - "foldable-traversable", - "identity", - "lazy", - "maybe", - "newtype", - "prelude", - "st", - "tailrec", - "tuples", - "unfoldable" - ] - }, - "tuples": { - "type": "registry", - "version": "7.0.0", - "integrity": "sha256-1rXgTomes9105BjgXqIw0FL6Fz1lqqUTLWOumhWec1M=", - "dependencies": [ - "control", - "invariant", - "prelude" - ] - }, - "type-equality": { - "type": "registry", - "version": "4.0.1", - "integrity": "sha256-Hs9D6Y71zFi/b+qu5NSbuadUQXe5iv5iWx0226vOHUw=", - "dependencies": [] - }, - "typelevel-prelude": { - "type": "registry", - "version": "7.0.0", - "integrity": "sha256-uFF2ph+vHcQpfPuPf2a3ukJDFmLhApmkpTMviHIWgJM=", - "dependencies": [ - "prelude", - "type-equality" - ] - }, - "unfoldable": { - "type": "registry", - "version": "6.0.0", - "integrity": "sha256-JtikvJdktRap7vr/K4ITlxUX1QexpnqBq0G/InLr6eg=", - "dependencies": [ - "foldable-traversable", - "maybe", - "partial", - "prelude", - "tuples" - ] - }, - "unicode": { - "type": "registry", - "version": "6.0.0", - "integrity": "sha256-QJnTVZpmihEAUiMeYrfkusVoziJWp2hJsgi9bMQLue8=", - "dependencies": [ - "foldable-traversable", - "maybe", - "strings" - ] - }, - "unsafe-coerce": { - "type": "registry", - "version": "6.0.0", - "integrity": "sha256-IqIYW4Vkevn8sI+6aUwRGvd87tVL36BBeOr0cGAE7t0=", - "dependencies": [] - } - } -} +workspace: + packages: + parsing: + path: ./ + dependencies: + - arrays + - control + - effect + - either + - enums + - foldable-traversable + - functions + - identity + - integers + - lazy + - lists + - maybe + - newtype + - nullable + - numbers + - partial + - prelude + - st + - strings + - tailrec + - transformers + - tuples + - unfoldable + - unicode + - unsafe-coerce + test_dependencies: + - assert + - bifunctors + - console + - node-process + - nonempty + build_plan: + - aff + - arraybuffer-types + - arrays + - assert + - bifunctors + - console + - const + - contravariant + - control + - datetime + - distributive + - effect + - either + - enums + - exceptions + - exists + - foldable-traversable + - foreign + - foreign-object + - functions + - functors + - gen + - identity + - integers + - invariant + - lazy + - lists + - maybe + - newtype + - node-buffer + - node-event-emitter + - node-process + - node-streams + - nonempty + - nullable + - numbers + - ordered-collections + - orders + - parallel + - partial + - posix-types + - prelude + - profunctor + - refs + - safe-coerce + - st + - strings + - tailrec + - transformers + - tuples + - type-equality + - typelevel-prelude + - unfoldable + - unicode + - unsafe-coerce + package_set: + address: + registry: 60.2.1 + compiler: ">=0.15.15 <0.16.0" + content: + abc-parser: 2.0.1 + ace: 9.1.0 + address-rfc2821: 0.1.1 + aff: 8.0.0 + aff-bus: 6.0.0 + aff-coroutines: 9.0.0 + aff-promise: 4.0.0 + aff-retry: 2.0.0 + affjax: 13.0.0 + affjax-node: 1.0.0 + affjax-web: 1.0.0 + ansi: 7.0.0 + apexcharts: 0.5.0 + applicative-phases: 1.0.0 + argonaut: 9.0.0 + argonaut-aeson-generic: 0.4.1 + argonaut-codecs: 9.1.0 + argonaut-core: 7.0.0 + argonaut-generic: 8.0.0 + argonaut-traversals: 10.0.0 + argparse-basic: 2.0.0 + array-builder: 0.1.2 + array-search: 0.6.0 + arraybuffer: 13.2.0 + arraybuffer-builder: 3.1.0 + arraybuffer-types: 3.0.2 + arrays: 7.3.0 + arrays-extra: 0.6.1 + arrays-zipper: 2.0.1 + ask: 1.0.0 + assert: 6.0.0 + assert-multiple: 0.4.0 + avar: 5.0.0 + b64: 0.0.8 + barbies: 1.0.1 + barlow-lens: 0.9.0 + bifunctors: 6.0.0 + bigints: 7.0.1 + bolson: 0.3.9 + bookhound: 0.1.7 + bower-json: 3.0.0 + call-by-name: 4.0.1 + canvas: 6.0.0 + canvas-action: 9.0.0 + cartesian: 1.0.6 + catenable-lists: 7.0.0 + cbor-stream: 1.3.0 + chameleon: 1.0.0 + chameleon-halogen: 1.0.3 + chameleon-react-basic: 1.1.0 + chameleon-styled: 2.5.0 + chameleon-transformers: 1.0.0 + channel: 1.0.0 + checked-exceptions: 3.1.1 + choku: 1.0.1 + classless: 0.1.1 + classless-arbitrary: 0.1.1 + classless-decode-json: 0.1.1 + classless-encode-json: 0.1.3 + classnames: 2.0.0 + codec: 6.1.0 + codec-argonaut: 10.0.0 + codec-json: 2.0.0 + colors: 7.0.1 + concur-core: 0.5.0 + concur-react: 0.5.0 + concurrent-queues: 3.0.0 + console: 6.1.0 + const: 6.0.0 + contravariant: 6.0.0 + control: 6.0.0 + convertable-options: 1.0.0 + coroutines: 7.0.0 + css: 6.0.0 + css-frameworks: 1.0.1 + csv-stream: 2.3.0 + data-mvc: 0.0.2 + datetime: 6.1.0 + datetime-parsing: 0.2.0 + debounce: 0.1.0 + debug: 6.0.2 + decimals: 7.1.0 + default-values: 1.0.1 + deku: 0.9.23 + deno: 0.0.5 + dissect: 1.0.0 + distributive: 6.0.0 + dom-filereader: 7.0.0 + dom-indexed: 12.0.0 + dom-simple: 0.4.0 + dotenv: 4.0.3 + droplet: 0.6.0 + dts: 1.0.0 + dual-numbers: 1.0.3 + dynamic-buffer: 3.0.1 + echarts-simple: 0.0.1 + effect: 4.0.0 + either: 6.1.0 + elmish: 0.13.0 + elmish-enzyme: 0.1.1 + elmish-hooks: 0.10.3 + elmish-html: 0.9.0 + elmish-testing-library: 0.3.2 + email-validate: 7.0.0 + encoding: 0.0.9 + enums: 6.0.1 + env-names: 0.4.0 + error: 2.0.0 + eta-conversion: 0.3.2 + exceptions: 6.1.0 + exists: 6.0.0 + exitcodes: 4.0.0 + expect-inferred: 3.0.0 + ezfetch: 1.0.0 + fahrtwind: 2.0.0 + fallback: 0.1.0 + fast-vect: 1.2.0 + fetch: 4.1.0 + fetch-argonaut: 1.0.1 + fetch-core: 5.1.0 + fetch-yoga-json: 1.1.0 + ffi-simple: 0.5.1 + fft-js: 0.1.0 + filterable: 5.0.0 + fix-functor: 0.1.0 + fixed-points: 7.0.0 + fixed-precision: 5.0.0 + flame: 1.3.0 + float32: 2.0.0 + fmt: 0.2.1 + foldable-traversable: 6.0.0 + foldable-traversable-extra: 0.0.6 + foreign: 7.0.0 + foreign-object: 4.1.0 + foreign-readwrite: 3.4.0 + forgetmenot: 0.1.0 + fork: 6.0.0 + form-urlencoded: 7.0.0 + formatters: 7.0.0 + framer-motion: 1.0.1 + free: 7.1.0 + freeap: 7.0.0 + freer-free: 0.0.1 + freet: 7.0.0 + functions: 6.0.0 + functor1: 3.0.0 + functors: 5.0.0 + fuzzy: 0.4.0 + gen: 4.0.0 + generate-values: 1.0.1 + generic-router: 0.0.1 + geojson: 0.0.5 + geometria: 2.2.0 + gojs: 0.1.1 + grain: 3.0.0 + grain-router: 3.0.0 + grain-virtualized: 3.0.0 + graphs: 8.1.0 + group: 4.1.1 + halogen: 7.0.0 + halogen-bootstrap5: 5.3.2 + halogen-canvas: 1.0.0 + halogen-css: 10.0.0 + halogen-echarts-simple: 0.0.4 + halogen-formless: 4.0.3 + halogen-helix: 1.0.1 + halogen-hooks: 0.6.3 + halogen-hooks-extra: 0.9.0 + halogen-infinite-scroll: 1.1.0 + halogen-store: 0.5.4 + halogen-storybook: 2.0.0 + halogen-subscriptions: 2.0.0 + halogen-svg-elems: 8.0.0 + halogen-typewriter: 1.0.4 + halogen-vdom: 8.0.0 + halogen-vdom-string-renderer: 0.5.0 + halogen-xterm: 2.0.0 + heckin: 2.0.1 + heterogeneous: 0.6.0 + homogeneous: 0.4.0 + http-methods: 6.0.0 + httpurple: 4.0.0 + huffman: 0.4.0 + humdrum: 0.0.1 + hyrule: 2.3.8 + identity: 6.0.0 + identy: 4.0.1 + indexed-db: 1.0.0 + indexed-monad: 3.0.0 + int64: 3.0.0 + integers: 6.0.0 + interpolate: 5.0.2 + intersection-observer: 1.0.1 + invariant: 6.0.0 + jarilo: 1.0.1 + jelly: 0.10.0 + jelly-router: 0.3.0 + jelly-signal: 0.4.0 + jest: 1.0.0 + js-abort-controller: 1.0.0 + js-bigints: 2.2.1 + js-date: 8.0.0 + js-fetch: 0.2.1 + js-fileio: 3.0.0 + js-intl: 1.0.4 + js-iterators: 0.1.1 + js-maps: 0.1.2 + js-promise: 1.0.0 + js-promise-aff: 1.0.0 + js-timers: 6.1.0 + js-uri: 3.1.0 + json: 1.1.0 + json-codecs: 5.0.0 + justifill: 0.5.0 + jwt: 0.0.9 + labeled-data: 0.2.0 + language-cst-parser: 0.14.0 + lazy: 6.0.0 + lazy-joe: 1.0.0 + lcg: 4.0.0 + leibniz: 5.0.0 + leveldb: 1.0.1 + liminal: 1.0.1 + linalg: 6.0.0 + lists: 7.0.0 + literals: 1.0.2 + logging: 3.0.0 + logging-journald: 0.4.0 + lumi-components: 18.0.0 + machines: 7.0.0 + maps-eager: 0.5.0 + marionette: 1.0.0 + marionette-react-basic-hooks: 0.1.1 + marked: 0.1.0 + matrices: 5.0.1 + matryoshka: 1.0.0 + maybe: 6.0.0 + media-types: 6.0.0 + meowclient: 1.0.0 + midi: 4.0.0 + milkis: 9.0.0 + minibench: 4.0.1 + mmorph: 7.0.0 + monad-control: 5.0.0 + monad-logger: 1.3.1 + monad-loops: 0.5.0 + monad-unlift: 1.0.1 + monoid-extras: 0.0.1 + monoidal: 0.16.0 + morello: 0.4.0 + mote: 3.0.0 + motsunabe: 2.0.0 + mvc: 0.0.1 + mysql: 6.0.1 + n3: 0.1.0 + nano-id: 1.1.0 + nanoid: 0.1.0 + naturals: 3.0.0 + nested-functor: 0.2.1 + newtype: 5.0.0 + nextjs: 0.1.1 + nextui: 0.2.0 + node-buffer: 9.0.0 + node-child-process: 11.1.0 + node-event-emitter: 3.0.0 + node-execa: 5.0.0 + node-fs: 9.2.0 + node-glob-basic: 1.3.0 + node-http: 9.1.0 + node-http2: 1.1.1 + node-human-signals: 1.0.0 + node-net: 5.1.0 + node-os: 5.1.0 + node-path: 5.0.0 + node-process: 11.2.0 + node-readline: 8.1.1 + node-sqlite3: 8.0.0 + node-stream-pipes: 2.1.6 + node-streams: 9.0.0 + node-tls: 0.3.1 + node-url: 7.0.1 + node-zlib: 0.4.0 + nonempty: 7.0.0 + now: 6.0.0 + npm-package-json: 2.0.0 + nullable: 6.0.0 + numberfield: 0.2.2 + numbers: 9.0.1 + oak: 3.1.1 + oak-debug: 1.2.2 + object-maps: 0.3.0 + ocarina: 1.5.4 + oooooooooorrrrrrrmm-lib: 0.0.1 + open-folds: 6.4.0 + open-foreign-generic: 11.0.3 + open-memoize: 6.2.0 + open-mkdirp-aff: 1.2.0 + open-pairing: 6.2.0 + open-smolder: 12.0.2 + options: 7.0.0 + optparse: 5.0.1 + ordered-collections: 3.2.0 + ordered-set: 0.4.0 + orders: 6.0.0 + owoify: 1.2.0 + pairs: 9.0.1 + parallel: 7.0.0 + parsing: 10.2.0 + parsing-dataview: 3.2.4 + partial: 4.0.0 + pathy: 9.0.0 + pha: 0.13.0 + phaser: 0.7.0 + phylio: 1.1.2 + pipes: 8.0.0 + pirates-charm: 0.0.1 + pmock: 0.9.0 + point-free: 1.0.0 + pointed-list: 0.5.1 + polymorphic-vectors: 4.0.0 + posix-types: 6.0.0 + postgresql: 2.0.19 + precise: 6.0.0 + precise-datetime: 7.0.0 + prelude: 6.0.1 + prettier-printer: 3.0.0 + priority-queue: 0.1.2 + profunctor: 6.0.1 + profunctor-lenses: 8.0.0 + protobuf: 4.3.0 + psa-utils: 8.0.0 + psci-support: 6.0.0 + punycode: 1.0.0 + qualified-do: 2.2.0 + quantities: 12.2.0 + quickcheck: 8.0.1 + quickcheck-combinators: 0.1.3 + quickcheck-laws: 7.0.0 + quickcheck-utf8: 0.0.0 + random: 6.0.0 + rationals: 6.0.0 + rdf: 0.1.0 + react: 11.0.0 + react-aria: 0.2.0 + react-basic: 17.0.0 + react-basic-classic: 3.0.0 + react-basic-dnd: 10.1.0 + react-basic-dom: 6.1.0 + react-basic-emotion: 7.1.0 + react-basic-hooks: 8.2.0 + react-basic-storybook: 2.0.0 + react-dom: 8.0.0 + react-halo: 3.0.0 + react-icons: 1.1.5 + react-markdown: 0.1.0 + react-testing-library: 4.0.1 + react-virtuoso: 1.0.0 + reactix: 0.6.1 + read: 1.0.1 + recharts: 1.1.0 + record: 4.0.0 + record-extra: 5.0.1 + record-ptional-fields: 0.1.2 + record-studio: 1.0.4 + refs: 6.0.0 + remotedata: 5.0.1 + repr: 0.5.0 + resize-observer: 1.0.0 + resource: 2.0.1 + resourcet: 1.0.0 + result: 1.0.3 + return: 0.2.0 + ring-modules: 5.0.1 + rito: 0.3.4 + roman: 0.4.0 + rough-notation: 1.0.2 + routing: 11.0.0 + routing-duplex: 0.7.0 + run: 5.0.0 + safe-coerce: 2.0.0 + safely: 4.0.1 + school-of-music: 1.3.0 + selection-foldable: 0.2.0 + selective-functors: 1.0.1 + semirings: 7.0.0 + signal: 13.0.0 + simple-emitter: 3.0.1 + simple-i18n: 2.0.1 + simple-json: 9.0.0 + simple-json-generics: 0.2.1 + simple-ulid: 3.0.0 + sized-matrices: 1.0.0 + sized-vectors: 5.0.2 + slug: 3.1.0 + small-ffi: 4.0.1 + soundfonts: 4.1.0 + sparse-matrices: 2.0.1 + sparse-polynomials: 3.0.1 + spec: 8.0.0 + spec-discovery: 8.3.0 + spec-mocha: 5.1.1 + spec-node: 0.0.2 + spec-quickcheck: 5.0.2 + spec-reporter-xunit: 0.7.1 + splitmix: 2.1.0 + ssrs: 1.0.0 + st: 6.2.0 + statistics: 0.3.2 + strictlypositiveint: 1.0.1 + string-parsers: 8.0.0 + strings: 6.0.1 + strings-extra: 4.0.0 + stringutils: 0.0.12 + substitute: 0.2.3 + supply: 0.2.0 + svg-parser: 3.0.0 + systemd-journald: 0.3.0 + tagged: 4.0.2 + tailrec: 6.1.0 + tecton: 0.2.1 + tecton-halogen: 0.2.0 + test-unit: 17.0.0 + thermite: 6.3.1 + thermite-dom: 0.3.1 + these: 6.0.0 + threading: 0.0.3 + tldr: 0.0.0 + toestand: 0.9.0 + transformation-matrix: 1.0.1 + transformers: 6.1.0 + tree-rose: 4.0.2 + ts-bridge: 4.0.0 + tuples: 7.0.0 + two-or-more: 1.0.0 + type-equality: 4.0.1 + typedenv: 2.0.1 + typelevel: 6.0.0 + typelevel-lists: 2.1.0 + typelevel-peano: 1.0.1 + typelevel-prelude: 7.0.0 + typelevel-regex: 0.0.3 + typelevel-rows: 0.1.0 + typisch: 0.4.0 + uint: 7.0.0 + ulid: 3.0.1 + uncurried-transformers: 1.1.0 + undefined: 2.0.0 + undefined-is-not-a-problem: 1.1.0 + unfoldable: 6.0.0 + unicode: 6.0.0 + unique: 0.6.1 + unlift: 1.0.1 + unordered-collections: 3.1.0 + unsafe-coerce: 6.0.0 + unsafe-reference: 5.0.0 + untagged-to-tagged: 0.1.4 + untagged-union: 1.0.0 + uri: 9.0.0 + url-immutable: 1.0.0 + uuid: 9.0.0 + uuidv4: 1.0.0 + validation: 6.0.0 + variant: 8.0.0 + variant-encodings: 2.0.0 + vectorfield: 1.0.1 + vectors: 2.1.0 + versions: 7.0.0 + visx: 0.0.2 + web-clipboard: 6.0.0 + web-cssom: 2.0.0 + web-cssom-view: 0.1.0 + web-dom: 6.0.0 + web-dom-parser: 8.0.0 + web-dom-xpath: 3.0.0 + web-encoding: 3.0.0 + web-events: 4.0.0 + web-fetch: 4.0.1 + web-file: 4.0.0 + web-geometry: 0.1.0 + web-html: 4.1.0 + web-pointerevents: 2.0.0 + web-proletarian: 1.0.0 + web-promise: 3.2.0 + web-resize-observer: 2.1.0 + web-router: 1.0.0 + web-socket: 4.0.0 + web-storage: 5.0.0 + web-streams: 4.0.0 + web-touchevents: 4.0.0 + web-uievents: 5.0.0 + web-url: 2.0.0 + web-workers: 1.1.0 + web-xhr: 5.0.1 + webextension-polyfill: 0.1.0 + webgpu: 0.0.1 + which: 2.0.0 + xterm: 1.0.0 + yoga-fetch: 1.0.1 + yoga-json: 5.1.0 + yoga-om: 0.1.0 + yoga-postgres: 6.0.0 + yoga-tree: 1.0.0 + z3: 0.0.2 + zipperarray: 2.0.0 + extra_packages: {} +packages: + aff: + type: registry + version: 8.0.0 + integrity: sha256-5MmdI4+0RHBtSBy+YlU3/Cq4R5W2ih3OaRedJIrVHdk= + dependencies: + - bifunctors + - control + - datetime + - effect + - either + - exceptions + - foldable-traversable + - functions + - maybe + - newtype + - parallel + - prelude + - refs + - tailrec + - transformers + - unsafe-coerce + arraybuffer-types: + type: registry + version: 3.0.2 + integrity: sha256-mQKokysYVkooS4uXbO+yovmV/s8b138Ws3zQvOwIHRA= + dependencies: [] + arrays: + type: registry + version: 7.3.0 + integrity: sha256-tmcklBlc/muUtUfr9RapdCPwnlQeB3aSrC4dK85gQlc= + dependencies: + - bifunctors + - control + - foldable-traversable + - functions + - maybe + - nonempty + - partial + - prelude + - safe-coerce + - st + - tailrec + - tuples + - unfoldable + - unsafe-coerce + assert: + type: registry + version: 6.0.0 + integrity: sha256-hCSYcCw9kj3qujoDcriWhCdmrpPZoguSPDZhEMnTl3A= + dependencies: + - console + - effect + - prelude + bifunctors: + type: registry + version: 6.0.0 + integrity: sha256-/gZwC9YhNxZNQpnHa5BIYerCGM2jeX9ukZiEvYxm5Nw= + dependencies: + - const + - either + - newtype + - prelude + - tuples + console: + type: registry + version: 6.1.0 + integrity: sha256-CxmAzjgyuGDmt9FZW51VhV6rBPwR6o0YeKUzA9rSzcM= + dependencies: + - effect + - prelude + const: + type: registry + version: 6.0.0 + integrity: sha256-tNrxDW8D8H4jdHE2HiPzpLy08zkzJMmGHdRqt5BQuTc= + dependencies: + - invariant + - newtype + - prelude + contravariant: + type: registry + version: 6.0.0 + integrity: sha256-TP+ooAp3vvmdjfQsQJSichF5B4BPDHp3wAJoWchip6c= + dependencies: + - const + - either + - newtype + - prelude + - tuples + control: + type: registry + version: 6.0.0 + integrity: sha256-sH7Pg9E96JCPF9PIA6oQ8+BjTyO/BH1ZuE/bOcyj4Jk= + dependencies: + - newtype + - prelude + datetime: + type: registry + version: 6.1.0 + integrity: sha256-g/5X5BBegQWLpI9IWD+sY6mcaYpzzlW5lz5NBzaMtyI= + dependencies: + - bifunctors + - control + - either + - enums + - foldable-traversable + - functions + - gen + - integers + - lists + - maybe + - newtype + - numbers + - ordered-collections + - partial + - prelude + - tuples + distributive: + type: registry + version: 6.0.0 + integrity: sha256-HTDdmEnzigMl+02SJB88j+gAXDx9VKsbvR4MJGDPbOQ= + dependencies: + - identity + - newtype + - prelude + - tuples + - type-equality + effect: + type: registry + version: 4.0.0 + integrity: sha256-eBtZu+HZcMa5HilvI6kaDyVX3ji8p0W9MGKy2K4T6+M= + dependencies: + - prelude + either: + type: registry + version: 6.1.0 + integrity: sha256-6hgTPisnMWVwQivOu2PKYcH8uqjEOOqDyaDQVUchTpY= + dependencies: + - control + - invariant + - maybe + - prelude + enums: + type: registry + version: 6.0.1 + integrity: sha256-HWaD73JFLorc4A6trKIRUeDMdzE+GpkJaEOM1nTNkC8= + dependencies: + - control + - either + - gen + - maybe + - newtype + - nonempty + - partial + - prelude + - tuples + - unfoldable + exceptions: + type: registry + version: 6.1.0 + integrity: sha256-K0T89IHtF3vBY7eSAO7eDOqSb2J9kZGAcDN5+IKsF8E= + dependencies: + - effect + - either + - maybe + - prelude + exists: + type: registry + version: 6.0.0 + integrity: sha256-A0JQHpTfo1dNOj9U5/Fd3xndlRSE0g2IQWOGor2yXn8= + dependencies: + - unsafe-coerce + foldable-traversable: + type: registry + version: 6.0.0 + integrity: sha256-fLeqRYM4jUrZD5H4WqcwUgzU7XfYkzO4zhgtNc3jcWM= + dependencies: + - bifunctors + - const + - control + - either + - functors + - identity + - maybe + - newtype + - orders + - prelude + - tuples + foreign: + type: registry + version: 7.0.0 + integrity: sha256-1ORiqoS3HW+qfwSZAppHPWy4/6AQysxZ2t29jcdUMNA= + dependencies: + - either + - functions + - identity + - integers + - lists + - maybe + - prelude + - strings + - transformers + foreign-object: + type: registry + version: 4.1.0 + integrity: sha256-q24okj6mT+yGHYQ+ei/pYPj5ih6sTbu7eDv/WU56JVo= + dependencies: + - arrays + - foldable-traversable + - functions + - gen + - lists + - maybe + - prelude + - st + - tailrec + - tuples + - typelevel-prelude + - unfoldable + functions: + type: registry + version: 6.0.0 + integrity: sha256-adMyJNEnhGde2unHHAP79gPtlNjNqzgLB8arEOn9hLI= + dependencies: + - prelude + functors: + type: registry + version: 5.0.0 + integrity: sha256-zfPWWYisbD84MqwpJSZFlvM6v86McM68ob8p9s27ywU= + dependencies: + - bifunctors + - const + - contravariant + - control + - distributive + - either + - invariant + - maybe + - newtype + - prelude + - profunctor + - tuples + - unsafe-coerce + gen: + type: registry + version: 4.0.0 + integrity: sha256-f7yzAXWwr+xnaqEOcvyO3ezKdoes8+WXWdXIHDBCAPI= + dependencies: + - either + - foldable-traversable + - identity + - maybe + - newtype + - nonempty + - prelude + - tailrec + - tuples + - unfoldable + identity: + type: registry + version: 6.0.0 + integrity: sha256-4wY0XZbAksjY6UAg99WkuKyJlQlWAfTi2ssadH0wVMY= + dependencies: + - control + - invariant + - newtype + - prelude + integers: + type: registry + version: 6.0.0 + integrity: sha256-sf+sK26R1hzwl3NhXR7WAu9zCDjQnfoXwcyGoseX158= + dependencies: + - maybe + - numbers + - prelude + invariant: + type: registry + version: 6.0.0 + integrity: sha256-RGWWyYrz0Hs1KjPDA+87Kia67ZFBhfJ5lMGOMCEFoLo= + dependencies: + - control + - prelude + lazy: + type: registry + version: 6.0.0 + integrity: sha256-lMsfFOnlqfe4KzRRiW8ot5ge6HtcU3Eyh2XkXcP5IgU= + dependencies: + - control + - foldable-traversable + - invariant + - prelude + lists: + type: registry + version: 7.0.0 + integrity: sha256-EKF15qYqucuXP2lT/xPxhqy58f0FFT6KHdIB/yBOayI= + dependencies: + - bifunctors + - control + - foldable-traversable + - lazy + - maybe + - newtype + - nonempty + - partial + - prelude + - tailrec + - tuples + - unfoldable + maybe: + type: registry + version: 6.0.0 + integrity: sha256-5cCIb0wPwbat2PRkQhUeZO0jcAmf8jCt2qE0wbC3v2Q= + dependencies: + - control + - invariant + - newtype + - prelude + newtype: + type: registry + version: 5.0.0 + integrity: sha256-gdrQu8oGe9eZE6L3wOI8ql/igOg+zEGB5ITh2g+uttw= + dependencies: + - prelude + - safe-coerce + node-buffer: + type: registry + version: 9.0.0 + integrity: sha256-PWE2DJ5ruBLCmeA/fUiuySEFmUJ/VuRfyrnCuVZBlu4= + dependencies: + - arraybuffer-types + - effect + - maybe + - nullable + - st + - unsafe-coerce + node-event-emitter: + type: registry + version: 3.0.0 + integrity: sha256-Qw0MjsT4xRH2j2i4K8JmRjcMKnH5z1Cw39t00q4LE4w= + dependencies: + - effect + - either + - functions + - maybe + - nullable + - prelude + - unsafe-coerce + node-process: + type: registry + version: 11.2.0 + integrity: sha256-+2MQDYChjGbVbapCyJtuWYwD41jk+BntF/kcOTKBMVs= + dependencies: + - effect + - foreign + - foreign-object + - maybe + - node-event-emitter + - node-streams + - posix-types + - prelude + - unsafe-coerce + node-streams: + type: registry + version: 9.0.0 + integrity: sha256-2n6dq7YWleTDmD1Kur/ul7Cn08IvWrScgPf+0PgX2TQ= + dependencies: + - aff + - effect + - either + - exceptions + - node-buffer + - node-event-emitter + - nullable + - prelude + nonempty: + type: registry + version: 7.0.0 + integrity: sha256-54ablJZUHGvvlTJzi3oXyPCuvY6zsrWJuH/dMJ/MFLs= + dependencies: + - control + - foldable-traversable + - maybe + - prelude + - tuples + - unfoldable + nullable: + type: registry + version: 6.0.0 + integrity: sha256-yiGBVl3AD+Guy4kNWWeN+zl1gCiJK+oeIFtZtPCw4+o= + dependencies: + - effect + - functions + - maybe + numbers: + type: registry + version: 9.0.1 + integrity: sha256-/9M6aeMDBdB4cwYDeJvLFprAHZ49EbtKQLIJsneXLIk= + dependencies: + - functions + - maybe + ordered-collections: + type: registry + version: 3.2.0 + integrity: sha256-o9jqsj5rpJmMdoe/zyufWHFjYYFTTsJpgcuCnqCO6PM= + dependencies: + - arrays + - foldable-traversable + - gen + - lists + - maybe + - partial + - prelude + - st + - tailrec + - tuples + - unfoldable + orders: + type: registry + version: 6.0.0 + integrity: sha256-nBA0g3/ai0euH8q9pSbGqk53W2q6agm/dECZTHcoink= + dependencies: + - newtype + - prelude + parallel: + type: registry + version: 7.0.0 + integrity: sha256-gUC9i4Txnx9K9RcMLsjujbwZz6BB1bnE2MLvw4GIw5o= + dependencies: + - control + - effect + - either + - foldable-traversable + - functors + - maybe + - newtype + - prelude + - profunctor + - refs + - transformers + partial: + type: registry + version: 4.0.0 + integrity: sha256-fwXerld6Xw1VkReh8yeQsdtLVrjfGiVuC5bA1Wyo/J4= + dependencies: [] + posix-types: + type: registry + version: 6.0.0 + integrity: sha256-ZfFz8RR1lee/o/Prccyeut3Q+9tYd08mlR72sIh6GzA= + dependencies: + - maybe + - prelude + prelude: + type: registry + version: 6.0.1 + integrity: sha256-o8p6SLYmVPqzXZhQFd2hGAWEwBoXl1swxLG/scpJ0V0= + dependencies: [] + profunctor: + type: registry + version: 6.0.1 + integrity: sha256-E58hSYdJvF2Qjf9dnWLPlJKh2Z2fLfFLkQoYi16vsFk= + dependencies: + - control + - distributive + - either + - exists + - invariant + - newtype + - prelude + - tuples + refs: + type: registry + version: 6.0.0 + integrity: sha256-Vgwne7jIbD3ZMoLNNETLT8Litw6lIYo3MfYNdtYWj9s= + dependencies: + - effect + - prelude + safe-coerce: + type: registry + version: 2.0.0 + integrity: sha256-a1ibQkiUcbODbLE/WAq7Ttbbh9ex+x33VCQ7GngKudU= + dependencies: + - unsafe-coerce + st: + type: registry + version: 6.2.0 + integrity: sha256-z9X0WsOUlPwNx9GlCC+YccCyz8MejC8Wb0C4+9fiBRY= + dependencies: + - partial + - prelude + - tailrec + - unsafe-coerce + strings: + type: registry + version: 6.0.1 + integrity: sha256-WssD3DbX4OPzxSdjvRMX0yvc9+pS7n5gyPv5I2Trb7k= + dependencies: + - arrays + - control + - either + - enums + - foldable-traversable + - gen + - integers + - maybe + - newtype + - nonempty + - partial + - prelude + - tailrec + - tuples + - unfoldable + - unsafe-coerce + tailrec: + type: registry + version: 6.1.0 + integrity: sha256-Xx19ECVDRrDWpz9D2GxQHHV89vd61dnXxQm0IcYQHGk= + dependencies: + - bifunctors + - effect + - either + - identity + - maybe + - partial + - prelude + - refs + transformers: + type: registry + version: 6.1.0 + integrity: sha256-3Bm+Z6tsC/paG888XkywDngJ2JMos+JfOhRlkVfb7gI= + dependencies: + - control + - distributive + - effect + - either + - exceptions + - foldable-traversable + - identity + - lazy + - maybe + - newtype + - prelude + - st + - tailrec + - tuples + - unfoldable + tuples: + type: registry + version: 7.0.0 + integrity: sha256-1rXgTomes9105BjgXqIw0FL6Fz1lqqUTLWOumhWec1M= + dependencies: + - control + - invariant + - prelude + type-equality: + type: registry + version: 4.0.1 + integrity: sha256-Hs9D6Y71zFi/b+qu5NSbuadUQXe5iv5iWx0226vOHUw= + dependencies: [] + typelevel-prelude: + type: registry + version: 7.0.0 + integrity: sha256-uFF2ph+vHcQpfPuPf2a3ukJDFmLhApmkpTMviHIWgJM= + dependencies: + - prelude + - type-equality + unfoldable: + type: registry + version: 6.0.0 + integrity: sha256-JtikvJdktRap7vr/K4ITlxUX1QexpnqBq0G/InLr6eg= + dependencies: + - foldable-traversable + - maybe + - partial + - prelude + - tuples + unicode: + type: registry + version: 6.0.0 + integrity: sha256-QJnTVZpmihEAUiMeYrfkusVoziJWp2hJsgi9bMQLue8= + dependencies: + - foldable-traversable + - maybe + - strings + unsafe-coerce: + type: registry + version: 6.0.0 + integrity: sha256-IqIYW4Vkevn8sI+6aUwRGvd87tVL36BBeOr0cGAE7t0= + dependencies: [] From e56b5ec3833683b69e218dc3c6fb7e713fb320a6 Mon Sep 17 00:00:00 2001 From: James Brock Date: Sat, 8 Mar 2025 14:07:30 +0900 Subject: [PATCH 15/20] Combinators.Array.many tests --- test/Test/Main.purs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/test/Test/Main.purs b/test/Test/Main.purs index 0c78b66..939389b 100644 --- a/test/Test/Main.purs +++ b/test/Test/Main.purs @@ -39,6 +39,7 @@ import Effect.Unsafe (unsafePerformEffect) import Node.Process (lookupEnv) import Parsing (ParseError(..), ParseState(..), Parser, ParserT(..), Position(..), consume, fail, getParserT, initialPos, parseErrorPosition, position, region, runParser) import Parsing.Combinators (advance, between, chainl, chainl1, chainr, chainr1, choice, empty, endBy, endBy1, lookAhead, many, many1, many1Till, many1Till_, manyIndex, manyTill, manyTill_, notFollowedBy, optional, optionMaybe, replicateA, sepBy, sepBy1, sepEndBy, sepEndBy1, skipMany, skipMany1, try, tryRethrow, (), (), (<~?>)) +import Parsing.Combinators as Combinators import Parsing.Combinators.Array as Combinators.Array import Parsing.Expr (Assoc(..), Operator(..), buildExprParser) import Parsing.Language (haskellDef, haskellStyle, javaStyle) @@ -1232,3 +1233,31 @@ main = do { actual: runParser "aabbaa" aye , expected: Right ('a' : 'a' : 'b' : 'b' : 'a' : 'a' : List.Nil) } + + do + log "\nTESTS Combinators many" + -- https://github.com/purescript-contrib/purescript-parsing/issues/234 + + let + failAfterConsuming :: forall a. Parser String a + failAfterConsuming = anyChar *> fail "failure" + + parseErrorTestPosition + (Combinators.Array.many (char 'a' <|> failAfterConsuming)) + "abc" + (Position { index: 2, line: 1, column: 3 }) + + parseErrorTestPosition + (Combinators.Array.many1 (char 'a' <|> failAfterConsuming)) + "abc" + (Position { index: 2, line: 1, column: 3 }) + + parseErrorTestPosition + (Combinators.many (char 'a' <|> failAfterConsuming)) + "abc" + (Position { index: 2, line: 1, column: 3 }) + + parseErrorTestPosition + (Combinators.many (char 'a' <|> failAfterConsuming)) + "abc" + (Position { index: 2, line: 1, column: 3 }) From 56721060e8e04714af0ceac7561f397e0ae40008 Mon Sep 17 00:00:00 2001 From: James Brock Date: Sat, 8 Mar 2025 14:18:25 +0900 Subject: [PATCH 16/20] Bugfix: Delete the `try` in Combinators.Array.many MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit According to the semantics of “consume”: If the phrase parser fails without consuming then that is the end of the many. If the phrase parser fails after consuming then the whole parse has failed. --- CHANGELOG.md | 2 ++ src/Parsing/Combinators.purs | 8 ++++++-- src/Parsing/Combinators/Array.purs | 11 +++++++---- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index abf682d..4fdc03d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ Notable changes to this project are documented in this file. The format is based Bugfixes: - `float` parser of `GenTokenParser` does not parse negative numbers (by @mstream) - Fixes `consumed` semantics which could cause unexpected backtracking instead of a failure (by @natefaubion) +- Fix `Combinators.Array.many` and `Combinators.Array.many1`. If the phrase fails after consuming + then the combinator fails. (#240 by @jamesdbrock) Breaking changes: diff --git a/src/Parsing/Combinators.purs b/src/Parsing/Combinators.purs index 6592f11..43ed9e0 100644 --- a/src/Parsing/Combinators.purs +++ b/src/Parsing/Combinators.purs @@ -207,8 +207,12 @@ lookAhead (ParserT k1) = ParserT -- | Match the phrase `p` as many times as possible. -- | --- | If `p` never consumes input when it --- | fails then `many p` will always succeed, +-- | Will match until the phrase `p` fails *without consuming*. +-- | +-- | If the phrase `p` fails after consuming input then the `many` will fail. +-- | +-- | If the phrase `p` is wrapped in `try` then it will never consume. +-- | If phrase `p` never consumes then `many p` will always succeed, -- | but may return an empty list. many :: forall s m a. ParserT s m a -> ParserT s m (List a) many = List.manyRec diff --git a/src/Parsing/Combinators/Array.purs b/src/Parsing/Combinators/Array.purs index 3613d26..d62cc64 100644 --- a/src/Parsing/Combinators/Array.purs +++ b/src/Parsing/Combinators/Array.purs @@ -28,18 +28,21 @@ import Data.List (List(..), (:)) import Data.Maybe (Maybe(..)) import Data.Tuple (Tuple(..)) import Parsing (ParseError(..), ParserT, fail, parseErrorMessage, parseErrorPosition) -import Parsing.Combinators (try) -- | Match the phrase `p` as many times as possible. -- | --- | If `p` never consumes input when it --- | fails then `many p` will always succeed, +-- | Will match until the phrase `p` fails *without consuming*. +-- | +-- | If the phrase `p` fails after consuming input then the `many` will fail. +-- | +-- | If the phrase `p` is wrapped in `try` then it will never consume. +-- | If phrase `p` never consumes then `many p` will always succeed, -- | but may return an empty array. many :: forall s m a. ParserT s m a -> ParserT s m (Array a) many p = do rlist <- flip tailRecM Nil $ \xs -> alt do - x <- try p + x <- p pure (Loop (x : xs)) do pure (Done xs) From bdca0606e4362a6100d921994067e4ab92026300 Mon Sep 17 00:00:00 2001 From: James Brock Date: Sat, 8 Mar 2025 14:44:38 +0900 Subject: [PATCH 17/20] =?UTF-8?q?Clarify=20the=20=E2=80=9Cconsume=E2=80=9D?= =?UTF-8?q?=20language=20a=20bit.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Parsing/Combinators.purs | 12 ++++++------ src/Parsing/Combinators/Array.purs | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Parsing/Combinators.purs b/src/Parsing/Combinators.purs index 43ed9e0..14f301b 100644 --- a/src/Parsing/Combinators.purs +++ b/src/Parsing/Combinators.purs @@ -136,7 +136,7 @@ infixr 3 asErrorMessage as between :: forall m s a open close. ParserT s m open -> ParserT s m close -> ParserT s m a -> ParserT s m a between open close p = open *> p <* close --- | Provide a default result in the case where a parser fails without consuming input. +-- | Provide a default result in the case where a parser fails without consuming. option :: forall m s a. a -> ParserT s m a -> ParserT s m a option a p = p <|> pure a @@ -146,11 +146,11 @@ option a p = p <|> pure a optional :: forall m s a. ParserT s m a -> ParserT s m Unit optional p = void p <|> pure unit --- | pure `Nothing` in the case where a parser fails without consuming input. +-- | pure `Nothing` in the case where a parser fails without consuming. optionMaybe :: forall m s a. ParserT s m a -> ParserT s m (Maybe a) optionMaybe p = option Nothing (Just <$> p) --- | If the parser fails then backtrack the input stream to the unconsumed state. +-- | If the parser fails then backtrack the input stream and reset to the unconsumed state. -- | -- | One use for this combinator is to ensure that the right parser of an -- | alternative will always be tried when the left parser fails. @@ -173,7 +173,7 @@ try (ParserT k1) = ParserT done ) --- | If the parser fails then backtrack the input stream to the unconsumed state. +-- | If the parser fails then backtrack the input stream and reset to the unconsumed state. -- | -- | Like `try`, but will reposition the error to the `try` point. -- | @@ -209,7 +209,7 @@ lookAhead (ParserT k1) = ParserT -- | -- | Will match until the phrase `p` fails *without consuming*. -- | --- | If the phrase `p` fails after consuming input then the `many` will fail. +-- | If the phrase `p` fails after consuming then the `many` will fail. -- | -- | If the phrase `p` is wrapped in `try` then it will never consume. -- | If phrase `p` never consumes then `many p` will always succeed, @@ -375,7 +375,7 @@ skipMany1 p = p *> tailRecM go unit -- | Fail if the parser succeeds. -- | --- | Will never consume input. +-- | Will never consume. notFollowedBy :: forall s a m. ParserT s m a -> ParserT s m Unit notFollowedBy p = try $ (try p *> fail "Negated parser succeeded") <|> pure unit diff --git a/src/Parsing/Combinators/Array.purs b/src/Parsing/Combinators/Array.purs index d62cc64..d0134d1 100644 --- a/src/Parsing/Combinators/Array.purs +++ b/src/Parsing/Combinators/Array.purs @@ -33,7 +33,7 @@ import Parsing (ParseError(..), ParserT, fail, parseErrorMessage, parseErrorPosi -- | -- | Will match until the phrase `p` fails *without consuming*. -- | --- | If the phrase `p` fails after consuming input then the `many` will fail. +-- | If the phrase `p` fails after consuming then the `many` will fail. -- | -- | If the phrase `p` is wrapped in `try` then it will never consume. -- | If phrase `p` never consumes then `many p` will always succeed, From 1d79888d11c0485f68834385fb2d6f0774267df8 Mon Sep 17 00:00:00 2001 From: James Brock Date: Sat, 8 Mar 2025 14:54:47 +0900 Subject: [PATCH 18/20] spago fetch --ensure-ranges --- spago.lock | 50 +++++++++++++++++++++++++------------------------- spago.yaml | 50 +++++++++++++++++++++++++------------------------- 2 files changed, 50 insertions(+), 50 deletions(-) diff --git a/spago.lock b/spago.lock index cc814c4..1f17d3e 100644 --- a/spago.lock +++ b/spago.lock @@ -3,31 +3,31 @@ workspace: parsing: path: ./ dependencies: - - arrays - - control - - effect - - either - - enums - - foldable-traversable - - functions - - identity - - integers - - lazy - - lists - - maybe - - newtype - - nullable - - numbers - - partial - - prelude - - st - - strings - - tailrec - - transformers - - tuples - - unfoldable - - unicode - - unsafe-coerce + - arrays: ">=7.3.0 <8.0.0" + - control: ">=6.0.0 <7.0.0" + - effect: ">=4.0.0 <5.0.0" + - either: ">=6.1.0 <7.0.0" + - enums: ">=6.0.1 <7.0.0" + - foldable-traversable: ">=6.0.0 <7.0.0" + - functions: ">=6.0.0 <7.0.0" + - identity: ">=6.0.0 <7.0.0" + - integers: ">=6.0.0 <7.0.0" + - lazy: ">=6.0.0 <7.0.0" + - lists: ">=7.0.0 <8.0.0" + - maybe: ">=6.0.0 <7.0.0" + - newtype: ">=5.0.0 <6.0.0" + - nullable: ">=6.0.0 <7.0.0" + - numbers: ">=9.0.1 <10.0.0" + - partial: ">=4.0.0 <5.0.0" + - prelude: ">=6.0.1 <7.0.0" + - st: ">=6.2.0 <7.0.0" + - strings: ">=6.0.1 <7.0.0" + - tailrec: ">=6.1.0 <7.0.0" + - transformers: ">=6.1.0 <7.0.0" + - tuples: ">=7.0.0 <8.0.0" + - unfoldable: ">=6.0.0 <7.0.0" + - unicode: ">=6.0.0 <7.0.0" + - unsafe-coerce: ">=6.0.0 <7.0.0" test_dependencies: - assert - bifunctors diff --git a/spago.yaml b/spago.yaml index a501927..f947970 100644 --- a/spago.yaml +++ b/spago.yaml @@ -1,31 +1,31 @@ package: name: parsing dependencies: - - arrays - - control - - effect - - either - - enums - - foldable-traversable - - functions - - identity - - integers - - lazy - - lists - - maybe - - newtype - - nullable - - numbers - - partial - - prelude - - st - - strings - - tailrec - - transformers - - tuples - - unfoldable - - unicode - - unsafe-coerce + - arrays: ">=7.3.0 <8.0.0" + - control: ">=6.0.0 <7.0.0" + - effect: ">=4.0.0 <5.0.0" + - either: ">=6.1.0 <7.0.0" + - enums: ">=6.0.1 <7.0.0" + - foldable-traversable: ">=6.0.0 <7.0.0" + - functions: ">=6.0.0 <7.0.0" + - identity: ">=6.0.0 <7.0.0" + - integers: ">=6.0.0 <7.0.0" + - lazy: ">=6.0.0 <7.0.0" + - lists: ">=7.0.0 <8.0.0" + - maybe: ">=6.0.0 <7.0.0" + - newtype: ">=5.0.0 <6.0.0" + - nullable: ">=6.0.0 <7.0.0" + - numbers: ">=9.0.1 <10.0.0" + - partial: ">=4.0.0 <5.0.0" + - prelude: ">=6.0.1 <7.0.0" + - st: ">=6.2.0 <7.0.0" + - strings: ">=6.0.1 <7.0.0" + - tailrec: ">=6.1.0 <7.0.0" + - transformers: ">=6.1.0 <7.0.0" + - tuples: ">=7.0.0 <8.0.0" + - unfoldable: ">=6.0.0 <7.0.0" + - unicode: ">=6.0.0 <7.0.0" + - unsafe-coerce: ">=6.0.0 <7.0.0" test: main: Test.Main dependencies: From 83a3c4f27830912bb8ae67e21b43bc72716e3067 Mon Sep 17 00:00:00 2001 From: James Brock Date: Sat, 8 Mar 2025 15:03:02 +0900 Subject: [PATCH 19/20] v10.3.0 --- CHANGELOG.md | 13 +++++++++---- spago.yaml | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4fdc03d..c9e6930 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,10 +5,6 @@ Notable changes to this project are documented in this file. The format is based ## [Unreleased] Bugfixes: -- `float` parser of `GenTokenParser` does not parse negative numbers (by @mstream) -- Fixes `consumed` semantics which could cause unexpected backtracking instead of a failure (by @natefaubion) -- Fix `Combinators.Array.many` and `Combinators.Array.many1`. If the phrase fails after consuming - then the combinator fails. (#240 by @jamesdbrock) Breaking changes: @@ -16,6 +12,15 @@ New features: Other improvements: +## [v10.3.0](https://github.com/purescript-contrib/purescript-parsing/releases/tag/v10.3.0) - 2025-03-08 + +Bugfixes: + +- `float` parser of `GenTokenParser` does not parse negative numbers (by @mstream) +- Fixes `consumed` semantics which could cause unexpected backtracking instead of a failure (by @natefaubion) +- Fix `Combinators.Array.many` and `Combinators.Array.many1`. If the phrase fails after consuming + then the combinator fails. (#240 by @jamesdbrock) + ## [v10.2.0](https://github.com/purescript-contrib/purescript-parsing/releases/tag/v10.2.0) - 2022-11-30 New features: diff --git a/spago.yaml b/spago.yaml index f947970..5ba147e 100644 --- a/spago.yaml +++ b/spago.yaml @@ -34,6 +34,40 @@ package: - console - node-process - nonempty + publish: + # The version of your package. This follows semver rules, but with no + # prereleases - so only major.minor.patch. + version: 10.3.0 + # The license for your source, in SPDX format: https://spdx.dev/ + license: BSD-2-Clause + # # Optional list of globs to include in the published archive, in + # # addition to the list of files that the Registry includes by default: + # # https://github.com/purescript/registry-dev/blob/master/SPEC.md#always-included-files + # include: + # - "test/**/*.purs" + # # Optional list of globs to exclude from the published archive, in + # # addition to the list of files that the Registry includes by default: + # # https://github.com/purescript/registry-dev/blob/master/SPEC.md#always-excluded-files + # # Note that the Registry will first apply the `include` list, then + # # the `exclude` one, as detailed in the specification: + # # https://github.com/purescript/registry-dev/blob/master/SPEC.md#33-manifest + # exclude: + # - "test/graphs/**/*" + # The place where the Registry will fetch the source from. + # This is optional since you might want to release the code without + # publishing to the Registry, which is what this is needed for. + location: + # There are a few supported locations: + # 1) Github: no URL needed, just username and the name of the repo + # The `subdir` field is optional, and only necessary if your + # package is not in the root of the repo. + githubOwner: purescript-contrib + githubRepo: purescript-parsing + # subdir: lib + # 2) Git: any git server should work with this + # The `subdir` is optional as above + url: https://github.com/purescript-contrib/purescript-parsing + # subdir: lib workspace: extraPackages: {} packageSet: From 3ad2900eb9a9d2b079f4b5a4547db7cf10a83eb4 Mon Sep 17 00:00:00 2001 From: James Brock Date: Sat, 8 Mar 2025 15:18:27 +0900 Subject: [PATCH 20/20] v10.3.1 --- spago.lock | 2592 ++++++++++++++++++++++++++++------------------------ spago.yaml | 4 +- 2 files changed, 1404 insertions(+), 1192 deletions(-) diff --git a/spago.lock b/spago.lock index 1f17d3e..d3f8b27 100644 --- a/spago.lock +++ b/spago.lock @@ -1,1190 +1,1402 @@ -workspace: - packages: - parsing: - path: ./ - dependencies: - - arrays: ">=7.3.0 <8.0.0" - - control: ">=6.0.0 <7.0.0" - - effect: ">=4.0.0 <5.0.0" - - either: ">=6.1.0 <7.0.0" - - enums: ">=6.0.1 <7.0.0" - - foldable-traversable: ">=6.0.0 <7.0.0" - - functions: ">=6.0.0 <7.0.0" - - identity: ">=6.0.0 <7.0.0" - - integers: ">=6.0.0 <7.0.0" - - lazy: ">=6.0.0 <7.0.0" - - lists: ">=7.0.0 <8.0.0" - - maybe: ">=6.0.0 <7.0.0" - - newtype: ">=5.0.0 <6.0.0" - - nullable: ">=6.0.0 <7.0.0" - - numbers: ">=9.0.1 <10.0.0" - - partial: ">=4.0.0 <5.0.0" - - prelude: ">=6.0.1 <7.0.0" - - st: ">=6.2.0 <7.0.0" - - strings: ">=6.0.1 <7.0.0" - - tailrec: ">=6.1.0 <7.0.0" - - transformers: ">=6.1.0 <7.0.0" - - tuples: ">=7.0.0 <8.0.0" - - unfoldable: ">=6.0.0 <7.0.0" - - unicode: ">=6.0.0 <7.0.0" - - unsafe-coerce: ">=6.0.0 <7.0.0" - test_dependencies: - - assert - - bifunctors - - console - - node-process - - nonempty - build_plan: - - aff - - arraybuffer-types - - arrays - - assert - - bifunctors - - console - - const - - contravariant - - control - - datetime - - distributive - - effect - - either - - enums - - exceptions - - exists - - foldable-traversable - - foreign - - foreign-object - - functions - - functors - - gen - - identity - - integers - - invariant - - lazy - - lists - - maybe - - newtype - - node-buffer - - node-event-emitter - - node-process - - node-streams - - nonempty - - nullable - - numbers - - ordered-collections - - orders - - parallel - - partial - - posix-types - - prelude - - profunctor - - refs - - safe-coerce - - st - - strings - - tailrec - - transformers - - tuples - - type-equality - - typelevel-prelude - - unfoldable - - unicode - - unsafe-coerce - package_set: - address: - registry: 60.2.1 - compiler: ">=0.15.15 <0.16.0" - content: - abc-parser: 2.0.1 - ace: 9.1.0 - address-rfc2821: 0.1.1 - aff: 8.0.0 - aff-bus: 6.0.0 - aff-coroutines: 9.0.0 - aff-promise: 4.0.0 - aff-retry: 2.0.0 - affjax: 13.0.0 - affjax-node: 1.0.0 - affjax-web: 1.0.0 - ansi: 7.0.0 - apexcharts: 0.5.0 - applicative-phases: 1.0.0 - argonaut: 9.0.0 - argonaut-aeson-generic: 0.4.1 - argonaut-codecs: 9.1.0 - argonaut-core: 7.0.0 - argonaut-generic: 8.0.0 - argonaut-traversals: 10.0.0 - argparse-basic: 2.0.0 - array-builder: 0.1.2 - array-search: 0.6.0 - arraybuffer: 13.2.0 - arraybuffer-builder: 3.1.0 - arraybuffer-types: 3.0.2 - arrays: 7.3.0 - arrays-extra: 0.6.1 - arrays-zipper: 2.0.1 - ask: 1.0.0 - assert: 6.0.0 - assert-multiple: 0.4.0 - avar: 5.0.0 - b64: 0.0.8 - barbies: 1.0.1 - barlow-lens: 0.9.0 - bifunctors: 6.0.0 - bigints: 7.0.1 - bolson: 0.3.9 - bookhound: 0.1.7 - bower-json: 3.0.0 - call-by-name: 4.0.1 - canvas: 6.0.0 - canvas-action: 9.0.0 - cartesian: 1.0.6 - catenable-lists: 7.0.0 - cbor-stream: 1.3.0 - chameleon: 1.0.0 - chameleon-halogen: 1.0.3 - chameleon-react-basic: 1.1.0 - chameleon-styled: 2.5.0 - chameleon-transformers: 1.0.0 - channel: 1.0.0 - checked-exceptions: 3.1.1 - choku: 1.0.1 - classless: 0.1.1 - classless-arbitrary: 0.1.1 - classless-decode-json: 0.1.1 - classless-encode-json: 0.1.3 - classnames: 2.0.0 - codec: 6.1.0 - codec-argonaut: 10.0.0 - codec-json: 2.0.0 - colors: 7.0.1 - concur-core: 0.5.0 - concur-react: 0.5.0 - concurrent-queues: 3.0.0 - console: 6.1.0 - const: 6.0.0 - contravariant: 6.0.0 - control: 6.0.0 - convertable-options: 1.0.0 - coroutines: 7.0.0 - css: 6.0.0 - css-frameworks: 1.0.1 - csv-stream: 2.3.0 - data-mvc: 0.0.2 - datetime: 6.1.0 - datetime-parsing: 0.2.0 - debounce: 0.1.0 - debug: 6.0.2 - decimals: 7.1.0 - default-values: 1.0.1 - deku: 0.9.23 - deno: 0.0.5 - dissect: 1.0.0 - distributive: 6.0.0 - dom-filereader: 7.0.0 - dom-indexed: 12.0.0 - dom-simple: 0.4.0 - dotenv: 4.0.3 - droplet: 0.6.0 - dts: 1.0.0 - dual-numbers: 1.0.3 - dynamic-buffer: 3.0.1 - echarts-simple: 0.0.1 - effect: 4.0.0 - either: 6.1.0 - elmish: 0.13.0 - elmish-enzyme: 0.1.1 - elmish-hooks: 0.10.3 - elmish-html: 0.9.0 - elmish-testing-library: 0.3.2 - email-validate: 7.0.0 - encoding: 0.0.9 - enums: 6.0.1 - env-names: 0.4.0 - error: 2.0.0 - eta-conversion: 0.3.2 - exceptions: 6.1.0 - exists: 6.0.0 - exitcodes: 4.0.0 - expect-inferred: 3.0.0 - ezfetch: 1.0.0 - fahrtwind: 2.0.0 - fallback: 0.1.0 - fast-vect: 1.2.0 - fetch: 4.1.0 - fetch-argonaut: 1.0.1 - fetch-core: 5.1.0 - fetch-yoga-json: 1.1.0 - ffi-simple: 0.5.1 - fft-js: 0.1.0 - filterable: 5.0.0 - fix-functor: 0.1.0 - fixed-points: 7.0.0 - fixed-precision: 5.0.0 - flame: 1.3.0 - float32: 2.0.0 - fmt: 0.2.1 - foldable-traversable: 6.0.0 - foldable-traversable-extra: 0.0.6 - foreign: 7.0.0 - foreign-object: 4.1.0 - foreign-readwrite: 3.4.0 - forgetmenot: 0.1.0 - fork: 6.0.0 - form-urlencoded: 7.0.0 - formatters: 7.0.0 - framer-motion: 1.0.1 - free: 7.1.0 - freeap: 7.0.0 - freer-free: 0.0.1 - freet: 7.0.0 - functions: 6.0.0 - functor1: 3.0.0 - functors: 5.0.0 - fuzzy: 0.4.0 - gen: 4.0.0 - generate-values: 1.0.1 - generic-router: 0.0.1 - geojson: 0.0.5 - geometria: 2.2.0 - gojs: 0.1.1 - grain: 3.0.0 - grain-router: 3.0.0 - grain-virtualized: 3.0.0 - graphs: 8.1.0 - group: 4.1.1 - halogen: 7.0.0 - halogen-bootstrap5: 5.3.2 - halogen-canvas: 1.0.0 - halogen-css: 10.0.0 - halogen-echarts-simple: 0.0.4 - halogen-formless: 4.0.3 - halogen-helix: 1.0.1 - halogen-hooks: 0.6.3 - halogen-hooks-extra: 0.9.0 - halogen-infinite-scroll: 1.1.0 - halogen-store: 0.5.4 - halogen-storybook: 2.0.0 - halogen-subscriptions: 2.0.0 - halogen-svg-elems: 8.0.0 - halogen-typewriter: 1.0.4 - halogen-vdom: 8.0.0 - halogen-vdom-string-renderer: 0.5.0 - halogen-xterm: 2.0.0 - heckin: 2.0.1 - heterogeneous: 0.6.0 - homogeneous: 0.4.0 - http-methods: 6.0.0 - httpurple: 4.0.0 - huffman: 0.4.0 - humdrum: 0.0.1 - hyrule: 2.3.8 - identity: 6.0.0 - identy: 4.0.1 - indexed-db: 1.0.0 - indexed-monad: 3.0.0 - int64: 3.0.0 - integers: 6.0.0 - interpolate: 5.0.2 - intersection-observer: 1.0.1 - invariant: 6.0.0 - jarilo: 1.0.1 - jelly: 0.10.0 - jelly-router: 0.3.0 - jelly-signal: 0.4.0 - jest: 1.0.0 - js-abort-controller: 1.0.0 - js-bigints: 2.2.1 - js-date: 8.0.0 - js-fetch: 0.2.1 - js-fileio: 3.0.0 - js-intl: 1.0.4 - js-iterators: 0.1.1 - js-maps: 0.1.2 - js-promise: 1.0.0 - js-promise-aff: 1.0.0 - js-timers: 6.1.0 - js-uri: 3.1.0 - json: 1.1.0 - json-codecs: 5.0.0 - justifill: 0.5.0 - jwt: 0.0.9 - labeled-data: 0.2.0 - language-cst-parser: 0.14.0 - lazy: 6.0.0 - lazy-joe: 1.0.0 - lcg: 4.0.0 - leibniz: 5.0.0 - leveldb: 1.0.1 - liminal: 1.0.1 - linalg: 6.0.0 - lists: 7.0.0 - literals: 1.0.2 - logging: 3.0.0 - logging-journald: 0.4.0 - lumi-components: 18.0.0 - machines: 7.0.0 - maps-eager: 0.5.0 - marionette: 1.0.0 - marionette-react-basic-hooks: 0.1.1 - marked: 0.1.0 - matrices: 5.0.1 - matryoshka: 1.0.0 - maybe: 6.0.0 - media-types: 6.0.0 - meowclient: 1.0.0 - midi: 4.0.0 - milkis: 9.0.0 - minibench: 4.0.1 - mmorph: 7.0.0 - monad-control: 5.0.0 - monad-logger: 1.3.1 - monad-loops: 0.5.0 - monad-unlift: 1.0.1 - monoid-extras: 0.0.1 - monoidal: 0.16.0 - morello: 0.4.0 - mote: 3.0.0 - motsunabe: 2.0.0 - mvc: 0.0.1 - mysql: 6.0.1 - n3: 0.1.0 - nano-id: 1.1.0 - nanoid: 0.1.0 - naturals: 3.0.0 - nested-functor: 0.2.1 - newtype: 5.0.0 - nextjs: 0.1.1 - nextui: 0.2.0 - node-buffer: 9.0.0 - node-child-process: 11.1.0 - node-event-emitter: 3.0.0 - node-execa: 5.0.0 - node-fs: 9.2.0 - node-glob-basic: 1.3.0 - node-http: 9.1.0 - node-http2: 1.1.1 - node-human-signals: 1.0.0 - node-net: 5.1.0 - node-os: 5.1.0 - node-path: 5.0.0 - node-process: 11.2.0 - node-readline: 8.1.1 - node-sqlite3: 8.0.0 - node-stream-pipes: 2.1.6 - node-streams: 9.0.0 - node-tls: 0.3.1 - node-url: 7.0.1 - node-zlib: 0.4.0 - nonempty: 7.0.0 - now: 6.0.0 - npm-package-json: 2.0.0 - nullable: 6.0.0 - numberfield: 0.2.2 - numbers: 9.0.1 - oak: 3.1.1 - oak-debug: 1.2.2 - object-maps: 0.3.0 - ocarina: 1.5.4 - oooooooooorrrrrrrmm-lib: 0.0.1 - open-folds: 6.4.0 - open-foreign-generic: 11.0.3 - open-memoize: 6.2.0 - open-mkdirp-aff: 1.2.0 - open-pairing: 6.2.0 - open-smolder: 12.0.2 - options: 7.0.0 - optparse: 5.0.1 - ordered-collections: 3.2.0 - ordered-set: 0.4.0 - orders: 6.0.0 - owoify: 1.2.0 - pairs: 9.0.1 - parallel: 7.0.0 - parsing: 10.2.0 - parsing-dataview: 3.2.4 - partial: 4.0.0 - pathy: 9.0.0 - pha: 0.13.0 - phaser: 0.7.0 - phylio: 1.1.2 - pipes: 8.0.0 - pirates-charm: 0.0.1 - pmock: 0.9.0 - point-free: 1.0.0 - pointed-list: 0.5.1 - polymorphic-vectors: 4.0.0 - posix-types: 6.0.0 - postgresql: 2.0.19 - precise: 6.0.0 - precise-datetime: 7.0.0 - prelude: 6.0.1 - prettier-printer: 3.0.0 - priority-queue: 0.1.2 - profunctor: 6.0.1 - profunctor-lenses: 8.0.0 - protobuf: 4.3.0 - psa-utils: 8.0.0 - psci-support: 6.0.0 - punycode: 1.0.0 - qualified-do: 2.2.0 - quantities: 12.2.0 - quickcheck: 8.0.1 - quickcheck-combinators: 0.1.3 - quickcheck-laws: 7.0.0 - quickcheck-utf8: 0.0.0 - random: 6.0.0 - rationals: 6.0.0 - rdf: 0.1.0 - react: 11.0.0 - react-aria: 0.2.0 - react-basic: 17.0.0 - react-basic-classic: 3.0.0 - react-basic-dnd: 10.1.0 - react-basic-dom: 6.1.0 - react-basic-emotion: 7.1.0 - react-basic-hooks: 8.2.0 - react-basic-storybook: 2.0.0 - react-dom: 8.0.0 - react-halo: 3.0.0 - react-icons: 1.1.5 - react-markdown: 0.1.0 - react-testing-library: 4.0.1 - react-virtuoso: 1.0.0 - reactix: 0.6.1 - read: 1.0.1 - recharts: 1.1.0 - record: 4.0.0 - record-extra: 5.0.1 - record-ptional-fields: 0.1.2 - record-studio: 1.0.4 - refs: 6.0.0 - remotedata: 5.0.1 - repr: 0.5.0 - resize-observer: 1.0.0 - resource: 2.0.1 - resourcet: 1.0.0 - result: 1.0.3 - return: 0.2.0 - ring-modules: 5.0.1 - rito: 0.3.4 - roman: 0.4.0 - rough-notation: 1.0.2 - routing: 11.0.0 - routing-duplex: 0.7.0 - run: 5.0.0 - safe-coerce: 2.0.0 - safely: 4.0.1 - school-of-music: 1.3.0 - selection-foldable: 0.2.0 - selective-functors: 1.0.1 - semirings: 7.0.0 - signal: 13.0.0 - simple-emitter: 3.0.1 - simple-i18n: 2.0.1 - simple-json: 9.0.0 - simple-json-generics: 0.2.1 - simple-ulid: 3.0.0 - sized-matrices: 1.0.0 - sized-vectors: 5.0.2 - slug: 3.1.0 - small-ffi: 4.0.1 - soundfonts: 4.1.0 - sparse-matrices: 2.0.1 - sparse-polynomials: 3.0.1 - spec: 8.0.0 - spec-discovery: 8.3.0 - spec-mocha: 5.1.1 - spec-node: 0.0.2 - spec-quickcheck: 5.0.2 - spec-reporter-xunit: 0.7.1 - splitmix: 2.1.0 - ssrs: 1.0.0 - st: 6.2.0 - statistics: 0.3.2 - strictlypositiveint: 1.0.1 - string-parsers: 8.0.0 - strings: 6.0.1 - strings-extra: 4.0.0 - stringutils: 0.0.12 - substitute: 0.2.3 - supply: 0.2.0 - svg-parser: 3.0.0 - systemd-journald: 0.3.0 - tagged: 4.0.2 - tailrec: 6.1.0 - tecton: 0.2.1 - tecton-halogen: 0.2.0 - test-unit: 17.0.0 - thermite: 6.3.1 - thermite-dom: 0.3.1 - these: 6.0.0 - threading: 0.0.3 - tldr: 0.0.0 - toestand: 0.9.0 - transformation-matrix: 1.0.1 - transformers: 6.1.0 - tree-rose: 4.0.2 - ts-bridge: 4.0.0 - tuples: 7.0.0 - two-or-more: 1.0.0 - type-equality: 4.0.1 - typedenv: 2.0.1 - typelevel: 6.0.0 - typelevel-lists: 2.1.0 - typelevel-peano: 1.0.1 - typelevel-prelude: 7.0.0 - typelevel-regex: 0.0.3 - typelevel-rows: 0.1.0 - typisch: 0.4.0 - uint: 7.0.0 - ulid: 3.0.1 - uncurried-transformers: 1.1.0 - undefined: 2.0.0 - undefined-is-not-a-problem: 1.1.0 - unfoldable: 6.0.0 - unicode: 6.0.0 - unique: 0.6.1 - unlift: 1.0.1 - unordered-collections: 3.1.0 - unsafe-coerce: 6.0.0 - unsafe-reference: 5.0.0 - untagged-to-tagged: 0.1.4 - untagged-union: 1.0.0 - uri: 9.0.0 - url-immutable: 1.0.0 - uuid: 9.0.0 - uuidv4: 1.0.0 - validation: 6.0.0 - variant: 8.0.0 - variant-encodings: 2.0.0 - vectorfield: 1.0.1 - vectors: 2.1.0 - versions: 7.0.0 - visx: 0.0.2 - web-clipboard: 6.0.0 - web-cssom: 2.0.0 - web-cssom-view: 0.1.0 - web-dom: 6.0.0 - web-dom-parser: 8.0.0 - web-dom-xpath: 3.0.0 - web-encoding: 3.0.0 - web-events: 4.0.0 - web-fetch: 4.0.1 - web-file: 4.0.0 - web-geometry: 0.1.0 - web-html: 4.1.0 - web-pointerevents: 2.0.0 - web-proletarian: 1.0.0 - web-promise: 3.2.0 - web-resize-observer: 2.1.0 - web-router: 1.0.0 - web-socket: 4.0.0 - web-storage: 5.0.0 - web-streams: 4.0.0 - web-touchevents: 4.0.0 - web-uievents: 5.0.0 - web-url: 2.0.0 - web-workers: 1.1.0 - web-xhr: 5.0.1 - webextension-polyfill: 0.1.0 - webgpu: 0.0.1 - which: 2.0.0 - xterm: 1.0.0 - yoga-fetch: 1.0.1 - yoga-json: 5.1.0 - yoga-om: 0.1.0 - yoga-postgres: 6.0.0 - yoga-tree: 1.0.0 - z3: 0.0.2 - zipperarray: 2.0.0 - extra_packages: {} -packages: - aff: - type: registry - version: 8.0.0 - integrity: sha256-5MmdI4+0RHBtSBy+YlU3/Cq4R5W2ih3OaRedJIrVHdk= - dependencies: - - bifunctors - - control - - datetime - - effect - - either - - exceptions - - foldable-traversable - - functions - - maybe - - newtype - - parallel - - prelude - - refs - - tailrec - - transformers - - unsafe-coerce - arraybuffer-types: - type: registry - version: 3.0.2 - integrity: sha256-mQKokysYVkooS4uXbO+yovmV/s8b138Ws3zQvOwIHRA= - dependencies: [] - arrays: - type: registry - version: 7.3.0 - integrity: sha256-tmcklBlc/muUtUfr9RapdCPwnlQeB3aSrC4dK85gQlc= - dependencies: - - bifunctors - - control - - foldable-traversable - - functions - - maybe - - nonempty - - partial - - prelude - - safe-coerce - - st - - tailrec - - tuples - - unfoldable - - unsafe-coerce - assert: - type: registry - version: 6.0.0 - integrity: sha256-hCSYcCw9kj3qujoDcriWhCdmrpPZoguSPDZhEMnTl3A= - dependencies: - - console - - effect - - prelude - bifunctors: - type: registry - version: 6.0.0 - integrity: sha256-/gZwC9YhNxZNQpnHa5BIYerCGM2jeX9ukZiEvYxm5Nw= - dependencies: - - const - - either - - newtype - - prelude - - tuples - console: - type: registry - version: 6.1.0 - integrity: sha256-CxmAzjgyuGDmt9FZW51VhV6rBPwR6o0YeKUzA9rSzcM= - dependencies: - - effect - - prelude - const: - type: registry - version: 6.0.0 - integrity: sha256-tNrxDW8D8H4jdHE2HiPzpLy08zkzJMmGHdRqt5BQuTc= - dependencies: - - invariant - - newtype - - prelude - contravariant: - type: registry - version: 6.0.0 - integrity: sha256-TP+ooAp3vvmdjfQsQJSichF5B4BPDHp3wAJoWchip6c= - dependencies: - - const - - either - - newtype - - prelude - - tuples - control: - type: registry - version: 6.0.0 - integrity: sha256-sH7Pg9E96JCPF9PIA6oQ8+BjTyO/BH1ZuE/bOcyj4Jk= - dependencies: - - newtype - - prelude - datetime: - type: registry - version: 6.1.0 - integrity: sha256-g/5X5BBegQWLpI9IWD+sY6mcaYpzzlW5lz5NBzaMtyI= - dependencies: - - bifunctors - - control - - either - - enums - - foldable-traversable - - functions - - gen - - integers - - lists - - maybe - - newtype - - numbers - - ordered-collections - - partial - - prelude - - tuples - distributive: - type: registry - version: 6.0.0 - integrity: sha256-HTDdmEnzigMl+02SJB88j+gAXDx9VKsbvR4MJGDPbOQ= - dependencies: - - identity - - newtype - - prelude - - tuples - - type-equality - effect: - type: registry - version: 4.0.0 - integrity: sha256-eBtZu+HZcMa5HilvI6kaDyVX3ji8p0W9MGKy2K4T6+M= - dependencies: - - prelude - either: - type: registry - version: 6.1.0 - integrity: sha256-6hgTPisnMWVwQivOu2PKYcH8uqjEOOqDyaDQVUchTpY= - dependencies: - - control - - invariant - - maybe - - prelude - enums: - type: registry - version: 6.0.1 - integrity: sha256-HWaD73JFLorc4A6trKIRUeDMdzE+GpkJaEOM1nTNkC8= - dependencies: - - control - - either - - gen - - maybe - - newtype - - nonempty - - partial - - prelude - - tuples - - unfoldable - exceptions: - type: registry - version: 6.1.0 - integrity: sha256-K0T89IHtF3vBY7eSAO7eDOqSb2J9kZGAcDN5+IKsF8E= - dependencies: - - effect - - either - - maybe - - prelude - exists: - type: registry - version: 6.0.0 - integrity: sha256-A0JQHpTfo1dNOj9U5/Fd3xndlRSE0g2IQWOGor2yXn8= - dependencies: - - unsafe-coerce - foldable-traversable: - type: registry - version: 6.0.0 - integrity: sha256-fLeqRYM4jUrZD5H4WqcwUgzU7XfYkzO4zhgtNc3jcWM= - dependencies: - - bifunctors - - const - - control - - either - - functors - - identity - - maybe - - newtype - - orders - - prelude - - tuples - foreign: - type: registry - version: 7.0.0 - integrity: sha256-1ORiqoS3HW+qfwSZAppHPWy4/6AQysxZ2t29jcdUMNA= - dependencies: - - either - - functions - - identity - - integers - - lists - - maybe - - prelude - - strings - - transformers - foreign-object: - type: registry - version: 4.1.0 - integrity: sha256-q24okj6mT+yGHYQ+ei/pYPj5ih6sTbu7eDv/WU56JVo= - dependencies: - - arrays - - foldable-traversable - - functions - - gen - - lists - - maybe - - prelude - - st - - tailrec - - tuples - - typelevel-prelude - - unfoldable - functions: - type: registry - version: 6.0.0 - integrity: sha256-adMyJNEnhGde2unHHAP79gPtlNjNqzgLB8arEOn9hLI= - dependencies: - - prelude - functors: - type: registry - version: 5.0.0 - integrity: sha256-zfPWWYisbD84MqwpJSZFlvM6v86McM68ob8p9s27ywU= - dependencies: - - bifunctors - - const - - contravariant - - control - - distributive - - either - - invariant - - maybe - - newtype - - prelude - - profunctor - - tuples - - unsafe-coerce - gen: - type: registry - version: 4.0.0 - integrity: sha256-f7yzAXWwr+xnaqEOcvyO3ezKdoes8+WXWdXIHDBCAPI= - dependencies: - - either - - foldable-traversable - - identity - - maybe - - newtype - - nonempty - - prelude - - tailrec - - tuples - - unfoldable - identity: - type: registry - version: 6.0.0 - integrity: sha256-4wY0XZbAksjY6UAg99WkuKyJlQlWAfTi2ssadH0wVMY= - dependencies: - - control - - invariant - - newtype - - prelude - integers: - type: registry - version: 6.0.0 - integrity: sha256-sf+sK26R1hzwl3NhXR7WAu9zCDjQnfoXwcyGoseX158= - dependencies: - - maybe - - numbers - - prelude - invariant: - type: registry - version: 6.0.0 - integrity: sha256-RGWWyYrz0Hs1KjPDA+87Kia67ZFBhfJ5lMGOMCEFoLo= - dependencies: - - control - - prelude - lazy: - type: registry - version: 6.0.0 - integrity: sha256-lMsfFOnlqfe4KzRRiW8ot5ge6HtcU3Eyh2XkXcP5IgU= - dependencies: - - control - - foldable-traversable - - invariant - - prelude - lists: - type: registry - version: 7.0.0 - integrity: sha256-EKF15qYqucuXP2lT/xPxhqy58f0FFT6KHdIB/yBOayI= - dependencies: - - bifunctors - - control - - foldable-traversable - - lazy - - maybe - - newtype - - nonempty - - partial - - prelude - - tailrec - - tuples - - unfoldable - maybe: - type: registry - version: 6.0.0 - integrity: sha256-5cCIb0wPwbat2PRkQhUeZO0jcAmf8jCt2qE0wbC3v2Q= - dependencies: - - control - - invariant - - newtype - - prelude - newtype: - type: registry - version: 5.0.0 - integrity: sha256-gdrQu8oGe9eZE6L3wOI8ql/igOg+zEGB5ITh2g+uttw= - dependencies: - - prelude - - safe-coerce - node-buffer: - type: registry - version: 9.0.0 - integrity: sha256-PWE2DJ5ruBLCmeA/fUiuySEFmUJ/VuRfyrnCuVZBlu4= - dependencies: - - arraybuffer-types - - effect - - maybe - - nullable - - st - - unsafe-coerce - node-event-emitter: - type: registry - version: 3.0.0 - integrity: sha256-Qw0MjsT4xRH2j2i4K8JmRjcMKnH5z1Cw39t00q4LE4w= - dependencies: - - effect - - either - - functions - - maybe - - nullable - - prelude - - unsafe-coerce - node-process: - type: registry - version: 11.2.0 - integrity: sha256-+2MQDYChjGbVbapCyJtuWYwD41jk+BntF/kcOTKBMVs= - dependencies: - - effect - - foreign - - foreign-object - - maybe - - node-event-emitter - - node-streams - - posix-types - - prelude - - unsafe-coerce - node-streams: - type: registry - version: 9.0.0 - integrity: sha256-2n6dq7YWleTDmD1Kur/ul7Cn08IvWrScgPf+0PgX2TQ= - dependencies: - - aff - - effect - - either - - exceptions - - node-buffer - - node-event-emitter - - nullable - - prelude - nonempty: - type: registry - version: 7.0.0 - integrity: sha256-54ablJZUHGvvlTJzi3oXyPCuvY6zsrWJuH/dMJ/MFLs= - dependencies: - - control - - foldable-traversable - - maybe - - prelude - - tuples - - unfoldable - nullable: - type: registry - version: 6.0.0 - integrity: sha256-yiGBVl3AD+Guy4kNWWeN+zl1gCiJK+oeIFtZtPCw4+o= - dependencies: - - effect - - functions - - maybe - numbers: - type: registry - version: 9.0.1 - integrity: sha256-/9M6aeMDBdB4cwYDeJvLFprAHZ49EbtKQLIJsneXLIk= - dependencies: - - functions - - maybe - ordered-collections: - type: registry - version: 3.2.0 - integrity: sha256-o9jqsj5rpJmMdoe/zyufWHFjYYFTTsJpgcuCnqCO6PM= - dependencies: - - arrays - - foldable-traversable - - gen - - lists - - maybe - - partial - - prelude - - st - - tailrec - - tuples - - unfoldable - orders: - type: registry - version: 6.0.0 - integrity: sha256-nBA0g3/ai0euH8q9pSbGqk53W2q6agm/dECZTHcoink= - dependencies: - - newtype - - prelude - parallel: - type: registry - version: 7.0.0 - integrity: sha256-gUC9i4Txnx9K9RcMLsjujbwZz6BB1bnE2MLvw4GIw5o= - dependencies: - - control - - effect - - either - - foldable-traversable - - functors - - maybe - - newtype - - prelude - - profunctor - - refs - - transformers - partial: - type: registry - version: 4.0.0 - integrity: sha256-fwXerld6Xw1VkReh8yeQsdtLVrjfGiVuC5bA1Wyo/J4= - dependencies: [] - posix-types: - type: registry - version: 6.0.0 - integrity: sha256-ZfFz8RR1lee/o/Prccyeut3Q+9tYd08mlR72sIh6GzA= - dependencies: - - maybe - - prelude - prelude: - type: registry - version: 6.0.1 - integrity: sha256-o8p6SLYmVPqzXZhQFd2hGAWEwBoXl1swxLG/scpJ0V0= - dependencies: [] - profunctor: - type: registry - version: 6.0.1 - integrity: sha256-E58hSYdJvF2Qjf9dnWLPlJKh2Z2fLfFLkQoYi16vsFk= - dependencies: - - control - - distributive - - either - - exists - - invariant - - newtype - - prelude - - tuples - refs: - type: registry - version: 6.0.0 - integrity: sha256-Vgwne7jIbD3ZMoLNNETLT8Litw6lIYo3MfYNdtYWj9s= - dependencies: - - effect - - prelude - safe-coerce: - type: registry - version: 2.0.0 - integrity: sha256-a1ibQkiUcbODbLE/WAq7Ttbbh9ex+x33VCQ7GngKudU= - dependencies: - - unsafe-coerce - st: - type: registry - version: 6.2.0 - integrity: sha256-z9X0WsOUlPwNx9GlCC+YccCyz8MejC8Wb0C4+9fiBRY= - dependencies: - - partial - - prelude - - tailrec - - unsafe-coerce - strings: - type: registry - version: 6.0.1 - integrity: sha256-WssD3DbX4OPzxSdjvRMX0yvc9+pS7n5gyPv5I2Trb7k= - dependencies: - - arrays - - control - - either - - enums - - foldable-traversable - - gen - - integers - - maybe - - newtype - - nonempty - - partial - - prelude - - tailrec - - tuples - - unfoldable - - unsafe-coerce - tailrec: - type: registry - version: 6.1.0 - integrity: sha256-Xx19ECVDRrDWpz9D2GxQHHV89vd61dnXxQm0IcYQHGk= - dependencies: - - bifunctors - - effect - - either - - identity - - maybe - - partial - - prelude - - refs - transformers: - type: registry - version: 6.1.0 - integrity: sha256-3Bm+Z6tsC/paG888XkywDngJ2JMos+JfOhRlkVfb7gI= - dependencies: - - control - - distributive - - effect - - either - - exceptions - - foldable-traversable - - identity - - lazy - - maybe - - newtype - - prelude - - st - - tailrec - - tuples - - unfoldable - tuples: - type: registry - version: 7.0.0 - integrity: sha256-1rXgTomes9105BjgXqIw0FL6Fz1lqqUTLWOumhWec1M= - dependencies: - - control - - invariant - - prelude - type-equality: - type: registry - version: 4.0.1 - integrity: sha256-Hs9D6Y71zFi/b+qu5NSbuadUQXe5iv5iWx0226vOHUw= - dependencies: [] - typelevel-prelude: - type: registry - version: 7.0.0 - integrity: sha256-uFF2ph+vHcQpfPuPf2a3ukJDFmLhApmkpTMviHIWgJM= - dependencies: - - prelude - - type-equality - unfoldable: - type: registry - version: 6.0.0 - integrity: sha256-JtikvJdktRap7vr/K4ITlxUX1QexpnqBq0G/InLr6eg= - dependencies: - - foldable-traversable - - maybe - - partial - - prelude - - tuples - unicode: - type: registry - version: 6.0.0 - integrity: sha256-QJnTVZpmihEAUiMeYrfkusVoziJWp2hJsgi9bMQLue8= - dependencies: - - foldable-traversable - - maybe - - strings - unsafe-coerce: - type: registry - version: 6.0.0 - integrity: sha256-IqIYW4Vkevn8sI+6aUwRGvd87tVL36BBeOr0cGAE7t0= - dependencies: [] +{ + "workspace": { + "packages": { + "parsing": { + "path": "./", + "core": { + "dependencies": [ + { + "arrays": ">=7.3.0 <8.0.0" + }, + { + "control": ">=6.0.0 <7.0.0" + }, + { + "effect": ">=4.0.0 <5.0.0" + }, + { + "either": ">=6.1.0 <7.0.0" + }, + { + "enums": ">=6.0.1 <7.0.0" + }, + { + "foldable-traversable": ">=6.0.0 <7.0.0" + }, + { + "functions": ">=6.0.0 <7.0.0" + }, + { + "identity": ">=6.0.0 <7.0.0" + }, + { + "integers": ">=6.0.0 <7.0.0" + }, + { + "lazy": ">=6.0.0 <7.0.0" + }, + { + "lists": ">=7.0.0 <8.0.0" + }, + { + "maybe": ">=6.0.0 <7.0.0" + }, + { + "newtype": ">=5.0.0 <6.0.0" + }, + { + "nullable": ">=6.0.0 <7.0.0" + }, + { + "numbers": ">=9.0.1 <10.0.0" + }, + { + "partial": ">=4.0.0 <5.0.0" + }, + { + "prelude": ">=6.0.1 <7.0.0" + }, + { + "st": ">=6.2.0 <7.0.0" + }, + { + "strings": ">=6.0.1 <7.0.0" + }, + { + "tailrec": ">=6.1.0 <7.0.0" + }, + { + "transformers": ">=6.1.0 <7.0.0" + }, + { + "tuples": ">=7.0.0 <8.0.0" + }, + { + "unfoldable": ">=6.0.0 <7.0.0" + }, + { + "unicode": ">=6.0.0 <7.0.0" + }, + { + "unsafe-coerce": ">=6.0.0 <7.0.0" + } + ], + "build_plan": [ + "arrays", + "bifunctors", + "const", + "contravariant", + "control", + "distributive", + "effect", + "either", + "enums", + "exceptions", + "exists", + "foldable-traversable", + "functions", + "functors", + "gen", + "identity", + "integers", + "invariant", + "lazy", + "lists", + "maybe", + "newtype", + "nonempty", + "nullable", + "numbers", + "orders", + "partial", + "prelude", + "profunctor", + "refs", + "safe-coerce", + "st", + "strings", + "tailrec", + "transformers", + "tuples", + "type-equality", + "unfoldable", + "unicode", + "unsafe-coerce" + ] + }, + "test": { + "dependencies": [ + "assert", + "bifunctors", + "console", + "node-process", + "nonempty" + ], + "build_plan": [ + "aff", + "arraybuffer-types", + "arrays", + "assert", + "bifunctors", + "console", + "const", + "contravariant", + "control", + "datetime", + "distributive", + "effect", + "either", + "enums", + "exceptions", + "exists", + "foldable-traversable", + "foreign", + "foreign-object", + "functions", + "functors", + "gen", + "identity", + "integers", + "invariant", + "lazy", + "lists", + "maybe", + "newtype", + "node-buffer", + "node-event-emitter", + "node-process", + "node-streams", + "nonempty", + "nullable", + "numbers", + "ordered-collections", + "orders", + "parallel", + "partial", + "posix-types", + "prelude", + "profunctor", + "refs", + "safe-coerce", + "st", + "strings", + "tailrec", + "transformers", + "tuples", + "type-equality", + "typelevel-prelude", + "unfoldable", + "unsafe-coerce" + ] + } + } + }, + "package_set": { + "address": { + "registry": "60.2.1" + }, + "compiler": ">=0.15.15 <0.16.0", + "content": { + "abc-parser": "2.0.1", + "ace": "9.1.0", + "address-rfc2821": "0.1.1", + "aff": "8.0.0", + "aff-bus": "6.0.0", + "aff-coroutines": "9.0.0", + "aff-promise": "4.0.0", + "aff-retry": "2.0.0", + "affjax": "13.0.0", + "affjax-node": "1.0.0", + "affjax-web": "1.0.0", + "ansi": "7.0.0", + "apexcharts": "0.5.0", + "applicative-phases": "1.0.0", + "argonaut": "9.0.0", + "argonaut-aeson-generic": "0.4.1", + "argonaut-codecs": "9.1.0", + "argonaut-core": "7.0.0", + "argonaut-generic": "8.0.0", + "argonaut-traversals": "10.0.0", + "argparse-basic": "2.0.0", + "array-builder": "0.1.2", + "array-search": "0.6.0", + "arraybuffer": "13.2.0", + "arraybuffer-builder": "3.1.0", + "arraybuffer-types": "3.0.2", + "arrays": "7.3.0", + "arrays-extra": "0.6.1", + "arrays-zipper": "2.0.1", + "ask": "1.0.0", + "assert": "6.0.0", + "assert-multiple": "0.4.0", + "avar": "5.0.0", + "b64": "0.0.8", + "barbies": "1.0.1", + "barlow-lens": "0.9.0", + "bifunctors": "6.0.0", + "bigints": "7.0.1", + "bolson": "0.3.9", + "bookhound": "0.1.7", + "bower-json": "3.0.0", + "call-by-name": "4.0.1", + "canvas": "6.0.0", + "canvas-action": "9.0.0", + "cartesian": "1.0.6", + "catenable-lists": "7.0.0", + "cbor-stream": "1.3.0", + "chameleon": "1.0.0", + "chameleon-halogen": "1.0.3", + "chameleon-react-basic": "1.1.0", + "chameleon-styled": "2.5.0", + "chameleon-transformers": "1.0.0", + "channel": "1.0.0", + "checked-exceptions": "3.1.1", + "choku": "1.0.1", + "classless": "0.1.1", + "classless-arbitrary": "0.1.1", + "classless-decode-json": "0.1.1", + "classless-encode-json": "0.1.3", + "classnames": "2.0.0", + "codec": "6.1.0", + "codec-argonaut": "10.0.0", + "codec-json": "2.0.0", + "colors": "7.0.1", + "concur-core": "0.5.0", + "concur-react": "0.5.0", + "concurrent-queues": "3.0.0", + "console": "6.1.0", + "const": "6.0.0", + "contravariant": "6.0.0", + "control": "6.0.0", + "convertable-options": "1.0.0", + "coroutines": "7.0.0", + "css": "6.0.0", + "css-frameworks": "1.0.1", + "csv-stream": "2.3.0", + "data-mvc": "0.0.2", + "datetime": "6.1.0", + "datetime-parsing": "0.2.0", + "debounce": "0.1.0", + "debug": "6.0.2", + "decimals": "7.1.0", + "default-values": "1.0.1", + "deku": "0.9.23", + "deno": "0.0.5", + "dissect": "1.0.0", + "distributive": "6.0.0", + "dom-filereader": "7.0.0", + "dom-indexed": "12.0.0", + "dom-simple": "0.4.0", + "dotenv": "4.0.3", + "droplet": "0.6.0", + "dts": "1.0.0", + "dual-numbers": "1.0.3", + "dynamic-buffer": "3.0.1", + "echarts-simple": "0.0.1", + "effect": "4.0.0", + "either": "6.1.0", + "elmish": "0.13.0", + "elmish-enzyme": "0.1.1", + "elmish-hooks": "0.10.3", + "elmish-html": "0.9.0", + "elmish-testing-library": "0.3.2", + "email-validate": "7.0.0", + "encoding": "0.0.9", + "enums": "6.0.1", + "env-names": "0.4.0", + "error": "2.0.0", + "eta-conversion": "0.3.2", + "exceptions": "6.1.0", + "exists": "6.0.0", + "exitcodes": "4.0.0", + "expect-inferred": "3.0.0", + "ezfetch": "1.0.0", + "fahrtwind": "2.0.0", + "fallback": "0.1.0", + "fast-vect": "1.2.0", + "fetch": "4.1.0", + "fetch-argonaut": "1.0.1", + "fetch-core": "5.1.0", + "fetch-yoga-json": "1.1.0", + "ffi-simple": "0.5.1", + "fft-js": "0.1.0", + "filterable": "5.0.0", + "fix-functor": "0.1.0", + "fixed-points": "7.0.0", + "fixed-precision": "5.0.0", + "flame": "1.3.0", + "float32": "2.0.0", + "fmt": "0.2.1", + "foldable-traversable": "6.0.0", + "foldable-traversable-extra": "0.0.6", + "foreign": "7.0.0", + "foreign-object": "4.1.0", + "foreign-readwrite": "3.4.0", + "forgetmenot": "0.1.0", + "fork": "6.0.0", + "form-urlencoded": "7.0.0", + "formatters": "7.0.0", + "framer-motion": "1.0.1", + "free": "7.1.0", + "freeap": "7.0.0", + "freer-free": "0.0.1", + "freet": "7.0.0", + "functions": "6.0.0", + "functor1": "3.0.0", + "functors": "5.0.0", + "fuzzy": "0.4.0", + "gen": "4.0.0", + "generate-values": "1.0.1", + "generic-router": "0.0.1", + "geojson": "0.0.5", + "geometria": "2.2.0", + "gojs": "0.1.1", + "grain": "3.0.0", + "grain-router": "3.0.0", + "grain-virtualized": "3.0.0", + "graphs": "8.1.0", + "group": "4.1.1", + "halogen": "7.0.0", + "halogen-bootstrap5": "5.3.2", + "halogen-canvas": "1.0.0", + "halogen-css": "10.0.0", + "halogen-echarts-simple": "0.0.4", + "halogen-formless": "4.0.3", + "halogen-helix": "1.0.1", + "halogen-hooks": "0.6.3", + "halogen-hooks-extra": "0.9.0", + "halogen-infinite-scroll": "1.1.0", + "halogen-store": "0.5.4", + "halogen-storybook": "2.0.0", + "halogen-subscriptions": "2.0.0", + "halogen-svg-elems": "8.0.0", + "halogen-typewriter": "1.0.4", + "halogen-vdom": "8.0.0", + "halogen-vdom-string-renderer": "0.5.0", + "halogen-xterm": "2.0.0", + "heckin": "2.0.1", + "heterogeneous": "0.6.0", + "homogeneous": "0.4.0", + "http-methods": "6.0.0", + "httpurple": "4.0.0", + "huffman": "0.4.0", + "humdrum": "0.0.1", + "hyrule": "2.3.8", + "identity": "6.0.0", + "identy": "4.0.1", + "indexed-db": "1.0.0", + "indexed-monad": "3.0.0", + "int64": "3.0.0", + "integers": "6.0.0", + "interpolate": "5.0.2", + "intersection-observer": "1.0.1", + "invariant": "6.0.0", + "jarilo": "1.0.1", + "jelly": "0.10.0", + "jelly-router": "0.3.0", + "jelly-signal": "0.4.0", + "jest": "1.0.0", + "js-abort-controller": "1.0.0", + "js-bigints": "2.2.1", + "js-date": "8.0.0", + "js-fetch": "0.2.1", + "js-fileio": "3.0.0", + "js-intl": "1.0.4", + "js-iterators": "0.1.1", + "js-maps": "0.1.2", + "js-promise": "1.0.0", + "js-promise-aff": "1.0.0", + "js-timers": "6.1.0", + "js-uri": "3.1.0", + "json": "1.1.0", + "json-codecs": "5.0.0", + "justifill": "0.5.0", + "jwt": "0.0.9", + "labeled-data": "0.2.0", + "language-cst-parser": "0.14.0", + "lazy": "6.0.0", + "lazy-joe": "1.0.0", + "lcg": "4.0.0", + "leibniz": "5.0.0", + "leveldb": "1.0.1", + "liminal": "1.0.1", + "linalg": "6.0.0", + "lists": "7.0.0", + "literals": "1.0.2", + "logging": "3.0.0", + "logging-journald": "0.4.0", + "lumi-components": "18.0.0", + "machines": "7.0.0", + "maps-eager": "0.5.0", + "marionette": "1.0.0", + "marionette-react-basic-hooks": "0.1.1", + "marked": "0.1.0", + "matrices": "5.0.1", + "matryoshka": "1.0.0", + "maybe": "6.0.0", + "media-types": "6.0.0", + "meowclient": "1.0.0", + "midi": "4.0.0", + "milkis": "9.0.0", + "minibench": "4.0.1", + "mmorph": "7.0.0", + "monad-control": "5.0.0", + "monad-logger": "1.3.1", + "monad-loops": "0.5.0", + "monad-unlift": "1.0.1", + "monoid-extras": "0.0.1", + "monoidal": "0.16.0", + "morello": "0.4.0", + "mote": "3.0.0", + "motsunabe": "2.0.0", + "mvc": "0.0.1", + "mysql": "6.0.1", + "n3": "0.1.0", + "nano-id": "1.1.0", + "nanoid": "0.1.0", + "naturals": "3.0.0", + "nested-functor": "0.2.1", + "newtype": "5.0.0", + "nextjs": "0.1.1", + "nextui": "0.2.0", + "node-buffer": "9.0.0", + "node-child-process": "11.1.0", + "node-event-emitter": "3.0.0", + "node-execa": "5.0.0", + "node-fs": "9.2.0", + "node-glob-basic": "1.3.0", + "node-http": "9.1.0", + "node-http2": "1.1.1", + "node-human-signals": "1.0.0", + "node-net": "5.1.0", + "node-os": "5.1.0", + "node-path": "5.0.0", + "node-process": "11.2.0", + "node-readline": "8.1.1", + "node-sqlite3": "8.0.0", + "node-stream-pipes": "2.1.6", + "node-streams": "9.0.0", + "node-tls": "0.3.1", + "node-url": "7.0.1", + "node-zlib": "0.4.0", + "nonempty": "7.0.0", + "now": "6.0.0", + "npm-package-json": "2.0.0", + "nullable": "6.0.0", + "numberfield": "0.2.2", + "numbers": "9.0.1", + "oak": "3.1.1", + "oak-debug": "1.2.2", + "object-maps": "0.3.0", + "ocarina": "1.5.4", + "oooooooooorrrrrrrmm-lib": "0.0.1", + "open-folds": "6.4.0", + "open-foreign-generic": "11.0.3", + "open-memoize": "6.2.0", + "open-mkdirp-aff": "1.2.0", + "open-pairing": "6.2.0", + "open-smolder": "12.0.2", + "options": "7.0.0", + "optparse": "5.0.1", + "ordered-collections": "3.2.0", + "ordered-set": "0.4.0", + "orders": "6.0.0", + "owoify": "1.2.0", + "pairs": "9.0.1", + "parallel": "7.0.0", + "parsing": "10.2.0", + "parsing-dataview": "3.2.4", + "partial": "4.0.0", + "pathy": "9.0.0", + "pha": "0.13.0", + "phaser": "0.7.0", + "phylio": "1.1.2", + "pipes": "8.0.0", + "pirates-charm": "0.0.1", + "pmock": "0.9.0", + "point-free": "1.0.0", + "pointed-list": "0.5.1", + "polymorphic-vectors": "4.0.0", + "posix-types": "6.0.0", + "postgresql": "2.0.19", + "precise": "6.0.0", + "precise-datetime": "7.0.0", + "prelude": "6.0.1", + "prettier-printer": "3.0.0", + "priority-queue": "0.1.2", + "profunctor": "6.0.1", + "profunctor-lenses": "8.0.0", + "protobuf": "4.3.0", + "psa-utils": "8.0.0", + "psci-support": "6.0.0", + "punycode": "1.0.0", + "qualified-do": "2.2.0", + "quantities": "12.2.0", + "quickcheck": "8.0.1", + "quickcheck-combinators": "0.1.3", + "quickcheck-laws": "7.0.0", + "quickcheck-utf8": "0.0.0", + "random": "6.0.0", + "rationals": "6.0.0", + "rdf": "0.1.0", + "react": "11.0.0", + "react-aria": "0.2.0", + "react-basic": "17.0.0", + "react-basic-classic": "3.0.0", + "react-basic-dnd": "10.1.0", + "react-basic-dom": "6.1.0", + "react-basic-emotion": "7.1.0", + "react-basic-hooks": "8.2.0", + "react-basic-storybook": "2.0.0", + "react-dom": "8.0.0", + "react-halo": "3.0.0", + "react-icons": "1.1.5", + "react-markdown": "0.1.0", + "react-testing-library": "4.0.1", + "react-virtuoso": "1.0.0", + "reactix": "0.6.1", + "read": "1.0.1", + "recharts": "1.1.0", + "record": "4.0.0", + "record-extra": "5.0.1", + "record-ptional-fields": "0.1.2", + "record-studio": "1.0.4", + "refs": "6.0.0", + "remotedata": "5.0.1", + "repr": "0.5.0", + "resize-observer": "1.0.0", + "resource": "2.0.1", + "resourcet": "1.0.0", + "result": "1.0.3", + "return": "0.2.0", + "ring-modules": "5.0.1", + "rito": "0.3.4", + "roman": "0.4.0", + "rough-notation": "1.0.2", + "routing": "11.0.0", + "routing-duplex": "0.7.0", + "run": "5.0.0", + "safe-coerce": "2.0.0", + "safely": "4.0.1", + "school-of-music": "1.3.0", + "selection-foldable": "0.2.0", + "selective-functors": "1.0.1", + "semirings": "7.0.0", + "signal": "13.0.0", + "simple-emitter": "3.0.1", + "simple-i18n": "2.0.1", + "simple-json": "9.0.0", + "simple-json-generics": "0.2.1", + "simple-ulid": "3.0.0", + "sized-matrices": "1.0.0", + "sized-vectors": "5.0.2", + "slug": "3.1.0", + "small-ffi": "4.0.1", + "soundfonts": "4.1.0", + "sparse-matrices": "2.0.1", + "sparse-polynomials": "3.0.1", + "spec": "8.0.0", + "spec-discovery": "8.3.0", + "spec-mocha": "5.1.1", + "spec-node": "0.0.2", + "spec-quickcheck": "5.0.2", + "spec-reporter-xunit": "0.7.1", + "splitmix": "2.1.0", + "ssrs": "1.0.0", + "st": "6.2.0", + "statistics": "0.3.2", + "strictlypositiveint": "1.0.1", + "string-parsers": "8.0.0", + "strings": "6.0.1", + "strings-extra": "4.0.0", + "stringutils": "0.0.12", + "substitute": "0.2.3", + "supply": "0.2.0", + "svg-parser": "3.0.0", + "systemd-journald": "0.3.0", + "tagged": "4.0.2", + "tailrec": "6.1.0", + "tecton": "0.2.1", + "tecton-halogen": "0.2.0", + "test-unit": "17.0.0", + "thermite": "6.3.1", + "thermite-dom": "0.3.1", + "these": "6.0.0", + "threading": "0.0.3", + "tldr": "0.0.0", + "toestand": "0.9.0", + "transformation-matrix": "1.0.1", + "transformers": "6.1.0", + "tree-rose": "4.0.2", + "ts-bridge": "4.0.0", + "tuples": "7.0.0", + "two-or-more": "1.0.0", + "type-equality": "4.0.1", + "typedenv": "2.0.1", + "typelevel": "6.0.0", + "typelevel-lists": "2.1.0", + "typelevel-peano": "1.0.1", + "typelevel-prelude": "7.0.0", + "typelevel-regex": "0.0.3", + "typelevel-rows": "0.1.0", + "typisch": "0.4.0", + "uint": "7.0.0", + "ulid": "3.0.1", + "uncurried-transformers": "1.1.0", + "undefined": "2.0.0", + "undefined-is-not-a-problem": "1.1.0", + "unfoldable": "6.0.0", + "unicode": "6.0.0", + "unique": "0.6.1", + "unlift": "1.0.1", + "unordered-collections": "3.1.0", + "unsafe-coerce": "6.0.0", + "unsafe-reference": "5.0.0", + "untagged-to-tagged": "0.1.4", + "untagged-union": "1.0.0", + "uri": "9.0.0", + "url-immutable": "1.0.0", + "uuid": "9.0.0", + "uuidv4": "1.0.0", + "validation": "6.0.0", + "variant": "8.0.0", + "variant-encodings": "2.0.0", + "vectorfield": "1.0.1", + "vectors": "2.1.0", + "versions": "7.0.0", + "visx": "0.0.2", + "web-clipboard": "6.0.0", + "web-cssom": "2.0.0", + "web-cssom-view": "0.1.0", + "web-dom": "6.0.0", + "web-dom-parser": "8.0.0", + "web-dom-xpath": "3.0.0", + "web-encoding": "3.0.0", + "web-events": "4.0.0", + "web-fetch": "4.0.1", + "web-file": "4.0.0", + "web-geometry": "0.1.0", + "web-html": "4.1.0", + "web-pointerevents": "2.0.0", + "web-proletarian": "1.0.0", + "web-promise": "3.2.0", + "web-resize-observer": "2.1.0", + "web-router": "1.0.0", + "web-socket": "4.0.0", + "web-storage": "5.0.0", + "web-streams": "4.0.0", + "web-touchevents": "4.0.0", + "web-uievents": "5.0.0", + "web-url": "2.0.0", + "web-workers": "1.1.0", + "web-xhr": "5.0.1", + "webextension-polyfill": "0.1.0", + "webgpu": "0.0.1", + "which": "2.0.0", + "xterm": "1.0.0", + "yoga-fetch": "1.0.1", + "yoga-json": "5.1.0", + "yoga-om": "0.1.0", + "yoga-postgres": "6.0.0", + "yoga-tree": "1.0.0", + "z3": "0.0.2", + "zipperarray": "2.0.0" + } + }, + "extra_packages": {} + }, + "packages": { + "aff": { + "type": "registry", + "version": "8.0.0", + "integrity": "sha256-5MmdI4+0RHBtSBy+YlU3/Cq4R5W2ih3OaRedJIrVHdk=", + "dependencies": [ + "bifunctors", + "control", + "datetime", + "effect", + "either", + "exceptions", + "foldable-traversable", + "functions", + "maybe", + "newtype", + "parallel", + "prelude", + "refs", + "tailrec", + "transformers", + "unsafe-coerce" + ] + }, + "arraybuffer-types": { + "type": "registry", + "version": "3.0.2", + "integrity": "sha256-mQKokysYVkooS4uXbO+yovmV/s8b138Ws3zQvOwIHRA=", + "dependencies": [] + }, + "arrays": { + "type": "registry", + "version": "7.3.0", + "integrity": "sha256-tmcklBlc/muUtUfr9RapdCPwnlQeB3aSrC4dK85gQlc=", + "dependencies": [ + "bifunctors", + "control", + "foldable-traversable", + "functions", + "maybe", + "nonempty", + "partial", + "prelude", + "safe-coerce", + "st", + "tailrec", + "tuples", + "unfoldable", + "unsafe-coerce" + ] + }, + "assert": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-hCSYcCw9kj3qujoDcriWhCdmrpPZoguSPDZhEMnTl3A=", + "dependencies": [ + "console", + "effect", + "prelude" + ] + }, + "bifunctors": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-/gZwC9YhNxZNQpnHa5BIYerCGM2jeX9ukZiEvYxm5Nw=", + "dependencies": [ + "const", + "either", + "newtype", + "prelude", + "tuples" + ] + }, + "console": { + "type": "registry", + "version": "6.1.0", + "integrity": "sha256-CxmAzjgyuGDmt9FZW51VhV6rBPwR6o0YeKUzA9rSzcM=", + "dependencies": [ + "effect", + "prelude" + ] + }, + "const": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-tNrxDW8D8H4jdHE2HiPzpLy08zkzJMmGHdRqt5BQuTc=", + "dependencies": [ + "invariant", + "newtype", + "prelude" + ] + }, + "contravariant": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-TP+ooAp3vvmdjfQsQJSichF5B4BPDHp3wAJoWchip6c=", + "dependencies": [ + "const", + "either", + "newtype", + "prelude", + "tuples" + ] + }, + "control": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-sH7Pg9E96JCPF9PIA6oQ8+BjTyO/BH1ZuE/bOcyj4Jk=", + "dependencies": [ + "newtype", + "prelude" + ] + }, + "datetime": { + "type": "registry", + "version": "6.1.0", + "integrity": "sha256-g/5X5BBegQWLpI9IWD+sY6mcaYpzzlW5lz5NBzaMtyI=", + "dependencies": [ + "bifunctors", + "control", + "either", + "enums", + "foldable-traversable", + "functions", + "gen", + "integers", + "lists", + "maybe", + "newtype", + "numbers", + "ordered-collections", + "partial", + "prelude", + "tuples" + ] + }, + "distributive": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-HTDdmEnzigMl+02SJB88j+gAXDx9VKsbvR4MJGDPbOQ=", + "dependencies": [ + "identity", + "newtype", + "prelude", + "tuples", + "type-equality" + ] + }, + "effect": { + "type": "registry", + "version": "4.0.0", + "integrity": "sha256-eBtZu+HZcMa5HilvI6kaDyVX3ji8p0W9MGKy2K4T6+M=", + "dependencies": [ + "prelude" + ] + }, + "either": { + "type": "registry", + "version": "6.1.0", + "integrity": "sha256-6hgTPisnMWVwQivOu2PKYcH8uqjEOOqDyaDQVUchTpY=", + "dependencies": [ + "control", + "invariant", + "maybe", + "prelude" + ] + }, + "enums": { + "type": "registry", + "version": "6.0.1", + "integrity": "sha256-HWaD73JFLorc4A6trKIRUeDMdzE+GpkJaEOM1nTNkC8=", + "dependencies": [ + "control", + "either", + "gen", + "maybe", + "newtype", + "nonempty", + "partial", + "prelude", + "tuples", + "unfoldable" + ] + }, + "exceptions": { + "type": "registry", + "version": "6.1.0", + "integrity": "sha256-K0T89IHtF3vBY7eSAO7eDOqSb2J9kZGAcDN5+IKsF8E=", + "dependencies": [ + "effect", + "either", + "maybe", + "prelude" + ] + }, + "exists": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-A0JQHpTfo1dNOj9U5/Fd3xndlRSE0g2IQWOGor2yXn8=", + "dependencies": [ + "unsafe-coerce" + ] + }, + "foldable-traversable": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-fLeqRYM4jUrZD5H4WqcwUgzU7XfYkzO4zhgtNc3jcWM=", + "dependencies": [ + "bifunctors", + "const", + "control", + "either", + "functors", + "identity", + "maybe", + "newtype", + "orders", + "prelude", + "tuples" + ] + }, + "foreign": { + "type": "registry", + "version": "7.0.0", + "integrity": "sha256-1ORiqoS3HW+qfwSZAppHPWy4/6AQysxZ2t29jcdUMNA=", + "dependencies": [ + "either", + "functions", + "identity", + "integers", + "lists", + "maybe", + "prelude", + "strings", + "transformers" + ] + }, + "foreign-object": { + "type": "registry", + "version": "4.1.0", + "integrity": "sha256-q24okj6mT+yGHYQ+ei/pYPj5ih6sTbu7eDv/WU56JVo=", + "dependencies": [ + "arrays", + "foldable-traversable", + "functions", + "gen", + "lists", + "maybe", + "prelude", + "st", + "tailrec", + "tuples", + "typelevel-prelude", + "unfoldable" + ] + }, + "functions": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-adMyJNEnhGde2unHHAP79gPtlNjNqzgLB8arEOn9hLI=", + "dependencies": [ + "prelude" + ] + }, + "functors": { + "type": "registry", + "version": "5.0.0", + "integrity": "sha256-zfPWWYisbD84MqwpJSZFlvM6v86McM68ob8p9s27ywU=", + "dependencies": [ + "bifunctors", + "const", + "contravariant", + "control", + "distributive", + "either", + "invariant", + "maybe", + "newtype", + "prelude", + "profunctor", + "tuples", + "unsafe-coerce" + ] + }, + "gen": { + "type": "registry", + "version": "4.0.0", + "integrity": "sha256-f7yzAXWwr+xnaqEOcvyO3ezKdoes8+WXWdXIHDBCAPI=", + "dependencies": [ + "either", + "foldable-traversable", + "identity", + "maybe", + "newtype", + "nonempty", + "prelude", + "tailrec", + "tuples", + "unfoldable" + ] + }, + "identity": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-4wY0XZbAksjY6UAg99WkuKyJlQlWAfTi2ssadH0wVMY=", + "dependencies": [ + "control", + "invariant", + "newtype", + "prelude" + ] + }, + "integers": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-sf+sK26R1hzwl3NhXR7WAu9zCDjQnfoXwcyGoseX158=", + "dependencies": [ + "maybe", + "numbers", + "prelude" + ] + }, + "invariant": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-RGWWyYrz0Hs1KjPDA+87Kia67ZFBhfJ5lMGOMCEFoLo=", + "dependencies": [ + "control", + "prelude" + ] + }, + "lazy": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-lMsfFOnlqfe4KzRRiW8ot5ge6HtcU3Eyh2XkXcP5IgU=", + "dependencies": [ + "control", + "foldable-traversable", + "invariant", + "prelude" + ] + }, + "lists": { + "type": "registry", + "version": "7.0.0", + "integrity": "sha256-EKF15qYqucuXP2lT/xPxhqy58f0FFT6KHdIB/yBOayI=", + "dependencies": [ + "bifunctors", + "control", + "foldable-traversable", + "lazy", + "maybe", + "newtype", + "nonempty", + "partial", + "prelude", + "tailrec", + "tuples", + "unfoldable" + ] + }, + "maybe": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-5cCIb0wPwbat2PRkQhUeZO0jcAmf8jCt2qE0wbC3v2Q=", + "dependencies": [ + "control", + "invariant", + "newtype", + "prelude" + ] + }, + "newtype": { + "type": "registry", + "version": "5.0.0", + "integrity": "sha256-gdrQu8oGe9eZE6L3wOI8ql/igOg+zEGB5ITh2g+uttw=", + "dependencies": [ + "prelude", + "safe-coerce" + ] + }, + "node-buffer": { + "type": "registry", + "version": "9.0.0", + "integrity": "sha256-PWE2DJ5ruBLCmeA/fUiuySEFmUJ/VuRfyrnCuVZBlu4=", + "dependencies": [ + "arraybuffer-types", + "effect", + "maybe", + "nullable", + "st", + "unsafe-coerce" + ] + }, + "node-event-emitter": { + "type": "registry", + "version": "3.0.0", + "integrity": "sha256-Qw0MjsT4xRH2j2i4K8JmRjcMKnH5z1Cw39t00q4LE4w=", + "dependencies": [ + "effect", + "either", + "functions", + "maybe", + "nullable", + "prelude", + "unsafe-coerce" + ] + }, + "node-process": { + "type": "registry", + "version": "11.2.0", + "integrity": "sha256-+2MQDYChjGbVbapCyJtuWYwD41jk+BntF/kcOTKBMVs=", + "dependencies": [ + "effect", + "foreign", + "foreign-object", + "maybe", + "node-event-emitter", + "node-streams", + "posix-types", + "prelude", + "unsafe-coerce" + ] + }, + "node-streams": { + "type": "registry", + "version": "9.0.0", + "integrity": "sha256-2n6dq7YWleTDmD1Kur/ul7Cn08IvWrScgPf+0PgX2TQ=", + "dependencies": [ + "aff", + "effect", + "either", + "exceptions", + "node-buffer", + "node-event-emitter", + "nullable", + "prelude" + ] + }, + "nonempty": { + "type": "registry", + "version": "7.0.0", + "integrity": "sha256-54ablJZUHGvvlTJzi3oXyPCuvY6zsrWJuH/dMJ/MFLs=", + "dependencies": [ + "control", + "foldable-traversable", + "maybe", + "prelude", + "tuples", + "unfoldable" + ] + }, + "nullable": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-yiGBVl3AD+Guy4kNWWeN+zl1gCiJK+oeIFtZtPCw4+o=", + "dependencies": [ + "effect", + "functions", + "maybe" + ] + }, + "numbers": { + "type": "registry", + "version": "9.0.1", + "integrity": "sha256-/9M6aeMDBdB4cwYDeJvLFprAHZ49EbtKQLIJsneXLIk=", + "dependencies": [ + "functions", + "maybe" + ] + }, + "ordered-collections": { + "type": "registry", + "version": "3.2.0", + "integrity": "sha256-o9jqsj5rpJmMdoe/zyufWHFjYYFTTsJpgcuCnqCO6PM=", + "dependencies": [ + "arrays", + "foldable-traversable", + "gen", + "lists", + "maybe", + "partial", + "prelude", + "st", + "tailrec", + "tuples", + "unfoldable" + ] + }, + "orders": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-nBA0g3/ai0euH8q9pSbGqk53W2q6agm/dECZTHcoink=", + "dependencies": [ + "newtype", + "prelude" + ] + }, + "parallel": { + "type": "registry", + "version": "7.0.0", + "integrity": "sha256-gUC9i4Txnx9K9RcMLsjujbwZz6BB1bnE2MLvw4GIw5o=", + "dependencies": [ + "control", + "effect", + "either", + "foldable-traversable", + "functors", + "maybe", + "newtype", + "prelude", + "profunctor", + "refs", + "transformers" + ] + }, + "partial": { + "type": "registry", + "version": "4.0.0", + "integrity": "sha256-fwXerld6Xw1VkReh8yeQsdtLVrjfGiVuC5bA1Wyo/J4=", + "dependencies": [] + }, + "posix-types": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-ZfFz8RR1lee/o/Prccyeut3Q+9tYd08mlR72sIh6GzA=", + "dependencies": [ + "maybe", + "prelude" + ] + }, + "prelude": { + "type": "registry", + "version": "6.0.1", + "integrity": "sha256-o8p6SLYmVPqzXZhQFd2hGAWEwBoXl1swxLG/scpJ0V0=", + "dependencies": [] + }, + "profunctor": { + "type": "registry", + "version": "6.0.1", + "integrity": "sha256-E58hSYdJvF2Qjf9dnWLPlJKh2Z2fLfFLkQoYi16vsFk=", + "dependencies": [ + "control", + "distributive", + "either", + "exists", + "invariant", + "newtype", + "prelude", + "tuples" + ] + }, + "refs": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-Vgwne7jIbD3ZMoLNNETLT8Litw6lIYo3MfYNdtYWj9s=", + "dependencies": [ + "effect", + "prelude" + ] + }, + "safe-coerce": { + "type": "registry", + "version": "2.0.0", + "integrity": "sha256-a1ibQkiUcbODbLE/WAq7Ttbbh9ex+x33VCQ7GngKudU=", + "dependencies": [ + "unsafe-coerce" + ] + }, + "st": { + "type": "registry", + "version": "6.2.0", + "integrity": "sha256-z9X0WsOUlPwNx9GlCC+YccCyz8MejC8Wb0C4+9fiBRY=", + "dependencies": [ + "partial", + "prelude", + "tailrec", + "unsafe-coerce" + ] + }, + "strings": { + "type": "registry", + "version": "6.0.1", + "integrity": "sha256-WssD3DbX4OPzxSdjvRMX0yvc9+pS7n5gyPv5I2Trb7k=", + "dependencies": [ + "arrays", + "control", + "either", + "enums", + "foldable-traversable", + "gen", + "integers", + "maybe", + "newtype", + "nonempty", + "partial", + "prelude", + "tailrec", + "tuples", + "unfoldable", + "unsafe-coerce" + ] + }, + "tailrec": { + "type": "registry", + "version": "6.1.0", + "integrity": "sha256-Xx19ECVDRrDWpz9D2GxQHHV89vd61dnXxQm0IcYQHGk=", + "dependencies": [ + "bifunctors", + "effect", + "either", + "identity", + "maybe", + "partial", + "prelude", + "refs" + ] + }, + "transformers": { + "type": "registry", + "version": "6.1.0", + "integrity": "sha256-3Bm+Z6tsC/paG888XkywDngJ2JMos+JfOhRlkVfb7gI=", + "dependencies": [ + "control", + "distributive", + "effect", + "either", + "exceptions", + "foldable-traversable", + "identity", + "lazy", + "maybe", + "newtype", + "prelude", + "st", + "tailrec", + "tuples", + "unfoldable" + ] + }, + "tuples": { + "type": "registry", + "version": "7.0.0", + "integrity": "sha256-1rXgTomes9105BjgXqIw0FL6Fz1lqqUTLWOumhWec1M=", + "dependencies": [ + "control", + "invariant", + "prelude" + ] + }, + "type-equality": { + "type": "registry", + "version": "4.0.1", + "integrity": "sha256-Hs9D6Y71zFi/b+qu5NSbuadUQXe5iv5iWx0226vOHUw=", + "dependencies": [] + }, + "typelevel-prelude": { + "type": "registry", + "version": "7.0.0", + "integrity": "sha256-uFF2ph+vHcQpfPuPf2a3ukJDFmLhApmkpTMviHIWgJM=", + "dependencies": [ + "prelude", + "type-equality" + ] + }, + "unfoldable": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-JtikvJdktRap7vr/K4ITlxUX1QexpnqBq0G/InLr6eg=", + "dependencies": [ + "foldable-traversable", + "maybe", + "partial", + "prelude", + "tuples" + ] + }, + "unicode": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-QJnTVZpmihEAUiMeYrfkusVoziJWp2hJsgi9bMQLue8=", + "dependencies": [ + "foldable-traversable", + "maybe", + "strings" + ] + }, + "unsafe-coerce": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-IqIYW4Vkevn8sI+6aUwRGvd87tVL36BBeOr0cGAE7t0=", + "dependencies": [] + } + } +} diff --git a/spago.yaml b/spago.yaml index 5ba147e..f4fc9b7 100644 --- a/spago.yaml +++ b/spago.yaml @@ -37,7 +37,7 @@ package: publish: # The version of your package. This follows semver rules, but with no # prereleases - so only major.minor.patch. - version: 10.3.0 + version: 10.3.1 # The license for your source, in SPDX format: https://spdx.dev/ license: BSD-2-Clause # # Optional list of globs to include in the published archive, in @@ -66,7 +66,7 @@ package: # subdir: lib # 2) Git: any git server should work with this # The `subdir` is optional as above - url: https://github.com/purescript-contrib/purescript-parsing + # url: git://github.com/purescript-contrib/purescript-parsing # subdir: lib workspace: extraPackages: {}