diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fe40d26..131f2a7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: name: Build server # Note that this must be kept in sync with the version of Ubuntu which the # Pursit server is running, otherwise the server binary may fail to run. - runs-on: ubuntu-18.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 diff --git a/CHANGELOG.md b/CHANGELOG.md index 53b1112..8d53601 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,11 @@ the most up-to-date version of this file. ## Unreleased +## v0.9.5 + +- Update `purescript` to `0.15.8` (support dark theme) (@JordanMartinez) +- Update documentation uploading instructions (@JordanMartinez) + ## v0.9.4 - Fix license generation (@JordanMartinez) diff --git a/LICENSE b/LICENSE index b8aeb4b..09fd467 100644 --- a/LICENSE +++ b/LICENSE @@ -26,23 +26,23 @@ their licenses are listed below: ## Dependency License Report -Bold-faced **`package-name`**s denote standard libraries bundled with `ghc-9.2.3`. +Bold-faced **`package-name`**s denote standard libraries bundled with `ghc-9.2.5`. #### Direct dependencies of `pursuit:exe:pursuit` | Name | Version | [SPDX](https://spdx.org/licenses/) License Id | Description | Also depended upon by | | --- | --- | --- | --- | --- | -| `aeson` | [`2.0.3.0`](http://hackage.haskell.org/package/aeson-2.0.3.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/aeson-2.0.3.0/src/LICENSE) | Fast JSON parsing and encoding | `aeson-better-errors`, `aeson-pretty`, `bower-json`, `classy-prelude-yesod`, `http-conduit`, `monoidal-containers`, `persistent`, `purescript`, `shakespeare`, `sourcemap`, `wai-extra`, `yaml`, `yesod`, `yesod-core`, `yesod-form` | +| `aeson` | [`2.0.3.0`](http://hackage.haskell.org/package/aeson-2.0.3.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/aeson-2.0.3.0/src/LICENSE) | Fast JSON parsing and encoding | `aeson-better-errors`, `bower-json`, `classy-prelude-yesod`, `http-conduit`, `monoidal-containers`, `persistent`, `purescript`, `shakespeare`, `sourcemap`, `wai-extra`, `yaml`, `yesod`, `yesod-core`, `yesod-form` | | `aeson-better-errors` | [`0.9.1.1`](http://hackage.haskell.org/package/aeson-better-errors-0.9.1.1) | [`MIT`](http://hackage.haskell.org/package/aeson-better-errors-0.9.1.1/src/LICENSE) | Better error messages when decoding JSON values. | `bower-json`, `purescript` | | `barrier` | [`0.1.1`](http://hackage.haskell.org/package/barrier-0.1.1) | [`MIT`](http://hackage.haskell.org/package/barrier-0.1.1/src/LICENSE) | Shields.io style badge generator | | -| **`base`** | [`4.16.2.0`](http://hackage.haskell.org/package/base-4.16.2.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/base-4.16.2.0/src/LICENSE) | Basic libraries | *(core library)* | +| **`base`** | [`4.16.4.0`](http://hackage.haskell.org/package/base-4.16.4.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/base-4.16.4.0/src/LICENSE) | Basic libraries | *(core library)* | | `base64-bytestring` | [`1.2.1.0`](http://hackage.haskell.org/package/base64-bytestring-1.2.1.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/base64-bytestring-1.2.1.0/src/LICENSE) | Fast base64 encoding and decoding for ByteStrings | `clientsession`, `http-client`, `persistent`, `wai-extra`, `yesod-static` | | `blaze-builder` | [`0.4.2.2`](http://hackage.haskell.org/package/blaze-builder-0.4.2.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/blaze-builder-0.4.2.2/src/LICENSE) | Efficient buffered output. | `blaze-html`, `blaze-markup`, `http-client`, `language-javascript`, `yesod-form`, `yesod-persistent`, `yesod-static` | | `blaze-html` | [`0.9.1.2`](http://hackage.haskell.org/package/blaze-html-0.9.1.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/blaze-html-0.9.1.2/src/LICENSE) | A blazingly fast HTML combinator library for Haskell | `cheapskate`, `persistent`, `purescript`, `shakespeare`, `wai-app-static`, `xml-conduit`, `yesod-core`, `yesod-form`, `yesod-newsfeed` | | `blaze-markup` | [`0.8.2.8`](http://hackage.haskell.org/package/blaze-markup-0.8.2.8) | [`BSD-3-Clause`](http://hackage.haskell.org/package/blaze-markup-0.8.2.8/src/LICENSE) | A blazingly fast markup combinator library for Haskell | `blaze-html`, `blaze-svg`, `shakespeare`, `wai-app-static`, `xml-conduit`, `yesod-core`, `yesod-form`, `yesod-newsfeed` | | `blaze-svg` | [`0.3.6.1`](http://hackage.haskell.org/package/blaze-svg-0.3.6.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/blaze-svg-0.3.6.1/src/LICENSE) | SVG combinator library | `barrier` | | `bower-json` | [`1.1.0.0`](http://hackage.haskell.org/package/bower-json-1.1.0.0) | [`MIT`](http://hackage.haskell.org/package/bower-json-1.1.0.0/src/LICENSE) | Read bower.json from Haskell | `purescript` | -| **`bytestring`** | [`0.11.3.1`](http://hackage.haskell.org/package/bytestring-0.11.3.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/bytestring-0.11.3.1/src/LICENSE) | Fast, compact, strict and lazy byte strings with a list interface | `Cabal`, `aeson`, `aeson-better-errors`, `aeson-pretty`, `appar`, `asn1-encoding`, `asn1-parse`, `asn1-types`, `attoparsec`, `barrier`, `base64-bytestring`, `basic-prelude`, `binary`, `bitvec`, `blaze-builder`, `blaze-html`, `blaze-markup`, `bower-json`, `bsb-http-chunked`, `byteable`, `bytestring-trie`, `case-insensitive`, `cborg`, `cereal`, `chunked-data`, `cipher-aes`, `classy-prelude`, `classy-prelude-conduit`, `clientsession`, `conduit`, `conduit-extra`, `connection`, `cookie`, `cprng-aes`, `crypto-api`, `crypto-cipher-types`, `crypto-random`, `cryptonite`, `cryptonite-conduit`, `email-validate`, `entropy`, `fast-logger`, `file-embed`, `fsnotify`, `hashable`, `haskeline`, `hinotify`, `hjsmin`, `http-api-data`, `http-client`, `http-client-tls`, `http-conduit`, `http-date`, `http-types`, `http2`, `hxt`, `hxt-regex-xmlschema`, `iproute`, `language-javascript`, `lens`, `libyaml`, `memory`, `mime-types`, `monad-logger`, `mono-traversable`, `network`, `network-byte-order`, `parsec`, `pem`, `persistent`, `protolude`, `purescript`, `random`, `recv`, `regex-base`, `regex-tdfa`, `say`, `scientific`, `securemem`, `serialise`, `shakespeare`, `shelly`, `simple-sendfile`, `skein`, `socks`, `sourcemap`, `streaming-commons`, `strict`, `stringsearch`, `tagsoup`, `text`, `text-short`, `th-lift-instances`, `tls`, `typed-process`, `unix`, `unix-time`, `unliftio`, `utf8-string`, `uuid-types`, `vector-algorithms`, `wai`, `wai-app-static`, `wai-extra`, `wai-logger`, `warp`, `x509`, `x509-store`, `x509-system`, `x509-validation`, `xml-conduit`, `yaml`, `yesod`, `yesod-core`, `yesod-form`, `yesod-newsfeed`, `yesod-static`, `zlib` | +| **`bytestring`** | [`0.11.3.1`](http://hackage.haskell.org/package/bytestring-0.11.3.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/bytestring-0.11.3.1/src/LICENSE) | Fast, compact, strict and lazy byte strings with a list interface | `Cabal`, `aeson`, `aeson-better-errors`, `appar`, `asn1-encoding`, `asn1-parse`, `asn1-types`, `attoparsec`, `barrier`, `base64-bytestring`, `basic-prelude`, `binary`, `bitvec`, `blaze-builder`, `blaze-html`, `blaze-markup`, `bower-json`, `bsb-http-chunked`, `byteable`, `bytestring-trie`, `case-insensitive`, `cborg`, `cereal`, `chunked-data`, `cipher-aes`, `classy-prelude`, `classy-prelude-conduit`, `clientsession`, `conduit`, `conduit-extra`, `connection`, `cookie`, `cprng-aes`, `crypto-api`, `crypto-cipher-types`, `crypto-random`, `cryptonite`, `cryptonite-conduit`, `email-validate`, `entropy`, `fast-logger`, `file-embed`, `hashable`, `haskeline`, `hjsmin`, `http-api-data`, `http-client`, `http-client-tls`, `http-conduit`, `http-date`, `http-types`, `http2`, `hxt`, `hxt-regex-xmlschema`, `iproute`, `language-javascript`, `lens`, `libyaml`, `memory`, `mime-types`, `monad-logger`, `mono-traversable`, `network`, `network-byte-order`, `parsec`, `pem`, `persistent`, `protolude`, `purescript`, `random`, `recv`, `regex-base`, `regex-tdfa`, `say`, `scientific`, `securemem`, `serialise`, `shakespeare`, `simple-sendfile`, `skein`, `socks`, `sourcemap`, `streaming-commons`, `strict`, `stringsearch`, `tagsoup`, `text`, `text-short`, `th-lift-instances`, `tls`, `typed-process`, `unix`, `unix-time`, `unliftio`, `utf8-string`, `uuid-types`, `vector-algorithms`, `wai`, `wai-app-static`, `wai-extra`, `wai-logger`, `warp`, `x509`, `x509-store`, `x509-system`, `x509-validation`, `xml-conduit`, `yaml`, `yesod`, `yesod-core`, `yesod-form`, `yesod-newsfeed`, `yesod-static`, `zlib` | | `bytestring-trie` | [`0.2.7`](http://hackage.haskell.org/package/bytestring-trie-0.2.7) | [`BSD-3-Clause`](http://hackage.haskell.org/package/bytestring-trie-0.2.7/src/LICENSE) | An efficient finite map from bytestrings to values. | | | `case-insensitive` | [`1.2.1.0`](http://hackage.haskell.org/package/case-insensitive-1.2.1.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/case-insensitive-1.2.1.0/src/LICENSE) | Case insensitive string comparison | `http-client`, `http-client-tls`, `http-types`, `http2`, `wai-extra`, `warp`, `yesod-core` | | `cheapskate` | [`0.1.1.2`](http://hackage.haskell.org/package/cheapskate-0.1.1.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/cheapskate-0.1.1.2/src/LICENSE) | Experimental markdown processor. | `purescript` | @@ -52,43 +52,43 @@ Bold-faced **`package-name`**s denote standard libraries bundled with `ghc-9.2.3 | `colour` | [`2.3.6`](http://hackage.haskell.org/package/colour-2.3.6) | [`MIT`](http://hackage.haskell.org/package/colour-2.3.6/src/LICENSE) | A model for human colour/color perception | `ansi-terminal` | | `conduit` | [`1.3.4.3`](http://hackage.haskell.org/package/conduit-1.3.4.3) | [`MIT`](http://hackage.haskell.org/package/conduit-1.3.4.3/src/LICENSE) | Streaming data processing library. | `classy-prelude-conduit`, `conduit-extra`, `cryptonite-conduit`, `http-conduit`, `libyaml`, `monad-logger`, `persistent`, `xml-conduit`, `yaml`, `yesod`, `yesod-core`, `yesod-persistent`, `yesod-static` | | `conduit-extra` | [`1.3.6`](http://hackage.haskell.org/package/conduit-extra-1.3.6) | [`MIT`](http://hackage.haskell.org/package/conduit-extra-1.3.6/src/LICENSE) | Batteries included conduit: adapters for common libraries. | `cryptonite-conduit`, `http-conduit`, `monad-logger`, `xml-conduit`, `yesod-core` | -| **`containers`** | [`0.6.5.1`](http://hackage.haskell.org/package/containers-0.6.5.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/containers-0.6.5.1/src/LICENSE) | Assorted concrete container types | `Cabal`, `Glob`, `QuickCheck`, `adjunctions`, `aeson`, `attoparsec`, `basic-prelude`, `bifunctors`, `binary`, `cborg`, `cereal`, `cheapskate`, `chunked-data`, `classy-prelude`, `comonad`, `connection`, `data-default-instances-containers`, `edit-distance`, `free`, `fsnotify`, `hashable`, `haskeline`, `hinotify`, `http-api-data`, `http-client`, `http-client-tls`, `http2`, `hxt`, `indexed-traversable`, `invariant`, `iproute`, `kan-extensions`, `keys`, `language-javascript`, `lens`, `mime-types`, `mono-traversable`, `mono-traversable-instances`, `monoidal-containers`, `mutable-containers`, `parallel`, `persistent`, `pointed`, `protolude`, `purescript`, `regex-base`, `regex-tdfa`, `resourcet`, `scientific`, `semialign`, `semigroupoids`, `serialise`, `shakespeare`, `shelly`, `stringsearch`, `tagsoup`, `th-abstraction`, `th-lift-instances`, `uniplate`, `vault`, `wai-app-static`, `wai-extra`, `warp`, `witherable`, `x509`, `x509-store`, `x509-system`, `x509-validation`, `xml-conduit`, `xss-sanitize`, `yaml`, `yesod-core`, `yesod-form`, `yesod-newsfeed`, `yesod-static` | -| `cookie` | [`0.4.5`](http://hackage.haskell.org/package/cookie-0.4.5) | [`MIT`](http://hackage.haskell.org/package/cookie-0.4.5/src/LICENSE) | HTTP cookie parsing and rendering | `http-api-data`, `http-client`, `wai-extra`, `yesod-core` | +| **`containers`** | [`0.6.5.1`](http://hackage.haskell.org/package/containers-0.6.5.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/containers-0.6.5.1/src/LICENSE) | Assorted concrete container types | `Cabal`, `Glob`, `QuickCheck`, `adjunctions`, `aeson`, `attoparsec`, `basic-prelude`, `bifunctors`, `binary`, `cborg`, `cereal`, `cheapskate`, `chunked-data`, `classy-prelude`, `comonad`, `connection`, `data-default-instances-containers`, `edit-distance`, `free`, `hashable`, `haskeline`, `http-api-data`, `http-client`, `http-client-tls`, `http2`, `hxt`, `indexed-traversable`, `invariant`, `iproute`, `kan-extensions`, `keys`, `language-javascript`, `lens`, `mime-types`, `mono-traversable`, `mono-traversable-instances`, `monoidal-containers`, `mutable-containers`, `parallel`, `persistent`, `pointed`, `protolude`, `purescript`, `regex-base`, `regex-tdfa`, `resourcet`, `scientific`, `semialign`, `semigroupoids`, `serialise`, `shakespeare`, `stringsearch`, `tagsoup`, `th-abstraction`, `th-lift-instances`, `uniplate`, `vault`, `wai-app-static`, `wai-extra`, `warp`, `witherable`, `x509`, `x509-store`, `x509-system`, `x509-validation`, `xml-conduit`, `xss-sanitize`, `yaml`, `yesod-core`, `yesod-form`, `yesod-newsfeed`, `yesod-static` | +| `cookie` | [`0.4.6`](http://hackage.haskell.org/package/cookie-0.4.6) | [`MIT`](http://hackage.haskell.org/package/cookie-0.4.6/src/LICENSE) | HTTP cookie parsing and rendering | `http-api-data`, `http-client`, `wai-extra`, `yesod-core` | | `data-default` | [`0.7.1.1`](http://hackage.haskell.org/package/data-default-0.7.1.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/data-default-0.7.1.1/src/LICENSE) | A class for types with a default value | `cheapskate`, `classy-prelude-yesod`, `yesod-form`, `yesod-static` | -| **`deepseq`** | [`1.4.6.1`](http://hackage.haskell.org/package/deepseq-1.4.6.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/deepseq-1.4.6.1/src/LICENSE) | Deep evaluation of data structures | `Cabal`, `HUnit`, `QuickCheck`, `aeson`, `attoparsec`, `bitvec`, `blaze-builder`, `bower-json`, `bytestring`, `bytestring-trie`, `case-insensitive`, `cborg`, `cheapskate`, `classy-prelude`, `constraints`, `containers`, `cookie`, `cryptonite`, `data-fix`, `dlist`, `enclosed-exceptions`, `half`, `hashable`, `hourglass`, `http-client`, `hxt`, `memory`, `monoidal-containers`, `network`, `network-uri`, `parallel`, `pretty`, `primitive`, `process`, `protolude`, `psqueues`, `purescript`, `random`, `scientific`, `silently`, `splitmix`, `strict`, `tagged`, `text`, `text-short`, `these`, `time`, `time-compat`, `unliftio`, `unordered-containers`, `uuid-types`, `vector`, `xml-conduit`, `xml-types`, `yesod-core` | -| **`directory`** | [`1.3.6.2`](http://hackage.haskell.org/package/directory-1.3.6.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/directory-1.3.6.2/src/LICENSE) | Platform-agnostic library for filesystem operations | `Cabal`, `Glob`, `clientsession`, `conduit`, `conduit-extra`, `easy-file`, `fast-logger`, `file-embed`, `fsnotify`, `haskeline`, `hxt`, `network`, `process`, `purescript`, `shakespeare`, `shelly`, `silently`, `streaming-commons`, `th-compat`, `unliftio`, `wai-app-static`, `wai-extra`, `x509-store`, `x509-system`, `yaml`, `yesod`, `yesod-static` | +| **`deepseq`** | [`1.4.6.1`](http://hackage.haskell.org/package/deepseq-1.4.6.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/deepseq-1.4.6.1/src/LICENSE) | Deep evaluation of data structures | `Cabal`, `HUnit`, `QuickCheck`, `aeson`, `attoparsec`, `bitvec`, `blaze-builder`, `bower-json`, `bytestring`, `bytestring-trie`, `case-insensitive`, `cborg`, `cheapskate`, `classy-prelude`, `constraints`, `containers`, `cookie`, `cryptonite`, `data-array-byte`, `data-fix`, `dlist`, `half`, `hashable`, `hourglass`, `http-client`, `hxt`, `memory`, `monoidal-containers`, `network`, `network-uri`, `parallel`, `persistent`, `pretty`, `primitive`, `process`, `protolude`, `psqueues`, `purescript`, `random`, `safe-exceptions`, `scientific`, `silently`, `splitmix`, `strict`, `tagged`, `text`, `text-short`, `these`, `time`, `time-compat`, `unliftio`, `unordered-containers`, `uuid-types`, `vector`, `xml-conduit`, `xml-types`, `yesod-core` | +| **`directory`** | [`1.3.6.2`](http://hackage.haskell.org/package/directory-1.3.6.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/directory-1.3.6.2/src/LICENSE) | Platform-agnostic library for filesystem operations | `Cabal`, `Glob`, `clientsession`, `conduit`, `conduit-extra`, `easy-file`, `fast-logger`, `file-embed`, `haskeline`, `hxt`, `network`, `process`, `purescript`, `shakespeare`, `silently`, `streaming-commons`, `th-compat`, `unliftio`, `wai-app-static`, `wai-extra`, `x509-store`, `x509-system`, `yaml`, `yesod`, `yesod-static` | | `dlist` | [`1.0`](http://hackage.haskell.org/package/dlist-1.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/dlist-1.0/src/license.md) | Difference lists | `Glob`, `aeson`, `aeson-better-errors`, `classy-prelude`, `data-default-instances-dlist`, `dlist-instances`, `mono-traversable-instances`, `purescript` | -| **`exceptions`** | [`0.10.4`](http://hackage.haskell.org/package/exceptions-0.10.4) | [`BSD-3-Clause`](http://hackage.haskell.org/package/exceptions-0.10.4/src/LICENSE) | Extensible optionally-pure exceptions | `conduit`, `cryptonite-conduit`, `free`, `haskeline`, `http-client`, `http-client-tls`, `lens`, `monad-logger`, `resourcet`, `shakespeare`, `shelly` | -| `fast-logger` | [`3.1.1`](http://hackage.haskell.org/package/fast-logger-3.1.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/fast-logger-3.1.1/src/LICENSE) | A fast logging system | `monad-logger`, `persistent`, `wai-extra`, `wai-logger`, `yesod`, `yesod-core` | +| **`exceptions`** | [`0.10.4`](http://hackage.haskell.org/package/exceptions-0.10.4) | [`BSD-3-Clause`](http://hackage.haskell.org/package/exceptions-0.10.4/src/LICENSE) | Extensible optionally-pure exceptions | `conduit`, `cryptonite-conduit`, `free`, `haskeline`, `http-client`, `http-client-tls`, `lens`, `monad-logger`, `resourcet`, `safe-exceptions`, `shakespeare` | +| `fast-logger` | [`3.1.2`](http://hackage.haskell.org/package/fast-logger-3.1.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/fast-logger-3.1.2/src/LICENSE) | A fast logging system | `monad-logger`, `persistent`, `wai-extra`, `wai-logger`, `yesod`, `yesod-core` | | `file-embed` | [`0.0.15.0`](http://hackage.haskell.org/package/file-embed-0.0.15.0) | [`BSD-2-Clause`](http://hackage.haskell.org/package/file-embed-0.0.15.0/src/LICENSE) | Use Template Haskell to embed file contents directly. | `purescript`, `shakespeare`, `wai-app-static`, `yesod`, `yesod-static` | -| **`filepath`** | [`1.4.2.2`](http://hackage.haskell.org/package/filepath-1.4.2.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/filepath-1.4.2.2/src/LICENSE) | Library for manipulating FilePaths in a cross platform way. | `Cabal`, `Glob`, `basic-prelude`, `conduit`, `conduit-extra`, `directory`, `easy-file`, `fast-logger`, `file-embed`, `fsnotify`, `haskeline`, `http-client`, `hxt`, `lens`, `process`, `purescript`, `shelly`, `th-compat`, `unliftio`, `wai-app-static`, `x509-store`, `x509-system`, `yaml`, `yesod-static` | +| **`filepath`** | [`1.4.2.2`](http://hackage.haskell.org/package/filepath-1.4.2.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/filepath-1.4.2.2/src/LICENSE) | Library for manipulating FilePaths in a cross platform way. | `Cabal`, `Glob`, `basic-prelude`, `conduit`, `conduit-extra`, `directory`, `easy-file`, `fast-logger`, `file-embed`, `hashable`, `haskeline`, `http-client`, `hxt`, `lens`, `process`, `purescript`, `th-compat`, `unliftio`, `wai-app-static`, `x509-store`, `x509-system`, `yaml`, `yesod-static` | | `hjsmin` | [`0.2.0.4`](http://hackage.haskell.org/package/hjsmin-0.2.0.4) | [`BSD-3-Clause`](http://hackage.haskell.org/package/hjsmin-0.2.0.4/src/LICENSE) | Haskell implementation of a javascript minifier | `yesod-static` | | `http-conduit` | [`2.3.8`](http://hackage.haskell.org/package/http-conduit-2.3.8) | [`BSD-3-Clause`](http://hackage.haskell.org/package/http-conduit-2.3.8/src/LICENSE) | HTTP client package with conduit interface and HTTPS support. | `classy-prelude-yesod` | | `http-types` | [`0.12.3`](http://hackage.haskell.org/package/http-types-0.12.3) | [`BSD-3-Clause`](http://hackage.haskell.org/package/http-types-0.12.3/src/LICENSE) | Generic HTTP types for Haskell (for both client and server code). | `classy-prelude-yesod`, `http-api-data`, `http-client`, `http-client-tls`, `http-conduit`, `http2`, `wai`, `wai-app-static`, `wai-extra`, `wai-logger`, `warp`, `yesod-core`, `yesod-static` | | `hxt` | [`9.3.1.22`](http://hackage.haskell.org/package/hxt-9.3.1.22) | [`MIT`](http://hackage.haskell.org/package/hxt-9.3.1.22/src/LICENSE) | A collection of tools for processing XML with Haskell. | | -| `monad-control` | [`1.0.3.1`](http://hackage.haskell.org/package/monad-control-1.0.3.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/monad-control-1.0.3.1/src/LICENSE) | Lift control operations, like exception catching, through monad transformers | `classy-prelude-conduit`, `enclosed-exceptions`, `lifted-async`, `lifted-base`, `monad-logger`, `purescript`, `shelly` | -| `monad-logger` | [`0.3.37`](http://hackage.haskell.org/package/monad-logger-0.3.37) | [`MIT`](http://hackage.haskell.org/package/monad-logger-0.3.37/src/LICENSE) | A class of monads which can log messages. | `persistent`, `purescript`, `yesod`, `yesod-core` | +| `monad-control` | [`1.0.3.1`](http://hackage.haskell.org/package/monad-control-1.0.3.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/monad-control-1.0.3.1/src/LICENSE) | Lift control operations, like exception catching, through monad transformers | `classy-prelude-conduit`, `lifted-async`, `lifted-base`, `monad-logger`, `purescript` | +| `monad-logger` | [`0.3.39`](http://hackage.haskell.org/package/monad-logger-0.3.39) | [`MIT`](http://hackage.haskell.org/package/monad-logger-0.3.39/src/LICENSE) | A class of monads which can log messages. | `persistent`, `purescript`, `yesod`, `yesod-core` | | `mono-traversable` | [`1.0.15.3`](http://hackage.haskell.org/package/mono-traversable-1.0.15.3) | [`MIT`](http://hackage.haskell.org/package/mono-traversable-1.0.15.3/src/LICENSE) | Type classes for mapping, folding, and traversing monomorphic containers | `classy-prelude`, `conduit`, `mono-traversable-instances`, `mutable-containers` | -| **`mtl`** | [`2.2.2`](http://hackage.haskell.org/package/mtl-2.2.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/mtl-2.2.2/src/LICENSE) | Monad classes, using functional dependencies | `Cabal`, `adjunctions`, `aeson-better-errors`, `blaze-svg`, `bower-json`, `cheapskate`, `classy-prelude`, `conduit`, `constraints`, `exceptions`, `free`, `http-conduit`, `hxt`, `kan-extensions`, `language-javascript`, `lens`, `monad-logger`, `mtl-compat`, `parsec`, `pattern-arrows`, `persistent`, `protolude`, `purescript`, `random`, `regex-tdfa`, `resourcet`, `shelly`, `tls`, `x509-store`, `x509-system`, `x509-validation`, `yaml`, `yesod-core` | +| **`mtl`** | [`2.2.2`](http://hackage.haskell.org/package/mtl-2.2.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/mtl-2.2.2/src/LICENSE) | Monad classes, using functional dependencies | `Cabal`, `adjunctions`, `aeson-better-errors`, `blaze-svg`, `bower-json`, `cheapskate`, `classy-prelude`, `conduit`, `constraints`, `exceptions`, `free`, `http-conduit`, `hxt`, `kan-extensions`, `language-javascript`, `lens`, `monad-logger`, `mtl-compat`, `parsec`, `pattern-arrows`, `persistent`, `protolude`, `purescript`, `random`, `regex-tdfa`, `resourcet`, `tls`, `x509-store`, `x509-system`, `x509-validation`, `yaml`, `yesod-core` | | `parallel` | [`3.2.2.0`](http://hackage.haskell.org/package/parallel-3.2.2.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/parallel-3.2.2.0/src/LICENSE) | Parallel programming library | `lens`, `purescript` | -| `purescript` | [`0.15.6`](http://hackage.haskell.org/package/purescript-0.15.6) | [`BSD-3-Clause`](http://hackage.haskell.org/package/purescript-0.15.6/src/LICENSE) | PureScript Programming Language Compiler | | +| `purescript` | [`0.15.8`](http://hackage.haskell.org/package/purescript-0.15.8) | [`BSD-3-Clause`](http://hackage.haskell.org/package/purescript-0.15.8/src/LICENSE) | PureScript Programming Language Compiler | | | `safe` | [`0.3.19`](http://hackage.haskell.org/package/safe-0.3.19) | [`BSD-3-Clause`](http://hackage.haskell.org/package/safe-0.3.19/src/LICENSE) | Library of safe (exception free) functions | `purescript` | | `shakespeare` | [`2.0.30`](http://hackage.haskell.org/package/shakespeare-2.0.30) | [`MIT`](http://hackage.haskell.org/package/shakespeare-2.0.30/src/LICENSE) | A toolkit for making compile-time interpolated templates | `yesod`, `yesod-core`, `yesod-form`, `yesod-newsfeed` | -| `split` | [`0.2.3.5`](http://hackage.haskell.org/package/split-0.2.3.5) | [`BSD-3-Clause`](http://hackage.haskell.org/package/split-0.2.3.5/src/LICENSE) | Combinator library for splitting lists. | `boxes`, `mono-traversable`, `purescript` | -| `streaming-commons` | [`0.2.2.4`](http://hackage.haskell.org/package/streaming-commons-0.2.2.4) | [`MIT`](http://hackage.haskell.org/package/streaming-commons-0.2.2.4/src/LICENSE) | Common lower-level functions needed by various streaming data libraries | `conduit-extra`, `http-client`, `wai-extra`, `warp`, `yesod` | -| **`template-haskell`** | [`2.18.0.0`](http://hackage.haskell.org/package/template-haskell-2.18.0.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/template-haskell-2.18.0.0/src/LICENSE) | Support library for Template Haskell | `OneTuple`, `QuickCheck`, `aeson`, `barrier`, `bifunctors`, `bytestring`, `email-validate`, `exceptions`, `file-embed`, `free`, `half`, `invariant`, `lens`, `lift-type`, `monad-logger`, `network-uri`, `persistent`, `primitive`, `reflection`, `scientific`, `semigroupoids`, `shakespeare`, `tagged`, `text`, `text-short`, `th-abstraction`, `th-compat`, `th-lift`, `th-lift-instances`, `unordered-containers`, `uuid-types`, `wai-app-static`, `yaml`, `yesod`, `yesod-core`, `yesod-static` | -| **`text`** | [`1.2.5.0`](http://hackage.haskell.org/package/text-1.2.5.0) | [`BSD-2-Clause`](http://hackage.haskell.org/package/text-1.2.5.0/src/LICENSE) | An efficient packed Unicode text type. | `Cabal`, `aeson`, `aeson-better-errors`, `aeson-pretty`, `attoparsec`, `attoparsec-iso8601`, `barrier`, `basic-prelude`, `blaze-builder`, `blaze-html`, `blaze-markup`, `bower-json`, `case-insensitive`, `cborg`, `cheapskate`, `chunked-data`, `classy-prelude`, `conduit`, `conduit-extra`, `cookie`, `css-text`, `fast-logger`, `fsnotify`, `hashable`, `hjsmin`, `http-api-data`, `http-client`, `http-client-tls`, `http-types`, `hxt-regex-xmlschema`, `language-javascript`, `lens`, `mime-types`, `monad-logger`, `mono-traversable`, `parsec`, `path-pieces`, `persistent`, `protolude`, `purescript`, `regex-base`, `regex-tdfa`, `say`, `scientific`, `serialise`, `shakespeare`, `shelly`, `sourcemap`, `streaming-commons`, `strict`, `tagsoup`, `text-short`, `th-lift-instances`, `uuid-types`, `wai`, `wai-app-static`, `wai-extra`, `warp`, `xml-conduit`, `xml-types`, `xss-sanitize`, `yaml`, `yesod`, `yesod-core`, `yesod-form`, `yesod-newsfeed`, `yesod-static` | -| **`time`** | [`1.11.1.1`](http://hackage.haskell.org/package/time-1.11.1.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/time-1.11.1.1/src/LICENSE) | A time library | `Cabal`, `aeson`, `attoparsec-iso8601`, `classy-prelude`, `cookie`, `directory`, `easy-file`, `fsnotify`, `http-client`, `http-date`, `path-pieces`, `persistent`, `purescript`, `resource-pool`, `serialise`, `shakespeare`, `shelly`, `time-compat`, `unix`, `unliftio`, `wai-app-static`, `wai-extra`, `yesod-core`, `yesod-form`, `yesod-newsfeed` | -| **`transformers`** | [`0.5.6.2`](http://hackage.haskell.org/package/transformers-0.5.6.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/transformers-0.5.6.2/src/LICENSE) | Concrete functor and monad transformers | `Cabal`, `Glob`, `QuickCheck`, `StateVar`, `adjunctions`, `aeson-better-errors`, `attoparsec`, `basic-prelude`, `bifunctors`, `bower-json`, `chunked-data`, `classy-prelude`, `classy-prelude-conduit`, `comonad`, `conduit`, `conduit-extra`, `constraints`, `contravariant`, `crypto-api`, `cryptonite-conduit`, `distributive`, `enclosed-exceptions`, `exceptions`, `free`, `haskeline`, `http-api-data`, `http-client`, `http-client-tls`, `http-conduit`, `indexed-traversable`, `invariant`, `kan-extensions`, `keys`, `lens`, `monad-control`, `monad-logger`, `mono-traversable`, `mono-traversable-instances`, `mtl`, `optparse-applicative`, `persistent`, `pointed`, `primitive`, `profunctors`, `protolude`, `purescript`, `resourcet`, `say`, `semialign`, `semigroupoids`, `shakespeare`, `shelly`, `streaming-commons`, `strict`, `tagged`, `th-lift-instances`, `tls`, `transformers-base`, `transformers-compat`, `typed-process`, `unliftio`, `unliftio-core`, `wai-app-static`, `wai-extra`, `witherable`, `x509`, `xml-conduit`, `yaml`, `yesod-core`, `yesod-form`, `yesod-persistent`, `yesod-static` | -| `unordered-containers` | [`0.2.19.1`](http://hackage.haskell.org/package/unordered-containers-0.2.19.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/unordered-containers-0.2.19.1/src/LICENSE) | Efficient hashing-based container types | `aeson`, `aeson-better-errors`, `aeson-pretty`, `barrier`, `basic-prelude`, `bower-json`, `classy-prelude`, `http-api-data`, `indexed-traversable-instances`, `invariant`, `keys`, `lens`, `mono-traversable`, `monoidal-containers`, `persistent`, `pointed`, `purescript`, `semialign`, `semigroupoids`, `serialise`, `shakespeare`, `sourcemap`, `uniplate`, `vault`, `wai-app-static`, `witherable`, `yaml`, `yesod`, `yesod-core`, `yesod-static` | -| `vector` | [`0.12.3.1`](http://hackage.haskell.org/package/vector-0.12.3.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/vector-0.12.3.1/src/LICENSE) | Efficient Arrays | `aeson`, `aeson-better-errors`, `aeson-pretty`, `basic-prelude`, `bitvec`, `bower-json`, `chunked-data`, `classy-prelude`, `conduit`, `crypto-random`, `indexed-traversable-instances`, `lens`, `mono-traversable`, `mutable-containers`, `persistent`, `purescript`, `semialign`, `serialise`, `shakespeare`, `th-lift-instances`, `vector-algorithms`, `vector-instances`, `witherable`, `yaml`, `yesod-core` | -| `wai-extra` | [`3.1.12.1`](http://hackage.haskell.org/package/wai-extra-3.1.12.1) | [`MIT`](http://hackage.haskell.org/package/wai-extra-3.1.12.1/src/LICENSE) | Provides some basic WAI handlers and middleware. | `wai-app-static`, `yesod`, `yesod-core` | +| `split` | [`0.2.3.5`](http://hackage.haskell.org/package/split-0.2.3.5) | [`BSD-3-Clause`](http://hackage.haskell.org/package/split-0.2.3.5/src/LICENSE) | Combinator library for splitting lists. | `boxes`, `mono-traversable` | +| `streaming-commons` | [`0.2.2.5`](http://hackage.haskell.org/package/streaming-commons-0.2.2.5) | [`MIT`](http://hackage.haskell.org/package/streaming-commons-0.2.2.5/src/LICENSE) | Common lower-level functions needed by various streaming data libraries | `conduit-extra`, `http-client`, `wai-extra`, `warp`, `yesod` | +| **`template-haskell`** | [`2.18.0.0`](http://hackage.haskell.org/package/template-haskell-2.18.0.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/template-haskell-2.18.0.0/src/LICENSE) | Support library for Template Haskell | `OneTuple`, `QuickCheck`, `aeson`, `barrier`, `bifunctors`, `bytestring`, `data-array-byte`, `email-validate`, `exceptions`, `file-embed`, `free`, `half`, `invariant`, `lens`, `lift-type`, `monad-logger`, `network-uri`, `persistent`, `primitive`, `purescript`, `reflection`, `scientific`, `semigroupoids`, `shakespeare`, `tagged`, `text`, `text-short`, `th-abstraction`, `th-compat`, `th-lift`, `th-lift-instances`, `unordered-containers`, `uuid-types`, `wai-app-static`, `yaml`, `yesod`, `yesod-core`, `yesod-static` | +| **`text`** | [`1.2.5.0`](http://hackage.haskell.org/package/text-1.2.5.0) | [`BSD-2-Clause`](http://hackage.haskell.org/package/text-1.2.5.0/src/LICENSE) | An efficient packed Unicode text type. | `Cabal`, `aeson`, `aeson-better-errors`, `attoparsec`, `attoparsec-iso8601`, `barrier`, `basic-prelude`, `blaze-builder`, `blaze-html`, `blaze-markup`, `bower-json`, `case-insensitive`, `cborg`, `cheapskate`, `chunked-data`, `classy-prelude`, `conduit`, `conduit-extra`, `cookie`, `css-text`, `fast-logger`, `hashable`, `hjsmin`, `http-api-data`, `http-client`, `http-client-tls`, `http-types`, `hxt-regex-xmlschema`, `language-javascript`, `lens`, `mime-types`, `monad-logger`, `mono-traversable`, `parsec`, `path-pieces`, `persistent`, `protolude`, `purescript`, `regex-base`, `regex-tdfa`, `say`, `scientific`, `serialise`, `shakespeare`, `sourcemap`, `streaming-commons`, `strict`, `tagsoup`, `text-short`, `th-lift-instances`, `uuid-types`, `wai`, `wai-app-static`, `wai-extra`, `warp`, `xml-conduit`, `xml-types`, `xss-sanitize`, `yaml`, `yesod`, `yesod-core`, `yesod-form`, `yesod-newsfeed`, `yesod-static` | +| **`time`** | [`1.11.1.1`](http://hackage.haskell.org/package/time-1.11.1.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/time-1.11.1.1/src/LICENSE) | A time library | `Cabal`, `aeson`, `attoparsec-iso8601`, `classy-prelude`, `cookie`, `directory`, `easy-file`, `http-client`, `http-date`, `path-pieces`, `persistent`, `purescript`, `resource-pool`, `serialise`, `shakespeare`, `time-compat`, `unix`, `unliftio`, `wai-app-static`, `wai-extra`, `yesod-core`, `yesod-form`, `yesod-newsfeed` | +| **`transformers`** | [`0.5.6.2`](http://hackage.haskell.org/package/transformers-0.5.6.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/transformers-0.5.6.2/src/LICENSE) | Concrete functor and monad transformers | `Cabal`, `Glob`, `QuickCheck`, `StateVar`, `adjunctions`, `aeson-better-errors`, `attoparsec`, `basic-prelude`, `bifunctors`, `bower-json`, `chunked-data`, `classy-prelude`, `classy-prelude-conduit`, `comonad`, `conduit`, `conduit-extra`, `constraints`, `contravariant`, `crypto-api`, `cryptonite-conduit`, `distributive`, `exceptions`, `free`, `haskeline`, `http-api-data`, `http-client`, `http-client-tls`, `http-conduit`, `indexed-traversable`, `invariant`, `kan-extensions`, `keys`, `lens`, `monad-control`, `monad-logger`, `mono-traversable`, `mono-traversable-instances`, `mtl`, `optparse-applicative`, `persistent`, `pointed`, `primitive`, `profunctors`, `protolude`, `purescript`, `resourcet`, `safe-exceptions`, `say`, `semialign`, `semigroupoids`, `shakespeare`, `streaming-commons`, `strict`, `tagged`, `th-lift-instances`, `tls`, `transformers-base`, `transformers-compat`, `typed-process`, `unliftio`, `unliftio-core`, `wai-app-static`, `wai-extra`, `witherable`, `x509`, `xml-conduit`, `yaml`, `yesod-core`, `yesod-form`, `yesod-persistent`, `yesod-static` | +| `unordered-containers` | [`0.2.19.1`](http://hackage.haskell.org/package/unordered-containers-0.2.19.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/unordered-containers-0.2.19.1/src/LICENSE) | Efficient hashing-based container types | `aeson`, `aeson-better-errors`, `barrier`, `basic-prelude`, `bower-json`, `classy-prelude`, `http-api-data`, `indexed-traversable-instances`, `invariant`, `keys`, `lens`, `mono-traversable`, `monoidal-containers`, `persistent`, `pointed`, `semialign`, `semigroupoids`, `serialise`, `shakespeare`, `sourcemap`, `uniplate`, `vault`, `wai-app-static`, `witherable`, `yaml`, `yesod`, `yesod-core`, `yesod-static` | +| `vector` | [`0.12.3.1`](http://hackage.haskell.org/package/vector-0.12.3.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/vector-0.12.3.1/src/LICENSE) | Efficient Arrays | `aeson`, `aeson-better-errors`, `basic-prelude`, `bitvec`, `bower-json`, `chunked-data`, `classy-prelude`, `conduit`, `crypto-random`, `indexed-traversable-instances`, `lens`, `mono-traversable`, `mutable-containers`, `persistent`, `purescript`, `semialign`, `serialise`, `shakespeare`, `th-lift-instances`, `vector-algorithms`, `vector-instances`, `witherable`, `yaml`, `yesod-core` | +| `wai-extra` | [`3.1.13.0`](http://hackage.haskell.org/package/wai-extra-3.1.13.0) | [`MIT`](http://hackage.haskell.org/package/wai-extra-3.1.13.0/src/LICENSE) | Provides some basic WAI handlers and middleware. | `wai-app-static`, `yesod`, `yesod-core` | | `wai-logger` | [`2.4.0`](http://hackage.haskell.org/package/wai-logger-2.4.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/wai-logger-2.4.0/src/LICENSE) | A logging system for WAI | `wai-extra`, `yesod`, `yesod-core` | -| `warp` | [`3.3.23`](http://hackage.haskell.org/package/warp-3.3.23) | [`MIT`](http://hackage.haskell.org/package/warp-3.3.23/src/LICENSE) | A fast, light-weight web server for WAI applications. | `wai-app-static`, `yesod`, `yesod-core` | -| `xss-sanitize` | [`0.3.7`](http://hackage.haskell.org/package/xss-sanitize-0.3.7) | [`BSD-2-Clause`](http://hackage.haskell.org/package/xss-sanitize-0.3.7/src/LICENSE) | sanitize untrusted HTML to prevent XSS attacks | `cheapskate`, `yesod-form` | -| `yaml` | [`0.11.8.0`](http://hackage.haskell.org/package/yaml-0.11.8.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/yaml-0.11.8.0/src/LICENSE) | Support for parsing and rendering YAML documents. | `yesod` | +| `warp` | [`3.3.24`](http://hackage.haskell.org/package/warp-3.3.24) | [`MIT`](http://hackage.haskell.org/package/warp-3.3.24/src/LICENSE) | A fast, light-weight web server for WAI applications. | `wai-app-static`, `wai-extra`, `yesod`, `yesod-core` | +| `xss-sanitize` | [`0.3.7.1`](http://hackage.haskell.org/package/xss-sanitize-0.3.7.1) | [`BSD-2-Clause`](http://hackage.haskell.org/package/xss-sanitize-0.3.7.1/src/LICENSE) | sanitize untrusted HTML to prevent XSS attacks | `cheapskate`, `yesod-form` | +| `yaml` | [`0.11.11.0`](http://hackage.haskell.org/package/yaml-0.11.11.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/yaml-0.11.11.0/src/LICENSE) | Support for parsing and rendering YAML documents. | `yesod` | | `yesod` | [`1.6.2.1`](http://hackage.haskell.org/package/yesod-1.6.2.1) | [`MIT`](http://hackage.haskell.org/package/yesod-1.6.2.1/src/LICENSE) | Creation of type-safe, RESTful web applications. | `classy-prelude-yesod` | -| `yesod-core` | [`1.6.24.0`](http://hackage.haskell.org/package/yesod-core-1.6.24.0) | [`MIT`](http://hackage.haskell.org/package/yesod-core-1.6.24.0/src/LICENSE) | Creation of type-safe, RESTful web applications. | `yesod`, `yesod-form`, `yesod-newsfeed`, `yesod-persistent`, `yesod-static` | +| `yesod-core` | [`1.6.24.2`](http://hackage.haskell.org/package/yesod-core-1.6.24.2) | [`MIT`](http://hackage.haskell.org/package/yesod-core-1.6.24.2/src/LICENSE) | Creation of type-safe, RESTful web applications. | `yesod`, `yesod-form`, `yesod-newsfeed`, `yesod-persistent`, `yesod-static` | | `yesod-form` | [`1.6.7`](http://hackage.haskell.org/package/yesod-form-1.6.7) | [`MIT`](http://hackage.haskell.org/package/yesod-form-1.6.7/src/LICENSE) | Form handling support for Yesod Web Framework | `yesod` | | `yesod-static` | [`1.6.1.0`](http://hackage.haskell.org/package/yesod-static-1.6.1.0) | [`MIT`](http://hackage.haskell.org/package/yesod-static-1.6.1.0/src/LICENSE) | Static file serving subsite for Yesod Web Framework. | `classy-prelude-yesod` | @@ -103,8 +103,7 @@ Bold-faced **`package-name`**s denote standard libraries bundled with `ghc-9.2.3 | `QuickCheck` | [`2.14.2`](http://hackage.haskell.org/package/QuickCheck-2.14.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/QuickCheck-2.14.2/src/LICENSE) | Automatic testing of Haskell programs | `aeson` | | `StateVar` | [`1.2.2`](http://hackage.haskell.org/package/StateVar-1.2.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/StateVar-1.2.2/src/LICENSE) | State variables | `contravariant`, `invariant` | | `adjunctions` | [`4.4.2`](http://hackage.haskell.org/package/adjunctions-4.4.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/adjunctions-4.4.2/src/LICENSE) | Adjunctions and representable functors | `kan-extensions` | -| `aeson-pretty` | [`0.8.9`](http://hackage.haskell.org/package/aeson-pretty-0.8.9) | [`BSD-3-Clause`](http://hackage.haskell.org/package/aeson-pretty-0.8.9/src/LICENSE) | JSON pretty-printing library and command-line tool. | `purescript` | -| `ansi-terminal` | [`0.11.3`](http://hackage.haskell.org/package/ansi-terminal-0.11.3) | [`BSD-3-Clause`](http://hackage.haskell.org/package/ansi-terminal-0.11.3/src/LICENSE) | Simple ANSI terminal support, with Windows compatibility | `ansi-wl-pprint`, `purescript`, `wai-extra` | +| `ansi-terminal` | [`0.11.4`](http://hackage.haskell.org/package/ansi-terminal-0.11.4) | [`BSD-3-Clause`](http://hackage.haskell.org/package/ansi-terminal-0.11.4/src/LICENSE) | Simple ANSI terminal support, with Windows compatibility | `ansi-wl-pprint`, `purescript`, `wai-extra` | | `ansi-wl-pprint` | [`0.6.9`](http://hackage.haskell.org/package/ansi-wl-pprint-0.6.9) | [`BSD-3-Clause`](http://hackage.haskell.org/package/ansi-wl-pprint-0.6.9/src/LICENSE) | The Wadler/Leijen Pretty Printer for colored ANSI terminal output | `optparse-applicative` | | `appar` | [`0.1.8`](http://hackage.haskell.org/package/appar-0.1.8) | [`BSD-3-Clause`](http://hackage.haskell.org/package/appar-0.1.8/src/LICENSE) | A simple applicative parser | `iproute` | | **`array`** | [`0.5.4.0`](http://hackage.haskell.org/package/array-0.5.4.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/array-0.5.4.0/src/LICENSE) | Mutable and immutable arrays | `Cabal`, `adjunctions`, `attoparsec`, `binary`, `cborg`, `cereal`, `containers`, `deepseq`, `edit-distance`, `fast-logger`, `http-client`, `http-date`, `http-types`, `http2`, `indexed-traversable`, `integer-logarithms`, `invariant`, `kan-extensions`, `keys`, `language-javascript`, `lens`, `parallel`, `protolude`, `purescript`, `regex-base`, `regex-tdfa`, `serialise`, `stm`, `streaming-commons`, `stringsearch`, `text`, `warp` | @@ -112,17 +111,17 @@ Bold-faced **`package-name`**s denote standard libraries bundled with `ghc-9.2.3 | `asn1-parse` | [`0.9.5`](http://hackage.haskell.org/package/asn1-parse-0.9.5) | [`BSD-3-Clause`](http://hackage.haskell.org/package/asn1-parse-0.9.5/src/LICENSE) | Simple monadic parser for ASN1 stream types. | `x509` | | `asn1-types` | [`0.3.4`](http://hackage.haskell.org/package/asn1-types-0.3.4) | [`BSD-3-Clause`](http://hackage.haskell.org/package/asn1-types-0.3.4/src/LICENSE) | ASN.1 types | `asn1-encoding`, `asn1-parse`, `tls`, `x509`, `x509-store`, `x509-validation` | | `assoc` | [`1.0.2`](http://hackage.haskell.org/package/assoc-1.0.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/assoc-1.0.2/src/LICENSE) | swap and assoc: Symmetric and Semigroupy Bifunctors | `lens`, `strict`, `these` | -| `async` | [`2.2.4`](http://hackage.haskell.org/package/async-2.2.4) | [`BSD-3-Clause`](http://hackage.haskell.org/package/async-2.2.4/src/LICENSE) | Run IO operations asynchronously and wait for their results | `classy-prelude`, `conduit-extra`, `fsnotify`, `hinotify`, `http-client`, `http2`, `lifted-async`, `protolude`, `shelly`, `streaming-commons`, `tls`, `typed-process`, `unliftio`, `yesod-static` | +| `async` | [`2.2.4`](http://hackage.haskell.org/package/async-2.2.4) | [`BSD-3-Clause`](http://hackage.haskell.org/package/async-2.2.4/src/LICENSE) | Run IO operations asynchronously and wait for their results | `classy-prelude`, `conduit-extra`, `http-client`, `http2`, `lifted-async`, `protolude`, `streaming-commons`, `tls`, `typed-process`, `unliftio`, `yesod-static` | | `attoparsec` | [`0.14.4`](http://hackage.haskell.org/package/attoparsec-0.14.4) | [`BSD-3-Clause`](http://hackage.haskell.org/package/attoparsec-0.14.4/src/LICENSE) | Fast combinator parsing for bytestrings and text | `aeson`, `attoparsec-iso8601`, `conduit-extra`, `css-text`, `email-validate`, `http-api-data`, `http-conduit`, `http-date`, `persistent`, `sourcemap`, `xml-conduit`, `xss-sanitize`, `yaml`, `yesod-form`, `yesod-static` | | `attoparsec` | [`0.14.4`](http://hackage.haskell.org/package/attoparsec-0.14.4) | [`BSD-3-Clause`](http://hackage.haskell.org/package/attoparsec-0.14.4/src/LICENSE) | Fast combinator parsing for bytestrings and text | `attoparsec` | | `attoparsec-iso8601` | [`1.1.0.0`](http://hackage.haskell.org/package/attoparsec-iso8601-1.1.0.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/attoparsec-iso8601-1.1.0.0/src/LICENSE) | Parsing of ISO 8601 dates, originally from aeson | `http-api-data` | | `auto-update` | [`0.1.6`](http://hackage.haskell.org/package/auto-update-0.1.6) | [`MIT`](http://hackage.haskell.org/package/auto-update-0.1.6/src/LICENSE) | Efficiently run periodic, on-demand actions | `fast-logger`, `time-manager`, `warp`, `yesod-core` | -| `base-compat` | [`0.12.2`](http://hackage.haskell.org/package/base-compat-0.12.2) | [`MIT`](http://hackage.haskell.org/package/base-compat-0.12.2/src/LICENSE) | A compatibility layer for base | `aeson-pretty`, `base-compat-batteries`, `http-api-data` | +| `base-compat` | [`0.12.2`](http://hackage.haskell.org/package/base-compat-0.12.2) | [`MIT`](http://hackage.haskell.org/package/base-compat-0.12.2/src/LICENSE) | A compatibility layer for base | `base-compat-batteries`, `http-api-data` | | `base-compat-batteries` | [`0.12.2`](http://hackage.haskell.org/package/base-compat-batteries-0.12.2) | [`MIT`](http://hackage.haskell.org/package/base-compat-batteries-0.12.2/src/LICENSE) | base-compat with extra batteries | `aeson`, `attoparsec-iso8601` | -| `base-orphans` | [`0.8.7`](http://hackage.haskell.org/package/base-orphans-0.8.7) | [`MIT`](http://hackage.haskell.org/package/base-orphans-0.8.7/src/LICENSE) | Backwards-compatible orphan instances for base | `bifunctors`, `distributive`, `lens`, `profunctors`, `semigroupoids`, `time-compat`, `transformers-base`, `witherable` | +| `base-orphans` | [`0.8.8.1`](http://hackage.haskell.org/package/base-orphans-0.8.8.1) | [`MIT`](http://hackage.haskell.org/package/base-orphans-0.8.8.1/src/LICENSE) | Backwards-compatible orphan instances for base | `bifunctors`, `distributive`, `lens`, `profunctors`, `semigroupoids`, `time-compat`, `transformers-base`, `witherable` | | `basement` | [`0.0.15`](http://hackage.haskell.org/package/basement-0.0.15) | [`BSD-3-Clause`](http://hackage.haskell.org/package/basement-0.0.15/src/LICENSE) | Foundation scrap box of array & string | `connection`, `cryptonite`, `memory`, `pem`, `socks` | | `basic-prelude` | [`0.7.0`](http://hackage.haskell.org/package/basic-prelude-0.7.0) | [`MIT`](http://hackage.haskell.org/package/basic-prelude-0.7.0/src/LICENSE) | An enhanced core prelude; a common foundation for alternate preludes. | `classy-prelude` | -| `bifunctors` | [`5.5.13`](http://hackage.haskell.org/package/bifunctors-5.5.13) | [`BSD-3-Clause`](http://hackage.haskell.org/package/bifunctors-5.5.13/src/LICENSE) | Bifunctors | `assoc`, `classy-prelude`, `invariant`, `lens`, `profunctors`, `semigroupoids` | +| `bifunctors` | [`5.5.15`](http://hackage.haskell.org/package/bifunctors-5.5.15) | [`BSD-3-Clause`](http://hackage.haskell.org/package/bifunctors-5.5.15/src/LICENSE) | Bifunctors | `assoc`, `classy-prelude`, `invariant`, `lens`, `profunctors`, `semigroupoids` | | **`binary`** | [`0.8.9.0`](http://hackage.haskell.org/package/binary-0.8.9.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/binary-0.8.9.0/src/LICENSE) | Binary serialisation for Haskell values using lazy ByteStrings | `Cabal`, `bytestring-trie`, `constraints`, `half`, `hxt`, `scientific`, `strict`, `text`, `text-short`, `these`, `unix-time`, `uuid-types` | | `bitvec` | [`1.1.3.0`](http://hackage.haskell.org/package/bitvec-1.1.3.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/bitvec-1.1.3.0/src/LICENSE) | Space-efficient bit vectors | `vector-algorithms` | | `boxes` | [`0.1.5`](http://hackage.haskell.org/package/boxes-0.1.5) | [`BSD-3-Clause`](http://hackage.haskell.org/package/boxes-0.1.5/src/LICENSE) | 2D text pretty-printing library | `purescript` | @@ -147,6 +146,7 @@ Bold-faced **`package-name`**s denote standard libraries bundled with `ghc-9.2.3 | `cryptonite` | [`0.30`](http://hackage.haskell.org/package/cryptonite-0.30) | [`BSD-3-Clause`](http://hackage.haskell.org/package/cryptonite-0.30/src/LICENSE) | Cryptography Primitives sink | `cryptonite-conduit`, `http-client-tls`, `purescript`, `tls`, `wai-app-static`, `x509`, `x509-store`, `x509-validation`, `yesod-static` | | `cryptonite-conduit` | [`0.2.2`](http://hackage.haskell.org/package/cryptonite-conduit-0.2.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/cryptonite-conduit-0.2.2/src/LICENSE) | cryptonite conduit | `yesod-static` | | `css-text` | [`0.1.3.0`](http://hackage.haskell.org/package/css-text-0.1.3.0) | [`MIT`](http://hackage.haskell.org/package/css-text-0.1.3.0/src/LICENSE) | CSS parser and renderer. | `xss-sanitize`, `yesod-static` | +| `data-array-byte` | [`0.1.0.1`](http://hackage.haskell.org/package/data-array-byte-0.1.0.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/data-array-byte-0.1.0.1/src/LICENSE) | Compatibility layer for Data.Array.Byte | `hashable` | | `data-default-class` | [`0.1.2.0`](http://hackage.haskell.org/package/data-default-class-0.1.2.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/data-default-class-0.1.2.0/src/LICENSE) | A class for types with a default value | `connection`, `cookie`, `data-default`, `data-default-instances-containers`, `data-default-instances-dlist`, `data-default-instances-old-locale`, `http-client-tls`, `pointed`, `tls`, `wai-extra`, `x509-validation`, `xml-conduit`, `yesod` | | `data-default-instances-containers` | [`0.0.1`](http://hackage.haskell.org/package/data-default-instances-containers-0.0.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/data-default-instances-containers-0.0.1/src/LICENSE) | Default instances for types in containers | `data-default` | | `data-default-instances-dlist` | [`0.0.1`](http://hackage.haskell.org/package/data-default-instances-dlist-0.0.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/data-default-instances-dlist-0.0.1/src/LICENSE) | Default instances for types in dlist | `data-default` | @@ -157,41 +157,38 @@ Bold-faced **`package-name`**s denote standard libraries bundled with `ghc-9.2.3 | `dlist-instances` | [`0.1.1.1`](http://hackage.haskell.org/package/dlist-instances-0.1.1.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/dlist-instances-0.1.1.1/src/LICENSE) | Difference lists instances | `mono-traversable-instances` | | `easy-file` | [`0.2.2`](http://hackage.haskell.org/package/easy-file-0.2.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/easy-file-0.2.2/src/LICENSE) | Cross-platform File handling | `fast-logger` | | `edit-distance` | [`0.2.2.1`](http://hackage.haskell.org/package/edit-distance-0.2.2.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/edit-distance-0.2.2.1/src/LICENSE) | Levenshtein and restricted Damerau-Levenshtein edit distances | `purescript` | -| `email-validate` | [`2.3.2.16`](http://hackage.haskell.org/package/email-validate-2.3.2.16) | [`BSD-3-Clause`](http://hackage.haskell.org/package/email-validate-2.3.2.16/src/LICENSE) | Email address validation | `yesod-form` | -| `enclosed-exceptions` | [`1.0.3`](http://hackage.haskell.org/package/enclosed-exceptions-1.0.3) | [`MIT`](http://hackage.haskell.org/package/enclosed-exceptions-1.0.3/src/LICENSE) | Catching all exceptions from within an enclosed computation | `shelly` | +| `email-validate` | [`2.3.2.18`](http://hackage.haskell.org/package/email-validate-2.3.2.18) | [`BSD-3-Clause`](http://hackage.haskell.org/package/email-validate-2.3.2.18/src/LICENSE) | Email address validation | `yesod-form` | | `entropy` | [`0.4.1.10`](http://hackage.haskell.org/package/entropy-0.4.1.10) | [`BSD-3-Clause`](http://hackage.haskell.org/package/entropy-0.4.1.10/src/LICENSE) | A platform independent entropy source | `clientsession`, `crypto-api`, `yesod-core` | -| `free` | [`5.1.9`](http://hackage.haskell.org/package/free-5.1.9) | [`BSD-3-Clause`](http://hackage.haskell.org/package/free-5.1.9/src/LICENSE) | Monads for free | `adjunctions`, `kan-extensions`, `keys`, `lens` | -| `fsnotify` | [`0.3.0.1`](http://hackage.haskell.org/package/fsnotify-0.3.0.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/fsnotify-0.3.0.1/src/LICENSE) | Cross platform library for file change notification. | `purescript` | +| `free` | [`5.1.10`](http://hackage.haskell.org/package/free-5.1.10) | [`BSD-3-Clause`](http://hackage.haskell.org/package/free-5.1.10/src/LICENSE) | Monads for free | `adjunctions`, `kan-extensions`, `keys`, `lens` | | **`ghc-bignum`** | [`1.2`](http://hackage.haskell.org/package/ghc-bignum-1.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/ghc-bignum-1.2/src/LICENSE) | GHC BigNum library | `base`, `bitvec`, `cborg`, `hashable`, `integer-gmp`, `integer-logarithms` | -| **`ghc-boot-th`** | [`9.2.3`](http://hackage.haskell.org/package/ghc-boot-th-9.2.3) | *MISSING* | *MISSING* | `template-haskell` | +| **`ghc-boot-th`** | [`9.2.5`](http://hackage.haskell.org/package/ghc-boot-th-9.2.5) | *MISSING* | *MISSING* | `template-haskell` | | **`ghc-prim`** | [`0.8.0`](http://hackage.haskell.org/package/ghc-prim-0.8.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/ghc-prim-0.8.0/src/LICENSE) | GHC primitives | *(core library)* | | `half` | [`0.3.1`](http://hackage.haskell.org/package/half-0.3.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/half-0.3.1/src/LICENSE) | Half-precision floating-point | `cborg`, `serialise` | -| `hashable` | [`1.4.1.0`](http://hackage.haskell.org/package/hashable-1.4.1.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/hashable-1.4.1.0/src/LICENSE) | A class for types that can be converted to a hash value | `aeson`, `async`, `basic-prelude`, `case-insensitive`, `classy-prelude`, `constraints`, `data-fix`, `http-api-data`, `keys`, `lens`, `mono-traversable`, `monoidal-containers`, `pointed`, `protolude`, `psqueues`, `scientific`, `semialign`, `semigroupoids`, `serialise`, `strict`, `text-short`, `these`, `time-compat`, `uniplate`, `unordered-containers`, `uuid-types`, `vault`, `vector-instances`, `warp`, `witherable`, `yesod-static` | -| `haskeline` | [`0.8.2`](http://hackage.haskell.org/package/haskeline-0.8.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/haskeline-0.8.2/src/LICENSE) | A command-line interface for user input, written in Haskell. | `purescript` | -| `hinotify` | [`0.4.1`](http://hackage.haskell.org/package/hinotify-0.4.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/hinotify-0.4.1/src/LICENSE) | Haskell binding to inotify | `fsnotify` | +| `hashable` | [`1.4.2.0`](http://hackage.haskell.org/package/hashable-1.4.2.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/hashable-1.4.2.0/src/LICENSE) | A class for types that can be converted to a hash value | `aeson`, `async`, `basic-prelude`, `case-insensitive`, `classy-prelude`, `constraints`, `data-fix`, `http-api-data`, `keys`, `lens`, `mono-traversable`, `monoidal-containers`, `pointed`, `protolude`, `psqueues`, `resource-pool`, `scientific`, `semialign`, `semigroupoids`, `serialise`, `strict`, `text-short`, `these`, `time-compat`, `uniplate`, `unordered-containers`, `uuid-types`, `vault`, `vector-instances`, `warp`, `witherable`, `yesod-static` | +| `haskeline` | [`0.8.2.1`](http://hackage.haskell.org/package/haskeline-0.8.2.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/haskeline-0.8.2.1/src/LICENSE) | A command-line interface for user input, written in Haskell. | `purescript` | | `hourglass` | [`0.2.12`](http://hackage.haskell.org/package/hourglass-0.2.12) | [`BSD-3-Clause`](http://hackage.haskell.org/package/hourglass-0.2.12/src/LICENSE) | simple performant time related library | `asn1-encoding`, `asn1-types`, `tls`, `x509`, `x509-validation` | | `http-api-data` | [`0.5`](http://hackage.haskell.org/package/http-api-data-0.5) | [`BSD-3-Clause`](http://hackage.haskell.org/package/http-api-data-0.5/src/LICENSE) | Converting to/from HTTP API data like URL pieces, headers and query parameters. | `persistent` | | `http-client` | [`0.7.13.1`](http://hackage.haskell.org/package/http-client-0.7.13.1) | [`MIT`](http://hackage.haskell.org/package/http-client-0.7.13.1/src/LICENSE) | An HTTP client engine | `http-client-tls`, `http-conduit` | | `http-client-tls` | [`0.3.6.1`](http://hackage.haskell.org/package/http-client-tls-0.3.6.1) | [`MIT`](http://hackage.haskell.org/package/http-client-tls-0.3.6.1/src/LICENSE) | http-client backend using the connection package and tls library | `http-conduit` | | `http-date` | [`0.0.11`](http://hackage.haskell.org/package/http-date-0.0.11) | [`BSD-3-Clause`](http://hackage.haskell.org/package/http-date-0.0.11/src/LICENSE) | HTTP Date parser/formatter | `wai-app-static`, `warp` | -| `http2` | [`3.0.3`](http://hackage.haskell.org/package/http2-3.0.3) | [`BSD-3-Clause`](http://hackage.haskell.org/package/http2-3.0.3/src/LICENSE) | HTTP/2 library | `wai-extra`, `warp` | +| `http2` | [`4.0.0`](http://hackage.haskell.org/package/http2-4.0.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/http2-4.0.0/src/LICENSE) | HTTP/2 library | `warp` | | `hxt-charproperties` | [`9.5.0.0`](http://hackage.haskell.org/package/hxt-charproperties-9.5.0.0) | [`MIT`](http://hackage.haskell.org/package/hxt-charproperties-9.5.0.0/src/LICENSE) | Character properties and classes for XML and Unicode | `hxt`, `hxt-regex-xmlschema`, `hxt-unicode` | | `hxt-regex-xmlschema` | [`9.2.0.7`](http://hackage.haskell.org/package/hxt-regex-xmlschema-9.2.0.7) | [`MIT`](http://hackage.haskell.org/package/hxt-regex-xmlschema-9.2.0.7/src/LICENSE) | A regular expression library for W3C XML Schema regular expressions | `hxt` | | `hxt-unicode` | [`9.0.2.4`](http://hackage.haskell.org/package/hxt-unicode-9.0.2.4) | [`MIT`](http://hackage.haskell.org/package/hxt-unicode-9.0.2.4/src/LICENSE) | Unicode en-/decoding functions for utf8, iso-latin-* and other encodings | `hxt` | | `indexed-traversable` | [`0.1.2`](http://hackage.haskell.org/package/indexed-traversable-0.1.2) | [`BSD-2-Clause`](http://hackage.haskell.org/package/indexed-traversable-0.1.2/src/LICENSE) | FunctorWithIndex, FoldableWithIndex, TraversableWithIndex | `aeson`, `comonad`, `free`, `indexed-traversable-instances`, `lens`, `semialign`, `witherable` | -| `indexed-traversable-instances` | [`0.1.1.1`](http://hackage.haskell.org/package/indexed-traversable-instances-0.1.1.1) | [`BSD-2-Clause`](http://hackage.haskell.org/package/indexed-traversable-instances-0.1.1.1/src/LICENSE) | More instances of FunctorWithIndex, FoldableWithIndex, TraversableWithIndex | `lens`, `semialign`, `witherable` | +| `indexed-traversable-instances` | [`0.1.1.2`](http://hackage.haskell.org/package/indexed-traversable-instances-0.1.1.2) | [`BSD-2-Clause`](http://hackage.haskell.org/package/indexed-traversable-instances-0.1.1.2/src/LICENSE) | More instances of FunctorWithIndex, FoldableWithIndex, TraversableWithIndex | `lens`, `semialign`, `witherable` | | **`integer-gmp`** | [`1.1`](http://hackage.haskell.org/package/integer-gmp-1.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/integer-gmp-1.1/src/LICENSE) | Integer library based on GMP | *(core library)* | | `integer-logarithms` | [`1.0.3.1`](http://hackage.haskell.org/package/integer-logarithms-1.0.3.1) | [`MIT`](http://hackage.haskell.org/package/integer-logarithms-1.0.3.1/src/LICENSE) | Integer logarithms. | `scientific` | -| `invariant` | [`0.6`](http://hackage.haskell.org/package/invariant-0.6) | [`BSD-2-Clause`](http://hackage.haskell.org/package/invariant-0.6/src/LICENSE) | Haskell98 invariant functors | `kan-extensions` | +| `invariant` | [`0.6.1`](http://hackage.haskell.org/package/invariant-0.6.1) | [`BSD-2-Clause`](http://hackage.haskell.org/package/invariant-0.6.1/src/LICENSE) | Haskell98 invariant functors | `kan-extensions` | | `iproute` | [`1.7.12`](http://hackage.haskell.org/package/iproute-1.7.12) | [`BSD-3-Clause`](http://hackage.haskell.org/package/iproute-1.7.12/src/LICENSE) | IP Routing Table | `http-client`, `wai-extra`, `warp` | | `kan-extensions` | [`5.2.5`](http://hackage.haskell.org/package/kan-extensions-5.2.5) | [`BSD-3-Clause`](http://hackage.haskell.org/package/kan-extensions-5.2.5/src/LICENSE) | Kan extensions, Kan lifts, the Yoneda lemma, and (co)density (co)monads | `lens`, `pointed` | | `keys` | [`3.12.3`](http://hackage.haskell.org/package/keys-3.12.3) | [`BSD-3-Clause`](http://hackage.haskell.org/package/keys-3.12.3/src/LICENSE) | Keyed functors and containers | `vector-instances` | | `language-javascript` | [`0.7.0.0`](http://hackage.haskell.org/package/language-javascript-0.7.0.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/language-javascript-0.7.0.0/src/LICENSE) | Parser for JavaScript | `hjsmin`, `purescript` | | `lens` | [`5.1.1`](http://hackage.haskell.org/package/lens-5.1.1) | [`BSD-2-Clause`](http://hackage.haskell.org/package/lens-5.1.1/src/LICENSE) | Lenses, Folds and Traversals | `monoidal-containers`, `purescript` | | `libyaml` | [`0.1.2`](http://hackage.haskell.org/package/libyaml-0.1.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/libyaml-0.1.2/src/LICENSE) | Low-level, streaming YAML interface. | `yaml` | -| `lift-type` | [`0.1.0.1`](http://hackage.haskell.org/package/lift-type-0.1.0.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/lift-type-0.1.0.1/src/LICENSE) | Lift a type from a Typeable constraint to a Template Haskell type | `persistent` | -| `lifted-async` | [`0.10.2.3`](http://hackage.haskell.org/package/lifted-async-0.10.2.3) | [`BSD-3-Clause`](http://hackage.haskell.org/package/lifted-async-0.10.2.3/src/LICENSE) | Run lifted IO operations asynchronously and wait for their results | `purescript`, `shelly` | -| `lifted-base` | [`0.2.3.12`](http://hackage.haskell.org/package/lifted-base-0.2.3.12) | [`BSD-3-Clause`](http://hackage.haskell.org/package/lifted-base-0.2.3.12/src/LICENSE) | lifted IO operations from the base library | `enclosed-exceptions`, `lifted-async`, `monad-logger`, `purescript`, `shelly` | +| `lift-type` | [`0.1.1.1`](http://hackage.haskell.org/package/lift-type-0.1.1.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/lift-type-0.1.1.1/src/LICENSE) | Lift a type from a Typeable constraint to a Template Haskell type | `persistent` | +| `lifted-async` | [`0.10.2.3`](http://hackage.haskell.org/package/lifted-async-0.10.2.3) | [`BSD-3-Clause`](http://hackage.haskell.org/package/lifted-async-0.10.2.3/src/LICENSE) | Run lifted IO operations asynchronously and wait for their results | `purescript` | +| `lifted-base` | [`0.2.3.12`](http://hackage.haskell.org/package/lifted-base-0.2.3.12) | [`BSD-3-Clause`](http://hackage.haskell.org/package/lifted-base-0.2.3.12/src/LICENSE) | lifted IO operations from the base library | `lifted-async`, `monad-logger`, `purescript` | | `memory` | [`0.17.0`](http://hackage.haskell.org/package/memory-0.17.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/memory-0.17.0/src/LICENSE) | memory and related abstraction stuff | `asn1-types`, `cryptonite`, `cryptonite-conduit`, `http-client-tls`, `pem`, `purescript`, `securemem`, `tls`, `wai-app-static`, `x509`, `x509-validation`, `yesod-core`, `yesod-static` | | `mime-types` | [`0.1.1.0`](http://hackage.haskell.org/package/mime-types-0.1.1.0) | [`MIT`](http://hackage.haskell.org/package/mime-types-0.1.1.0/src/LICENSE) | Basic mime-type handling types and functions | `http-client`, `wai-app-static`, `yesod-static` | | `monad-loops` | [`0.4.3`](http://hackage.haskell.org/package/monad-loops-0.4.3) | [`LicenseRef-PublicDomain`](http://hackage.haskell.org/package/monad-loops-0.4.3) | Monadic loops | `monad-logger` | @@ -199,9 +196,9 @@ Bold-faced **`package-name`**s denote standard libraries bundled with `ghc-9.2.3 | `monoidal-containers` | [`0.6.3.0`](http://hackage.haskell.org/package/monoidal-containers-0.6.3.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/monoidal-containers-0.6.3.0/src/LICENSE) | Containers with monoidal accumulation | `purescript` | | `mtl-compat` | [`0.2.2`](http://hackage.haskell.org/package/mtl-compat-0.2.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/mtl-compat-0.2.2/src/LICENSE) | Backported Control.Monad.Except module from mtl | `protolude` | | `mutable-containers` | [`0.3.4.1`](http://hackage.haskell.org/package/mutable-containers-0.3.4.1) | [`MIT`](http://hackage.haskell.org/package/mutable-containers-0.3.4.1/src/LICENSE) | Abstactions and concrete implementations of mutable containers | `classy-prelude` | -| `network` | [`3.1.2.7`](http://hackage.haskell.org/package/network-3.1.2.7) | [`BSD-3-Clause`](http://hackage.haskell.org/package/network-3.1.2.7/src/LICENSE) | Low-level networking interface | `conduit-extra`, `connection`, `http-client`, `http-client-tls`, `http2`, `iproute`, `recv`, `simple-sendfile`, `socks`, `streaming-commons`, `tls`, `wai`, `wai-extra`, `wai-logger`, `warp` | +| `network` | [`3.1.2.8`](http://hackage.haskell.org/package/network-3.1.2.8) | [`BSD-3-Clause`](http://hackage.haskell.org/package/network-3.1.2.8/src/LICENSE) | Low-level networking interface | `conduit-extra`, `connection`, `http-client`, `http-client-tls`, `http2`, `iproute`, `recv`, `simple-sendfile`, `socks`, `streaming-commons`, `tls`, `wai`, `wai-extra`, `wai-logger`, `warp` | | `network-byte-order` | [`0.1.6`](http://hackage.haskell.org/package/network-byte-order-0.1.6) | [`BSD-3-Clause`](http://hackage.haskell.org/package/network-byte-order-0.1.6/src/LICENSE) | Network byte order utilities | `http2` | -| `network-uri` | [`2.6.4.1`](http://hackage.haskell.org/package/network-uri-2.6.4.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/network-uri-2.6.4.1/src/LICENSE) | URI manipulation | `http-client`, `http-client-tls`, `hxt`, `xss-sanitize`, `yesod-form` | +| `network-uri` | [`2.6.4.2`](http://hackage.haskell.org/package/network-uri-2.6.4.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/network-uri-2.6.4.2/src/LICENSE) | URI manipulation | `http-client`, `http-client-tls`, `hxt`, `xss-sanitize`, `yesod-form` | | `newtype` | [`0.2.2.0`](http://hackage.haskell.org/package/newtype-0.2.2.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/newtype-0.2.2.0/src/LICENSE) | A typeclass and set of functions for working with newtypes. | `monoidal-containers` | | `old-locale` | [`1.0.0.7`](http://hackage.haskell.org/package/old-locale-1.0.0.7) | [`BSD-3-Clause`](http://hackage.haskell.org/package/old-locale-1.0.0.7/src/LICENSE) | locale library | `data-default-instances-old-locale`, `old-time`, `wai-app-static` | | `old-time` | [`1.1.0.3`](http://hackage.haskell.org/package/old-time-1.1.0.3) | [`BSD-3-Clause`](http://hackage.haskell.org/package/old-time-1.1.0.3/src/LICENSE) | Time library | `unix-time` | @@ -210,31 +207,31 @@ Bold-faced **`package-name`**s denote standard libraries bundled with `ghc-9.2.3 | `path-pieces` | [`0.2.1`](http://hackage.haskell.org/package/path-pieces-0.2.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/path-pieces-0.2.1/src/LICENSE) | Components of paths. | `persistent`, `yesod-core` | | `pattern-arrows` | [`0.0.2`](http://hackage.haskell.org/package/pattern-arrows-0.0.2) | [`MIT`](http://hackage.haskell.org/package/pattern-arrows-0.0.2/src/LICENSE) | Arrows for Pretty Printing | `purescript` | | `pem` | [`0.2.4`](http://hackage.haskell.org/package/pem-0.2.4) | [`BSD-3-Clause`](http://hackage.haskell.org/package/pem-0.2.4/src/LICENSE) | Privacy Enhanced Mail (PEM) format reader and writer. | `x509`, `x509-store`, `x509-system`, `x509-validation` | -| `persistent` | [`2.14.3.0`](http://hackage.haskell.org/package/persistent-2.14.3.0) | [`MIT`](http://hackage.haskell.org/package/persistent-2.14.3.0/src/LICENSE) | Type-safe, multi-backend data serialization. | `classy-prelude-yesod`, `yesod-form`, `yesod-persistent` | +| `persistent` | [`2.14.5.0`](http://hackage.haskell.org/package/persistent-2.14.5.0) | [`MIT`](http://hackage.haskell.org/package/persistent-2.14.5.0/src/LICENSE) | Type-safe, multi-backend data serialization. | `classy-prelude-yesod`, `yesod-form`, `yesod-persistent` | | `persistent-template` | [`2.12.0.0`](http://hackage.haskell.org/package/persistent-template-2.12.0.0) | [`MIT`](http://hackage.haskell.org/package/persistent-template-2.12.0.0/src/LICENSE) | Type-safe, non-relational, multi-backend persistence. | `yesod-persistent` | | `pointed` | [`5.0.4`](http://hackage.haskell.org/package/pointed-5.0.4) | [`BSD-3-Clause`](http://hackage.haskell.org/package/pointed-5.0.4/src/LICENSE) | Pointed and copointed data | `vector-instances` | | **`pretty`** | [`1.1.3.6`](http://hackage.haskell.org/package/pretty-1.1.3.6) | [`BSD-3-Clause`](http://hackage.haskell.org/package/pretty-1.1.3.6/src/LICENSE) | Pretty-printing library | `Cabal`, `template-haskell` | | `primitive` | [`0.7.4.0`](http://hackage.haskell.org/package/primitive-0.7.4.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/primitive-0.7.4.0/src/LICENSE) | Primitive memory-related operations | `aeson`, `bitvec`, `cborg`, `classy-prelude`, `conduit`, `conduit-extra`, `mutable-containers`, `resource-pool`, `resourcet`, `scientific`, `serialise`, `vector`, `vector-algorithms`, `yesod-core` | -| `process` | [`1.6.13.1`](http://hackage.haskell.org/package/process-1.6.13.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/process-1.6.13.1/src/LICENSE) | Process libraries | `Cabal`, `conduit-extra`, `haskeline`, `optparse-applicative`, `purescript`, `shakespeare`, `shelly`, `sourcemap`, `streaming-commons`, `typed-process`, `unliftio`, `x509-system`, `yesod-static` | +| `process` | [`1.6.13.1`](http://hackage.haskell.org/package/process-1.6.13.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/process-1.6.13.1/src/LICENSE) | Process libraries | `Cabal`, `conduit-extra`, `haskeline`, `optparse-applicative`, `purescript`, `shakespeare`, `sourcemap`, `streaming-commons`, `typed-process`, `unliftio`, `x509-system`, `yesod-static` | | `profunctors` | [`5.6.2`](http://hackage.haskell.org/package/profunctors-5.6.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/profunctors-5.6.2/src/LICENSE) | Profunctors | `adjunctions`, `free`, `invariant`, `kan-extensions`, `lens` | -| `protolude` | [`0.3.2`](http://hackage.haskell.org/package/protolude-0.3.2) | [`MIT`](http://hackage.haskell.org/package/protolude-0.3.2/src/LICENSE) | A small prelude. | `purescript` | +| `protolude` | [`0.3.3`](http://hackage.haskell.org/package/protolude-0.3.3) | [`MIT`](http://hackage.haskell.org/package/protolude-0.3.3/src/LICENSE) | A small prelude. | `purescript` | | `psqueues` | [`0.2.7.3`](http://hackage.haskell.org/package/psqueues-0.2.7.3) | [`BSD-3-Clause`](http://hackage.haskell.org/package/psqueues-0.2.7.3/src/LICENSE) | Pure priority search queues | `http2` | | `random` | [`1.2.1.1`](http://hackage.haskell.org/package/random-1.2.1.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/random-1.2.1.1/src/LICENSE) | Pseudo-random number generation | `QuickCheck`, `edit-distance`, `http-client`, `streaming-commons`, `uuid-types`, `yesod-core` | -| `recv` | [`0.0.0`](http://hackage.haskell.org/package/recv-0.0.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/recv-0.0.0/src/LICENSE) | Efficient netowrk recv | `warp` | -| `reflection` | [`2.1.6`](http://hackage.haskell.org/package/reflection-2.1.6) | [`BSD-3-Clause`](http://hackage.haskell.org/package/reflection-2.1.6/src/LICENSE) | Reifies arbitrary terms into types that can be reflected back into terms | `lens` | +| `recv` | [`0.1.0`](http://hackage.haskell.org/package/recv-0.1.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/recv-0.1.0/src/LICENSE) | Efficient network recv | `warp` | +| `reflection` | [`2.1.7`](http://hackage.haskell.org/package/reflection-2.1.7) | [`BSD-3-Clause`](http://hackage.haskell.org/package/reflection-2.1.7/src/LICENSE) | Reifies arbitrary terms into types that can be reflected back into terms | `lens` | | `regex-base` | [`0.94.0.2`](http://hackage.haskell.org/package/regex-base-0.94.0.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/regex-base-0.94.0.2/src/LICENSE) | Common "Text.Regex.*" API for Regex matching | `regex-tdfa` | | `regex-tdfa` | [`1.3.2`](http://hackage.haskell.org/package/regex-tdfa-1.3.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/regex-tdfa-1.3.2/src/LICENSE) | Pure Haskell Tagged DFA Backend for "Text.Regex" (regex-base) | `purescript` | -| `resource-pool` | [`0.3.1.0`](http://hackage.haskell.org/package/resource-pool-0.3.1.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/resource-pool-0.3.1.0/src/LICENSE) | A high-performance striped resource pooling implementation | `persistent`, `yesod-persistent` | -| `resourcet` | [`1.2.6`](http://hackage.haskell.org/package/resourcet-1.2.6) | [`BSD-3-Clause`](http://hackage.haskell.org/package/resourcet-1.2.6/src/LICENSE) | Deterministic allocation and freeing of scarce resources. | `classy-prelude-conduit`, `conduit`, `conduit-extra`, `cryptonite-conduit`, `http-conduit`, `libyaml`, `monad-logger`, `persistent`, `wai-extra`, `xml-conduit`, `yaml`, `yesod-core`, `yesod-form`, `yesod-persistent` | +| `resource-pool` | [`0.4.0.0`](http://hackage.haskell.org/package/resource-pool-0.4.0.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/resource-pool-0.4.0.0/src/LICENSE) | A high-performance striped resource pooling implementation | `persistent`, `yesod-persistent` | +| `resourcet` | [`1.3.0`](http://hackage.haskell.org/package/resourcet-1.3.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/resourcet-1.3.0/src/LICENSE) | Deterministic allocation and freeing of scarce resources. | `classy-prelude-conduit`, `conduit`, `conduit-extra`, `cryptonite-conduit`, `http-conduit`, `libyaml`, `monad-logger`, `persistent`, `wai-extra`, `xml-conduit`, `yaml`, `yesod-core`, `yesod-form`, `yesod-persistent` | +| `safe-exceptions` | [`0.1.7.3`](http://hackage.haskell.org/package/safe-exceptions-0.1.7.3) | [`MIT`](http://hackage.haskell.org/package/safe-exceptions-0.1.7.3/src/LICENSE) | Safe, consistent, and easy exception handling | `unliftio` | | `say` | [`0.1.0.1`](http://hackage.haskell.org/package/say-0.1.0.1) | [`MIT`](http://hackage.haskell.org/package/say-0.1.0.1/src/LICENSE) | Send textual messages to a Handle in a thread-friendly way | `classy-prelude` | -| `scientific` | [`0.3.7.0`](http://hackage.haskell.org/package/scientific-0.3.7.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/scientific-0.3.7.0/src/LICENSE) | Numbers represented using scientific notation | `aeson`, `aeson-better-errors`, `aeson-pretty`, `attoparsec`, `bower-json`, `persistent`, `purescript`, `shakespeare`, `yaml` | +| `scientific` | [`0.3.7.0`](http://hackage.haskell.org/package/scientific-0.3.7.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/scientific-0.3.7.0/src/LICENSE) | Numbers represented using scientific notation | `aeson`, `aeson-better-errors`, `attoparsec`, `bower-json`, `persistent`, `purescript`, `shakespeare`, `yaml` | | `securemem` | [`0.1.10`](http://hackage.haskell.org/package/securemem-0.1.10) | [`BSD-3-Clause`](http://hackage.haskell.org/package/securemem-0.1.10/src/LICENSE) | abstraction to an auto scrubbing and const time eq, memory chunk. | `cipher-aes`, `crypto-cipher-types`, `crypto-random` | | `semialign` | [`1.2.0.1`](http://hackage.haskell.org/package/semialign-1.2.0.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/semialign-1.2.0.1/src/LICENSE) | Align and Zip type-classes from the common Semialign ancestor. | `aeson`, `monoidal-containers`, `purescript` | | `semigroupoids` | [`5.3.7`](http://hackage.haskell.org/package/semigroupoids-5.3.7) | [`BSD-2-Clause`](http://hackage.haskell.org/package/semigroupoids-5.3.7/src/LICENSE) | Semigroupoids: Category sans id | `adjunctions`, `free`, `kan-extensions`, `keys`, `lens`, `mono-traversable-instances`, `pointed`, `semialign`, `vector-instances` | | `semigroups` | [`0.20`](http://hackage.haskell.org/package/semigroups-0.20) | [`BSD-3-Clause`](http://hackage.haskell.org/package/semigroups-0.20/src/LICENSE) | Anything that associates | `adjunctions`, `chunked-data`, `dlist-instances`, `keys`, `mono-traversable-instances`, `pointed`, `purescript`, `vector-instances`, `yesod-form` | | `serialise` | [`0.2.6.0`](http://hackage.haskell.org/package/serialise-0.2.6.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/serialise-0.2.6.0/src/LICENSE.txt) | A binary serialisation library for Haskell values. | `purescript` | | `setenv` | [`0.1.1.3`](http://hackage.haskell.org/package/setenv-0.1.1.3) | [`MIT`](http://hackage.haskell.org/package/setenv-0.1.1.3/src/LICENSE) | A cross-platform library for setting environment variables | `clientsession` | -| `shelly` | [`1.10.0`](http://hackage.haskell.org/package/shelly-1.10.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/shelly-1.10.0/src/LICENSE) | shell-like (systems) programming in Haskell | `fsnotify` | | `silently` | [`1.2.5.3`](http://hackage.haskell.org/package/silently-1.2.5.3) | [`BSD-3-Clause`](http://hackage.haskell.org/package/silently-1.2.5.3/src/LICENSE) | Prevent or capture writing to stdout and other handles. | `persistent` | | `simple-sendfile` | [`0.2.30`](http://hackage.haskell.org/package/simple-sendfile-0.2.30) | [`BSD-3-Clause`](http://hackage.haskell.org/package/simple-sendfile-0.2.30/src/LICENSE) | Cross platform library for the sendfile system call | `warp` | | `skein` | [`1.0.9.4`](http://hackage.haskell.org/package/skein-1.0.9.4) | [`BSD-3-Clause`](http://hackage.haskell.org/package/skein-1.0.9.4/src/LICENSE) | Skein, a family of cryptographic hash functions. Includes Skein-MAC as well. | `clientsession` | @@ -245,29 +242,29 @@ Bold-faced **`package-name`**s denote standard libraries bundled with `ghc-9.2.3 | `stm-chans` | [`3.0.0.6`](http://hackage.haskell.org/package/stm-chans-3.0.0.6) | [`BSD-3-Clause`](http://hackage.haskell.org/package/stm-chans-3.0.0.6/src/LICENSE) | Additional types of channels for STM. | `classy-prelude`, `monad-logger` | | `strict` | [`0.4.0.1`](http://hackage.haskell.org/package/strict-0.4.0.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/strict-0.4.0.1/src/LICENSE) | Strict data types and String IO. | `aeson`, `lens`, `serialise` | | `stringsearch` | [`0.3.6.6`](http://hackage.haskell.org/package/stringsearch-0.3.6.6) | [`BSD-3-Clause`](http://hackage.haskell.org/package/stringsearch-0.3.6.6/src/LICENCE) | Fast searching, splitting and replacing of ByteStrings | `purescript` | -| `syb` | [`0.7.2.2`](http://hackage.haskell.org/package/syb-0.7.2.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/syb-0.7.2.2/src/LICENSE) | Scrap Your Boilerplate | `cheapskate`, `purescript`, `uniplate` | -| `tagged` | [`0.8.6.1`](http://hackage.haskell.org/package/tagged-0.8.6.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/tagged-0.8.6.1/src/LICENSE) | Haskell 98 phantom types to avoid unsafely passing dummy arguments | `adjunctions`, `aeson`, `assoc`, `bifunctors`, `clientsession`, `comonad`, `crypto-api`, `distributive`, `http-api-data`, `indexed-traversable-instances`, `invariant`, `kan-extensions`, `keys`, `lens`, `pointed`, `profunctors`, `semialign`, `semigroupoids`, `skein` | +| `syb` | [`0.7.2.2`](http://hackage.haskell.org/package/syb-0.7.2.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/syb-0.7.2.2/src/LICENSE) | Scrap Your Boilerplate | `cheapskate`, `uniplate` | +| `tagged` | [`0.8.7`](http://hackage.haskell.org/package/tagged-0.8.7) | [`BSD-3-Clause`](http://hackage.haskell.org/package/tagged-0.8.7/src/LICENSE) | Haskell 98 phantom types to avoid unsafely passing dummy arguments | `adjunctions`, `aeson`, `assoc`, `bifunctors`, `clientsession`, `comonad`, `crypto-api`, `distributive`, `http-api-data`, `indexed-traversable-instances`, `invariant`, `kan-extensions`, `keys`, `lens`, `pointed`, `profunctors`, `semialign`, `semigroupoids`, `skein` | | `tagsoup` | [`0.14.8`](http://hackage.haskell.org/package/tagsoup-0.14.8) | [`BSD-3-Clause`](http://hackage.haskell.org/package/tagsoup-0.14.8/src/LICENSE) | Parsing and extracting information from (possibly malformed) HTML/XML documents | `xss-sanitize` | | **`terminfo`** | [`0.4.1.5`](http://hackage.haskell.org/package/terminfo-0.4.1.5) | [`BSD-3-Clause`](http://hackage.haskell.org/package/terminfo-0.4.1.5/src/LICENSE) | Haskell bindings to the terminfo library. | `haskeline` | | `text-short` | [`0.1.5`](http://hackage.haskell.org/package/text-short-0.1.5) | [`BSD-3-Clause`](http://hackage.haskell.org/package/text-short-0.1.5/src/LICENSE) | Memory-efficient representation of Unicode text strings | `aeson` | | `th-abstraction` | [`0.4.5.0`](http://hackage.haskell.org/package/th-abstraction-0.4.5.0) | [`ISC`](http://hackage.haskell.org/package/th-abstraction-0.4.5.0/src/LICENSE) | Nicer interface for reified information about data types | `aeson`, `bifunctors`, `free`, `invariant`, `lens`, `th-lift` | | `th-compat` | [`0.1.4`](http://hackage.haskell.org/package/th-compat-0.1.4) | [`BSD-3-Clause`](http://hackage.haskell.org/package/th-compat-0.1.4/src/LICENSE) | Backward- (and forward-)compatible Quote and Code types | `network-uri` | -| `th-lift` | [`0.8.2`](http://hackage.haskell.org/package/th-lift-0.8.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/th-lift-0.8.2/src/COPYING) | Derive Template Haskell's Lift class for datatypes. | `shakespeare`, `th-lift-instances` | +| `th-lift` | [`0.8.3`](http://hackage.haskell.org/package/th-lift-0.8.3) | [`BSD-3-Clause`](http://hackage.haskell.org/package/th-lift-0.8.3/src/COPYING) | Derive Template Haskell's Lift class for datatypes. | `shakespeare`, `th-lift-instances` | | `th-lift-instances` | [`0.1.20`](http://hackage.haskell.org/package/th-lift-instances-0.1.20) | [`BSD-3-Clause`](http://hackage.haskell.org/package/th-lift-instances-0.1.20/src/LICENSE) | Lift instances for template-haskell for common data types. | `persistent` | | `these` | [`1.1.1.1`](http://hackage.haskell.org/package/these-1.1.1.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/these-1.1.1.1/src/LICENSE) | An either-or-both data type. | `aeson`, `lens`, `monoidal-containers`, `purescript`, `semialign`, `serialise`, `strict` | | `time-compat` | [`1.9.6.1`](http://hackage.haskell.org/package/time-compat-1.9.6.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/time-compat-1.9.6.1/src/LICENSE) | Compatibility package for time | `aeson`, `attoparsec-iso8601`, `http-api-data` | | `time-manager` | [`0.0.0`](http://hackage.haskell.org/package/time-manager-0.0.0) | [`MIT`](http://hackage.haskell.org/package/time-manager-0.0.0/src/LICENSE) | Scalable timer | `http2`, `warp` | | `tls` | [`1.6.0`](http://hackage.haskell.org/package/tls-1.6.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/tls-1.6.0/src/LICENSE) | TLS/SSL protocol native implementation (Server and Client) | `connection`, `http-client-tls` | -| `transformers-base` | [`0.4.6`](http://hackage.haskell.org/package/transformers-base-0.4.6) | [`BSD-3-Clause`](http://hackage.haskell.org/package/transformers-base-0.4.6/src/LICENSE) | Lift computations from the bottom of a transformer stack | `enclosed-exceptions`, `free`, `lifted-async`, `lifted-base`, `monad-control`, `monad-logger`, `purescript`, `shelly` | -| `transformers-compat` | [`0.7.2`](http://hackage.haskell.org/package/transformers-compat-0.7.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/transformers-compat-0.7.2/src/LICENSE) | A small compatibility shim for the transformers library | `Glob`, `adjunctions`, `aeson-better-errors`, `comonad`, `constraints`, `invariant`, `kan-extensions`, `keys`, `lens`, `monad-control`, `monad-logger`, `optparse-applicative`, `pointed`, `protolude`, `purescript`, `semigroupoids`, `transformers-base` | +| `transformers-base` | [`0.4.6`](http://hackage.haskell.org/package/transformers-base-0.4.6) | [`BSD-3-Clause`](http://hackage.haskell.org/package/transformers-base-0.4.6/src/LICENSE) | Lift computations from the bottom of a transformer stack | `free`, `lifted-async`, `lifted-base`, `monad-control`, `monad-logger`, `purescript` | +| `transformers-compat` | [`0.7.2`](http://hackage.haskell.org/package/transformers-compat-0.7.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/transformers-compat-0.7.2/src/LICENSE) | A small compatibility shim for the transformers library | `Glob`, `adjunctions`, `aeson-better-errors`, `comonad`, `constraints`, `invariant`, `kan-extensions`, `keys`, `lens`, `monad-control`, `monad-logger`, `optparse-applicative`, `pointed`, `protolude`, `semigroupoids`, `transformers-base` | | `type-equality` | [`1`](http://hackage.haskell.org/package/type-equality-1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/type-equality-1/src/LICENSE) | Data.Type.Equality compat package | `constraints` | -| `typed-process` | [`0.2.10.1`](http://hackage.haskell.org/package/typed-process-0.2.10.1) | [`MIT`](http://hackage.haskell.org/package/typed-process-0.2.10.1/src/LICENSE) | Run external processes, with strong typing of streams | `conduit-extra`, `purescript` | +| `typed-process` | [`0.2.11.0`](http://hackage.haskell.org/package/typed-process-0.2.11.0) | [`MIT`](http://hackage.haskell.org/package/typed-process-0.2.11.0/src/LICENSE) | Run external processes, with strong typing of streams | `conduit-extra` | | `uniplate` | [`1.6.13`](http://hackage.haskell.org/package/uniplate-1.6.13) | [`BSD-3-Clause`](http://hackage.haskell.org/package/uniplate-1.6.13/src/LICENSE) | Help writing simple, concise and fast generic operations. | `cheapskate` | -| **`unix`** | [`2.7.2.2`](http://hackage.haskell.org/package/unix-2.7.2.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/unix-2.7.2.2/src/LICENSE) | POSIX functionality | `Cabal`, `base-compat`, `conduit`, `crypto-random`, `directory`, `easy-file`, `entropy`, `fsnotify`, `haskeline`, `hinotify`, `process`, `setenv`, `simple-sendfile`, `streaming-commons`, `unix-compat`, `unliftio`, `wai-extra`, `warp`, `yesod` | -| `unix-compat` | [`0.6`](http://hackage.haskell.org/package/unix-compat-0.6) | [`BSD-3-Clause`](http://hackage.haskell.org/package/unix-compat-0.6/src/LICENSE) | Portable POSIX-compatibility layer. | `fast-logger`, `fsnotify`, `shelly`, `wai-app-static`, `warp`, `yesod-core`, `yesod-static` | +| **`unix`** | [`2.7.2.2`](http://hackage.haskell.org/package/unix-2.7.2.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/unix-2.7.2.2/src/LICENSE) | POSIX functionality | `Cabal`, `base-compat`, `conduit`, `crypto-random`, `directory`, `easy-file`, `entropy`, `haskeline`, `process`, `setenv`, `simple-sendfile`, `streaming-commons`, `unix-compat`, `unliftio`, `wai-extra`, `warp`, `yesod` | +| `unix-compat` | [`0.6`](http://hackage.haskell.org/package/unix-compat-0.6) | [`BSD-3-Clause`](http://hackage.haskell.org/package/unix-compat-0.6/src/LICENSE) | Portable POSIX-compatibility layer. | `fast-logger`, `wai-app-static`, `warp`, `yesod-core`, `yesod-static` | | `unix-time` | [`0.4.8`](http://hackage.haskell.org/package/unix-time-0.4.8) | [`BSD-3-Clause`](http://hackage.haskell.org/package/unix-time-0.4.8/src/LICENSE) | Unix time parser/formatter and utilities | `fast-logger`, `http2` | -| `unliftio` | [`0.2.22.0`](http://hackage.haskell.org/package/unliftio-0.2.22.0) | [`MIT`](http://hackage.haskell.org/package/unliftio-0.2.22.0/src/LICENSE) | The MonadUnliftIO typeclass for unlifting monads to IO (batteries included) | `classy-prelude`, `persistent`, `warp`, `yesod-core` | -| `unliftio-core` | [`0.2.0.1`](http://hackage.haskell.org/package/unliftio-core-0.2.0.1) | [`MIT`](http://hackage.haskell.org/package/unliftio-core-0.2.0.1/src/LICENSE) | The MonadUnliftIO typeclass for unlifting monads to IO | `conduit`, `conduit-extra`, `http-conduit`, `monad-logger`, `persistent`, `resourcet`, `typed-process`, `unliftio` | +| `unliftio` | [`0.2.24.0`](http://hackage.haskell.org/package/unliftio-0.2.24.0) | [`MIT`](http://hackage.haskell.org/package/unliftio-0.2.24.0/src/LICENSE) | The MonadUnliftIO typeclass for unlifting monads to IO (batteries included) | `classy-prelude`, `http2`, `persistent`, `warp`, `yesod-core` | +| `unliftio-core` | [`0.2.1.0`](http://hackage.haskell.org/package/unliftio-core-0.2.1.0) | [`MIT`](http://hackage.haskell.org/package/unliftio-core-0.2.1.0/src/LICENSE) | The MonadUnliftIO typeclass for unlifting monads to IO | `conduit`, `conduit-extra`, `http-conduit`, `monad-logger`, `persistent`, `resourcet`, `typed-process`, `unliftio` | | `utf8-string` | [`1.0.2`](http://hackage.haskell.org/package/utf8-string-1.0.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/utf8-string-1.0.2/src/LICENSE) | Support for reading and writing UTF8 Strings | `language-javascript`, `purescript`, `sourcemap`, `xss-sanitize` | | `uuid-types` | [`1.0.5`](http://hackage.haskell.org/package/uuid-types-1.0.5) | [`BSD-3-Clause`](http://hackage.haskell.org/package/uuid-types-1.0.5/src/LICENSE) | Type definitions for Universally Unique Identifiers | `aeson`, `http-api-data` | | `vault` | [`0.3.1.5`](http://hackage.haskell.org/package/vault-0.3.1.5) | [`BSD-3-Clause`](http://hackage.haskell.org/package/vault-0.3.1.5/src/LICENSE) | a persistent store for values of arbitrary types | `persistent`, `wai`, `wai-extra`, `warp` | diff --git a/pursuit.cabal b/pursuit.cabal index eae8bc9..5c88cfe 100644 --- a/pursuit.cabal +++ b/pursuit.cabal @@ -102,7 +102,7 @@ library , containers , vector , time - , purescript ==0.15.6 + , purescript ==0.15.8 , bower-json , blaze-builder , blaze-markup diff --git a/stack.yaml b/stack.yaml index 544dee7..51f4f78 100644 --- a/stack.yaml +++ b/stack.yaml @@ -1,4 +1,4 @@ -resolver: nightly-2022-06-09 +resolver: lts-20.9 # Resolves hjsmin requiring language-javascript ==0.6, while the purescript # compiler requires language-javascript ==0.7. allow-newer: true @@ -12,7 +12,7 @@ extra-deps: - bytestring-trie-0.2.7@sha256:f78e9d1dba699ce56080824693787918e9e8904db99d04d3470941420b1dd3ed,9010 - classy-prelude-yesod-1.5.0 - language-javascript-0.7.0.0 - - purescript-0.15.6 + - purescript-0.15.8 - monoidal-containers-0.6.2.0 - protolude-0.3.1 - process-1.6.13.1 diff --git a/stack.yaml.lock b/stack.yaml.lock index de97319..35c133b 100644 --- a/stack.yaml.lock +++ b/stack.yaml.lock @@ -5,75 +5,75 @@ packages: - completed: - name: barrier - version: 0.1.1 + commit: db5e27c8ff8f98b2ea18036ce20f853a92aec595 git: https://github.com/PureFunctor/barrier.git + name: barrier pantry-tree: - size: 1892 sha256: b7d15fa12674068618745c2cbdaa6d0fa256206d0904d4e8964606ee7fd57676 - commit: db5e27c8ff8f98b2ea18036ce20f853a92aec595 + size: 1892 + version: 0.1.1 original: - git: https://github.com/PureFunctor/barrier.git commit: db5e27c8ff8f98b2ea18036ce20f853a92aec595 + git: https://github.com/PureFunctor/barrier.git - completed: hackage: bytestring-trie-0.2.7@sha256:f78e9d1dba699ce56080824693787918e9e8904db99d04d3470941420b1dd3ed,9010 pantry-tree: - size: 1221 sha256: b1f438713b95d8e1e95af11c5d747d1fa9b647c2f55be817ff91e4bd4d69ca00 + size: 1221 original: hackage: bytestring-trie-0.2.7@sha256:f78e9d1dba699ce56080824693787918e9e8904db99d04d3470941420b1dd3ed,9010 - completed: hackage: classy-prelude-yesod-1.5.0@sha256:8f7e183bdfd6d2ea9674284c4f285294ab086aff60d9be4e5d7d2f3c1a2b05b7,1330 pantry-tree: - size: 330 sha256: ae84d4cc0e1daf985db6cdcf2ac92319531b8e60f547183cc46480d00aafbe20 + size: 330 original: hackage: classy-prelude-yesod-1.5.0 - completed: hackage: language-javascript-0.7.0.0@sha256:3eab0262b8ac5621936a4beab6a0f97d0e00a63455a8b0e3ac1547b4088dae7d,3898 pantry-tree: - size: 2244 sha256: b0f28d836cb3fbde203fd7318a896c3a20acd8653a905e1950ae2d9a64bccebf + size: 2244 original: hackage: language-javascript-0.7.0.0 - completed: - hackage: purescript-0.15.6@sha256:d06964345d46009b0a2d5f610f9e0394912da682f508458e7c059a4d6b0299c1,20800 + hackage: purescript-0.15.8@sha256:5d7c19e5a49f83acbe8ecc43bf93feb0e075bb11992df9b83af4467aea0bf41d,21427 pantry-tree: - size: 153963 - sha256: 8a43be3726b172e8cfeebfb05462f17eeb3af932576c5e48cf366c0751f1fdf8 + sha256: 79dde609e3b525e30234fd76b0901f72d48dea47a879d547864d959f85b81760 + size: 156457 original: - hackage: purescript-0.15.6 + hackage: purescript-0.15.8 - completed: hackage: monoidal-containers-0.6.2.0@sha256:97289baf716f22fdae04b4fcbee066453d2f4c630ef3f631aeeab61ee713841e,2309 pantry-tree: - size: 569 sha256: 55c0b7f60f8350546d437c9c0ad52c1dba35cac727972e7dc0f12201870df62f + size: 569 original: hackage: monoidal-containers-0.6.2.0 - completed: hackage: protolude-0.3.1@sha256:1cc9e5a5c26c33a43c52b554443dd9779fef13974eaa0beec7ca6d2551b400da,2647 pantry-tree: - size: 1645 sha256: 6452a6ca8d395f7d810139779bb0fd16fc1dbb00f1862630bc08ef5a100430f9 + size: 1645 original: hackage: protolude-0.3.1 - completed: hackage: process-1.6.13.1@sha256:c8bb8b7c993ff72d771381b3b56852dd154bce51880a24789c11f57b0688d353,2963 pantry-tree: - size: 1543 sha256: 58117b15fa330c79b3bca6b29c65f815e45840f79cc0915d3434f25e54ac8fa5 + size: 1543 original: hackage: process-1.6.13.1 - completed: hackage: Cabal-3.6.3.0@sha256:ff97c442b0c679c1c9876acd15f73ac4f602b973c45bde42b43ec28265ee48f4,12459 pantry-tree: - size: 19757 sha256: b250a53bdb56844f047a2927833bb565b936a289abfa85dfc2a63148d776368a + size: 19757 original: hackage: Cabal-3.6.3.0 snapshots: - completed: - size: 607265 - url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/nightly/2022/6/9.yaml - sha256: 819ac07621dac5b2c320c45cb8c27f141f95114a1749b19b06d2c3606c79e839 - original: nightly-2022-06-09 + sha256: c11fcbeb1aa12761044755b1109d16952ede2cb6147ebde777dd5cb38f784501 + size: 649333 + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/20/9.yaml + original: lts-20.9 diff --git a/static/help-docs/authors.md b/static/help-docs/authors.md index 451d588..1e8e869 100644 --- a/static/help-docs/authors.md +++ b/static/help-docs/authors.md @@ -1,86 +1,6 @@ ## How to submit packages -Packages can only be uploaded to Pursuit if the following conditions are true: -- The repository is not a mono-repo. -- Your project must be registred in the [`purescript/registry` repo's `new-packages.json` file](https://github.com/purescript/registry/blob/master/new-packages.json). If it's not yet there, then submit a PR adding it. -- `bower install` exits successfully without any conflicts. -- `pulp build` (and if applicable `pulp test`) exits successfully without any conflicts. -- A tag points to the same commit that is currently checked out (whether by a checked out commit, branch, or tag) -- The `git` working directory is clean. - -`bower` often causes problems in publishing, and this is something that will be fixed once the PureScript Registry is started. Until then, keep the following in mind: -- In your package's root directory, always start from a clean bower state by running `rm -rf bower_components/ && bower cache clean` -- If a dependency is **not** in the Bower registry (e.g. `bower info purescript-package-name` returns `ENOTFOUND`), it can be installed using the long form. For example: - - Schema: `bower install --save =#` - - Example: `bower install --save purescript-js-uri=https://github.com/purescript-contrib/purescript-js-uri.git#^1.0.0` -- If you run `bower install` and the command encounters a version conflict and asks which one to use for a given dependency, then your package cannot be published to Pursuit. There are two possible reasons for this: - - one or more of your `bower.json` file's `dependencies` or `devDependencies` (if used) needs to be updated - - Try running the following: - - ``` - # installs `ncu` globally - npm i -g npm-check-updates - # get list of outdated packages - ncu -p bower - # update versions to latest ones automatically - ncu -u -p bower - ``` - - - one or more of your dependencies (e.g. `bar`) did not update their `bower.json` file's `dependencies` field to refer to the new version of their dependency (e.g. `baz`) before publishing it (e.g. `bar`). As a result, your direct dependency, `foo@2.0.0`, may depend on `baz@2.0.0` while your other direct dependency `bar@2.0.0` still depends on `baz@1.0.0`. Bower will complain when it isn't sure whether to use `baz@1.0.0` or `baz@2.0.0`. - - Try contacting the author of the package and ask them to update their `bower.json` file correctly and publish a new release. - -1. Put the code up on GitHub. (Currently, GitHub is the only supported hosting method. If you'd rather host your code somewhere else, please open an issue and let us know). - -2. Verify that `bower install`, `pulp build`, and (if applicable) `pulp test` exit successfully. - -3. (Optional, highly recommended) Check that the documentation looks sensible locally before publishing by running `pulp docs -- --format html`. - -4. Create a git tag for the version you're releasing, if you haven't already. It is recommended to use `pulp version` to do this for you, as doing it this way will also check your package for common errors. - -5. Authenticate to GitHub by running `pulp login`. (This is necessary in order for us to be able to tell who uploaded which packages). - -6. Change to your project directory and run `pulp publish`. This will the push commits and the relevant tag to your "origin" Git remote, and then generate your documentation and upload it to Pursuit. - - `pulp publish` also accepts a `--no-push` flag which skips the Bower registration check as well as pushing commits (this is useful for uploading other people's packages, if you ever need to do this). There is also a `--push-to` option which allows you to specify a different Git remote to push tags and commits to. - - **Note: If `pulp publish` fails with a `400` error, try running it a second time.** Usually, your project's documentation will be successfully published on the second run. For example: - - ``` - # tag gets pushed in first run, so we don't need it in the second run - yes | pulp publish - yes | pulp publish --no-push - ``` - - -Your package, together with documentation, should now appear in Pursuit. - -## Submitting packages from a script - -You can also use Pulp to submit packages from a script. Pulp prompts for confirmation when you run `pulp publish`, so you will need to use a program like `yes` to answer affirmatively. - -For example, if you want to automatically upload documentation from your Travis CI build on tags, you should add the following to your `after_script` build step: - -`test -n "$TRAVIS_TAG" && ( yes | pulp publish --no-push )` - -Alternatively, if you don't want to use Pulp for whatever reason, you can upload packages using Pursuit's HTTP API directly: - -- Gzip the JSON output produced by `psc-publish` and save it to a file. -- If you don't already have one, get a GitHub API token by visiting . No scopes are required, since the token is only used for authentication. -- Make a POST request to https://pursuit.purescript.org/packages, with gzipped JSON as the request body, including a `Content-Encoding: gzip` header, and with your GitHub token in the Authorization header, like this: `Authorization: token {token}`. - -For example, using curl: - -``` -curl -X POST \ - https://pursuit.purescript.org/packages \ - --data-binary @pursuit.json.gz \ - -H 'Content-Encoding: gzip' \ - -H 'Accept: application/json' \ - -H "Authorization: token $(cat my-oauth-token.txt)" \ - -v -``` - -If your submission is successful, Pursuit will return a 201 Created response, and the URL for your newly uploaded package will be in the Location header. +Previously, users would need to use `bower` to upload packages' documentation. Uploading documentation is now handled by the PureScript Registry (still in alpha at the time of this writing). See the [PureScript Registry repo](https://github.com/purescript/registry) for how to register and publish packages and their documentation. For more context, read the Discourse announcement, [Registry Alpha Launched](https://discourse.purescript.org/t/registry-alpha-launched/3146). ## How to mark package as deprecated