diff --git a/src/protolude/.ghci b/src/protolude/.ghci new file mode 100644 index 000000000..da0cc8edc --- /dev/null +++ b/src/protolude/.ghci @@ -0,0 +1,4 @@ +:set -XNoImplicitPrelude +:set -XOverloadedStrings +:set -isrc +:load Protolude diff --git a/src/protolude/.github/workflows/cabal.yml b/src/protolude/.github/workflows/cabal.yml new file mode 100644 index 000000000..0015f71c3 --- /dev/null +++ b/src/protolude/.github/workflows/cabal.yml @@ -0,0 +1,38 @@ +name: Cabal CI +on: + pull_request: + types: + - opened + - synchronize +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + ghc: ['9.12.1', '9.10.1', '9.8.2', '9.6.5', '9.4.4', '9.2.6', '9.0.2', '8.10.7', '8.8.4', '8.6.5', '8.4.4', '8.2.2', '8.0.2'] + cabal: ['latest', 3.2] + fail-fast: false + env: + CONFIG: "--enable-tests --enable-benchmarks" + steps: + - uses: actions/checkout@v2 + # https://github.com/haskell/actions/tree/main/setup + - uses: haskell/actions/setup@v2 + id: setup-haskell-cabal + with: + ghc-version: ${{ matrix.ghc }} + cabal-version: ${{ matrix.cabal }} + - run: cabal v2-update + - run: cabal v2-freeze $CONFIG + - uses: actions/cache@v2 + with: + path: | + ${{ steps.setup-haskell-cabal.outputs.cabal-store }} + dist-newstyle + key: ${{ runner.os }}-${{ matrix.ghc }}-${{ hashFiles('cabal.project.freeze') }} + restore-keys: | + ${{ runner.os }}-${{ matrix.ghc }}- + - run: cabal v2-build $CONFIG + - run: cabal v2-test $CONFIG + - run: cabal v2-haddock $CONFIG + - run: cabal v2-sdist diff --git a/src/protolude/.github/workflows/haskell-ci.yml b/src/protolude/.github/workflows/haskell-ci.yml new file mode 100644 index 000000000..10ee51dc9 --- /dev/null +++ b/src/protolude/.github/workflows/haskell-ci.yml @@ -0,0 +1,168 @@ +# This GitHub workflow config has been generated by a script via +# +# haskell-ci 'github' 'protolude.cabal' +# +# To regenerate the script (for example after adjusting tested-with) run +# +# haskell-ci regenerate +# +# For more information, see https://github.com/haskell-CI/haskell-ci +# +# version: 0.12.1 +# +# REGENDATA ("0.12.1",["github","protolude.cabal"]) +# +name: Haskell-CI +on: + - pull_request +jobs: + linux: + name: Haskell-CI - Linux - ${{ matrix.compiler }} + runs-on: ubuntu-18.04 + container: + image: buildpack-deps:bionic + continue-on-error: ${{ matrix.allow-failure }} + strategy: + matrix: + include: + - compiler: ghc-7.6.3 + allow-failure: false + - compiler: ghc-7.8.4 + allow-failure: false + - compiler: ghc-7.10.3 + allow-failure: false + fail-fast: false + steps: + - name: apt + run: | + apt-get update + apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common + apt-add-repository -y 'ppa:hvr/ghc' + apt-get update + apt-get install -y $CC cabal-install-3.4 + env: + CC: ${{ matrix.compiler }} + - name: Set PATH and environment variables + run: | + echo "$HOME/.cabal/bin" >> $GITHUB_PATH + echo "LANG=C.UTF-8" >> $GITHUB_ENV + echo "CABAL_DIR=$HOME/.cabal" >> $GITHUB_ENV + echo "CABAL_CONFIG=$HOME/.cabal/config" >> $GITHUB_ENV + HCDIR=$(echo "/opt/$CC" | sed 's/-/\//') + HCNAME=ghc + HC=$HCDIR/bin/$HCNAME + echo "HC=$HC" >> $GITHUB_ENV + echo "HCPKG=$HCDIR/bin/$HCNAME-pkg" >> $GITHUB_ENV + echo "HADDOCK=$HCDIR/bin/haddock" >> $GITHUB_ENV + echo "CABAL=/opt/cabal/3.4/bin/cabal -vnormal+nowrap" >> $GITHUB_ENV + HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))') + echo "HCNUMVER=$HCNUMVER" >> $GITHUB_ENV + echo "ARG_TESTS=--enable-tests" >> $GITHUB_ENV + echo "ARG_BENCH=--enable-benchmarks" >> $GITHUB_ENV + echo "HEADHACKAGE=false" >> $GITHUB_ENV + echo "ARG_COMPILER=--$HCNAME --with-compiler=$HC" >> $GITHUB_ENV + echo "GHCJSARITH=0" >> $GITHUB_ENV + env: + CC: ${{ matrix.compiler }} + - name: env + run: | + env + - name: write cabal config + run: | + mkdir -p $CABAL_DIR + cat >> $CABAL_CONFIG < cabal-plan.xz + echo 'de73600b1836d3f55e32d80385acc055fd97f60eaa0ab68a755302685f5d81bc cabal-plan.xz' | sha256sum -c - + xz -d < cabal-plan.xz > $HOME/.cabal/bin/cabal-plan + rm -f cabal-plan.xz + chmod a+x $HOME/.cabal/bin/cabal-plan + cabal-plan --version + - name: checkout + uses: actions/checkout@v2 + with: + path: source + - name: initial cabal.project for sdist + run: | + touch cabal.project + echo "packages: $GITHUB_WORKSPACE/source/." >> cabal.project + cat cabal.project + - name: sdist + run: | + mkdir -p sdist + $CABAL sdist all --output-dir $GITHUB_WORKSPACE/sdist + - name: unpack + run: | + mkdir -p unpacked + find sdist -maxdepth 1 -type f -name '*.tar.gz' -exec tar -C $GITHUB_WORKSPACE/unpacked -xzvf {} \; + - name: generate cabal.project + run: | + PKGDIR_protolude="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/protolude-[0-9.]*')" + echo "PKGDIR_protolude=${PKGDIR_protolude}" >> $GITHUB_ENV + touch cabal.project + touch cabal.project.local + echo "packages: ${PKGDIR_protolude}" >> cabal.project + if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package protolude" >> cabal.project ; fi + if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi + cat >> cabal.project <> cabal.project.local + cat cabal.project + cat cabal.project.local + - name: dump install plan + run: | + $CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all + cabal-plan + - name: cache + uses: actions/cache@v2 + with: + key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }} + path: ~/.cabal/store + restore-keys: ${{ runner.os }}-${{ matrix.compiler }}- + - name: install dependencies + run: | + $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --dependencies-only -j2 all + $CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dependencies-only -j2 all + - name: build w/o tests + run: | + $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all + - name: build + run: | + $CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH all --write-ghc-environment-files=always + - name: cabal check + run: | + cd ${PKGDIR_protolude} || false + ${CABAL} -vnormal check + - name: haddock + run: | + $CABAL v2-haddock $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all + - name: unconstrained build + run: | + rm -f cabal.project.local + $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all diff --git a/src/protolude/.github/workflows/hlint.yml b/src/protolude/.github/workflows/hlint.yml new file mode 100644 index 000000000..eb6549d65 --- /dev/null +++ b/src/protolude/.github/workflows/hlint.yml @@ -0,0 +1,31 @@ +name: HLint CI + +on: + push: + branches: + - master + pull_request: + branches: [ master ] + paths: + - '.github/workflows/hlint.yml' + - 'app/**/*.hs' + - 'src/**/*.hs' + - 'test/**/*.hs' +jobs: + hlint: + runs-on: ubuntu-latest + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + HLINT_ACTION_LOG_LEVEL: debug + steps: + - name: Check out + uses: actions/checkout@v2 + + - name: Set up HLint + uses: rwe/actions-hlint-setup@v1 + + - name: Haskell Lint + uses: rwe/actions-hlint-run@v2 + with: + path: '["src/"]' + fail-on: warning diff --git a/src/protolude/.github/workflows/nix.yml b/src/protolude/.github/workflows/nix.yml new file mode 100644 index 000000000..b753def1c --- /dev/null +++ b/src/protolude/.github/workflows/nix.yml @@ -0,0 +1,13 @@ +name: Nix CI + +on: [pull_request] +jobs: + build: + name: nix + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: cachix/install-nix-action@v3 + env: + ACTIONS_ALLOW_UNSECURE_COMMANDS: true + - run: nix-build diff --git a/src/protolude/.github/workflows/stack.yml b/src/protolude/.github/workflows/stack.yml new file mode 100644 index 000000000..26780aea7 --- /dev/null +++ b/src/protolude/.github/workflows/stack.yml @@ -0,0 +1,118 @@ +name: Stack CI + +on: + pull_request: + schedule: + - cron: "0 0 * * 1" + +jobs: + build: + name: stack ${{ matrix.plan.resolver }} + strategy: + matrix: + os: [ubuntu-latest, macOS-latest] + # use this to specify what resolvers and ghc to use + plan: + - { build: stack, resolver: "lts-9" } # ghc-8.0.2 + - { build: stack, resolver: "lts-10" } # ghc-8.2.2 + - { build: stack, resolver: "lts-11" } # ghc-8.2.2 + - { build: stack, resolver: "lts-12" } # ghc-8.4.4 + - { build: stack, resolver: "lts-13" } # ghc-8.6.4 + - { build: stack, resolver: "lts-14" } # ghc-8.6.5 + - { build: stack, resolver: "lts-15" } # ghc-8.8.2 + - { build: stack, resolver: "lts-16" } # ghc-8.8.4 + - { build: stack, resolver: "lts-17" } # ghc-8.10.3 + - { build: stack, resolver: "lts-18" } # ghc-8.10.7 + - { build: stack, resolver: "lts-19" } # ghc-9.0.2 + - { build: stack, resolver: "lts-20" } # ghc-9.2.5 + + # - { build: stack, resolver: "" } + # use this to include any dependencies from OS package managers + include: [] + # - os: macOS-latest + # brew: anybrewdeps + # - os: ubuntu-latest + # apt-get: happy libblas-dev liblapack-dev + + exclude: + - os: macOS-latest + plan: + build: cabal + + runs-on: ${{ matrix.os }} + steps: + - name: Install OS Packages + uses: mstksg/get-package@v1 + with: + apt-get: ${{ matrix.apt-get }} + brew: ${{ matrix.brew }} + - uses: actions/checkout@v1 + + - name: Setup stack + uses: mstksg/setup-stack@v1 + env: + ACTIONS_ALLOW_UNSECURE_COMMANDS: true + + - name: Setup cabal-install + uses: actions/setup-haskell@v1 + with: + ghc-version: ${{ matrix.plan.ghc }} + cabal-version: ${{ matrix.plan.cabal-install }} + if: matrix.plan.build == 'cabal' + + - name: Install dependencies + run: | + set -ex + case "$BUILD" in + stack) + stack --no-terminal --install-ghc --resolver $ARGS test --bench --only-dependencies + ;; + cabal) + cabal --version + cabal update + PACKAGES=$(stack --install-ghc query locals | grep '^ *path' | sed 's@^ *path:@@') + cabal install --only-dependencies --enable-tests --enable-benchmarks --force-reinstalls --ghc-options=-O0 --reorder-goals --max-backjumps=-1 $CABALARGS $PACKAGES + ;; + esac + set +ex + env: + ARGS: ${{ matrix.plan.resolver }} + BUILD: ${{ matrix.plan.build }} + + - name: Build + run: | + set -ex + case "$BUILD" in + stack) + stack --no-terminal --resolver $ARGS test --bench --no-run-benchmarks --haddock --no-haddock-deps + ;; + cabal) + PACKAGES=$(stack --install-ghc query locals | grep '^ *path' | sed 's@^ *path:@@') + cabal install --enable-tests --enable-benchmarks --force-reinstalls --ghc-options=-O0 --reorder-goals --max-backjumps=-1 $CABALARGS $PACKAGES + + ORIGDIR=$(pwd) + for dir in $PACKAGES + do + cd $dir + cabal check || [ "$CABALVER" == "1.16" ] + cabal sdist + PKGVER=$(cabal info . | awk '{print $2;exit}') + SRC_TGZ=$PKGVER.tar.gz + cd dist + tar zxfv "$SRC_TGZ" + cd "$PKGVER" + cabal configure --enable-tests --ghc-options -O0 + cabal build + if [ "$CABALVER" = "1.16" ] || [ "$CABALVER" = "1.18" ]; then + cabal test + else + cabal test --show-details=streaming --log=/dev/stdout + fi + cd $ORIGDIR + done + ;; + esac + set +ex + env: + ARGS: ${{ matrix.plan.resolver }} + BUILD: ${{ matrix.plan.build }} diff --git a/src/protolude/.gitignore b/src/protolude/.gitignore new file mode 100644 index 000000000..e4d8f5758 --- /dev/null +++ b/src/protolude/.gitignore @@ -0,0 +1,9 @@ +*.sw[ponmkl] +.stack-work +dist +.cabal-sandbox +cabal.sandbox.config +*.hi +*.o +stack.yaml.lock +dist-newstyle diff --git a/src/protolude/.hlint.yaml b/src/protolude/.hlint.yaml new file mode 100644 index 000000000..2e151fd28 --- /dev/null +++ b/src/protolude/.hlint.yaml @@ -0,0 +1,13 @@ +- ignore: {name: Avoid lambda} +- ignore: {name: Eta reduce} +- ignore: {name: Redundant lambda} +- ignore: {name: Collapse lambdas} +- ignore: {name: Use String} +- ignore: {name: Use fmap, within: Protolude.Monad} +- ignore: {name: Use putStr, within: Protolude.Show} +- ignore: {name: Use putStrLn, within: Protolude.Show} +- ignore: {name: Use bimap, within: Protolude.Bifunctor} +- ignore: {name: Use first, within: Protolude.Bifunctor} +- ignore: {name: Use sortOn} +# CPP preprocessor oddities +- ignore: {name: Unused LANGUAGE pragma, within: [Protolude.Base, Protolude.CallStack, Protolude.Conv, Protolude.Error]} diff --git a/src/protolude/ChangeLog.md b/src/protolude/ChangeLog.md new file mode 100644 index 000000000..51e3ae011 --- /dev/null +++ b/src/protolude/ChangeLog.md @@ -0,0 +1,143 @@ +0.3.3 +===== +* GHC 9.4.4 support + +0.3.2 +===== +* GHC 9.2.2 support +* Drop export executable + +0.3.1 +===== +* GHC 9.0.1 and 9.2.1 support +* Add `HasCallStack` to unsafe* functions. +* Banish `String` on `readMaybe` and `readEither`. + +0.3.0 +===== + +* GHC 8.10.1 support +* Use `Protolude.ConvertText` as the default string conversion class. This + removes partial functions when converting to/from ByteStrings. +* Provide `Protolude.Conv` as a compatibility layer for old string conversion + interface. +* Migrated `Debug` and `Unsafe` to `Protolude.Debug` and `Protolude.Unsafe`. +* Export Unicode functions: + - `intToDigit` + - `isAlpha` + - `isAlphaNum` + - `isAscii` + - `isControl` + - `isDigit` + - `isHexDigit` + - `isLetter` + - `isLower` + - `isPrint` + - `isSpace` + - `isUpper` +* Export `MonadFail` class. +* Export `gcast` from Data.Typeable. +* Export `typeOf` from Data.Typeable. +* Export `Handler` from Control.Exception. +* Export `yield` from Control.Concurrency. +* Provide compatibility module `Protolude.Partial` as single export for unsafe + partial functions with the same naming conventions as Prelude. + +0.2.4 +===== + +* GHC 8.8.1 support + +0.2.3 +===== + +* GHC 8.6.1 support +* Export `fromLeft` and `fromRight`. +* Mask `always` and `alwaysSucceeds` from STM export for stm-2.5. + +0.2.2 +===== + +* Add explicit `witness` function for use as type witness without warnings. + Makes undefined semantically distinguishable from type witnesses. +* Backwards compatible `Protolude.Safe` module for explicit handling of partial + list operations. +* Export `minimumDef`, `maximumDef`. +* Looser lower-bound on Data.Kind export for GHC 8.0.x. + +0.2.1 +==== + +* Exposes `throwE` and `catchE`. +* Add `transformers-compat` for old versions of transformers that require + `throwE`, `catchE`. +* Fix `safe` version bounds for new versions. +* Add `mapExceptT and `withExceptT`. +* Export `scanl'` and provide shim for backwards compatibility. +* Add `putErrLn`. +* Expose `RealFloat`. +* Expose `GHC.Records` exports for GHC 8.2 and above. + +0.2 +==== + +* Expose `Symbol` and `Nat` types from `GHC.TypeLits` by default. +* Switch exported `(<>)` to be from `Data.Monoid` instead of Semigroup. +* Expose `putByteString` and `putLByteString` monomorphic versions of `putStrLn` functions +* Export `genericLength` and other generic list return functions. +* Rename `msg` to `fatalErrorMessage`. +* Export `ExceptT`, `ReaderT`, and `StateT` constructors. +* Mask `displayException` from default exports. +* Mask `stToIO` from default exports. +* Export `NonEmpty` type and constructor for Base 4.9 only. +* Export `Data.Semigroup` type and functions for Base 4.9 only. +* Restrict exported symbols from ``async`` to set available in 2.0. +* Add `(&&^)`, `(||^)`, `(<&&>)`, `(<||>)` +* Expose `unzip`. +* Export `maximumMay` and `minimumMay`. +* Mask `Type` export from `Data.Kind`. +* Wrap `die` to take `Text` argument instead of `[Char]`. +* Export constructors `GHC.Generics`: `(:+:)`, `(:*:)`, and `(:.:)`. +* Expose `StablePtr`, `IntPtr` and `WordPtr` types. + +0.1.9 +==== + +* Make `sum` and `product` strict + +0.1.8 +===== + +* ``foreach`` for applicative traversals. +* ``hush`` function for error handling. +* ``tryIO`` function for error handling. +* ``pass`` function for noop applicative branches. +* Mask ``Handler`` typeclass export. +* Mask ``yield`` function export. + +0.1.7 +===== + +* Exports monadic ``(>>)`` operator by default. +* Adds ``traceId`` and ``traceShowId`` functions. +* Exports``reader`` and ``state`` functions by default. +* Export lifted ``throwIO`` and ``throwTo`` functions. + +0.1.6 +===== + +* Adds uncatchable panic exception throwing using Text message. +* Removes ``printf`` +* Removes ``string-conv`` dependency so Stack build works without ``extra-deps``. +* Brings ``Callstack`` machinery in for GHC 8.x. +* Removes ``throw`` and ``assert`` from ``Control.Exception`` exports. +* Removes ``unsafeShiftL`` and ``unsafeShiftR`` from ``Data.Bits`` exports. +* Reexport ``throw`` as ``unsafeThrow`` via Unsafe module. +* Hides all Show class functions. Only the Class itself is exported. Forbids custom instances that are not GHC derived. +* Export`` encodeUtf8`` and ``decodeUtf8`` functions by default. +* Adds ``unsnoc`` function. + +0.1.5 +===== + +* Initial release. diff --git a/src/protolude/LICENSE b/src/protolude/LICENSE new file mode 100644 index 000000000..6e6bfc0e3 --- /dev/null +++ b/src/protolude/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2016-2020, Stephen Diehl + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. diff --git a/src/protolude/README.md b/src/protolude/README.md new file mode 100644 index 000000000..c44155075 --- /dev/null +++ b/src/protolude/README.md @@ -0,0 +1,220 @@ +Protolude +========= + +[![Build Status](https://github.com/protolude/protolude/workflows/Cabal%20CI/badge.svg)](https://github.com/protolude/protolude/actions) +[![Build Status](https://github.com/protolude/protolude/workflows/Stack%20CI/badge.svg)](https://github.com/protolude/protolude/actions) +[![Build Status](https://github.com/protolude/protolude/workflows/Nix%20CI/badge.svg)](https://github.com/protolude/protolude/actions) +[![Hackage](https://img.shields.io/hackage/v/protolude.svg)](https://hackage.haskell.org/package/protolude) + +A sensible starting Prelude for building custom Preludes. + +Design points: + +* Banishes String. +* Banishes partial functions. +* Compiler warning on bottoms. +* Polymorphic string IO functions. +* Polymorphic show. +* Automatic string conversions. +* Types for common data structures in scope. +* Types for all common string types (Text/ByteString) in scope. +* Banishes impure exception throwing outside of IO. +* StateT/ReaderT/ExceptT transformers in scope by default. +* Foldable / Traversable functions in scope by default. +* Unsafe functions are prefixed with "unsafe" in separate module. +* Compiler agnostic, GHC internal modules are abstracted out into Base. +* ``sum`` and ``product`` are strict by default. +* Includes Semiring for GHC >= 7.6. +* Includes Bifunctor for GHC >= 7.6. +* Includes Semigroup for GHC >= 7.6. + +Supports: + + * GHC 7.6.3 + * GHC 7.8.4 + * GHC 7.10.3 + * GHC 8.0.2 + * GHC 8.2.2 + * GHC 8.4.1 + * GHC 8.4.4 + * GHC 8.6.1 + * GHC 8.6.4 + * GHC 8.6.5 + * GHC 8.8.1 + * GHC 8.10.1 + * GHC 9.0.1 + * GHC 9.2.1 + +Stack LTS: + +* lts-6.x +* lts-7.x +* lts-8.x +* lts-9.x +* lts-10.x +* lts-11.x +* lts-12.x +* lts-13.x +* lts-14.x +* lts-15.x +* lts-16.x +* lts-17.x +* lts-18.x +* lts-19.14 and higher + +Usage +----- + +To try out standalone prelude at the interactive shell, from the Protolude +project directory run. + +```haskell +$ stack repl +> import Protolude +``` + +Swapping out the old Prelude +---------------------------- + +Disable the built-in prelude at the top of your file: + +```haskell +{-# LANGUAGE NoImplicitPrelude #-} +``` + +Or directly in your project cabal file: + +```haskell +default-extensions: NoImplicitPrelude +``` + +Then in your modules: + +```haskell +import Protolude +``` + +Dependencies +------------ + +Protolude tries to be light on dependencies and only pulls in *essential* +libraries that are universally common across most real-world projects. Lower and +upper bounds are fully specified and compatible with both vanilla Cabal and +tracks Stack LTS resolver. + +| Dependencies | Lower (>=) | Upper (<) | +| ----------- | -------- | -------- | +| array | 0.4 | 0.6 | +| async | 2.0 | 2.3 | +| base | 4.6 | 4.16 | +| bytestring | 0.10 | 0.11 | +| containers | 0.5 | 0.7 | +| deepseq | 1.3 | 1.5 | +| ghc-prim | 0.3 | 0.7 | +| hashable | 1.2 | 1.4 | +| mtl | 2.1 | 2.3 | +| stm | 2.4 | 2.6 | +| text | 1.2 | 1.3 | +| transformers | 0.4 | 0.6 | +| fail | 4.9 | 4.10 | + +Structure +--------- + +Protolude's main modules are the following: + +* [Protolude.hs](https://github.com/sdiehl/protolude/blob/master/src/Protolude.hs) +* [Base.hs](https://github.com/sdiehl/protolude/blob/master/src/Protolude/Base.hs) +* [Show.hs](https://github.com/sdiehl/protolude/blob/master/src/Protolude/Show.hs) +* [Conv.hs](https://github.com/sdiehl/protolude/blob/master/src/Protolude/Conv.hs) + +FAQs +---- + +* **My ``putStrLn`` and ``putStr`` instances are no longer inferred in the presense +of the ``-XOverloadedStrings`` extension?** + +Because the print functions are polymorphic the type of the print functions may +require annotations if the type is not fully specified by inference. To force a +specific type at the call site use either + +```haskell +putText :: MonadIO m => T.Text -> m () +putLText :: MonadIO m => TL.Text -> m () +``` + +* **How do I write manual Show instances if ``show`` isn't provided?** + +Generally speaking writing manual instances of Show is a +[Haskell antipattern](http://www.stephendiehl.com/posts/strings.html) because it produces +law-violating instances of Show. You probably want to use a +[pretty printer](https://hackage.haskell.org/package/wl-pprint-text) library for custom printing. + +If backwards compatibility is needed then the base library can be imported +manually. + +```haskell +import GHC.Show (Show(..)) +``` + +Automatic deriving of ``Show`` for your types is still supported since the class +is in scope by default. + +* **Partial functions like ``undefined`` raise compiler warnings on + usage.** + +This is by design. For fatal uncatchable errors use the provided ``panic`` +function if you intend the program to immediately abort. + +```haskell +panic "Thus I die. Thus, thus, thus. Now I am dead" +``` + +If inside of IO simply use ``throwIO`` for exception handling, or if in pure +business logic use well-typed checked exceptions of the ``ExceptT`` variety. + +* **Why is ``id`` not in scope?** + +It has been renamed to ``identity`` to reserve the ``id`` identifier for the +more common use case of business logic. + +* **But what if I want the partial functions?** + +You if you need partial functions for backwards compatibility you can use the +`Protolude.Partial` module and mask the safe definitions as needed. + +```haskell +import Protolude hiding (head) +import Protolude.Partial (head) +``` + +Development Tools +----------------- + +**GHC Magic** + +To build the `exports` management tool use: + +```bash +$ cabal new-build exports --flag dev +$ cabal run exports +``` + +This tool uses GHC's internal compile symbol table to generate a list of exports +and keep the export list of protolude stable across different versions of GHC +and base. + +**Continious Integration** + +There is a massive test suite that tests all versions of GHC 7.6 - GHC HEAD +alongside all Stack resolvers to ensure no regressions. Any pull requests or +patch has to pass the 47 integrity checks before being considered. Any pull +request must keep the export list consistent across GHC and Base version and not +have any accidental symbol dropping or drift without updating the export golden +tests. + +License +------- + +Released under the MIT License. +Copyright (c) 2016-2022, Stephen Diehl diff --git a/src/protolude/Setup.hs b/src/protolude/Setup.hs new file mode 100644 index 000000000..9a994af67 --- /dev/null +++ b/src/protolude/Setup.hs @@ -0,0 +1,2 @@ +import Distribution.Simple +main = defaultMain diff --git a/src/protolude/all_stack.sh b/src/protolude/all_stack.sh new file mode 100755 index 000000000..69df0cc99 --- /dev/null +++ b/src/protolude/all_stack.sh @@ -0,0 +1,137 @@ +set -e + +stack build --resolver lts-3.0 +stack build --resolver lts-4.0 +stack build --resolver lts-5.0 +stack build --resolver lts-6.0 +stack build --resolver lts-7.0 +stack build --resolver lts-7.1 +stack build --resolver lts-7.2 +stack build --resolver lts-7.3 +stack build --resolver lts-7.4 +stack build --resolver lts-7.5 +stack build --resolver lts-7.6 +stack build --resolver lts-7.7 +stack build --resolver lts-7.8 +stack build --resolver lts-7.9 +stack build --resolver lts-7.10 +stack build --resolver lts-7.11 +stack build --resolver lts-7.12 +stack build --resolver lts-7.13 +stack build --resolver lts-7.14 +stack build --resolver lts-7.15 +stack build --resolver lts-7.16 +stack build --resolver lts-8.0 +stack build --resolver lts-8.1 +stack build --resolver lts-8.2 +stack build --resolver lts-8.3 +stack build --resolver lts-8.4 +stack build --resolver lts-8.5 +stack build --resolver lts-8.6 +stack build --resolver lts-8.7 +stack build --resolver lts-8.8 +stack build --resolver lts-8.9 +stack build --resolver lts-8.10 +stack build --resolver lts-8.11 +stack build --resolver lts-8.12 +stack build --resolver lts-8.13 +stack build --resolver lts-9.0 +stack build --resolver lts-9.1 +stack build --resolver lts-9.2 +stack build --resolver lts-9.3 +stack build --resolver lts-9.4 +stack build --resolver lts-9.5 +stack build --resolver lts-9.6 +stack build --resolver lts-9.7 +stack build --resolver lts-9.8 +stack build --resolver lts-9.9 +stack build --resolver lts-9.10 +stack build --resolver lts-9.11 +stack build --resolver lts-9.12 +stack build --resolver lts-9.13 +stack build --resolver lts-9.14 +stack build --resolver lts-9.15 +stack build --resolver lts-9.16 +stack build --resolver lts-9.17 +stack build --resolver lts-9.18 +stack build --resolver lts-9.19 +stack build --resolver lts-9.20 +stack build --resolver lts-10.0 +stack build --resolver lts-10.1 +stack build --resolver lts-10.2 +stack build --resolver lts-11.0 +stack build --resolver lts-11.1 +stack build --resolver lts-11.2 +stack build --resolver lts-11.3 +stack build --resolver lts-11.4 +stack build --resolver lts-11.5 +stack build --resolver lts-11.6 +stack build --resolver lts-11.7 +stack build --resolver lts-11.8 +stack build --resolver lts-11.10 +stack build --resolver lts-11.11 +stack build --resolver lts-11.12 +stack build --resolver lts-11.13 +stack build --resolver lts-12.0 +stack build --resolver lts-12.1 +stack build --resolver lts-12.2 +stack build --resolver lts-12.3 +stack build --resolver lts-12.4 +stack build --resolver lts-12.5 +stack build --resolver lts-12.6 +stack build --resolver lts-12.7 +stack build --resolver lts-12.8 +stack build --resolver lts-12.9 +stack build --resolver lts-12.10 +stack build --resolver lts-12.11 +stack build --resolver lts-12.12 +stack build --resolver lts-12.13 +stack build --resolver lts-12.14 +stack build --resolver lts-12.16 +stack build --resolver lts-12.17 +stack build --resolver lts-12.18 +stack build --resolver lts-12.19 +stack build --resolver lts-12.20 +stack build --resolver lts-12.21 +stack build --resolver lts-13.0 +stack build --resolver lts-13.1 +stack build --resolver lts-13.2 +stack build --resolver lts-13.3 +stack build --resolver lts-13.4 +stack build --resolver lts-13.5 +stack build --resolver lts-13.6 +stack build --resolver lts-13.7 +stack build --resolver lts-13.8 +stack build --resolver lts-13.9 +stack build --resolver lts-13.10 +stack build --resolver lts-13.11 +stack build --resolver lts-13.12 +stack build --resolver lts-13.13 +stack build --resolver lts-13.14 +stack build --resolver lts-13.15 +stack build --resolver lts-13.16 +stack build --resolver lts-13.17 +stack build --resolver lts-13.18 +stack build --resolver lts-13.19 +stack build --resolver lts-13.20 +stack build --resolver lts-13.21 +stack build --resolver lts-13.22 +stack build --resolver lts-13.23 +stack build --resolver lts-13.24 +stack build --resolver lts-13.25 +stack build --resolver lts-13.26 +stack build --resolver lts-14.0 +stack build --resolver lts-14.1 +stack build --resolver lts-14.2 +stack build --resolver lts-14.3 +stack build --resolver lts-14.4 +stack build --resolver lts-14.5 +stack build --resolver lts-14.6 +stack build --resolver lts-14.7 +stack build --resolver lts-14.8 +stack build --resolver lts-14.9 +stack build --resolver lts-14.10 +stack build --resolver lts-14.11 +stack build --resolver lts-14.12 +stack build --resolver lts-14.13 +stack build --resolver lts-14.14 diff --git a/src/protolude/default.nix b/src/protolude/default.nix new file mode 100644 index 000000000..1fc6c5c98 --- /dev/null +++ b/src/protolude/default.nix @@ -0,0 +1,5 @@ +{ pkgs ? import {} +}: +pkgs.haskellPackages.developPackage { + root = ./.; +} diff --git a/src/protolude/export_lists/protolude-10.exports b/src/protolude/export_lists/protolude-10.exports new file mode 100644 index 000000000..44678c73d --- /dev/null +++ b/src/protolude/export_lists/protolude-10.exports @@ -0,0 +1,960 @@ +$ from GHC.Base +$! from Protolude.Base +$!! from Control.DeepSeq +$> from Data.Functor +% from GHC.Real +& from Data.Function +&& from GHC.Classes +&&^ from Protolude.Bool +* from GHC.Num +* from GHC.Types +** from GHC.Float +*> from GHC.Base ++ from GHC.Num +++ from GHC.Base +- from GHC.Num +. from GHC.Base +.&. from Data.Bits +.|. from Data.Bits +/ from GHC.Real +/= from GHC.Classes +:% from GHC.Real +:*: from GHC.Generics +:*: from GHC.Generics +:+ from Data.Complex +:+: from GHC.Generics +:.: from GHC.Generics +:| from Data.List.NonEmpty +:~: from Data.Type.Equality +< from GHC.Classes +<$ from GHC.Base +<$!> from Control.Monad +<$> from Data.Functor +<&&> from Protolude.Bool +<&> from Protolude.Functor +<* from GHC.Base +<**> from GHC.Base +<*> from GHC.Base +<.> from Protolude.Semiring +<<$>> from Protolude.Functor +<<*>> from Protolude.Applicative +<= from GHC.Classes +<=< from Control.Monad +<> from Data.Monoid +<|> from GHC.Base +<||> from Protolude.Bool +=<< from GHC.Base +== from GHC.Classes +== from Data.Type.Equality +> from GHC.Classes +>= from GHC.Classes +>=> from Control.Monad +>> from GHC.Base +>>= from GHC.Base +All from Data.Monoid +All from Data.Monoid +AllocationLimitExceeded from GHC.IO.Exception +AllocationLimitExceeded from GHC.IO.Exception +Alt from Data.Monoid +Alt from Data.Monoid +Alternative from GHC.Base +Any from Data.Monoid +Any from Data.Monoid +AppendMode from GHC.IO.IOMode +Applicative from GHC.Base +ArithException from GHC.Exception +ArrayException from GHC.IO.Exception +AssertionFailed from GHC.IO.Exception +AssertionFailed from GHC.IO.Exception +Associativity from GHC.Generics +Async from Control.Concurrent.Async +AsyncException from GHC.IO.Exception +Bifunctor from Data.Bifunctor +Bits from Data.Bits +BlockedIndefinitelyOnMVar from GHC.IO.Exception +BlockedIndefinitelyOnMVar from GHC.IO.Exception +BlockedIndefinitelyOnSTM from GHC.IO.Exception +BlockedIndefinitelyOnSTM from GHC.IO.Exception +Bool from GHC.Types +Bounded from GHC.Enum +ByteString from Data.ByteString.Internal +C1 from GHC.Generics +CallStack from GHC.Stack.Types +Chan from Control.Concurrent.Chan +Char from GHC.Types +CmpNat from GHC.TypeNats +Coercible from GHC.Types +Coercion from Data.Type.Coercion +Coercion from Data.Type.Coercion +Comp1 from GHC.Generics +CompactionFailed from GHC.IO.Exception +CompactionFailed from GHC.IO.Exception +Complex from Data.Complex +Concurrently from Control.Concurrent.Async +Concurrently from Control.Concurrent.Async +Const from Data.Functor.Const +Const from Data.Functor.Const +Constraint from GHC.Types +Constructor from GHC.Generics +D# from GHC.Types +D1 from GHC.Generics +Datatype from GHC.Generics +Deadlock from GHC.IO.Exception +Deadlock from GHC.IO.Exception +Denormal from GHC.Exception +DivideByZero from GHC.Exception +Double from GHC.Types +Down from Data.Ord +Down from Data.Ord +Dual from Data.Monoid +Dual from Data.Monoid +EQ from GHC.Types +Either from Data.Either +Endo from Data.Monoid +Endo from Data.Monoid +Enum from GHC.Enum +Eq from GHC.Classes +ErrorCall from GHC.Exception +ErrorCall from GHC.Exception +ErrorCallWithLocation from GHC.Exception +Except from Control.Monad.Trans.Except +ExceptT from Control.Monad.Trans.Except +ExceptT from Control.Monad.Trans.Except +Exception from GHC.Exception +ExitCode from GHC.IO.Exception +ExitFailure from GHC.IO.Exception +ExitSuccess from GHC.IO.Exception +F# from GHC.Types +False from GHC.Types +FatalError from Protolude.Panic +FatalError from Protolude.Panic +FilePath from GHC.IO +FiniteBits from Data.Bits +First from Data.Monoid +First from Data.Monoid +Fixity from GHC.Generics +FixityI from GHC.Generics +Float from GHC.Types +Floating from GHC.Float +Foldable from Data.Foldable +Fractional from GHC.Real +FunPtr from GHC.Ptr +Functor from GHC.Base +GT from GHC.Types +Generic from GHC.Generics +Generic1 from GHC.Generics +Handle from GHC.IO.Handle.Types +HasCallStack from GHC.Stack.Types +HasField from GHC.Records +Hashable from Data.Hashable.Class +HeapOverflow from GHC.IO.Exception +IO from GHC.Types +IOException from GHC.IO.Exception +IOMode from GHC.IO.IOMode +Identity from Data.Functor.Identity +Identity from Data.Functor.Identity +IndexOutOfBounds from GHC.IO.Exception +Infix from GHC.Generics +InfixI from GHC.Generics +Int from GHC.Types +Int16 from GHC.Int +Int32 from GHC.Int +Int64 from GHC.Int +Int8 from GHC.Int +IntMap from Data.IntMap.Internal +IntPtr from Foreign.Ptr +IntSet from Data.IntSet.Internal +Integer from GHC.Integer.Type +Integral from GHC.Real +IsLabel from GHC.OverloadedLabels +IsString from Data.String +Just from GHC.Base +K1 from GHC.Generics +K1 from GHC.Generics +KnownNat from GHC.TypeNats +KnownSymbol from GHC.TypeLits +L1 from GHC.Generics +LByteString from Protolude +LT from GHC.Types +LText from Protolude +Last from Data.Monoid +Last from Data.Monoid +Left from Data.Either +LeftAssociative from GHC.Generics +Leniency from Protolude.Conv +Lenient from Protolude.Conv +Location from GHC.ExecutionStack.Internal +Location from GHC.ExecutionStack.Internal +LossOfPrecision from GHC.Exception +M1 from GHC.Generics +M1 from GHC.Generics +MVar from GHC.MVar +Map from Data.Map.Internal +MaskedInterruptible from GHC.IO +MaskedUninterruptible from GHC.IO +MaskingState from GHC.IO +Maybe from GHC.Base +Meta from GHC.Generics +MetaCons from GHC.Generics +MetaData from GHC.Generics +MetaSel from GHC.Generics +Monad from GHC.Base +MonadError from Control.Monad.Error.Class +MonadIO from Control.Monad.IO.Class +MonadPlus from GHC.Base +MonadReader from Control.Monad.Reader.Class +MonadState from Control.Monad.State.Class +Monoid from GHC.Base +NFData from Control.DeepSeq +Nat from GHC.Types +NestedAtomically from Control.Exception.Base +NestedAtomically from Control.Exception.Base +NoMethodError from Control.Exception.Base +NoMethodError from Control.Exception.Base +NonEmpty from Data.List.NonEmpty +NonTermination from Control.Exception.Base +NonTermination from Control.Exception.Base +NotAssociative from GHC.Generics +Nothing from GHC.Base +Num from GHC.Num +OnDecodeError from Data.Text.Encoding.Error +OnError from Data.Text.Encoding.Error +Option from Data.Semigroup +Option from Data.Semigroup +Ord from GHC.Classes +Ordering from GHC.Types +Overflow from GHC.Exception +PatternMatchFail from Control.Exception.Base +PatternMatchFail from Control.Exception.Base +Prefix from GHC.Generics +PrefixI from GHC.Generics +Print from Protolude.Show +Product from Data.Monoid +Product from Data.Monoid +Proxy from Data.Proxy +Proxy from Data.Proxy +Ptr from GHC.Ptr +QSem from Control.Concurrent.QSem +QSemN from Control.Concurrent.QSemN +R1 from GHC.Generics +Ratio from GHC.Real +RatioZeroDenominator from GHC.Exception +Rational from GHC.Real +Read from GHC.Read +ReadMode from GHC.IO.IOMode +ReadWriteMode from GHC.IO.IOMode +Reader from Control.Monad.Trans.Reader +ReaderT from Control.Monad.Trans.Reader +ReaderT from Control.Monad.Trans.Reader +Real from GHC.Real +RealFloat from GHC.Float +RealFrac from GHC.Real +Rec0 from GHC.Generics +RecConError from Control.Exception.Base +RecConError from Control.Exception.Base +RecSelError from Control.Exception.Base +RecSelError from Control.Exception.Base +RecUpdError from Control.Exception.Base +RecUpdError from Control.Exception.Base +Refl from Data.Type.Equality +Rep from GHC.Generics +Right from Data.Either +RightAssociative from GHC.Generics +S1 from GHC.Generics +ST from GHC.ST +STM from GHC.Conc.Sync +Selector from GHC.Generics +Semigroup from Data.Semigroup +Semiring from Protolude.Semiring +Seq from Data.Sequence.Internal +Set from Data.Set.Internal +Show from GHC.Show +SomeAsyncException from GHC.IO.Exception +SomeAsyncException from GHC.IO.Exception +SomeException from GHC.Exception +SomeException from GHC.Exception +SomeNat from GHC.TypeNats +SomeNat from GHC.TypeNats +SomeSymbol from GHC.TypeLits +SomeSymbol from GHC.TypeLits +SrcLoc from GHC.ExecutionStack.Internal +SrcLoc from GHC.ExecutionStack.Internal +StablePtr from GHC.Stable +StackOverflow from GHC.IO.Exception +State from Control.Monad.Trans.State.Lazy +StateT from Control.Monad.Trans.State.Lazy +StateT from Control.Monad.Trans.State.Lazy +StaticPtr from GHC.StaticPtr +Storable from Foreign.Storable +Strict from Protolude.Conv +StringConv from Protolude.Conv +Sum from Data.Monoid +Sum from Data.Monoid +Symbol from GHC.Types +Text from Data.Text.Internal +ThreadId from GHC.Conc.Sync +ThreadKilled from GHC.IO.Exception +Traversable from Data.Traversable +True from GHC.Types +Type from GHC.Types +TypeError from Control.Exception.Base +TypeError from Control.Exception.Base +TypeRep from Data.Typeable +Typeable from Data.Typeable.Internal +U1 from GHC.Generics +U1 from GHC.Generics +URec from GHC.Generics +UndefinedElement from GHC.IO.Exception +Underflow from GHC.Exception +UnicodeException from Data.Text.Encoding.Error +Unmasked from GHC.IO +UserInterrupt from GHC.IO.Exception +V1 from GHC.Generics +Void from Data.Void +Word from GHC.Types +Word16 from GHC.Word +Word32 from GHC.Word +Word64 from GHC.Word +Word8 from GHC.Word +WordPtr from Foreign.Ptr +WrappedMonoid from Data.Semigroup +WriteMode from GHC.IO.IOMode +ZipList from Control.Applicative +ZipList from Control.Applicative +^ from GHC.Real +^%^ from GHC.Real +^^ from GHC.Real +^^%^^ from GHC.Real +abs from GHC.Num +absurd from Data.Void +acos from GHC.Float +acosh from GHC.Float +addMVarFinalizer from Control.Concurrent.MVar +all from Data.Foldable +allowInterrupt from Control.Exception +always from GHC.Conc.Sync +alwaysSucceeds from GHC.Conc.Sync +and from Data.Foldable +any from Data.Foldable +ap from GHC.Base +appEndo from Data.Monoid +appendFile from Data.Text.IO +applyN from Protolude +asTypeOf from GHC.Base +asin from GHC.Float +asinh from GHC.Float +ask from Control.Monad.Reader.Class +asks from Control.Monad.Reader.Class +asum from Data.Foldable +async from Control.Concurrent.Async +asyncBound from Control.Concurrent.Async +asyncExceptionFromException from GHC.IO.Exception +asyncExceptionToException from GHC.IO.Exception +asyncOn from Control.Concurrent.Async +asyncThreadId from Control.Concurrent.Async +atDef from Protolude.Safe +atMay from Protolude.Safe +atan from GHC.Float +atan2 from GHC.Float +atanh from GHC.Float +atomically from GHC.Conc.Sync +bimap from Data.Bifunctor +bit from Data.Bits +bitDefault from Data.Bits +bitSize from Data.Bits +bitSizeMaybe from Data.Bits +bool from Protolude.Bool +boundedEnumFrom from GHC.Enum +boundedEnumFromThen from GHC.Enum +bracket from Control.Exception.Base +bracketOnError from Control.Exception.Base +bracket_ from Control.Exception.Base +break from GHC.List +byteSwap16 from GHC.Word +byteSwap32 from GHC.Word +byteSwap64 from GHC.Word +callStack from GHC.Stack +cancel from Control.Concurrent.Async +cancelWith from Control.Concurrent.Async +cast from Data.Typeable +castWith from Data.Type.Equality +catMaybes from Data.Maybe +catch from GHC.IO +catchE from Control.Monad.Trans.Except +catchError from Control.Monad.Error.Class +catchJust from Control.Exception.Base +catchSTM from GHC.Conc.Sync +catches from Control.Exception +ceiling from GHC.Real +check from Control.Monad.STM +chr from GHC.Char +cis from Data.Complex +clearBit from Data.Bits +coerceWith from Data.Type.Coercion +compare from GHC.Classes +comparing from Data.Ord +complement from Data.Bits +complementBit from Data.Bits +conFixity from GHC.Generics +conIsRecord from GHC.Generics +conName from GHC.Generics +concat from Data.Foldable +concatMap from Data.Foldable +concatMapM from Protolude.Monad +concurrently from Control.Concurrent.Async +conjugate from Data.Complex +const from GHC.Base +cos from GHC.Float +cosh from GHC.Float +countLeadingZeros from Data.Bits +countTrailingZeros from Data.Bits +currentCallStack from GHC.Stack.CCS +curry from Data.Tuple +cycle from GHC.List +cycle1 from Data.Semigroup +datatypeName from GHC.Generics +decodeFloat from GHC.Float +decodeUtf8 from Data.Text.Encoding +decodeUtf8' from Data.Text.Encoding +decodeUtf8With from Data.Text.Encoding +deepseq from Control.DeepSeq +denominator from GHC.Real +die from Protolude +diff from Data.Semigroup +displayException from GHC.Exception +div from GHC.Real +divMod from GHC.Real +divZeroError from GHC.Real +drop from GHC.List +dropWhile from GHC.List +dupChan from Control.Concurrent.Chan +either from Data.Either +eitherA from Protolude.Applicative +elem from Data.Foldable +empty from GHC.Base +encodeFloat from GHC.Float +encodeUtf8 from Data.Text.Encoding +enumFrom from GHC.Enum +enumFromThen from GHC.Enum +enumFromThenTo from GHC.Enum +enumFromTo from GHC.Enum +eqT from Data.Typeable +evalState from Control.Monad.Trans.State.Lazy +evalStateT from Control.Monad.Trans.State.Lazy +evaluate from GHC.IO +even from GHC.Real +execState from Control.Monad.Trans.State.Lazy +execStateT from Control.Monad.Trans.State.Lazy +exitFailure from System.Exit +exitSuccess from System.Exit +exitWith from System.Exit +exp from GHC.Float +expm1 from GHC.Float +exponent from GHC.Float +fatalErrorMessage from Protolude.Panic +filter from GHC.List +filterM from Control.Monad +finally from Control.Exception.Base +find from Data.Foldable +finiteBitSize from Data.Bits +first from Data.Bifunctor +fix from Data.Function +fixST from GHC.ST +flip from GHC.Base +floatDigits from GHC.Float +floatRadix from GHC.Float +floatRange from GHC.Float +floor from GHC.Real +fmap from GHC.Base +fmapDefault from Data.Traversable +fold from Data.Foldable +foldM from Control.Monad +foldM_ from Control.Monad +foldMap from Data.Foldable +foldMapDefault from Data.Traversable +foldl from Data.Foldable +foldl' from Data.Foldable +foldl1May from Protolude.Safe +foldl1May' from Protolude.Safe +foldlM from Data.Foldable +foldr from Data.Foldable +foldr' from Data.Foldable +foldr1May from Protolude.Safe +foldrM from Data.Foldable +for from Data.Traversable +forM from Data.Traversable +forM_ from Data.Foldable +for_ from Data.Foldable +force from Control.DeepSeq +foreach from Protolude.Functor +forever from Control.Monad +forkFinally from Control.Concurrent +forkIO from GHC.Conc.Sync +forkIOWithUnmask from GHC.Conc.Sync +forkOS from Control.Concurrent +forkOSWithUnmask from Control.Concurrent +forkOn from GHC.Conc.Sync +forkOnWithUnmask from GHC.Conc.Sync +from from GHC.Generics +fromEnum from GHC.Enum +fromException from GHC.Exception +fromInteger from GHC.Num +fromIntegral from GHC.Real +fromLabel from GHC.OverloadedLabels +fromLeft from Data.Either +fromMaybe from Data.Maybe +fromRational from GHC.Real +fromRight from Data.Either +fromStrict from Data.Text.Lazy +fst from Data.Tuple +functionName from GHC.ExecutionStack.Internal +gcastWith from Data.Type.Equality +gcd from GHC.Real +gcdInt' from GHC.Real +gcdWord' from GHC.Real +genericDrop from Data.OldList +genericLength from Data.OldList +genericReplicate from Data.OldList +genericSplitAt from Data.OldList +genericTake from Data.OldList +get from Control.Monad.State.Class +getAll from Data.Monoid +getAlt from Data.Monoid +getAny from Data.Monoid +getArgs from System.Environment +getCallStack from GHC.Stack.Types +getChanContents from Control.Concurrent.Chan +getConst from Data.Functor.Const +getContents from Data.Text.IO +getDual from Data.Monoid +getField from GHC.Records +getFirst from Data.Monoid +getLast from Data.Monoid +getLine from Data.Text.IO +getMaskingState from GHC.IO +getNumCapabilities from GHC.Conc.Sync +getOption from Data.Semigroup +getProduct from Data.Monoid +getStackTrace from GHC.ExecutionStack +getSum from Data.Monoid +getZipList from Control.Applicative +gets from Control.Monad.State.Class +group from Data.OldList +groupBy from Data.OldList +guard from Control.Monad +guardM from Protolude.Bool +guarded from Protolude +guardedA from Protolude +hPutStr from Protolude.Show +hPutStrLn from Protolude.Show +handle from Control.Exception.Base +handleJust from Control.Exception.Base +hash from Data.Hashable.Class +hashUsing from Data.Hashable.Class +hashWithSalt from Data.Hashable.Class +head from Protolude.List +headDef from Protolude.Safe +headMay from Protolude.Safe +hush from Protolude.Exceptions +identity from Protolude +ifM from Protolude.Bool +ignore from Data.Text.Encoding.Error +imagPart from Data.Complex +infinity from GHC.Real +initDef from Protolude.Safe +initMay from Protolude.Safe +initSafe from Protolude.Safe +inits from Data.OldList +integralEnumFrom from GHC.Real +integralEnumFromThen from GHC.Real +integralEnumFromThenTo from GHC.Real +integralEnumFromTo from GHC.Real +interact from Data.Text.IO +intercalate from Data.OldList +interruptible from GHC.IO +intersperse from Data.OldList +ioError from GHC.IO.Exception +isCurrentThreadBound from Control.Concurrent +isDenormalized from GHC.Float +isEmptyChan from Control.Concurrent.Chan +isEmptyMVar from GHC.MVar +isIEEE from GHC.Float +isInfinite from GHC.Float +isJust from Data.Maybe +isLeft from Data.Either +isNaN from GHC.Float +isNegativeZero from GHC.Float +isNewtype from GHC.Generics +isNothing from Data.Maybe +isPrefixOf from Data.OldList +isRight from Data.Either +isSigned from Data.Bits +iterate from GHC.List +join from GHC.Base +killThread from GHC.Conc.Sync +lastDef from Protolude.Safe +lastMay from Protolude.Safe +lcm from GHC.Real +leftToMaybe from Protolude.Either +lefts from Data.Either +length from Data.Foldable +lenientDecode from Data.Text.Encoding.Error +lift from Control.Monad.Trans.Class +liftA from GHC.Base +liftA2 from GHC.Base +liftA3 from GHC.Base +liftAA2 from Protolude.Applicative +liftIO from Control.Monad.IO.Class +liftIO1 from Protolude +liftIO2 from Protolude +liftM from GHC.Base +liftM' from Protolude.Monad +liftM2 from GHC.Base +liftM2' from Protolude.Monad +liftM3 from GHC.Base +liftM4 from GHC.Base +liftM5 from GHC.Base +lines from Data.Text +link from Control.Concurrent.Async +link2 from Control.Concurrent.Async +list from Protolude.List +listToMaybe from Data.Maybe +local from Control.Monad.Reader.Class +log from GHC.Float +log1mexp from GHC.Float +log1p from GHC.Float +log1pexp from GHC.Float +logBase from GHC.Float +magnitude from Data.Complex +many from GHC.Base +map from Protolude +mapAccumL from Data.Traversable +mapAccumR from Data.Traversable +mapAndUnzipM from Control.Monad +mapExcept from Control.Monad.Trans.Except +mapExceptT from Control.Monad.Trans.Except +mapException from Control.Exception.Base +mapM from Data.Traversable +mapM_ from Data.Foldable +mapMaybe from Data.Maybe +mappend from GHC.Base +mask from GHC.IO +mask_ from GHC.IO +max from GHC.Classes +maxBound from GHC.Enum +maxInt from GHC.Base +maximum from Data.Foldable +maximumBy from Data.Foldable +maximumDef from Protolude.Safe +maximumMay from Protolude.Safe +maybe from Data.Maybe +maybeEmpty from Protolude.Either +maybeToEither from Protolude.Either +maybeToLeft from Protolude.Either +maybeToList from Data.Maybe +maybeToRight from Protolude.Either +mconcat from GHC.Base +mempty from GHC.Base +mfilter from Control.Monad +min from GHC.Classes +minBound from GHC.Enum +minInt from GHC.Base +minimum from Data.Foldable +minimumBy from Data.Foldable +minimumDef from Protolude.Safe +minimumMay from Protolude.Safe +mkPolar from Data.Complex +mkWeakMVar from Control.Concurrent.MVar +mkWeakThreadId from GHC.Conc.Sync +mod from GHC.Real +modify from Control.Monad.State.Class +modifyMVar from Control.Concurrent.MVar +modifyMVarMasked from Control.Concurrent.MVar +modifyMVarMasked_ from Control.Concurrent.MVar +modifyMVar_ from Control.Concurrent.MVar +moduleName from GHC.Generics +mplus from GHC.Base +msum from Data.Foldable +mtimesDefault from Data.Semigroup +myThreadId from GHC.Conc.Sync +mzero from GHC.Base +natVal from GHC.TypeLits +negate from GHC.Num +newChan from Control.Concurrent.Chan +newEmptyMVar from GHC.MVar +newMVar from GHC.MVar +newQSem from Control.Concurrent.QSem +newQSemN from Control.Concurrent.QSemN +nonEmpty from Data.List.NonEmpty +not from GHC.Classes +notANumber from GHC.Real +notElem from Data.Foldable +notImplemented from Debug +note from Protolude.Exceptions +null from Data.Foldable +numerator from GHC.Real +numericEnumFrom from GHC.Real +numericEnumFromThen from GHC.Real +numericEnumFromThenTo from GHC.Real +numericEnumFromTo from GHC.Real +objectName from GHC.ExecutionStack.Internal +odd from GHC.Real +on from Data.Function +onException from Control.Exception.Base +one from Protolude.Semiring +openFile from GHC.IO.Handle.FD +option from Data.Semigroup +optional from Control.Applicative +or from Data.Foldable +orAlt from Protolude.Applicative +orElse from GHC.Conc.Sync +orEmpty from Protolude.Applicative +ord from GHC.Base +ordNub from Protolude.List +otherwise from GHC.Base +overflowError from GHC.Real +packageName from GHC.Generics +panic from Protolude.Panic +partitionEithers from Data.Either +pass from Protolude +permutations from Data.OldList +phase from Data.Complex +pi from GHC.Float +polar from Data.Complex +poll from Control.Concurrent.Async +popCount from Data.Bits +popCountDefault from Data.Bits +pred from GHC.Enum +prettyCallStack from GHC.Exception +prettySrcLoc from GHC.Exception +print from Protolude +product from Protolude.List +properFraction from GHC.Real +pure from GHC.Base +purer from Protolude.Applicative +put from Control.Monad.State.Class +putByteString from Protolude.Show +putErrLn from Protolude.Show +putErrText from Protolude.Show +putLByteString from Protolude.Show +putLText from Protolude.Show +putMVar from GHC.MVar +putStr from Protolude.Show +putStrLn from Protolude.Show +putText from Protolude.Show +quot from GHC.Real +quotRem from GHC.Real +race from Control.Concurrent.Async +race_ from Control.Concurrent.Async +ratioPrec from GHC.Real +ratioPrec1 from GHC.Real +ratioZeroDenominatorError from GHC.Real +readChan from Control.Concurrent.Chan +readEither from Protolude +readFile from Data.Text.IO +readMVar from GHC.MVar +readMaybe from Protolude +reader from Control.Monad.Reader.Class +reads from Text.Read +realPart from Data.Complex +realToFrac from GHC.Real +recip from GHC.Real +reduce from GHC.Real +rem from GHC.Real +repeat from GHC.List +replace from Data.Text.Encoding.Error +replicate from GHC.List +replicateM from Control.Monad +replicateM_ from Control.Monad +repr from Data.Type.Coercion +retry from GHC.Conc.Sync +return from GHC.Base +reverse from GHC.List +rightToMaybe from Protolude.Either +rights from Data.Either +rnf from Control.DeepSeq +rotate from Data.Bits +rotateL from Data.Bits +rotateR from Data.Bits +round from GHC.Real +rtsSupportsBoundThreads from Control.Concurrent +runConcurrently from Control.Concurrent.Async +runExcept from Control.Monad.Trans.Except +runExceptT from Control.Monad.Trans.Except +runIdentity from Data.Functor.Identity +runInBoundThread from Control.Concurrent +runInUnboundThread from Control.Concurrent +runReader from Control.Monad.Trans.Reader +runReaderT from Control.Monad.Trans.Reader +runST from GHC.ST +runState from Control.Monad.Trans.State.Lazy +runStateT from Control.Monad.Trans.State.Lazy +scaleFloat from GHC.Float +scanl from GHC.List +scanl' from GHC.List +scanr from GHC.List +sconcat from Data.Semigroup +second from Data.Bifunctor +selDecidedStrictness from GHC.Generics +selName from GHC.Generics +selSourceStrictness from GHC.Generics +selSourceUnpackedness from GHC.Generics +seq from GHC.Prim +sequence from Data.Traversable +sequenceA from Data.Traversable +sequenceA_ from Data.Foldable +sequence_ from Data.Foldable +setBit from Data.Bits +setNumCapabilities from GHC.Conc.Sync +shift from Data.Bits +shiftL from Data.Bits +shiftR from Data.Bits +show from Protolude +showStackTrace from GHC.ExecutionStack +signalQSem from Control.Concurrent.QSem +signalQSemN from Control.Concurrent.QSemN +significand from GHC.Float +signum from GHC.Num +sin from GHC.Float +sinh from GHC.Float +snd from Data.Tuple +some from GHC.Base +someNatVal from GHC.TypeLits +someSymbolVal from GHC.TypeLits +sort from Data.OldList +sortBy from Data.OldList +sortOn from Protolude.List +sourceColumn from GHC.ExecutionStack.Internal +sourceFile from GHC.ExecutionStack.Internal +sourceLine from GHC.ExecutionStack.Internal +splitAt from GHC.List +sqrt from GHC.Float +srcLoc from GHC.ExecutionStack.Internal +state from Control.Monad.State.Class +stderr from GHC.IO.Handle.FD +stdin from GHC.IO.Handle.FD +stdout from GHC.IO.Handle.FD +stimes from Data.Semigroup +stimesIdempotent from Data.Semigroup +stimesIdempotentMonoid from Data.Semigroup +stimesMonoid from Data.Semigroup +strConv from Protolude.Conv +strictDecode from Data.Text.Encoding.Error +subsequences from Data.OldList +subtract from GHC.Num +succ from GHC.Enum +sum from Protolude.List +swap from Data.Tuple +swapMVar from Control.Concurrent.MVar +sym from Data.Type.Equality +symbolVal from GHC.TypeLits +tailDef from Protolude.Safe +tailMay from Protolude.Safe +tailSafe from Protolude.Safe +tails from Data.OldList +take from GHC.List +takeMVar from GHC.MVar +takeWhile from GHC.List +tan from GHC.Float +tanh from GHC.Float +testBit from Data.Bits +testBitDefault from Data.Bits +threadCapability from GHC.Conc.Sync +threadDelay from GHC.Conc.IO +threadWaitRead from Control.Concurrent +threadWaitReadSTM from Control.Concurrent +threadWaitWrite from Control.Concurrent +threadWaitWriteSTM from Control.Concurrent +throwE from Control.Monad.Trans.Except +throwError from Control.Monad.Error.Class +throwIO from Protolude +throwSTM from GHC.Conc.Sync +throwTo from Protolude +to from GHC.Generics +toEnum from GHC.Enum +toException from GHC.Exception +toInteger from GHC.Real +toIntegralSized from Data.Bits +toList from Data.Foldable +toRational from GHC.Real +toS from Protolude.Conv +toSL from Protolude.Conv +toStrict from Data.Text.Lazy +trace from Debug +traceIO from Debug +traceId from Debug +traceM from Debug +traceShow from Debug +traceShowId from Debug +traceShowM from Debug +trans from Data.Type.Equality +transpose from Data.OldList +traverse from Data.Traversable +traverse_ from Data.Foldable +truncate from GHC.Real +try from Control.Exception.Base +tryIO from Protolude.Exceptions +tryJust from Control.Exception.Base +tryPutMVar from GHC.MVar +tryReadMVar from GHC.MVar +tryTakeMVar from GHC.MVar +typeRep from Data.Typeable +unComp1 from GHC.Generics +unGetChan from Control.Concurrent.Chan +unK1 from GHC.Generics +unM1 from GHC.Generics +uncons from Protolude +uncurry from Data.Tuple +undefined from Debug +unfoldr from Data.OldList +uninterruptibleMask from GHC.IO +uninterruptibleMask_ from GHC.IO +unless from Control.Monad +unlessM from Protolude.Bool +unlines from Data.Text +unsnoc from Protolude +until from GHC.Base +unwords from Data.Text +unzip from GHC.List +vacuous from Data.Void +void from Data.Functor +wait from Control.Concurrent.Async +waitAny from Control.Concurrent.Async +waitAnyCancel from Control.Concurrent.Async +waitAnyCatch from Control.Concurrent.Async +waitAnyCatchCancel from Control.Concurrent.Async +waitBoth from Control.Concurrent.Async +waitCatch from Control.Concurrent.Async +waitEither from Control.Concurrent.Async +waitEitherCancel from Control.Concurrent.Async +waitEitherCatch from Control.Concurrent.Async +waitEitherCatchCancel from Control.Concurrent.Async +waitEither_ from Control.Concurrent.Async +waitQSem from Control.Concurrent.QSem +waitQSemN from Control.Concurrent.QSemN +when from GHC.Base +whenM from Protolude.Bool +withAsync from Control.Concurrent.Async +withAsyncBound from Control.Concurrent.Async +withAsyncOn from Control.Concurrent.Async +withExcept from Control.Monad.Trans.Except +withExceptT from Control.Monad.Trans.Except +withFile from System.IO +withFrozenCallStack from GHC.Stack +withMVar from Control.Concurrent.MVar +withMVarMasked from Control.Concurrent.MVar +withState from Control.Monad.Trans.State.Lazy +witness from Debug +words from Data.Text +writeChan from Control.Concurrent.Chan +writeFile from Data.Text.IO +writeList2Chan from Control.Concurrent.Chan +xor from Data.Bits +zero from Protolude.Semiring +zeroBits from Data.Bits +zip from GHC.List +zipWith from GHC.List +zipWithM from Control.Monad +zipWithM_ from Control.Monad +|| from GHC.Classes +||^ from Protolude.Bool diff --git a/src/protolude/export_lists/protolude-11.exports b/src/protolude/export_lists/protolude-11.exports new file mode 100644 index 000000000..44678c73d --- /dev/null +++ b/src/protolude/export_lists/protolude-11.exports @@ -0,0 +1,960 @@ +$ from GHC.Base +$! from Protolude.Base +$!! from Control.DeepSeq +$> from Data.Functor +% from GHC.Real +& from Data.Function +&& from GHC.Classes +&&^ from Protolude.Bool +* from GHC.Num +* from GHC.Types +** from GHC.Float +*> from GHC.Base ++ from GHC.Num +++ from GHC.Base +- from GHC.Num +. from GHC.Base +.&. from Data.Bits +.|. from Data.Bits +/ from GHC.Real +/= from GHC.Classes +:% from GHC.Real +:*: from GHC.Generics +:*: from GHC.Generics +:+ from Data.Complex +:+: from GHC.Generics +:.: from GHC.Generics +:| from Data.List.NonEmpty +:~: from Data.Type.Equality +< from GHC.Classes +<$ from GHC.Base +<$!> from Control.Monad +<$> from Data.Functor +<&&> from Protolude.Bool +<&> from Protolude.Functor +<* from GHC.Base +<**> from GHC.Base +<*> from GHC.Base +<.> from Protolude.Semiring +<<$>> from Protolude.Functor +<<*>> from Protolude.Applicative +<= from GHC.Classes +<=< from Control.Monad +<> from Data.Monoid +<|> from GHC.Base +<||> from Protolude.Bool +=<< from GHC.Base +== from GHC.Classes +== from Data.Type.Equality +> from GHC.Classes +>= from GHC.Classes +>=> from Control.Monad +>> from GHC.Base +>>= from GHC.Base +All from Data.Monoid +All from Data.Monoid +AllocationLimitExceeded from GHC.IO.Exception +AllocationLimitExceeded from GHC.IO.Exception +Alt from Data.Monoid +Alt from Data.Monoid +Alternative from GHC.Base +Any from Data.Monoid +Any from Data.Monoid +AppendMode from GHC.IO.IOMode +Applicative from GHC.Base +ArithException from GHC.Exception +ArrayException from GHC.IO.Exception +AssertionFailed from GHC.IO.Exception +AssertionFailed from GHC.IO.Exception +Associativity from GHC.Generics +Async from Control.Concurrent.Async +AsyncException from GHC.IO.Exception +Bifunctor from Data.Bifunctor +Bits from Data.Bits +BlockedIndefinitelyOnMVar from GHC.IO.Exception +BlockedIndefinitelyOnMVar from GHC.IO.Exception +BlockedIndefinitelyOnSTM from GHC.IO.Exception +BlockedIndefinitelyOnSTM from GHC.IO.Exception +Bool from GHC.Types +Bounded from GHC.Enum +ByteString from Data.ByteString.Internal +C1 from GHC.Generics +CallStack from GHC.Stack.Types +Chan from Control.Concurrent.Chan +Char from GHC.Types +CmpNat from GHC.TypeNats +Coercible from GHC.Types +Coercion from Data.Type.Coercion +Coercion from Data.Type.Coercion +Comp1 from GHC.Generics +CompactionFailed from GHC.IO.Exception +CompactionFailed from GHC.IO.Exception +Complex from Data.Complex +Concurrently from Control.Concurrent.Async +Concurrently from Control.Concurrent.Async +Const from Data.Functor.Const +Const from Data.Functor.Const +Constraint from GHC.Types +Constructor from GHC.Generics +D# from GHC.Types +D1 from GHC.Generics +Datatype from GHC.Generics +Deadlock from GHC.IO.Exception +Deadlock from GHC.IO.Exception +Denormal from GHC.Exception +DivideByZero from GHC.Exception +Double from GHC.Types +Down from Data.Ord +Down from Data.Ord +Dual from Data.Monoid +Dual from Data.Monoid +EQ from GHC.Types +Either from Data.Either +Endo from Data.Monoid +Endo from Data.Monoid +Enum from GHC.Enum +Eq from GHC.Classes +ErrorCall from GHC.Exception +ErrorCall from GHC.Exception +ErrorCallWithLocation from GHC.Exception +Except from Control.Monad.Trans.Except +ExceptT from Control.Monad.Trans.Except +ExceptT from Control.Monad.Trans.Except +Exception from GHC.Exception +ExitCode from GHC.IO.Exception +ExitFailure from GHC.IO.Exception +ExitSuccess from GHC.IO.Exception +F# from GHC.Types +False from GHC.Types +FatalError from Protolude.Panic +FatalError from Protolude.Panic +FilePath from GHC.IO +FiniteBits from Data.Bits +First from Data.Monoid +First from Data.Monoid +Fixity from GHC.Generics +FixityI from GHC.Generics +Float from GHC.Types +Floating from GHC.Float +Foldable from Data.Foldable +Fractional from GHC.Real +FunPtr from GHC.Ptr +Functor from GHC.Base +GT from GHC.Types +Generic from GHC.Generics +Generic1 from GHC.Generics +Handle from GHC.IO.Handle.Types +HasCallStack from GHC.Stack.Types +HasField from GHC.Records +Hashable from Data.Hashable.Class +HeapOverflow from GHC.IO.Exception +IO from GHC.Types +IOException from GHC.IO.Exception +IOMode from GHC.IO.IOMode +Identity from Data.Functor.Identity +Identity from Data.Functor.Identity +IndexOutOfBounds from GHC.IO.Exception +Infix from GHC.Generics +InfixI from GHC.Generics +Int from GHC.Types +Int16 from GHC.Int +Int32 from GHC.Int +Int64 from GHC.Int +Int8 from GHC.Int +IntMap from Data.IntMap.Internal +IntPtr from Foreign.Ptr +IntSet from Data.IntSet.Internal +Integer from GHC.Integer.Type +Integral from GHC.Real +IsLabel from GHC.OverloadedLabels +IsString from Data.String +Just from GHC.Base +K1 from GHC.Generics +K1 from GHC.Generics +KnownNat from GHC.TypeNats +KnownSymbol from GHC.TypeLits +L1 from GHC.Generics +LByteString from Protolude +LT from GHC.Types +LText from Protolude +Last from Data.Monoid +Last from Data.Monoid +Left from Data.Either +LeftAssociative from GHC.Generics +Leniency from Protolude.Conv +Lenient from Protolude.Conv +Location from GHC.ExecutionStack.Internal +Location from GHC.ExecutionStack.Internal +LossOfPrecision from GHC.Exception +M1 from GHC.Generics +M1 from GHC.Generics +MVar from GHC.MVar +Map from Data.Map.Internal +MaskedInterruptible from GHC.IO +MaskedUninterruptible from GHC.IO +MaskingState from GHC.IO +Maybe from GHC.Base +Meta from GHC.Generics +MetaCons from GHC.Generics +MetaData from GHC.Generics +MetaSel from GHC.Generics +Monad from GHC.Base +MonadError from Control.Monad.Error.Class +MonadIO from Control.Monad.IO.Class +MonadPlus from GHC.Base +MonadReader from Control.Monad.Reader.Class +MonadState from Control.Monad.State.Class +Monoid from GHC.Base +NFData from Control.DeepSeq +Nat from GHC.Types +NestedAtomically from Control.Exception.Base +NestedAtomically from Control.Exception.Base +NoMethodError from Control.Exception.Base +NoMethodError from Control.Exception.Base +NonEmpty from Data.List.NonEmpty +NonTermination from Control.Exception.Base +NonTermination from Control.Exception.Base +NotAssociative from GHC.Generics +Nothing from GHC.Base +Num from GHC.Num +OnDecodeError from Data.Text.Encoding.Error +OnError from Data.Text.Encoding.Error +Option from Data.Semigroup +Option from Data.Semigroup +Ord from GHC.Classes +Ordering from GHC.Types +Overflow from GHC.Exception +PatternMatchFail from Control.Exception.Base +PatternMatchFail from Control.Exception.Base +Prefix from GHC.Generics +PrefixI from GHC.Generics +Print from Protolude.Show +Product from Data.Monoid +Product from Data.Monoid +Proxy from Data.Proxy +Proxy from Data.Proxy +Ptr from GHC.Ptr +QSem from Control.Concurrent.QSem +QSemN from Control.Concurrent.QSemN +R1 from GHC.Generics +Ratio from GHC.Real +RatioZeroDenominator from GHC.Exception +Rational from GHC.Real +Read from GHC.Read +ReadMode from GHC.IO.IOMode +ReadWriteMode from GHC.IO.IOMode +Reader from Control.Monad.Trans.Reader +ReaderT from Control.Monad.Trans.Reader +ReaderT from Control.Monad.Trans.Reader +Real from GHC.Real +RealFloat from GHC.Float +RealFrac from GHC.Real +Rec0 from GHC.Generics +RecConError from Control.Exception.Base +RecConError from Control.Exception.Base +RecSelError from Control.Exception.Base +RecSelError from Control.Exception.Base +RecUpdError from Control.Exception.Base +RecUpdError from Control.Exception.Base +Refl from Data.Type.Equality +Rep from GHC.Generics +Right from Data.Either +RightAssociative from GHC.Generics +S1 from GHC.Generics +ST from GHC.ST +STM from GHC.Conc.Sync +Selector from GHC.Generics +Semigroup from Data.Semigroup +Semiring from Protolude.Semiring +Seq from Data.Sequence.Internal +Set from Data.Set.Internal +Show from GHC.Show +SomeAsyncException from GHC.IO.Exception +SomeAsyncException from GHC.IO.Exception +SomeException from GHC.Exception +SomeException from GHC.Exception +SomeNat from GHC.TypeNats +SomeNat from GHC.TypeNats +SomeSymbol from GHC.TypeLits +SomeSymbol from GHC.TypeLits +SrcLoc from GHC.ExecutionStack.Internal +SrcLoc from GHC.ExecutionStack.Internal +StablePtr from GHC.Stable +StackOverflow from GHC.IO.Exception +State from Control.Monad.Trans.State.Lazy +StateT from Control.Monad.Trans.State.Lazy +StateT from Control.Monad.Trans.State.Lazy +StaticPtr from GHC.StaticPtr +Storable from Foreign.Storable +Strict from Protolude.Conv +StringConv from Protolude.Conv +Sum from Data.Monoid +Sum from Data.Monoid +Symbol from GHC.Types +Text from Data.Text.Internal +ThreadId from GHC.Conc.Sync +ThreadKilled from GHC.IO.Exception +Traversable from Data.Traversable +True from GHC.Types +Type from GHC.Types +TypeError from Control.Exception.Base +TypeError from Control.Exception.Base +TypeRep from Data.Typeable +Typeable from Data.Typeable.Internal +U1 from GHC.Generics +U1 from GHC.Generics +URec from GHC.Generics +UndefinedElement from GHC.IO.Exception +Underflow from GHC.Exception +UnicodeException from Data.Text.Encoding.Error +Unmasked from GHC.IO +UserInterrupt from GHC.IO.Exception +V1 from GHC.Generics +Void from Data.Void +Word from GHC.Types +Word16 from GHC.Word +Word32 from GHC.Word +Word64 from GHC.Word +Word8 from GHC.Word +WordPtr from Foreign.Ptr +WrappedMonoid from Data.Semigroup +WriteMode from GHC.IO.IOMode +ZipList from Control.Applicative +ZipList from Control.Applicative +^ from GHC.Real +^%^ from GHC.Real +^^ from GHC.Real +^^%^^ from GHC.Real +abs from GHC.Num +absurd from Data.Void +acos from GHC.Float +acosh from GHC.Float +addMVarFinalizer from Control.Concurrent.MVar +all from Data.Foldable +allowInterrupt from Control.Exception +always from GHC.Conc.Sync +alwaysSucceeds from GHC.Conc.Sync +and from Data.Foldable +any from Data.Foldable +ap from GHC.Base +appEndo from Data.Monoid +appendFile from Data.Text.IO +applyN from Protolude +asTypeOf from GHC.Base +asin from GHC.Float +asinh from GHC.Float +ask from Control.Monad.Reader.Class +asks from Control.Monad.Reader.Class +asum from Data.Foldable +async from Control.Concurrent.Async +asyncBound from Control.Concurrent.Async +asyncExceptionFromException from GHC.IO.Exception +asyncExceptionToException from GHC.IO.Exception +asyncOn from Control.Concurrent.Async +asyncThreadId from Control.Concurrent.Async +atDef from Protolude.Safe +atMay from Protolude.Safe +atan from GHC.Float +atan2 from GHC.Float +atanh from GHC.Float +atomically from GHC.Conc.Sync +bimap from Data.Bifunctor +bit from Data.Bits +bitDefault from Data.Bits +bitSize from Data.Bits +bitSizeMaybe from Data.Bits +bool from Protolude.Bool +boundedEnumFrom from GHC.Enum +boundedEnumFromThen from GHC.Enum +bracket from Control.Exception.Base +bracketOnError from Control.Exception.Base +bracket_ from Control.Exception.Base +break from GHC.List +byteSwap16 from GHC.Word +byteSwap32 from GHC.Word +byteSwap64 from GHC.Word +callStack from GHC.Stack +cancel from Control.Concurrent.Async +cancelWith from Control.Concurrent.Async +cast from Data.Typeable +castWith from Data.Type.Equality +catMaybes from Data.Maybe +catch from GHC.IO +catchE from Control.Monad.Trans.Except +catchError from Control.Monad.Error.Class +catchJust from Control.Exception.Base +catchSTM from GHC.Conc.Sync +catches from Control.Exception +ceiling from GHC.Real +check from Control.Monad.STM +chr from GHC.Char +cis from Data.Complex +clearBit from Data.Bits +coerceWith from Data.Type.Coercion +compare from GHC.Classes +comparing from Data.Ord +complement from Data.Bits +complementBit from Data.Bits +conFixity from GHC.Generics +conIsRecord from GHC.Generics +conName from GHC.Generics +concat from Data.Foldable +concatMap from Data.Foldable +concatMapM from Protolude.Monad +concurrently from Control.Concurrent.Async +conjugate from Data.Complex +const from GHC.Base +cos from GHC.Float +cosh from GHC.Float +countLeadingZeros from Data.Bits +countTrailingZeros from Data.Bits +currentCallStack from GHC.Stack.CCS +curry from Data.Tuple +cycle from GHC.List +cycle1 from Data.Semigroup +datatypeName from GHC.Generics +decodeFloat from GHC.Float +decodeUtf8 from Data.Text.Encoding +decodeUtf8' from Data.Text.Encoding +decodeUtf8With from Data.Text.Encoding +deepseq from Control.DeepSeq +denominator from GHC.Real +die from Protolude +diff from Data.Semigroup +displayException from GHC.Exception +div from GHC.Real +divMod from GHC.Real +divZeroError from GHC.Real +drop from GHC.List +dropWhile from GHC.List +dupChan from Control.Concurrent.Chan +either from Data.Either +eitherA from Protolude.Applicative +elem from Data.Foldable +empty from GHC.Base +encodeFloat from GHC.Float +encodeUtf8 from Data.Text.Encoding +enumFrom from GHC.Enum +enumFromThen from GHC.Enum +enumFromThenTo from GHC.Enum +enumFromTo from GHC.Enum +eqT from Data.Typeable +evalState from Control.Monad.Trans.State.Lazy +evalStateT from Control.Monad.Trans.State.Lazy +evaluate from GHC.IO +even from GHC.Real +execState from Control.Monad.Trans.State.Lazy +execStateT from Control.Monad.Trans.State.Lazy +exitFailure from System.Exit +exitSuccess from System.Exit +exitWith from System.Exit +exp from GHC.Float +expm1 from GHC.Float +exponent from GHC.Float +fatalErrorMessage from Protolude.Panic +filter from GHC.List +filterM from Control.Monad +finally from Control.Exception.Base +find from Data.Foldable +finiteBitSize from Data.Bits +first from Data.Bifunctor +fix from Data.Function +fixST from GHC.ST +flip from GHC.Base +floatDigits from GHC.Float +floatRadix from GHC.Float +floatRange from GHC.Float +floor from GHC.Real +fmap from GHC.Base +fmapDefault from Data.Traversable +fold from Data.Foldable +foldM from Control.Monad +foldM_ from Control.Monad +foldMap from Data.Foldable +foldMapDefault from Data.Traversable +foldl from Data.Foldable +foldl' from Data.Foldable +foldl1May from Protolude.Safe +foldl1May' from Protolude.Safe +foldlM from Data.Foldable +foldr from Data.Foldable +foldr' from Data.Foldable +foldr1May from Protolude.Safe +foldrM from Data.Foldable +for from Data.Traversable +forM from Data.Traversable +forM_ from Data.Foldable +for_ from Data.Foldable +force from Control.DeepSeq +foreach from Protolude.Functor +forever from Control.Monad +forkFinally from Control.Concurrent +forkIO from GHC.Conc.Sync +forkIOWithUnmask from GHC.Conc.Sync +forkOS from Control.Concurrent +forkOSWithUnmask from Control.Concurrent +forkOn from GHC.Conc.Sync +forkOnWithUnmask from GHC.Conc.Sync +from from GHC.Generics +fromEnum from GHC.Enum +fromException from GHC.Exception +fromInteger from GHC.Num +fromIntegral from GHC.Real +fromLabel from GHC.OverloadedLabels +fromLeft from Data.Either +fromMaybe from Data.Maybe +fromRational from GHC.Real +fromRight from Data.Either +fromStrict from Data.Text.Lazy +fst from Data.Tuple +functionName from GHC.ExecutionStack.Internal +gcastWith from Data.Type.Equality +gcd from GHC.Real +gcdInt' from GHC.Real +gcdWord' from GHC.Real +genericDrop from Data.OldList +genericLength from Data.OldList +genericReplicate from Data.OldList +genericSplitAt from Data.OldList +genericTake from Data.OldList +get from Control.Monad.State.Class +getAll from Data.Monoid +getAlt from Data.Monoid +getAny from Data.Monoid +getArgs from System.Environment +getCallStack from GHC.Stack.Types +getChanContents from Control.Concurrent.Chan +getConst from Data.Functor.Const +getContents from Data.Text.IO +getDual from Data.Monoid +getField from GHC.Records +getFirst from Data.Monoid +getLast from Data.Monoid +getLine from Data.Text.IO +getMaskingState from GHC.IO +getNumCapabilities from GHC.Conc.Sync +getOption from Data.Semigroup +getProduct from Data.Monoid +getStackTrace from GHC.ExecutionStack +getSum from Data.Monoid +getZipList from Control.Applicative +gets from Control.Monad.State.Class +group from Data.OldList +groupBy from Data.OldList +guard from Control.Monad +guardM from Protolude.Bool +guarded from Protolude +guardedA from Protolude +hPutStr from Protolude.Show +hPutStrLn from Protolude.Show +handle from Control.Exception.Base +handleJust from Control.Exception.Base +hash from Data.Hashable.Class +hashUsing from Data.Hashable.Class +hashWithSalt from Data.Hashable.Class +head from Protolude.List +headDef from Protolude.Safe +headMay from Protolude.Safe +hush from Protolude.Exceptions +identity from Protolude +ifM from Protolude.Bool +ignore from Data.Text.Encoding.Error +imagPart from Data.Complex +infinity from GHC.Real +initDef from Protolude.Safe +initMay from Protolude.Safe +initSafe from Protolude.Safe +inits from Data.OldList +integralEnumFrom from GHC.Real +integralEnumFromThen from GHC.Real +integralEnumFromThenTo from GHC.Real +integralEnumFromTo from GHC.Real +interact from Data.Text.IO +intercalate from Data.OldList +interruptible from GHC.IO +intersperse from Data.OldList +ioError from GHC.IO.Exception +isCurrentThreadBound from Control.Concurrent +isDenormalized from GHC.Float +isEmptyChan from Control.Concurrent.Chan +isEmptyMVar from GHC.MVar +isIEEE from GHC.Float +isInfinite from GHC.Float +isJust from Data.Maybe +isLeft from Data.Either +isNaN from GHC.Float +isNegativeZero from GHC.Float +isNewtype from GHC.Generics +isNothing from Data.Maybe +isPrefixOf from Data.OldList +isRight from Data.Either +isSigned from Data.Bits +iterate from GHC.List +join from GHC.Base +killThread from GHC.Conc.Sync +lastDef from Protolude.Safe +lastMay from Protolude.Safe +lcm from GHC.Real +leftToMaybe from Protolude.Either +lefts from Data.Either +length from Data.Foldable +lenientDecode from Data.Text.Encoding.Error +lift from Control.Monad.Trans.Class +liftA from GHC.Base +liftA2 from GHC.Base +liftA3 from GHC.Base +liftAA2 from Protolude.Applicative +liftIO from Control.Monad.IO.Class +liftIO1 from Protolude +liftIO2 from Protolude +liftM from GHC.Base +liftM' from Protolude.Monad +liftM2 from GHC.Base +liftM2' from Protolude.Monad +liftM3 from GHC.Base +liftM4 from GHC.Base +liftM5 from GHC.Base +lines from Data.Text +link from Control.Concurrent.Async +link2 from Control.Concurrent.Async +list from Protolude.List +listToMaybe from Data.Maybe +local from Control.Monad.Reader.Class +log from GHC.Float +log1mexp from GHC.Float +log1p from GHC.Float +log1pexp from GHC.Float +logBase from GHC.Float +magnitude from Data.Complex +many from GHC.Base +map from Protolude +mapAccumL from Data.Traversable +mapAccumR from Data.Traversable +mapAndUnzipM from Control.Monad +mapExcept from Control.Monad.Trans.Except +mapExceptT from Control.Monad.Trans.Except +mapException from Control.Exception.Base +mapM from Data.Traversable +mapM_ from Data.Foldable +mapMaybe from Data.Maybe +mappend from GHC.Base +mask from GHC.IO +mask_ from GHC.IO +max from GHC.Classes +maxBound from GHC.Enum +maxInt from GHC.Base +maximum from Data.Foldable +maximumBy from Data.Foldable +maximumDef from Protolude.Safe +maximumMay from Protolude.Safe +maybe from Data.Maybe +maybeEmpty from Protolude.Either +maybeToEither from Protolude.Either +maybeToLeft from Protolude.Either +maybeToList from Data.Maybe +maybeToRight from Protolude.Either +mconcat from GHC.Base +mempty from GHC.Base +mfilter from Control.Monad +min from GHC.Classes +minBound from GHC.Enum +minInt from GHC.Base +minimum from Data.Foldable +minimumBy from Data.Foldable +minimumDef from Protolude.Safe +minimumMay from Protolude.Safe +mkPolar from Data.Complex +mkWeakMVar from Control.Concurrent.MVar +mkWeakThreadId from GHC.Conc.Sync +mod from GHC.Real +modify from Control.Monad.State.Class +modifyMVar from Control.Concurrent.MVar +modifyMVarMasked from Control.Concurrent.MVar +modifyMVarMasked_ from Control.Concurrent.MVar +modifyMVar_ from Control.Concurrent.MVar +moduleName from GHC.Generics +mplus from GHC.Base +msum from Data.Foldable +mtimesDefault from Data.Semigroup +myThreadId from GHC.Conc.Sync +mzero from GHC.Base +natVal from GHC.TypeLits +negate from GHC.Num +newChan from Control.Concurrent.Chan +newEmptyMVar from GHC.MVar +newMVar from GHC.MVar +newQSem from Control.Concurrent.QSem +newQSemN from Control.Concurrent.QSemN +nonEmpty from Data.List.NonEmpty +not from GHC.Classes +notANumber from GHC.Real +notElem from Data.Foldable +notImplemented from Debug +note from Protolude.Exceptions +null from Data.Foldable +numerator from GHC.Real +numericEnumFrom from GHC.Real +numericEnumFromThen from GHC.Real +numericEnumFromThenTo from GHC.Real +numericEnumFromTo from GHC.Real +objectName from GHC.ExecutionStack.Internal +odd from GHC.Real +on from Data.Function +onException from Control.Exception.Base +one from Protolude.Semiring +openFile from GHC.IO.Handle.FD +option from Data.Semigroup +optional from Control.Applicative +or from Data.Foldable +orAlt from Protolude.Applicative +orElse from GHC.Conc.Sync +orEmpty from Protolude.Applicative +ord from GHC.Base +ordNub from Protolude.List +otherwise from GHC.Base +overflowError from GHC.Real +packageName from GHC.Generics +panic from Protolude.Panic +partitionEithers from Data.Either +pass from Protolude +permutations from Data.OldList +phase from Data.Complex +pi from GHC.Float +polar from Data.Complex +poll from Control.Concurrent.Async +popCount from Data.Bits +popCountDefault from Data.Bits +pred from GHC.Enum +prettyCallStack from GHC.Exception +prettySrcLoc from GHC.Exception +print from Protolude +product from Protolude.List +properFraction from GHC.Real +pure from GHC.Base +purer from Protolude.Applicative +put from Control.Monad.State.Class +putByteString from Protolude.Show +putErrLn from Protolude.Show +putErrText from Protolude.Show +putLByteString from Protolude.Show +putLText from Protolude.Show +putMVar from GHC.MVar +putStr from Protolude.Show +putStrLn from Protolude.Show +putText from Protolude.Show +quot from GHC.Real +quotRem from GHC.Real +race from Control.Concurrent.Async +race_ from Control.Concurrent.Async +ratioPrec from GHC.Real +ratioPrec1 from GHC.Real +ratioZeroDenominatorError from GHC.Real +readChan from Control.Concurrent.Chan +readEither from Protolude +readFile from Data.Text.IO +readMVar from GHC.MVar +readMaybe from Protolude +reader from Control.Monad.Reader.Class +reads from Text.Read +realPart from Data.Complex +realToFrac from GHC.Real +recip from GHC.Real +reduce from GHC.Real +rem from GHC.Real +repeat from GHC.List +replace from Data.Text.Encoding.Error +replicate from GHC.List +replicateM from Control.Monad +replicateM_ from Control.Monad +repr from Data.Type.Coercion +retry from GHC.Conc.Sync +return from GHC.Base +reverse from GHC.List +rightToMaybe from Protolude.Either +rights from Data.Either +rnf from Control.DeepSeq +rotate from Data.Bits +rotateL from Data.Bits +rotateR from Data.Bits +round from GHC.Real +rtsSupportsBoundThreads from Control.Concurrent +runConcurrently from Control.Concurrent.Async +runExcept from Control.Monad.Trans.Except +runExceptT from Control.Monad.Trans.Except +runIdentity from Data.Functor.Identity +runInBoundThread from Control.Concurrent +runInUnboundThread from Control.Concurrent +runReader from Control.Monad.Trans.Reader +runReaderT from Control.Monad.Trans.Reader +runST from GHC.ST +runState from Control.Monad.Trans.State.Lazy +runStateT from Control.Monad.Trans.State.Lazy +scaleFloat from GHC.Float +scanl from GHC.List +scanl' from GHC.List +scanr from GHC.List +sconcat from Data.Semigroup +second from Data.Bifunctor +selDecidedStrictness from GHC.Generics +selName from GHC.Generics +selSourceStrictness from GHC.Generics +selSourceUnpackedness from GHC.Generics +seq from GHC.Prim +sequence from Data.Traversable +sequenceA from Data.Traversable +sequenceA_ from Data.Foldable +sequence_ from Data.Foldable +setBit from Data.Bits +setNumCapabilities from GHC.Conc.Sync +shift from Data.Bits +shiftL from Data.Bits +shiftR from Data.Bits +show from Protolude +showStackTrace from GHC.ExecutionStack +signalQSem from Control.Concurrent.QSem +signalQSemN from Control.Concurrent.QSemN +significand from GHC.Float +signum from GHC.Num +sin from GHC.Float +sinh from GHC.Float +snd from Data.Tuple +some from GHC.Base +someNatVal from GHC.TypeLits +someSymbolVal from GHC.TypeLits +sort from Data.OldList +sortBy from Data.OldList +sortOn from Protolude.List +sourceColumn from GHC.ExecutionStack.Internal +sourceFile from GHC.ExecutionStack.Internal +sourceLine from GHC.ExecutionStack.Internal +splitAt from GHC.List +sqrt from GHC.Float +srcLoc from GHC.ExecutionStack.Internal +state from Control.Monad.State.Class +stderr from GHC.IO.Handle.FD +stdin from GHC.IO.Handle.FD +stdout from GHC.IO.Handle.FD +stimes from Data.Semigroup +stimesIdempotent from Data.Semigroup +stimesIdempotentMonoid from Data.Semigroup +stimesMonoid from Data.Semigroup +strConv from Protolude.Conv +strictDecode from Data.Text.Encoding.Error +subsequences from Data.OldList +subtract from GHC.Num +succ from GHC.Enum +sum from Protolude.List +swap from Data.Tuple +swapMVar from Control.Concurrent.MVar +sym from Data.Type.Equality +symbolVal from GHC.TypeLits +tailDef from Protolude.Safe +tailMay from Protolude.Safe +tailSafe from Protolude.Safe +tails from Data.OldList +take from GHC.List +takeMVar from GHC.MVar +takeWhile from GHC.List +tan from GHC.Float +tanh from GHC.Float +testBit from Data.Bits +testBitDefault from Data.Bits +threadCapability from GHC.Conc.Sync +threadDelay from GHC.Conc.IO +threadWaitRead from Control.Concurrent +threadWaitReadSTM from Control.Concurrent +threadWaitWrite from Control.Concurrent +threadWaitWriteSTM from Control.Concurrent +throwE from Control.Monad.Trans.Except +throwError from Control.Monad.Error.Class +throwIO from Protolude +throwSTM from GHC.Conc.Sync +throwTo from Protolude +to from GHC.Generics +toEnum from GHC.Enum +toException from GHC.Exception +toInteger from GHC.Real +toIntegralSized from Data.Bits +toList from Data.Foldable +toRational from GHC.Real +toS from Protolude.Conv +toSL from Protolude.Conv +toStrict from Data.Text.Lazy +trace from Debug +traceIO from Debug +traceId from Debug +traceM from Debug +traceShow from Debug +traceShowId from Debug +traceShowM from Debug +trans from Data.Type.Equality +transpose from Data.OldList +traverse from Data.Traversable +traverse_ from Data.Foldable +truncate from GHC.Real +try from Control.Exception.Base +tryIO from Protolude.Exceptions +tryJust from Control.Exception.Base +tryPutMVar from GHC.MVar +tryReadMVar from GHC.MVar +tryTakeMVar from GHC.MVar +typeRep from Data.Typeable +unComp1 from GHC.Generics +unGetChan from Control.Concurrent.Chan +unK1 from GHC.Generics +unM1 from GHC.Generics +uncons from Protolude +uncurry from Data.Tuple +undefined from Debug +unfoldr from Data.OldList +uninterruptibleMask from GHC.IO +uninterruptibleMask_ from GHC.IO +unless from Control.Monad +unlessM from Protolude.Bool +unlines from Data.Text +unsnoc from Protolude +until from GHC.Base +unwords from Data.Text +unzip from GHC.List +vacuous from Data.Void +void from Data.Functor +wait from Control.Concurrent.Async +waitAny from Control.Concurrent.Async +waitAnyCancel from Control.Concurrent.Async +waitAnyCatch from Control.Concurrent.Async +waitAnyCatchCancel from Control.Concurrent.Async +waitBoth from Control.Concurrent.Async +waitCatch from Control.Concurrent.Async +waitEither from Control.Concurrent.Async +waitEitherCancel from Control.Concurrent.Async +waitEitherCatch from Control.Concurrent.Async +waitEitherCatchCancel from Control.Concurrent.Async +waitEither_ from Control.Concurrent.Async +waitQSem from Control.Concurrent.QSem +waitQSemN from Control.Concurrent.QSemN +when from GHC.Base +whenM from Protolude.Bool +withAsync from Control.Concurrent.Async +withAsyncBound from Control.Concurrent.Async +withAsyncOn from Control.Concurrent.Async +withExcept from Control.Monad.Trans.Except +withExceptT from Control.Monad.Trans.Except +withFile from System.IO +withFrozenCallStack from GHC.Stack +withMVar from Control.Concurrent.MVar +withMVarMasked from Control.Concurrent.MVar +withState from Control.Monad.Trans.State.Lazy +witness from Debug +words from Data.Text +writeChan from Control.Concurrent.Chan +writeFile from Data.Text.IO +writeList2Chan from Control.Concurrent.Chan +xor from Data.Bits +zero from Protolude.Semiring +zeroBits from Data.Bits +zip from GHC.List +zipWith from GHC.List +zipWithM from Control.Monad +zipWithM_ from Control.Monad +|| from GHC.Classes +||^ from Protolude.Bool diff --git a/src/protolude/export_lists/protolude-12.exports b/src/protolude/export_lists/protolude-12.exports new file mode 100644 index 000000000..17fc4243f --- /dev/null +++ b/src/protolude/export_lists/protolude-12.exports @@ -0,0 +1,958 @@ +$ from GHC.Base +$! from Protolude.Base +$!! from Control.DeepSeq +$> from Data.Functor +% from GHC.Real +& from Data.Function +&& from GHC.Classes +&&^ from Protolude.Bool +* from GHC.Num +* from GHC.Types +** from GHC.Float +*> from GHC.Base ++ from GHC.Num +++ from GHC.Base +- from GHC.Num +. from GHC.Base +.&. from Data.Bits +.|. from Data.Bits +/ from GHC.Real +/= from GHC.Classes +:% from GHC.Real +:*: from GHC.Generics +:*: from GHC.Generics +:+ from Data.Complex +:+: from GHC.Generics +:.: from GHC.Generics +:| from GHC.Base +:~: from Data.Type.Equality +< from GHC.Classes +<$ from GHC.Base +<$!> from Control.Monad +<$> from Data.Functor +<&&> from Protolude.Bool +<&> from Data.Functor +<* from GHC.Base +<**> from GHC.Base +<*> from GHC.Base +<.> from Protolude.Semiring +<<$>> from Protolude.Functor +<<*>> from Protolude.Applicative +<= from GHC.Classes +<=< from Control.Monad +<> from GHC.Base +<|> from GHC.Base +<||> from Protolude.Bool +=<< from GHC.Base +== from GHC.Classes +== from Data.Type.Equality +> from GHC.Classes +>= from GHC.Classes +>=> from Control.Monad +>> from GHC.Base +>>= from GHC.Base +All from Data.Semigroup.Internal +All from Data.Semigroup.Internal +AllocationLimitExceeded from GHC.IO.Exception +AllocationLimitExceeded from GHC.IO.Exception +Alt from Data.Semigroup.Internal +Alt from Data.Semigroup.Internal +Alternative from GHC.Base +Any from Data.Semigroup.Internal +Any from Data.Semigroup.Internal +AppendMode from GHC.IO.IOMode +Applicative from GHC.Base +ArithException from GHC.Exception +ArrayException from GHC.IO.Exception +AssertionFailed from GHC.IO.Exception +AssertionFailed from GHC.IO.Exception +Associativity from GHC.Generics +Async from Control.Concurrent.Async +AsyncException from GHC.IO.Exception +Bifunctor from Data.Bifunctor +Bits from Data.Bits +BlockedIndefinitelyOnMVar from GHC.IO.Exception +BlockedIndefinitelyOnMVar from GHC.IO.Exception +BlockedIndefinitelyOnSTM from GHC.IO.Exception +BlockedIndefinitelyOnSTM from GHC.IO.Exception +Bool from GHC.Types +Bounded from GHC.Enum +ByteString from Data.ByteString.Internal +C1 from GHC.Generics +CallStack from GHC.Stack.Types +Chan from Control.Concurrent.Chan +Char from GHC.Types +CmpNat from GHC.TypeNats +Coercible from GHC.Types +Coercion from Data.Type.Coercion +Coercion from Data.Type.Coercion +Comp1 from GHC.Generics +CompactionFailed from GHC.IO.Exception +CompactionFailed from GHC.IO.Exception +Complex from Data.Complex +Concurrently from Control.Concurrent.Async +Concurrently from Control.Concurrent.Async +Const from Data.Functor.Const +Const from Data.Functor.Const +Constraint from GHC.Types +Constructor from GHC.Generics +D# from GHC.Types +D1 from GHC.Generics +Datatype from GHC.Generics +Deadlock from GHC.IO.Exception +Deadlock from GHC.IO.Exception +Denormal from GHC.Exception +DivideByZero from GHC.Exception +Double from GHC.Types +Down from Data.Ord +Down from Data.Ord +Dual from Data.Semigroup.Internal +Dual from Data.Semigroup.Internal +EQ from GHC.Types +Either from Data.Either +Endo from Data.Semigroup.Internal +Endo from Data.Semigroup.Internal +Enum from GHC.Enum +Eq from GHC.Classes +ErrorCall from GHC.Exception +ErrorCall from GHC.Exception +ErrorCallWithLocation from GHC.Exception +Except from Control.Monad.Trans.Except +ExceptT from Control.Monad.Trans.Except +ExceptT from Control.Monad.Trans.Except +Exception from GHC.Exception +ExitCode from GHC.IO.Exception +ExitFailure from GHC.IO.Exception +ExitSuccess from GHC.IO.Exception +F# from GHC.Types +False from GHC.Types +FatalError from Protolude.Panic +FatalError from Protolude.Panic +FilePath from GHC.IO +FiniteBits from Data.Bits +First from Data.Monoid +First from Data.Monoid +Fixity from GHC.Generics +FixityI from GHC.Generics +Float from GHC.Types +Floating from GHC.Float +Foldable from Data.Foldable +Fractional from GHC.Real +FunPtr from GHC.Ptr +Functor from GHC.Base +GT from GHC.Types +Generic from GHC.Generics +Generic1 from GHC.Generics +Handle from GHC.IO.Handle.Types +HasCallStack from GHC.Stack.Types +HasField from GHC.Records +Hashable from Data.Hashable.Class +HeapOverflow from GHC.IO.Exception +IO from GHC.Types +IOException from GHC.IO.Exception +IOMode from GHC.IO.IOMode +Identity from Data.Functor.Identity +Identity from Data.Functor.Identity +IndexOutOfBounds from GHC.IO.Exception +Infix from GHC.Generics +InfixI from GHC.Generics +Int from GHC.Types +Int16 from GHC.Int +Int32 from GHC.Int +Int64 from GHC.Int +Int8 from GHC.Int +IntMap from Data.IntMap.Internal +IntPtr from Foreign.Ptr +IntSet from Data.IntSet.Internal +Integer from GHC.Integer.Type +Integral from GHC.Real +IsLabel from GHC.OverloadedLabels +IsString from Data.String +Just from GHC.Base +K1 from GHC.Generics +K1 from GHC.Generics +KnownNat from GHC.TypeNats +KnownSymbol from GHC.TypeLits +L1 from GHC.Generics +LByteString from Protolude +LT from GHC.Types +LText from Protolude +Last from Data.Monoid +Last from Data.Monoid +Left from Data.Either +LeftAssociative from GHC.Generics +Leniency from Protolude.Conv +Lenient from Protolude.Conv +Location from GHC.ExecutionStack.Internal +Location from GHC.ExecutionStack.Internal +LossOfPrecision from GHC.Exception +M1 from GHC.Generics +M1 from GHC.Generics +MVar from GHC.MVar +Map from Data.Map.Internal +MaskedInterruptible from GHC.IO +MaskedUninterruptible from GHC.IO +MaskingState from GHC.IO +Maybe from GHC.Base +Meta from GHC.Generics +MetaCons from GHC.Generics +MetaData from GHC.Generics +MetaSel from GHC.Generics +Monad from GHC.Base +MonadError from Control.Monad.Error.Class +MonadIO from Control.Monad.IO.Class +MonadPlus from GHC.Base +MonadReader from Control.Monad.Reader.Class +MonadState from Control.Monad.State.Class +Monoid from GHC.Base +NFData from Control.DeepSeq +Nat from GHC.Types +NestedAtomically from Control.Exception.Base +NestedAtomically from Control.Exception.Base +NoMethodError from Control.Exception.Base +NoMethodError from Control.Exception.Base +NonEmpty from GHC.Base +NonTermination from Control.Exception.Base +NonTermination from Control.Exception.Base +NotAssociative from GHC.Generics +Nothing from GHC.Base +Num from GHC.Num +OnDecodeError from Data.Text.Encoding.Error +OnError from Data.Text.Encoding.Error +Option from Data.Semigroup +Option from Data.Semigroup +Ord from GHC.Classes +Ordering from GHC.Types +Overflow from GHC.Exception +PatternMatchFail from Control.Exception.Base +PatternMatchFail from Control.Exception.Base +Prefix from GHC.Generics +PrefixI from GHC.Generics +Print from Protolude.Show +Product from Data.Semigroup.Internal +Product from Data.Semigroup.Internal +Proxy from Data.Proxy +Proxy from Data.Proxy +Ptr from GHC.Ptr +QSem from Control.Concurrent.QSem +QSemN from Control.Concurrent.QSemN +R1 from GHC.Generics +Ratio from GHC.Real +RatioZeroDenominator from GHC.Exception +Rational from GHC.Real +Read from GHC.Read +ReadMode from GHC.IO.IOMode +ReadWriteMode from GHC.IO.IOMode +Reader from Control.Monad.Trans.Reader +ReaderT from Control.Monad.Trans.Reader +ReaderT from Control.Monad.Trans.Reader +Real from GHC.Real +RealFloat from GHC.Float +RealFrac from GHC.Real +Rec0 from GHC.Generics +RecConError from Control.Exception.Base +RecConError from Control.Exception.Base +RecSelError from Control.Exception.Base +RecSelError from Control.Exception.Base +RecUpdError from Control.Exception.Base +RecUpdError from Control.Exception.Base +Refl from Data.Type.Equality +Rep from GHC.Generics +Right from Data.Either +RightAssociative from GHC.Generics +S1 from GHC.Generics +ST from GHC.ST +STM from GHC.Conc.Sync +Selector from GHC.Generics +Semigroup from GHC.Base +Semiring from Protolude.Semiring +Seq from Data.Sequence.Internal +Set from Data.Set.Internal +Show from GHC.Show +SomeAsyncException from GHC.IO.Exception +SomeAsyncException from GHC.IO.Exception +SomeException from GHC.Exception +SomeException from GHC.Exception +SomeNat from GHC.TypeNats +SomeNat from GHC.TypeNats +SomeSymbol from GHC.TypeLits +SomeSymbol from GHC.TypeLits +SrcLoc from GHC.ExecutionStack.Internal +SrcLoc from GHC.ExecutionStack.Internal +StablePtr from GHC.Stable +StackOverflow from GHC.IO.Exception +State from Control.Monad.Trans.State.Lazy +StateT from Control.Monad.Trans.State.Lazy +StateT from Control.Monad.Trans.State.Lazy +StaticPtr from GHC.StaticPtr +Storable from Foreign.Storable +Strict from Protolude.Conv +StringConv from Protolude.Conv +Sum from Data.Semigroup.Internal +Sum from Data.Semigroup.Internal +Symbol from GHC.Types +Text from Data.Text.Internal +ThreadId from GHC.Conc.Sync +ThreadKilled from GHC.IO.Exception +Traversable from Data.Traversable +True from GHC.Types +Type from GHC.Types +TypeError from Control.Exception.Base +TypeError from Control.Exception.Base +TypeRep from Data.Typeable +Typeable from Data.Typeable.Internal +U1 from GHC.Generics +U1 from GHC.Generics +URec from GHC.Generics +UndefinedElement from GHC.IO.Exception +Underflow from GHC.Exception +UnicodeException from Data.Text.Encoding.Error +Unmasked from GHC.IO +UserInterrupt from GHC.IO.Exception +V1 from GHC.Generics +Void from Data.Void +Word from GHC.Types +Word16 from GHC.Word +Word32 from GHC.Word +Word64 from GHC.Word +Word8 from GHC.Word +WordPtr from Foreign.Ptr +WrappedMonoid from Data.Semigroup +WriteMode from GHC.IO.IOMode +ZipList from Control.Applicative +ZipList from Control.Applicative +^ from GHC.Real +^%^ from GHC.Real +^^ from GHC.Real +^^%^^ from GHC.Real +abs from GHC.Num +absurd from Data.Void +acos from GHC.Float +acosh from GHC.Float +addMVarFinalizer from Control.Concurrent.MVar +all from Data.Foldable +allowInterrupt from Control.Exception +always from GHC.Conc.Sync +alwaysSucceeds from GHC.Conc.Sync +and from Data.Foldable +any from Data.Foldable +ap from GHC.Base +appEndo from Data.Semigroup.Internal +appendFile from Data.Text.IO +applyN from Protolude +asTypeOf from GHC.Base +asin from GHC.Float +asinh from GHC.Float +ask from Control.Monad.Reader.Class +asks from Control.Monad.Reader.Class +asum from Data.Foldable +async from Control.Concurrent.Async +asyncBound from Control.Concurrent.Async +asyncExceptionFromException from GHC.IO.Exception +asyncExceptionToException from GHC.IO.Exception +asyncOn from Control.Concurrent.Async +asyncThreadId from Control.Concurrent.Async +atDef from Protolude.Safe +atMay from Protolude.Safe +atan from GHC.Float +atan2 from GHC.Float +atanh from GHC.Float +atomically from GHC.Conc.Sync +bimap from Data.Bifunctor +bit from Data.Bits +bitDefault from Data.Bits +bitSize from Data.Bits +bitSizeMaybe from Data.Bits +bool from Protolude.Bool +boundedEnumFrom from GHC.Enum +boundedEnumFromThen from GHC.Enum +bracket from Control.Exception.Base +bracketOnError from Control.Exception.Base +bracket_ from Control.Exception.Base +break from GHC.List +byteSwap16 from GHC.Word +byteSwap32 from GHC.Word +byteSwap64 from GHC.Word +callStack from GHC.Stack +cancel from Control.Concurrent.Async +cancelWith from Control.Concurrent.Async +cast from Data.Typeable +castWith from Data.Type.Equality +catMaybes from Data.Maybe +catch from GHC.IO +catchE from Control.Monad.Trans.Except +catchError from Control.Monad.Error.Class +catchJust from Control.Exception.Base +catchSTM from GHC.Conc.Sync +catches from Control.Exception +ceiling from GHC.Real +check from Control.Monad.STM +chr from GHC.Char +cis from Data.Complex +clearBit from Data.Bits +coerceWith from Data.Type.Coercion +compare from GHC.Classes +comparing from Data.Ord +complement from Data.Bits +complementBit from Data.Bits +conFixity from GHC.Generics +conIsRecord from GHC.Generics +conName from GHC.Generics +concat from Data.Foldable +concatMap from Data.Foldable +concatMapM from Protolude.Monad +concurrently from Control.Concurrent.Async +conjugate from Data.Complex +const from GHC.Base +cos from GHC.Float +cosh from GHC.Float +countLeadingZeros from Data.Bits +countTrailingZeros from Data.Bits +currentCallStack from GHC.Stack.CCS +curry from Data.Tuple +cycle from GHC.List +cycle1 from Data.Semigroup +datatypeName from GHC.Generics +decodeFloat from GHC.Float +decodeUtf8 from Data.Text.Encoding +decodeUtf8' from Data.Text.Encoding +decodeUtf8With from Data.Text.Encoding +deepseq from Control.DeepSeq +denominator from GHC.Real +die from Protolude +diff from Data.Semigroup +displayException from GHC.Exception +div from GHC.Real +divMod from GHC.Real +divZeroError from GHC.Real +drop from GHC.List +dropWhile from GHC.List +dupChan from Control.Concurrent.Chan +either from Data.Either +eitherA from Protolude.Applicative +elem from Data.Foldable +empty from GHC.Base +encodeFloat from GHC.Float +encodeUtf8 from Data.Text.Encoding +enumFrom from GHC.Enum +enumFromThen from GHC.Enum +enumFromThenTo from GHC.Enum +enumFromTo from GHC.Enum +eqT from Data.Typeable +evalState from Control.Monad.Trans.State.Lazy +evalStateT from Control.Monad.Trans.State.Lazy +evaluate from GHC.IO +even from GHC.Real +execState from Control.Monad.Trans.State.Lazy +execStateT from Control.Monad.Trans.State.Lazy +exitFailure from System.Exit +exitSuccess from System.Exit +exitWith from System.Exit +exp from GHC.Float +expm1 from GHC.Float +exponent from GHC.Float +fatalErrorMessage from Protolude.Panic +filter from GHC.List +filterM from Control.Monad +finally from Control.Exception.Base +find from Data.Foldable +finiteBitSize from Data.Bits +first from Data.Bifunctor +fix from Data.Function +fixST from GHC.ST +flip from GHC.Base +floatDigits from GHC.Float +floatRadix from GHC.Float +floatRange from GHC.Float +floor from GHC.Real +fmap from GHC.Base +fmapDefault from Data.Traversable +fold from Data.Foldable +foldM from Control.Monad +foldM_ from Control.Monad +foldMap from Data.Foldable +foldMapDefault from Data.Traversable +foldl from Data.Foldable +foldl' from Data.Foldable +foldl1May from Protolude.Safe +foldl1May' from Protolude.Safe +foldlM from Data.Foldable +foldr from Data.Foldable +foldr' from Data.Foldable +foldr1May from Protolude.Safe +foldrM from Data.Foldable +for from Data.Traversable +forM from Data.Traversable +forM_ from Data.Foldable +for_ from Data.Foldable +force from Control.DeepSeq +foreach from Protolude.Functor +forever from Control.Monad +forkFinally from Control.Concurrent +forkIO from GHC.Conc.Sync +forkIOWithUnmask from GHC.Conc.Sync +forkOS from Control.Concurrent +forkOSWithUnmask from Control.Concurrent +forkOn from GHC.Conc.Sync +forkOnWithUnmask from GHC.Conc.Sync +from from GHC.Generics +fromEnum from GHC.Enum +fromException from GHC.Exception +fromInteger from GHC.Num +fromIntegral from GHC.Real +fromLabel from GHC.OverloadedLabels +fromLeft from Data.Either +fromMaybe from Data.Maybe +fromRational from GHC.Real +fromRight from Data.Either +fromStrict from Data.Text.Lazy +fst from Data.Tuple +functionName from GHC.ExecutionStack.Internal +gcastWith from Data.Type.Equality +gcd from GHC.Real +gcdInt' from GHC.Real +gcdWord' from GHC.Real +genericDrop from Data.OldList +genericLength from Data.OldList +genericReplicate from Data.OldList +genericSplitAt from Data.OldList +genericTake from Data.OldList +get from Control.Monad.State.Class +getAll from Data.Semigroup.Internal +getAlt from Data.Semigroup.Internal +getAny from Data.Semigroup.Internal +getArgs from System.Environment +getCallStack from GHC.Stack.Types +getChanContents from Control.Concurrent.Chan +getConst from Data.Functor.Const +getContents from Data.Text.IO +getDual from Data.Semigroup.Internal +getField from GHC.Records +getFirst from Data.Monoid +getLast from Data.Monoid +getLine from Data.Text.IO +getMaskingState from GHC.IO +getNumCapabilities from GHC.Conc.Sync +getOption from Data.Semigroup +getProduct from Data.Semigroup.Internal +getStackTrace from GHC.ExecutionStack +getSum from Data.Semigroup.Internal +getZipList from Control.Applicative +gets from Control.Monad.State.Class +group from Data.OldList +groupBy from Data.OldList +guard from Control.Monad +guardM from Protolude.Bool +guarded from Protolude +guardedA from Protolude +hPutStr from Protolude.Show +hPutStrLn from Protolude.Show +handle from Control.Exception.Base +handleJust from Control.Exception.Base +hash from Data.Hashable.Class +hashUsing from Data.Hashable.Class +hashWithSalt from Data.Hashable.Class +head from Protolude.List +headDef from Protolude.Safe +headMay from Protolude.Safe +hush from Protolude.Exceptions +identity from Protolude +ifM from Protolude.Bool +ignore from Data.Text.Encoding.Error +imagPart from Data.Complex +infinity from GHC.Real +initDef from Protolude.Safe +initMay from Protolude.Safe +initSafe from Protolude.Safe +inits from Data.OldList +integralEnumFrom from GHC.Real +integralEnumFromThen from GHC.Real +integralEnumFromThenTo from GHC.Real +integralEnumFromTo from GHC.Real +interact from Data.Text.IO +intercalate from Data.OldList +interruptible from GHC.IO +intersperse from Data.OldList +ioError from GHC.IO.Exception +isCurrentThreadBound from Control.Concurrent +isDenormalized from GHC.Float +isEmptyMVar from GHC.MVar +isIEEE from GHC.Float +isInfinite from GHC.Float +isJust from Data.Maybe +isLeft from Data.Either +isNaN from GHC.Float +isNegativeZero from GHC.Float +isNewtype from GHC.Generics +isNothing from Data.Maybe +isPrefixOf from Data.OldList +isRight from Data.Either +isSigned from Data.Bits +iterate from GHC.List +join from GHC.Base +killThread from GHC.Conc.Sync +lastDef from Protolude.Safe +lastMay from Protolude.Safe +lcm from GHC.Real +leftToMaybe from Protolude.Either +lefts from Data.Either +length from Data.Foldable +lenientDecode from Data.Text.Encoding.Error +lift from Control.Monad.Trans.Class +liftA from GHC.Base +liftA2 from GHC.Base +liftA3 from GHC.Base +liftAA2 from Protolude.Applicative +liftIO from Control.Monad.IO.Class +liftIO1 from Protolude +liftIO2 from Protolude +liftM from GHC.Base +liftM' from Protolude.Monad +liftM2 from GHC.Base +liftM2' from Protolude.Monad +liftM3 from GHC.Base +liftM4 from GHC.Base +liftM5 from GHC.Base +lines from Data.Text +link from Control.Concurrent.Async +link2 from Control.Concurrent.Async +list from Protolude.List +listToMaybe from Data.Maybe +local from Control.Monad.Reader.Class +log from GHC.Float +log1mexp from GHC.Float +log1p from GHC.Float +log1pexp from GHC.Float +logBase from GHC.Float +magnitude from Data.Complex +many from GHC.Base +map from Protolude +mapAccumL from Data.Traversable +mapAccumR from Data.Traversable +mapAndUnzipM from Control.Monad +mapExcept from Control.Monad.Trans.Except +mapExceptT from Control.Monad.Trans.Except +mapException from Control.Exception.Base +mapM from Data.Traversable +mapM_ from Data.Foldable +mapMaybe from Data.Maybe +mappend from GHC.Base +mask from GHC.IO +mask_ from GHC.IO +max from GHC.Classes +maxBound from GHC.Enum +maxInt from GHC.Base +maximum from Data.Foldable +maximumBy from Data.Foldable +maximumDef from Protolude.Safe +maximumMay from Protolude.Safe +maybe from Data.Maybe +maybeEmpty from Protolude.Either +maybeToEither from Protolude.Either +maybeToLeft from Protolude.Either +maybeToList from Data.Maybe +maybeToRight from Protolude.Either +mconcat from GHC.Base +mempty from GHC.Base +mfilter from Control.Monad +min from GHC.Classes +minBound from GHC.Enum +minInt from GHC.Base +minimum from Data.Foldable +minimumBy from Data.Foldable +minimumDef from Protolude.Safe +minimumMay from Protolude.Safe +mkPolar from Data.Complex +mkWeakMVar from Control.Concurrent.MVar +mkWeakThreadId from GHC.Conc.Sync +mod from GHC.Real +modify from Control.Monad.State.Class +modifyMVar from Control.Concurrent.MVar +modifyMVarMasked from Control.Concurrent.MVar +modifyMVarMasked_ from Control.Concurrent.MVar +modifyMVar_ from Control.Concurrent.MVar +moduleName from GHC.Generics +mplus from GHC.Base +msum from Data.Foldable +mtimesDefault from Data.Semigroup +myThreadId from GHC.Conc.Sync +mzero from GHC.Base +natVal from GHC.TypeLits +negate from GHC.Num +newChan from Control.Concurrent.Chan +newEmptyMVar from GHC.MVar +newMVar from GHC.MVar +newQSem from Control.Concurrent.QSem +newQSemN from Control.Concurrent.QSemN +nonEmpty from Data.List.NonEmpty +not from GHC.Classes +notANumber from GHC.Real +notElem from Data.Foldable +notImplemented from Debug +note from Protolude.Exceptions +null from Data.Foldable +numerator from GHC.Real +numericEnumFrom from GHC.Real +numericEnumFromThen from GHC.Real +numericEnumFromThenTo from GHC.Real +numericEnumFromTo from GHC.Real +objectName from GHC.ExecutionStack.Internal +odd from GHC.Real +on from Data.Function +onException from Control.Exception.Base +one from Protolude.Semiring +openFile from GHC.IO.Handle.FD +option from Data.Semigroup +optional from Control.Applicative +or from Data.Foldable +orAlt from Protolude.Applicative +orElse from GHC.Conc.Sync +orEmpty from Protolude.Applicative +ord from GHC.Base +ordNub from Protolude.List +otherwise from GHC.Base +overflowError from GHC.Real +packageName from GHC.Generics +panic from Protolude.Panic +partitionEithers from Data.Either +pass from Protolude +permutations from Data.OldList +phase from Data.Complex +pi from GHC.Float +polar from Data.Complex +poll from Control.Concurrent.Async +popCount from Data.Bits +popCountDefault from Data.Bits +pred from GHC.Enum +prettyCallStack from GHC.Exception +prettySrcLoc from GHC.Exception +print from Protolude +product from Protolude.List +properFraction from GHC.Real +pure from GHC.Base +purer from Protolude.Applicative +put from Control.Monad.State.Class +putByteString from Protolude.Show +putErrLn from Protolude.Show +putErrText from Protolude.Show +putLByteString from Protolude.Show +putLText from Protolude.Show +putMVar from GHC.MVar +putStr from Protolude.Show +putStrLn from Protolude.Show +putText from Protolude.Show +quot from GHC.Real +quotRem from GHC.Real +race from Control.Concurrent.Async +race_ from Control.Concurrent.Async +ratioPrec from GHC.Real +ratioPrec1 from GHC.Real +ratioZeroDenominatorError from GHC.Real +readChan from Control.Concurrent.Chan +readEither from Protolude +readFile from Data.Text.IO +readMVar from GHC.MVar +readMaybe from Protolude +reader from Control.Monad.Reader.Class +reads from Text.Read +realPart from Data.Complex +realToFrac from GHC.Real +recip from GHC.Real +reduce from GHC.Real +rem from GHC.Real +repeat from GHC.List +replace from Data.Text.Encoding.Error +replicate from GHC.List +replicateM from Control.Monad +replicateM_ from Control.Monad +repr from Data.Type.Coercion +retry from GHC.Conc.Sync +return from GHC.Base +reverse from GHC.List +rightToMaybe from Protolude.Either +rights from Data.Either +rnf from Control.DeepSeq +rotate from Data.Bits +rotateL from Data.Bits +rotateR from Data.Bits +round from GHC.Real +rtsSupportsBoundThreads from Control.Concurrent +runConcurrently from Control.Concurrent.Async +runExcept from Control.Monad.Trans.Except +runExceptT from Control.Monad.Trans.Except +runIdentity from Data.Functor.Identity +runInBoundThread from Control.Concurrent +runInUnboundThread from Control.Concurrent +runReader from Control.Monad.Trans.Reader +runReaderT from Control.Monad.Trans.Reader +runST from GHC.ST +runState from Control.Monad.Trans.State.Lazy +runStateT from Control.Monad.Trans.State.Lazy +scaleFloat from GHC.Float +scanl from GHC.List +scanl' from GHC.List +scanr from GHC.List +sconcat from GHC.Base +second from Data.Bifunctor +selDecidedStrictness from GHC.Generics +selName from GHC.Generics +selSourceStrictness from GHC.Generics +selSourceUnpackedness from GHC.Generics +seq from GHC.Prim +sequence from Data.Traversable +sequenceA from Data.Traversable +sequenceA_ from Data.Foldable +sequence_ from Data.Foldable +setBit from Data.Bits +setNumCapabilities from GHC.Conc.Sync +shift from Data.Bits +shiftL from Data.Bits +shiftR from Data.Bits +show from Protolude +showStackTrace from GHC.ExecutionStack +signalQSem from Control.Concurrent.QSem +signalQSemN from Control.Concurrent.QSemN +significand from GHC.Float +signum from GHC.Num +sin from GHC.Float +sinh from GHC.Float +snd from Data.Tuple +some from GHC.Base +someNatVal from GHC.TypeLits +someSymbolVal from GHC.TypeLits +sort from Data.OldList +sortBy from Data.OldList +sortOn from Protolude.List +sourceColumn from GHC.ExecutionStack.Internal +sourceFile from GHC.ExecutionStack.Internal +sourceLine from GHC.ExecutionStack.Internal +splitAt from GHC.List +sqrt from GHC.Float +srcLoc from GHC.ExecutionStack.Internal +state from Control.Monad.State.Class +stderr from GHC.IO.Handle.FD +stdin from GHC.IO.Handle.FD +stdout from GHC.IO.Handle.FD +stimes from GHC.Base +stimesIdempotent from Data.Semigroup.Internal +stimesIdempotentMonoid from Data.Semigroup.Internal +stimesMonoid from Data.Semigroup.Internal +strConv from Protolude.Conv +strictDecode from Data.Text.Encoding.Error +subsequences from Data.OldList +subtract from GHC.Num +succ from GHC.Enum +sum from Protolude.List +swap from Data.Tuple +swapMVar from Control.Concurrent.MVar +sym from Data.Type.Equality +symbolVal from GHC.TypeLits +tailDef from Protolude.Safe +tailMay from Protolude.Safe +tailSafe from Protolude.Safe +tails from Data.OldList +take from GHC.List +takeMVar from GHC.MVar +takeWhile from GHC.List +tan from GHC.Float +tanh from GHC.Float +testBit from Data.Bits +testBitDefault from Data.Bits +threadCapability from GHC.Conc.Sync +threadDelay from GHC.Conc.IO +threadWaitRead from Control.Concurrent +threadWaitReadSTM from Control.Concurrent +threadWaitWrite from Control.Concurrent +threadWaitWriteSTM from Control.Concurrent +throwE from Control.Monad.Trans.Except +throwError from Control.Monad.Error.Class +throwIO from Protolude +throwSTM from GHC.Conc.Sync +throwTo from Protolude +to from GHC.Generics +toEnum from GHC.Enum +toException from GHC.Exception +toInteger from GHC.Real +toIntegralSized from Data.Bits +toList from Data.Foldable +toRational from GHC.Real +toS from Protolude.Conv +toSL from Protolude.Conv +toStrict from Data.Text.Lazy +trace from Debug +traceIO from Debug +traceId from Debug +traceM from Debug +traceShow from Debug +traceShowId from Debug +traceShowM from Debug +trans from Data.Type.Equality +transpose from Data.OldList +traverse from Data.Traversable +traverse_ from Data.Foldable +truncate from GHC.Real +try from Control.Exception.Base +tryIO from Protolude.Exceptions +tryJust from Control.Exception.Base +tryPutMVar from GHC.MVar +tryReadMVar from GHC.MVar +tryTakeMVar from GHC.MVar +typeRep from Data.Typeable +unComp1 from GHC.Generics +unK1 from GHC.Generics +unM1 from GHC.Generics +uncons from Protolude +uncurry from Data.Tuple +undefined from Debug +unfoldr from Data.OldList +uninterruptibleMask from GHC.IO +uninterruptibleMask_ from GHC.IO +unless from Control.Monad +unlessM from Protolude.Bool +unlines from Data.Text +unsnoc from Protolude +until from GHC.Base +unwords from Data.Text +unzip from GHC.List +vacuous from Data.Void +void from Data.Functor +wait from Control.Concurrent.Async +waitAny from Control.Concurrent.Async +waitAnyCancel from Control.Concurrent.Async +waitAnyCatch from Control.Concurrent.Async +waitAnyCatchCancel from Control.Concurrent.Async +waitBoth from Control.Concurrent.Async +waitCatch from Control.Concurrent.Async +waitEither from Control.Concurrent.Async +waitEitherCancel from Control.Concurrent.Async +waitEitherCatch from Control.Concurrent.Async +waitEitherCatchCancel from Control.Concurrent.Async +waitEither_ from Control.Concurrent.Async +waitQSem from Control.Concurrent.QSem +waitQSemN from Control.Concurrent.QSemN +when from GHC.Base +whenM from Protolude.Bool +withAsync from Control.Concurrent.Async +withAsyncBound from Control.Concurrent.Async +withAsyncOn from Control.Concurrent.Async +withExcept from Control.Monad.Trans.Except +withExceptT from Control.Monad.Trans.Except +withFile from System.IO +withFrozenCallStack from GHC.Stack +withMVar from Control.Concurrent.MVar +withMVarMasked from Control.Concurrent.MVar +withState from Control.Monad.Trans.State.Lazy +witness from Debug +words from Data.Text +writeChan from Control.Concurrent.Chan +writeFile from Data.Text.IO +writeList2Chan from Control.Concurrent.Chan +xor from Data.Bits +zero from Protolude.Semiring +zeroBits from Data.Bits +zip from GHC.List +zipWith from GHC.List +zipWithM from Control.Monad +zipWithM_ from Control.Monad +|| from GHC.Classes +||^ from Protolude.Bool diff --git a/src/protolude/export_lists/protolude-13.exports b/src/protolude/export_lists/protolude-13.exports new file mode 100644 index 000000000..a1aec2593 --- /dev/null +++ b/src/protolude/export_lists/protolude-13.exports @@ -0,0 +1,959 @@ +$ from GHC.Base +$! from Protolude.Base +$!! from Control.DeepSeq +$> from Data.Functor +% from GHC.Real +& from Data.Function +&& from GHC.Classes +&&^ from Protolude.Bool +* from GHC.Num +** from GHC.Float +*> from GHC.Base ++ from GHC.Num +++ from GHC.Base +- from GHC.Num +. from GHC.Base +.&. from Data.Bits +.|. from Data.Bits +/ from GHC.Real +/= from GHC.Classes +:% from GHC.Real +:*: from GHC.Generics +:*: from GHC.Generics +:+ from Data.Complex +:+: from GHC.Generics +:.: from GHC.Generics +:| from GHC.Base +:~: from Data.Type.Equality +< from GHC.Classes +<$ from GHC.Base +<$!> from Control.Monad +<$> from Data.Functor +<&&> from Protolude.Bool +<&> from Data.Functor +<* from GHC.Base +<**> from GHC.Base +<*> from GHC.Base +<.> from Protolude.Semiring +<<$>> from Protolude.Functor +<<*>> from Protolude.Applicative +<= from GHC.Classes +<=< from Control.Monad +<> from GHC.Base +<|> from GHC.Base +<||> from Protolude.Bool +=<< from GHC.Base +== from GHC.Classes +== from Data.Type.Equality +> from GHC.Classes +>= from GHC.Classes +>=> from Control.Monad +>> from GHC.Base +>>= from GHC.Base +All from Data.Semigroup.Internal +All from Data.Semigroup.Internal +AllocationLimitExceeded from GHC.IO.Exception +AllocationLimitExceeded from GHC.IO.Exception +Alt from Data.Semigroup.Internal +Alt from Data.Semigroup.Internal +Alternative from GHC.Base +Any from Data.Semigroup.Internal +Any from Data.Semigroup.Internal +Ap from Data.Monoid +Ap from Data.Monoid +AppendMode from GHC.IO.IOMode +Applicative from GHC.Base +ArithException from GHC.Exception.Type +ArrayException from GHC.IO.Exception +AssertionFailed from GHC.IO.Exception +AssertionFailed from GHC.IO.Exception +Associativity from GHC.Generics +Async from Control.Concurrent.Async +AsyncException from GHC.IO.Exception +Bifunctor from Data.Bifunctor +Bits from Data.Bits +BlockedIndefinitelyOnMVar from GHC.IO.Exception +BlockedIndefinitelyOnMVar from GHC.IO.Exception +BlockedIndefinitelyOnSTM from GHC.IO.Exception +BlockedIndefinitelyOnSTM from GHC.IO.Exception +Bool from GHC.Types +Bounded from GHC.Enum +ByteString from Data.ByteString.Internal +C1 from GHC.Generics +CallStack from GHC.Stack.Types +Chan from Control.Concurrent.Chan +Char from GHC.Types +CmpNat from GHC.TypeNats +Coercible from GHC.Types +Coercion from Data.Type.Coercion +Coercion from Data.Type.Coercion +Comp1 from GHC.Generics +CompactionFailed from GHC.IO.Exception +CompactionFailed from GHC.IO.Exception +Complex from Data.Complex +Concurrently from Control.Concurrent.Async +Concurrently from Control.Concurrent.Async +Const from Data.Functor.Const +Const from Data.Functor.Const +Constraint from GHC.Types +Constructor from GHC.Generics +D# from GHC.Types +D1 from GHC.Generics +Datatype from GHC.Generics +Deadlock from GHC.IO.Exception +Deadlock from GHC.IO.Exception +Denormal from GHC.Exception.Type +DivideByZero from GHC.Exception.Type +Double from GHC.Types +Down from Data.Ord +Down from Data.Ord +Dual from Data.Semigroup.Internal +Dual from Data.Semigroup.Internal +EQ from GHC.Types +Either from Data.Either +Endo from Data.Semigroup.Internal +Endo from Data.Semigroup.Internal +Enum from GHC.Enum +Eq from GHC.Classes +ErrorCall from GHC.Exception +ErrorCall from GHC.Exception +ErrorCallWithLocation from GHC.Exception +Except from Control.Monad.Trans.Except +ExceptT from Control.Monad.Trans.Except +ExceptT from Control.Monad.Trans.Except +Exception from GHC.Exception.Type +ExitCode from GHC.IO.Exception +ExitFailure from GHC.IO.Exception +ExitSuccess from GHC.IO.Exception +F# from GHC.Types +False from GHC.Types +FatalError from Protolude.Panic +FatalError from Protolude.Panic +FilePath from GHC.IO +FiniteBits from Data.Bits +First from Data.Monoid +First from Data.Monoid +Fixity from GHC.Generics +FixityI from GHC.Generics +Float from GHC.Types +Floating from GHC.Float +Foldable from Data.Foldable +Fractional from GHC.Real +FunPtr from GHC.Ptr +Functor from GHC.Base +GT from GHC.Types +Generic from GHC.Generics +Generic1 from GHC.Generics +Handle from GHC.IO.Handle.Types +HasCallStack from GHC.Stack.Types +HasField from GHC.Records +Hashable from Data.Hashable.Class +HeapOverflow from GHC.IO.Exception +IO from GHC.Types +IOException from GHC.IO.Exception +IOMode from GHC.IO.IOMode +Identity from Data.Functor.Identity +Identity from Data.Functor.Identity +IndexOutOfBounds from GHC.IO.Exception +Infix from GHC.Generics +InfixI from GHC.Generics +Int from GHC.Types +Int16 from GHC.Int +Int32 from GHC.Int +Int64 from GHC.Int +Int8 from GHC.Int +IntMap from Data.IntMap.Internal +IntPtr from Foreign.Ptr +IntSet from Data.IntSet.Internal +Integer from GHC.Integer.Type +Integral from GHC.Real +IsLabel from GHC.OverloadedLabels +IsString from Data.String +Just from GHC.Maybe +K1 from GHC.Generics +K1 from GHC.Generics +KnownNat from GHC.TypeNats +KnownSymbol from GHC.TypeLits +L1 from GHC.Generics +LByteString from Protolude +LT from GHC.Types +LText from Protolude +Last from Data.Monoid +Last from Data.Monoid +Left from Data.Either +LeftAssociative from GHC.Generics +Leniency from Protolude.Conv +Lenient from Protolude.Conv +Location from GHC.ExecutionStack.Internal +Location from GHC.ExecutionStack.Internal +LossOfPrecision from GHC.Exception.Type +M1 from GHC.Generics +M1 from GHC.Generics +MVar from GHC.MVar +Map from Data.Map.Internal +MaskedInterruptible from GHC.IO +MaskedUninterruptible from GHC.IO +MaskingState from GHC.IO +Maybe from GHC.Maybe +Meta from GHC.Generics +MetaCons from GHC.Generics +MetaData from GHC.Generics +MetaSel from GHC.Generics +Monad from GHC.Base +MonadError from Control.Monad.Error.Class +MonadIO from Control.Monad.IO.Class +MonadPlus from GHC.Base +MonadReader from Control.Monad.Reader.Class +MonadState from Control.Monad.State.Class +Monoid from GHC.Base +NFData from Control.DeepSeq +Nat from GHC.Types +NestedAtomically from Control.Exception.Base +NestedAtomically from Control.Exception.Base +NoMethodError from Control.Exception.Base +NoMethodError from Control.Exception.Base +NonEmpty from GHC.Base +NonTermination from Control.Exception.Base +NonTermination from Control.Exception.Base +NotAssociative from GHC.Generics +Nothing from GHC.Maybe +Num from GHC.Num +OnDecodeError from Data.Text.Encoding.Error +OnError from Data.Text.Encoding.Error +Option from Data.Semigroup +Option from Data.Semigroup +Ord from GHC.Classes +Ordering from GHC.Types +Overflow from GHC.Exception.Type +PatternMatchFail from Control.Exception.Base +PatternMatchFail from Control.Exception.Base +Prefix from GHC.Generics +PrefixI from GHC.Generics +Print from Protolude.Show +Product from Data.Semigroup.Internal +Product from Data.Semigroup.Internal +Proxy from Data.Proxy +Proxy from Data.Proxy +Ptr from GHC.Ptr +QSem from Control.Concurrent.QSem +QSemN from Control.Concurrent.QSemN +R1 from GHC.Generics +Ratio from GHC.Real +RatioZeroDenominator from GHC.Exception.Type +Rational from GHC.Real +Read from GHC.Read +ReadMode from GHC.IO.IOMode +ReadWriteMode from GHC.IO.IOMode +Reader from Control.Monad.Trans.Reader +ReaderT from Control.Monad.Trans.Reader +ReaderT from Control.Monad.Trans.Reader +Real from GHC.Real +RealFloat from GHC.Float +RealFrac from GHC.Real +Rec0 from GHC.Generics +RecConError from Control.Exception.Base +RecConError from Control.Exception.Base +RecSelError from Control.Exception.Base +RecSelError from Control.Exception.Base +RecUpdError from Control.Exception.Base +RecUpdError from Control.Exception.Base +Refl from Data.Type.Equality +Rep from GHC.Generics +Right from Data.Either +RightAssociative from GHC.Generics +S1 from GHC.Generics +ST from GHC.ST +STM from GHC.Conc.Sync +Selector from GHC.Generics +Semigroup from GHC.Base +Semiring from Protolude.Semiring +Seq from Data.Sequence.Internal +Set from Data.Set.Internal +Show from GHC.Show +SomeAsyncException from GHC.IO.Exception +SomeAsyncException from GHC.IO.Exception +SomeException from GHC.Exception.Type +SomeException from GHC.Exception.Type +SomeNat from GHC.TypeNats +SomeNat from GHC.TypeNats +SomeSymbol from GHC.TypeLits +SomeSymbol from GHC.TypeLits +SrcLoc from GHC.ExecutionStack.Internal +SrcLoc from GHC.ExecutionStack.Internal +StablePtr from GHC.Stable +StackOverflow from GHC.IO.Exception +State from Control.Monad.Trans.State.Lazy +StateT from Control.Monad.Trans.State.Lazy +StateT from Control.Monad.Trans.State.Lazy +StaticPtr from GHC.StaticPtr +Storable from Foreign.Storable +Strict from Protolude.Conv +StringConv from Protolude.Conv +Sum from Data.Semigroup.Internal +Sum from Data.Semigroup.Internal +Symbol from GHC.Types +Text from Data.Text.Internal +ThreadId from GHC.Conc.Sync +ThreadKilled from GHC.IO.Exception +Traversable from Data.Traversable +True from GHC.Types +Type from GHC.Types +TypeError from Control.Exception.Base +TypeError from Control.Exception.Base +TypeRep from Data.Typeable +Typeable from Data.Typeable.Internal +U1 from GHC.Generics +U1 from GHC.Generics +URec from GHC.Generics +UndefinedElement from GHC.IO.Exception +Underflow from GHC.Exception.Type +UnicodeException from Data.Text.Encoding.Error +Unmasked from GHC.IO +UserInterrupt from GHC.IO.Exception +V1 from GHC.Generics +Void from Data.Void +Word from GHC.Types +Word16 from GHC.Word +Word32 from GHC.Word +Word64 from GHC.Word +Word8 from GHC.Word +WordPtr from Foreign.Ptr +WrappedMonoid from Data.Semigroup +WriteMode from GHC.IO.IOMode +ZipList from Control.Applicative +ZipList from Control.Applicative +^ from GHC.Real +^%^ from GHC.Real +^^ from GHC.Real +^^%^^ from GHC.Real +abs from GHC.Num +absurd from Data.Void +acos from GHC.Float +acosh from GHC.Float +addMVarFinalizer from Control.Concurrent.MVar +all from Data.Foldable +allowInterrupt from Control.Exception +and from Data.Foldable +any from Data.Foldable +ap from GHC.Base +appEndo from Data.Semigroup.Internal +appendFile from Data.Text.IO +applyN from Protolude +asTypeOf from GHC.Base +asin from GHC.Float +asinh from GHC.Float +ask from Control.Monad.Reader.Class +asks from Control.Monad.Reader.Class +asum from Data.Foldable +async from Control.Concurrent.Async +asyncBound from Control.Concurrent.Async +asyncExceptionFromException from GHC.IO.Exception +asyncExceptionToException from GHC.IO.Exception +asyncOn from Control.Concurrent.Async +asyncThreadId from Control.Concurrent.Async +atDef from Protolude.Safe +atMay from Protolude.Safe +atan from GHC.Float +atan2 from GHC.Float +atanh from GHC.Float +atomically from GHC.Conc.Sync +bimap from Data.Bifunctor +bit from Data.Bits +bitDefault from Data.Bits +bitSize from Data.Bits +bitSizeMaybe from Data.Bits +bool from Protolude.Bool +boundedEnumFrom from GHC.Enum +boundedEnumFromThen from GHC.Enum +bracket from Control.Exception.Base +bracketOnError from Control.Exception.Base +bracket_ from Control.Exception.Base +break from GHC.List +byteSwap16 from GHC.Word +byteSwap32 from GHC.Word +byteSwap64 from GHC.Word +callStack from GHC.Stack +cancel from Control.Concurrent.Async +cancelWith from Control.Concurrent.Async +cast from Data.Typeable +castWith from Data.Type.Equality +catMaybes from Data.Maybe +catch from GHC.IO +catchE from Control.Monad.Trans.Except +catchError from Control.Monad.Error.Class +catchJust from Control.Exception.Base +catchSTM from GHC.Conc.Sync +catches from Control.Exception +ceiling from GHC.Real +check from Control.Monad.STM +chr from GHC.Char +cis from Data.Complex +clearBit from Data.Bits +coerceWith from Data.Type.Coercion +compare from GHC.Classes +comparing from Data.Ord +complement from Data.Bits +complementBit from Data.Bits +conFixity from GHC.Generics +conIsRecord from GHC.Generics +conName from GHC.Generics +concat from Data.Foldable +concatMap from Data.Foldable +concatMapM from Protolude.Monad +concurrently from Control.Concurrent.Async +conjugate from Data.Complex +const from GHC.Base +cos from GHC.Float +cosh from GHC.Float +countLeadingZeros from Data.Bits +countTrailingZeros from Data.Bits +currentCallStack from GHC.Stack.CCS +curry from Data.Tuple +cycle from GHC.List +cycle1 from Data.Semigroup +datatypeName from GHC.Generics +decodeFloat from GHC.Float +decodeUtf8 from Data.Text.Encoding +decodeUtf8' from Data.Text.Encoding +decodeUtf8With from Data.Text.Encoding +deepseq from Control.DeepSeq +denominator from GHC.Real +die from Protolude +diff from Data.Semigroup +displayException from GHC.Exception.Type +div from GHC.Real +divMod from GHC.Real +divZeroError from GHC.Real +drop from GHC.List +dropWhile from GHC.List +dupChan from Control.Concurrent.Chan +either from Data.Either +eitherA from Protolude.Applicative +elem from Data.Foldable +empty from GHC.Base +encodeFloat from GHC.Float +encodeUtf8 from Data.Text.Encoding +enumFrom from GHC.Enum +enumFromThen from GHC.Enum +enumFromThenTo from GHC.Enum +enumFromTo from GHC.Enum +eqT from Data.Typeable +evalState from Control.Monad.Trans.State.Lazy +evalStateT from Control.Monad.Trans.State.Lazy +evaluate from GHC.IO +even from GHC.Real +execState from Control.Monad.Trans.State.Lazy +execStateT from Control.Monad.Trans.State.Lazy +exitFailure from System.Exit +exitSuccess from System.Exit +exitWith from System.Exit +exp from GHC.Float +expm1 from GHC.Float +exponent from GHC.Float +fatalErrorMessage from Protolude.Panic +filter from GHC.List +filterM from Control.Monad +finally from Control.Exception.Base +find from Data.Foldable +finiteBitSize from Data.Bits +first from Data.Bifunctor +fix from Data.Function +fixST from Control.Monad.ST.Imp +flip from GHC.Base +floatDigits from GHC.Float +floatRadix from GHC.Float +floatRange from GHC.Float +floor from GHC.Real +fmap from GHC.Base +fmapDefault from Data.Traversable +fold from Data.Foldable +foldM from Control.Monad +foldM_ from Control.Monad +foldMap from Data.Foldable +foldMapDefault from Data.Traversable +foldl from Data.Foldable +foldl' from Data.Foldable +foldl1May from Protolude.Safe +foldl1May' from Protolude.Safe +foldlM from Data.Foldable +foldr from Data.Foldable +foldr' from Data.Foldable +foldr1May from Protolude.Safe +foldrM from Data.Foldable +for from Data.Traversable +forM from Data.Traversable +forM_ from Data.Foldable +for_ from Data.Foldable +force from Control.DeepSeq +foreach from Protolude.Functor +forever from Control.Monad +forkFinally from Control.Concurrent +forkIO from GHC.Conc.Sync +forkIOWithUnmask from GHC.Conc.Sync +forkOS from Control.Concurrent +forkOSWithUnmask from Control.Concurrent +forkOn from GHC.Conc.Sync +forkOnWithUnmask from GHC.Conc.Sync +from from GHC.Generics +fromEnum from GHC.Enum +fromException from GHC.Exception.Type +fromInteger from GHC.Num +fromIntegral from GHC.Real +fromLabel from GHC.OverloadedLabels +fromLeft from Data.Either +fromMaybe from Data.Maybe +fromRational from GHC.Real +fromRight from Data.Either +fromStrict from Data.Text.Lazy +fst from Data.Tuple +functionName from GHC.ExecutionStack.Internal +gcastWith from Data.Type.Equality +gcd from GHC.Real +gcdInt' from GHC.Real +gcdWord' from GHC.Real +genericDrop from Data.OldList +genericLength from Data.OldList +genericReplicate from Data.OldList +genericSplitAt from Data.OldList +genericTake from Data.OldList +get from Control.Monad.State.Class +getAll from Data.Semigroup.Internal +getAlt from Data.Semigroup.Internal +getAny from Data.Semigroup.Internal +getAp from Data.Monoid +getArgs from System.Environment +getCallStack from GHC.Stack.Types +getChanContents from Control.Concurrent.Chan +getConst from Data.Functor.Const +getContents from Data.Text.IO +getDual from Data.Semigroup.Internal +getField from GHC.Records +getFirst from Data.Monoid +getLast from Data.Monoid +getLine from Data.Text.IO +getMaskingState from GHC.IO +getNumCapabilities from GHC.Conc.Sync +getOption from Data.Semigroup +getProduct from Data.Semigroup.Internal +getStackTrace from GHC.ExecutionStack +getSum from Data.Semigroup.Internal +getZipList from Control.Applicative +gets from Control.Monad.State.Class +group from Data.OldList +groupBy from Data.OldList +guard from Control.Monad +guardM from Protolude.Bool +guarded from Protolude +guardedA from Protolude +hPutStr from Protolude.Show +hPutStrLn from Protolude.Show +handle from Control.Exception.Base +handleJust from Control.Exception.Base +hash from Data.Hashable.Class +hashUsing from Data.Hashable.Class +hashWithSalt from Data.Hashable.Class +head from Protolude.List +headDef from Protolude.Safe +headMay from Protolude.Safe +hush from Protolude.Exceptions +identity from Protolude +ifM from Protolude.Bool +ignore from Data.Text.Encoding.Error +imagPart from Data.Complex +infinity from GHC.Real +initDef from Protolude.Safe +initMay from Protolude.Safe +initSafe from Protolude.Safe +inits from Data.OldList +integralEnumFrom from GHC.Real +integralEnumFromThen from GHC.Real +integralEnumFromThenTo from GHC.Real +integralEnumFromTo from GHC.Real +interact from Data.Text.IO +intercalate from Data.OldList +interruptible from GHC.IO +intersperse from Data.OldList +ioError from GHC.IO.Exception +isCurrentThreadBound from Control.Concurrent +isDenormalized from GHC.Float +isEmptyMVar from GHC.MVar +isIEEE from GHC.Float +isInfinite from GHC.Float +isJust from Data.Maybe +isLeft from Data.Either +isNaN from GHC.Float +isNegativeZero from GHC.Float +isNewtype from GHC.Generics +isNothing from Data.Maybe +isPrefixOf from Data.OldList +isRight from Data.Either +isSigned from Data.Bits +iterate from GHC.List +join from GHC.Base +killThread from GHC.Conc.Sync +lastDef from Protolude.Safe +lastMay from Protolude.Safe +lcm from GHC.Real +leftToMaybe from Protolude.Either +lefts from Data.Either +length from Data.Foldable +lenientDecode from Data.Text.Encoding.Error +lift from Control.Monad.Trans.Class +liftA from GHC.Base +liftA2 from GHC.Base +liftA3 from GHC.Base +liftAA2 from Protolude.Applicative +liftIO from Control.Monad.IO.Class +liftIO1 from Protolude +liftIO2 from Protolude +liftM from GHC.Base +liftM' from Protolude.Monad +liftM2 from GHC.Base +liftM2' from Protolude.Monad +liftM3 from GHC.Base +liftM4 from GHC.Base +liftM5 from GHC.Base +lines from Data.Text +link from Control.Concurrent.Async +link2 from Control.Concurrent.Async +list from Protolude.List +listToMaybe from Data.Maybe +local from Control.Monad.Reader.Class +log from GHC.Float +log1mexp from GHC.Float +log1p from GHC.Float +log1pexp from GHC.Float +logBase from GHC.Float +magnitude from Data.Complex +many from GHC.Base +map from Protolude +mapAccumL from Data.Traversable +mapAccumR from Data.Traversable +mapAndUnzipM from Control.Monad +mapExcept from Control.Monad.Trans.Except +mapExceptT from Control.Monad.Trans.Except +mapException from Control.Exception.Base +mapM from Data.Traversable +mapM_ from Data.Foldable +mapMaybe from Data.Maybe +mappend from GHC.Base +mask from GHC.IO +mask_ from GHC.IO +max from GHC.Classes +maxBound from GHC.Enum +maxInt from GHC.Base +maximum from Data.Foldable +maximumBy from Data.Foldable +maximumDef from Protolude.Safe +maximumMay from Protolude.Safe +maybe from Data.Maybe +maybeEmpty from Protolude.Either +maybeToEither from Protolude.Either +maybeToLeft from Protolude.Either +maybeToList from Data.Maybe +maybeToRight from Protolude.Either +mconcat from GHC.Base +mempty from GHC.Base +mfilter from Control.Monad +min from GHC.Classes +minBound from GHC.Enum +minInt from GHC.Base +minimum from Data.Foldable +minimumBy from Data.Foldable +minimumDef from Protolude.Safe +minimumMay from Protolude.Safe +mkPolar from Data.Complex +mkWeakMVar from Control.Concurrent.MVar +mkWeakThreadId from GHC.Conc.Sync +mod from GHC.Real +modify from Control.Monad.State.Class +modifyMVar from Control.Concurrent.MVar +modifyMVarMasked from Control.Concurrent.MVar +modifyMVarMasked_ from Control.Concurrent.MVar +modifyMVar_ from Control.Concurrent.MVar +moduleName from GHC.Generics +mplus from GHC.Base +msum from Data.Foldable +mtimesDefault from Data.Semigroup +myThreadId from GHC.Conc.Sync +mzero from GHC.Base +natVal from GHC.TypeLits +negate from GHC.Num +newChan from Control.Concurrent.Chan +newEmptyMVar from GHC.MVar +newMVar from GHC.MVar +newQSem from Control.Concurrent.QSem +newQSemN from Control.Concurrent.QSemN +nonEmpty from Data.List.NonEmpty +not from GHC.Classes +notANumber from GHC.Real +notElem from Data.Foldable +notImplemented from Debug +note from Protolude.Exceptions +null from Data.Foldable +numerator from GHC.Real +numericEnumFrom from GHC.Real +numericEnumFromThen from GHC.Real +numericEnumFromThenTo from GHC.Real +numericEnumFromTo from GHC.Real +objectName from GHC.ExecutionStack.Internal +odd from GHC.Real +on from Data.Function +onException from Control.Exception.Base +one from Protolude.Semiring +openFile from GHC.IO.Handle.FD +option from Data.Semigroup +optional from Control.Applicative +or from Data.Foldable +orAlt from Protolude.Applicative +orElse from GHC.Conc.Sync +orEmpty from Protolude.Applicative +ord from GHC.Base +ordNub from Protolude.List +otherwise from GHC.Base +overflowError from GHC.Real +packageName from GHC.Generics +panic from Protolude.Panic +partitionEithers from Data.Either +pass from Protolude +permutations from Data.OldList +phase from Data.Complex +pi from GHC.Float +polar from Data.Complex +poll from Control.Concurrent.Async +popCount from Data.Bits +popCountDefault from Data.Bits +pred from GHC.Enum +prettyCallStack from GHC.Exception +prettySrcLoc from GHC.Exception +print from Protolude +product from Protolude.List +properFraction from GHC.Real +pure from GHC.Base +purer from Protolude.Applicative +put from Control.Monad.State.Class +putByteString from Protolude.Show +putErrLn from Protolude.Show +putErrText from Protolude.Show +putLByteString from Protolude.Show +putLText from Protolude.Show +putMVar from GHC.MVar +putStr from Protolude.Show +putStrLn from Protolude.Show +putText from Protolude.Show +quot from GHC.Real +quotRem from GHC.Real +race from Control.Concurrent.Async +race_ from Control.Concurrent.Async +ratioPrec from GHC.Real +ratioPrec1 from GHC.Real +ratioZeroDenominatorError from GHC.Real +readChan from Control.Concurrent.Chan +readEither from Protolude +readFile from Data.Text.IO +readMVar from GHC.MVar +readMaybe from Protolude +reader from Control.Monad.Reader.Class +reads from Text.Read +realPart from Data.Complex +realToFrac from GHC.Real +recip from GHC.Real +reduce from GHC.Real +rem from GHC.Real +repeat from GHC.List +replace from Data.Text.Encoding.Error +replicate from GHC.List +replicateM from Control.Monad +replicateM_ from Control.Monad +repr from Data.Type.Coercion +retry from GHC.Conc.Sync +return from GHC.Base +reverse from GHC.List +rightToMaybe from Protolude.Either +rights from Data.Either +rnf from Control.DeepSeq +rotate from Data.Bits +rotateL from Data.Bits +rotateR from Data.Bits +round from GHC.Real +rtsSupportsBoundThreads from Control.Concurrent +runConcurrently from Control.Concurrent.Async +runExcept from Control.Monad.Trans.Except +runExceptT from Control.Monad.Trans.Except +runIdentity from Data.Functor.Identity +runInBoundThread from Control.Concurrent +runInUnboundThread from Control.Concurrent +runReader from Control.Monad.Trans.Reader +runReaderT from Control.Monad.Trans.Reader +runST from GHC.ST +runState from Control.Monad.Trans.State.Lazy +runStateT from Control.Monad.Trans.State.Lazy +scaleFloat from GHC.Float +scanl from GHC.List +scanl' from GHC.List +scanr from GHC.List +sconcat from GHC.Base +second from Data.Bifunctor +selDecidedStrictness from GHC.Generics +selName from GHC.Generics +selSourceStrictness from GHC.Generics +selSourceUnpackedness from GHC.Generics +seq from GHC.Prim +sequence from Data.Traversable +sequenceA from Data.Traversable +sequenceA_ from Data.Foldable +sequence_ from Data.Foldable +setBit from Data.Bits +setNumCapabilities from GHC.Conc.Sync +shift from Data.Bits +shiftL from Data.Bits +shiftR from Data.Bits +show from Protolude +showStackTrace from GHC.ExecutionStack +signalQSem from Control.Concurrent.QSem +signalQSemN from Control.Concurrent.QSemN +significand from GHC.Float +signum from GHC.Num +sin from GHC.Float +sinh from GHC.Float +snd from Data.Tuple +some from GHC.Base +someNatVal from GHC.TypeLits +someSymbolVal from GHC.TypeLits +sort from Data.OldList +sortBy from Data.OldList +sortOn from Protolude.List +sourceColumn from GHC.ExecutionStack.Internal +sourceFile from GHC.ExecutionStack.Internal +sourceLine from GHC.ExecutionStack.Internal +splitAt from GHC.List +sqrt from GHC.Float +srcLoc from GHC.ExecutionStack.Internal +state from Control.Monad.State.Class +stderr from GHC.IO.Handle.FD +stdin from GHC.IO.Handle.FD +stdout from GHC.IO.Handle.FD +stimes from GHC.Base +stimesIdempotent from Data.Semigroup.Internal +stimesIdempotentMonoid from Data.Semigroup.Internal +stimesMonoid from Data.Semigroup.Internal +strConv from Protolude.Conv +strictDecode from Data.Text.Encoding.Error +subsequences from Data.OldList +subtract from GHC.Num +succ from GHC.Enum +sum from Protolude.List +swap from Data.Tuple +swapMVar from Control.Concurrent.MVar +sym from Data.Type.Equality +symbolVal from GHC.TypeLits +tailDef from Protolude.Safe +tailMay from Protolude.Safe +tailSafe from Protolude.Safe +tails from Data.OldList +take from GHC.List +takeMVar from GHC.MVar +takeWhile from GHC.List +tan from GHC.Float +tanh from GHC.Float +testBit from Data.Bits +testBitDefault from Data.Bits +threadCapability from GHC.Conc.Sync +threadDelay from GHC.Conc.IO +threadWaitRead from Control.Concurrent +threadWaitReadSTM from Control.Concurrent +threadWaitWrite from Control.Concurrent +threadWaitWriteSTM from Control.Concurrent +throwE from Control.Monad.Trans.Except +throwError from Control.Monad.Error.Class +throwIO from Protolude +throwSTM from GHC.Conc.Sync +throwTo from Protolude +to from GHC.Generics +toEnum from GHC.Enum +toException from GHC.Exception.Type +toInteger from GHC.Real +toIntegralSized from Data.Bits +toList from Data.Foldable +toRational from GHC.Real +toS from Protolude.Conv +toSL from Protolude.Conv +toStrict from Data.Text.Lazy +trace from Debug +traceIO from Debug +traceId from Debug +traceM from Debug +traceShow from Debug +traceShowId from Debug +traceShowM from Debug +trans from Data.Type.Equality +transpose from Data.OldList +traverse from Data.Traversable +traverse_ from Data.Foldable +truncate from GHC.Real +try from Control.Exception.Base +tryIO from Protolude.Exceptions +tryJust from Control.Exception.Base +tryPutMVar from GHC.MVar +tryReadMVar from GHC.MVar +tryTakeMVar from GHC.MVar +typeRep from Data.Typeable +unComp1 from GHC.Generics +unK1 from GHC.Generics +unM1 from GHC.Generics +uncons from Protolude +uncurry from Data.Tuple +undefined from Debug +underflowError from GHC.Real +unfoldr from Data.OldList +uninterruptibleMask from GHC.IO +uninterruptibleMask_ from GHC.IO +unless from Control.Monad +unlessM from Protolude.Bool +unlines from Data.Text +unsnoc from Protolude +until from GHC.Base +unwords from Data.Text +unzip from GHC.List +vacuous from Data.Void +void from Data.Functor +wait from Control.Concurrent.Async +waitAny from Control.Concurrent.Async +waitAnyCancel from Control.Concurrent.Async +waitAnyCatch from Control.Concurrent.Async +waitAnyCatchCancel from Control.Concurrent.Async +waitBoth from Control.Concurrent.Async +waitCatch from Control.Concurrent.Async +waitEither from Control.Concurrent.Async +waitEitherCancel from Control.Concurrent.Async +waitEitherCatch from Control.Concurrent.Async +waitEitherCatchCancel from Control.Concurrent.Async +waitEither_ from Control.Concurrent.Async +waitQSem from Control.Concurrent.QSem +waitQSemN from Control.Concurrent.QSemN +when from GHC.Base +whenM from Protolude.Bool +withAsync from Control.Concurrent.Async +withAsyncBound from Control.Concurrent.Async +withAsyncOn from Control.Concurrent.Async +withExcept from Control.Monad.Trans.Except +withExceptT from Control.Monad.Trans.Except +withFile from System.IO +withFrozenCallStack from GHC.Stack +withMVar from Control.Concurrent.MVar +withMVarMasked from Control.Concurrent.MVar +withState from Control.Monad.Trans.State.Lazy +witness from Debug +words from Data.Text +writeChan from Control.Concurrent.Chan +writeFile from Data.Text.IO +writeList2Chan from Control.Concurrent.Chan +xor from Data.Bits +zero from Protolude.Semiring +zeroBits from Data.Bits +zip from GHC.List +zipWith from GHC.List +zipWithM from Control.Monad +zipWithM_ from Control.Monad +|| from GHC.Classes +||^ from Protolude.Bool diff --git a/src/protolude/export_lists/protolude-14.exports b/src/protolude/export_lists/protolude-14.exports new file mode 100644 index 000000000..a1aec2593 --- /dev/null +++ b/src/protolude/export_lists/protolude-14.exports @@ -0,0 +1,959 @@ +$ from GHC.Base +$! from Protolude.Base +$!! from Control.DeepSeq +$> from Data.Functor +% from GHC.Real +& from Data.Function +&& from GHC.Classes +&&^ from Protolude.Bool +* from GHC.Num +** from GHC.Float +*> from GHC.Base ++ from GHC.Num +++ from GHC.Base +- from GHC.Num +. from GHC.Base +.&. from Data.Bits +.|. from Data.Bits +/ from GHC.Real +/= from GHC.Classes +:% from GHC.Real +:*: from GHC.Generics +:*: from GHC.Generics +:+ from Data.Complex +:+: from GHC.Generics +:.: from GHC.Generics +:| from GHC.Base +:~: from Data.Type.Equality +< from GHC.Classes +<$ from GHC.Base +<$!> from Control.Monad +<$> from Data.Functor +<&&> from Protolude.Bool +<&> from Data.Functor +<* from GHC.Base +<**> from GHC.Base +<*> from GHC.Base +<.> from Protolude.Semiring +<<$>> from Protolude.Functor +<<*>> from Protolude.Applicative +<= from GHC.Classes +<=< from Control.Monad +<> from GHC.Base +<|> from GHC.Base +<||> from Protolude.Bool +=<< from GHC.Base +== from GHC.Classes +== from Data.Type.Equality +> from GHC.Classes +>= from GHC.Classes +>=> from Control.Monad +>> from GHC.Base +>>= from GHC.Base +All from Data.Semigroup.Internal +All from Data.Semigroup.Internal +AllocationLimitExceeded from GHC.IO.Exception +AllocationLimitExceeded from GHC.IO.Exception +Alt from Data.Semigroup.Internal +Alt from Data.Semigroup.Internal +Alternative from GHC.Base +Any from Data.Semigroup.Internal +Any from Data.Semigroup.Internal +Ap from Data.Monoid +Ap from Data.Monoid +AppendMode from GHC.IO.IOMode +Applicative from GHC.Base +ArithException from GHC.Exception.Type +ArrayException from GHC.IO.Exception +AssertionFailed from GHC.IO.Exception +AssertionFailed from GHC.IO.Exception +Associativity from GHC.Generics +Async from Control.Concurrent.Async +AsyncException from GHC.IO.Exception +Bifunctor from Data.Bifunctor +Bits from Data.Bits +BlockedIndefinitelyOnMVar from GHC.IO.Exception +BlockedIndefinitelyOnMVar from GHC.IO.Exception +BlockedIndefinitelyOnSTM from GHC.IO.Exception +BlockedIndefinitelyOnSTM from GHC.IO.Exception +Bool from GHC.Types +Bounded from GHC.Enum +ByteString from Data.ByteString.Internal +C1 from GHC.Generics +CallStack from GHC.Stack.Types +Chan from Control.Concurrent.Chan +Char from GHC.Types +CmpNat from GHC.TypeNats +Coercible from GHC.Types +Coercion from Data.Type.Coercion +Coercion from Data.Type.Coercion +Comp1 from GHC.Generics +CompactionFailed from GHC.IO.Exception +CompactionFailed from GHC.IO.Exception +Complex from Data.Complex +Concurrently from Control.Concurrent.Async +Concurrently from Control.Concurrent.Async +Const from Data.Functor.Const +Const from Data.Functor.Const +Constraint from GHC.Types +Constructor from GHC.Generics +D# from GHC.Types +D1 from GHC.Generics +Datatype from GHC.Generics +Deadlock from GHC.IO.Exception +Deadlock from GHC.IO.Exception +Denormal from GHC.Exception.Type +DivideByZero from GHC.Exception.Type +Double from GHC.Types +Down from Data.Ord +Down from Data.Ord +Dual from Data.Semigroup.Internal +Dual from Data.Semigroup.Internal +EQ from GHC.Types +Either from Data.Either +Endo from Data.Semigroup.Internal +Endo from Data.Semigroup.Internal +Enum from GHC.Enum +Eq from GHC.Classes +ErrorCall from GHC.Exception +ErrorCall from GHC.Exception +ErrorCallWithLocation from GHC.Exception +Except from Control.Monad.Trans.Except +ExceptT from Control.Monad.Trans.Except +ExceptT from Control.Monad.Trans.Except +Exception from GHC.Exception.Type +ExitCode from GHC.IO.Exception +ExitFailure from GHC.IO.Exception +ExitSuccess from GHC.IO.Exception +F# from GHC.Types +False from GHC.Types +FatalError from Protolude.Panic +FatalError from Protolude.Panic +FilePath from GHC.IO +FiniteBits from Data.Bits +First from Data.Monoid +First from Data.Monoid +Fixity from GHC.Generics +FixityI from GHC.Generics +Float from GHC.Types +Floating from GHC.Float +Foldable from Data.Foldable +Fractional from GHC.Real +FunPtr from GHC.Ptr +Functor from GHC.Base +GT from GHC.Types +Generic from GHC.Generics +Generic1 from GHC.Generics +Handle from GHC.IO.Handle.Types +HasCallStack from GHC.Stack.Types +HasField from GHC.Records +Hashable from Data.Hashable.Class +HeapOverflow from GHC.IO.Exception +IO from GHC.Types +IOException from GHC.IO.Exception +IOMode from GHC.IO.IOMode +Identity from Data.Functor.Identity +Identity from Data.Functor.Identity +IndexOutOfBounds from GHC.IO.Exception +Infix from GHC.Generics +InfixI from GHC.Generics +Int from GHC.Types +Int16 from GHC.Int +Int32 from GHC.Int +Int64 from GHC.Int +Int8 from GHC.Int +IntMap from Data.IntMap.Internal +IntPtr from Foreign.Ptr +IntSet from Data.IntSet.Internal +Integer from GHC.Integer.Type +Integral from GHC.Real +IsLabel from GHC.OverloadedLabels +IsString from Data.String +Just from GHC.Maybe +K1 from GHC.Generics +K1 from GHC.Generics +KnownNat from GHC.TypeNats +KnownSymbol from GHC.TypeLits +L1 from GHC.Generics +LByteString from Protolude +LT from GHC.Types +LText from Protolude +Last from Data.Monoid +Last from Data.Monoid +Left from Data.Either +LeftAssociative from GHC.Generics +Leniency from Protolude.Conv +Lenient from Protolude.Conv +Location from GHC.ExecutionStack.Internal +Location from GHC.ExecutionStack.Internal +LossOfPrecision from GHC.Exception.Type +M1 from GHC.Generics +M1 from GHC.Generics +MVar from GHC.MVar +Map from Data.Map.Internal +MaskedInterruptible from GHC.IO +MaskedUninterruptible from GHC.IO +MaskingState from GHC.IO +Maybe from GHC.Maybe +Meta from GHC.Generics +MetaCons from GHC.Generics +MetaData from GHC.Generics +MetaSel from GHC.Generics +Monad from GHC.Base +MonadError from Control.Monad.Error.Class +MonadIO from Control.Monad.IO.Class +MonadPlus from GHC.Base +MonadReader from Control.Monad.Reader.Class +MonadState from Control.Monad.State.Class +Monoid from GHC.Base +NFData from Control.DeepSeq +Nat from GHC.Types +NestedAtomically from Control.Exception.Base +NestedAtomically from Control.Exception.Base +NoMethodError from Control.Exception.Base +NoMethodError from Control.Exception.Base +NonEmpty from GHC.Base +NonTermination from Control.Exception.Base +NonTermination from Control.Exception.Base +NotAssociative from GHC.Generics +Nothing from GHC.Maybe +Num from GHC.Num +OnDecodeError from Data.Text.Encoding.Error +OnError from Data.Text.Encoding.Error +Option from Data.Semigroup +Option from Data.Semigroup +Ord from GHC.Classes +Ordering from GHC.Types +Overflow from GHC.Exception.Type +PatternMatchFail from Control.Exception.Base +PatternMatchFail from Control.Exception.Base +Prefix from GHC.Generics +PrefixI from GHC.Generics +Print from Protolude.Show +Product from Data.Semigroup.Internal +Product from Data.Semigroup.Internal +Proxy from Data.Proxy +Proxy from Data.Proxy +Ptr from GHC.Ptr +QSem from Control.Concurrent.QSem +QSemN from Control.Concurrent.QSemN +R1 from GHC.Generics +Ratio from GHC.Real +RatioZeroDenominator from GHC.Exception.Type +Rational from GHC.Real +Read from GHC.Read +ReadMode from GHC.IO.IOMode +ReadWriteMode from GHC.IO.IOMode +Reader from Control.Monad.Trans.Reader +ReaderT from Control.Monad.Trans.Reader +ReaderT from Control.Monad.Trans.Reader +Real from GHC.Real +RealFloat from GHC.Float +RealFrac from GHC.Real +Rec0 from GHC.Generics +RecConError from Control.Exception.Base +RecConError from Control.Exception.Base +RecSelError from Control.Exception.Base +RecSelError from Control.Exception.Base +RecUpdError from Control.Exception.Base +RecUpdError from Control.Exception.Base +Refl from Data.Type.Equality +Rep from GHC.Generics +Right from Data.Either +RightAssociative from GHC.Generics +S1 from GHC.Generics +ST from GHC.ST +STM from GHC.Conc.Sync +Selector from GHC.Generics +Semigroup from GHC.Base +Semiring from Protolude.Semiring +Seq from Data.Sequence.Internal +Set from Data.Set.Internal +Show from GHC.Show +SomeAsyncException from GHC.IO.Exception +SomeAsyncException from GHC.IO.Exception +SomeException from GHC.Exception.Type +SomeException from GHC.Exception.Type +SomeNat from GHC.TypeNats +SomeNat from GHC.TypeNats +SomeSymbol from GHC.TypeLits +SomeSymbol from GHC.TypeLits +SrcLoc from GHC.ExecutionStack.Internal +SrcLoc from GHC.ExecutionStack.Internal +StablePtr from GHC.Stable +StackOverflow from GHC.IO.Exception +State from Control.Monad.Trans.State.Lazy +StateT from Control.Monad.Trans.State.Lazy +StateT from Control.Monad.Trans.State.Lazy +StaticPtr from GHC.StaticPtr +Storable from Foreign.Storable +Strict from Protolude.Conv +StringConv from Protolude.Conv +Sum from Data.Semigroup.Internal +Sum from Data.Semigroup.Internal +Symbol from GHC.Types +Text from Data.Text.Internal +ThreadId from GHC.Conc.Sync +ThreadKilled from GHC.IO.Exception +Traversable from Data.Traversable +True from GHC.Types +Type from GHC.Types +TypeError from Control.Exception.Base +TypeError from Control.Exception.Base +TypeRep from Data.Typeable +Typeable from Data.Typeable.Internal +U1 from GHC.Generics +U1 from GHC.Generics +URec from GHC.Generics +UndefinedElement from GHC.IO.Exception +Underflow from GHC.Exception.Type +UnicodeException from Data.Text.Encoding.Error +Unmasked from GHC.IO +UserInterrupt from GHC.IO.Exception +V1 from GHC.Generics +Void from Data.Void +Word from GHC.Types +Word16 from GHC.Word +Word32 from GHC.Word +Word64 from GHC.Word +Word8 from GHC.Word +WordPtr from Foreign.Ptr +WrappedMonoid from Data.Semigroup +WriteMode from GHC.IO.IOMode +ZipList from Control.Applicative +ZipList from Control.Applicative +^ from GHC.Real +^%^ from GHC.Real +^^ from GHC.Real +^^%^^ from GHC.Real +abs from GHC.Num +absurd from Data.Void +acos from GHC.Float +acosh from GHC.Float +addMVarFinalizer from Control.Concurrent.MVar +all from Data.Foldable +allowInterrupt from Control.Exception +and from Data.Foldable +any from Data.Foldable +ap from GHC.Base +appEndo from Data.Semigroup.Internal +appendFile from Data.Text.IO +applyN from Protolude +asTypeOf from GHC.Base +asin from GHC.Float +asinh from GHC.Float +ask from Control.Monad.Reader.Class +asks from Control.Monad.Reader.Class +asum from Data.Foldable +async from Control.Concurrent.Async +asyncBound from Control.Concurrent.Async +asyncExceptionFromException from GHC.IO.Exception +asyncExceptionToException from GHC.IO.Exception +asyncOn from Control.Concurrent.Async +asyncThreadId from Control.Concurrent.Async +atDef from Protolude.Safe +atMay from Protolude.Safe +atan from GHC.Float +atan2 from GHC.Float +atanh from GHC.Float +atomically from GHC.Conc.Sync +bimap from Data.Bifunctor +bit from Data.Bits +bitDefault from Data.Bits +bitSize from Data.Bits +bitSizeMaybe from Data.Bits +bool from Protolude.Bool +boundedEnumFrom from GHC.Enum +boundedEnumFromThen from GHC.Enum +bracket from Control.Exception.Base +bracketOnError from Control.Exception.Base +bracket_ from Control.Exception.Base +break from GHC.List +byteSwap16 from GHC.Word +byteSwap32 from GHC.Word +byteSwap64 from GHC.Word +callStack from GHC.Stack +cancel from Control.Concurrent.Async +cancelWith from Control.Concurrent.Async +cast from Data.Typeable +castWith from Data.Type.Equality +catMaybes from Data.Maybe +catch from GHC.IO +catchE from Control.Monad.Trans.Except +catchError from Control.Monad.Error.Class +catchJust from Control.Exception.Base +catchSTM from GHC.Conc.Sync +catches from Control.Exception +ceiling from GHC.Real +check from Control.Monad.STM +chr from GHC.Char +cis from Data.Complex +clearBit from Data.Bits +coerceWith from Data.Type.Coercion +compare from GHC.Classes +comparing from Data.Ord +complement from Data.Bits +complementBit from Data.Bits +conFixity from GHC.Generics +conIsRecord from GHC.Generics +conName from GHC.Generics +concat from Data.Foldable +concatMap from Data.Foldable +concatMapM from Protolude.Monad +concurrently from Control.Concurrent.Async +conjugate from Data.Complex +const from GHC.Base +cos from GHC.Float +cosh from GHC.Float +countLeadingZeros from Data.Bits +countTrailingZeros from Data.Bits +currentCallStack from GHC.Stack.CCS +curry from Data.Tuple +cycle from GHC.List +cycle1 from Data.Semigroup +datatypeName from GHC.Generics +decodeFloat from GHC.Float +decodeUtf8 from Data.Text.Encoding +decodeUtf8' from Data.Text.Encoding +decodeUtf8With from Data.Text.Encoding +deepseq from Control.DeepSeq +denominator from GHC.Real +die from Protolude +diff from Data.Semigroup +displayException from GHC.Exception.Type +div from GHC.Real +divMod from GHC.Real +divZeroError from GHC.Real +drop from GHC.List +dropWhile from GHC.List +dupChan from Control.Concurrent.Chan +either from Data.Either +eitherA from Protolude.Applicative +elem from Data.Foldable +empty from GHC.Base +encodeFloat from GHC.Float +encodeUtf8 from Data.Text.Encoding +enumFrom from GHC.Enum +enumFromThen from GHC.Enum +enumFromThenTo from GHC.Enum +enumFromTo from GHC.Enum +eqT from Data.Typeable +evalState from Control.Monad.Trans.State.Lazy +evalStateT from Control.Monad.Trans.State.Lazy +evaluate from GHC.IO +even from GHC.Real +execState from Control.Monad.Trans.State.Lazy +execStateT from Control.Monad.Trans.State.Lazy +exitFailure from System.Exit +exitSuccess from System.Exit +exitWith from System.Exit +exp from GHC.Float +expm1 from GHC.Float +exponent from GHC.Float +fatalErrorMessage from Protolude.Panic +filter from GHC.List +filterM from Control.Monad +finally from Control.Exception.Base +find from Data.Foldable +finiteBitSize from Data.Bits +first from Data.Bifunctor +fix from Data.Function +fixST from Control.Monad.ST.Imp +flip from GHC.Base +floatDigits from GHC.Float +floatRadix from GHC.Float +floatRange from GHC.Float +floor from GHC.Real +fmap from GHC.Base +fmapDefault from Data.Traversable +fold from Data.Foldable +foldM from Control.Monad +foldM_ from Control.Monad +foldMap from Data.Foldable +foldMapDefault from Data.Traversable +foldl from Data.Foldable +foldl' from Data.Foldable +foldl1May from Protolude.Safe +foldl1May' from Protolude.Safe +foldlM from Data.Foldable +foldr from Data.Foldable +foldr' from Data.Foldable +foldr1May from Protolude.Safe +foldrM from Data.Foldable +for from Data.Traversable +forM from Data.Traversable +forM_ from Data.Foldable +for_ from Data.Foldable +force from Control.DeepSeq +foreach from Protolude.Functor +forever from Control.Monad +forkFinally from Control.Concurrent +forkIO from GHC.Conc.Sync +forkIOWithUnmask from GHC.Conc.Sync +forkOS from Control.Concurrent +forkOSWithUnmask from Control.Concurrent +forkOn from GHC.Conc.Sync +forkOnWithUnmask from GHC.Conc.Sync +from from GHC.Generics +fromEnum from GHC.Enum +fromException from GHC.Exception.Type +fromInteger from GHC.Num +fromIntegral from GHC.Real +fromLabel from GHC.OverloadedLabels +fromLeft from Data.Either +fromMaybe from Data.Maybe +fromRational from GHC.Real +fromRight from Data.Either +fromStrict from Data.Text.Lazy +fst from Data.Tuple +functionName from GHC.ExecutionStack.Internal +gcastWith from Data.Type.Equality +gcd from GHC.Real +gcdInt' from GHC.Real +gcdWord' from GHC.Real +genericDrop from Data.OldList +genericLength from Data.OldList +genericReplicate from Data.OldList +genericSplitAt from Data.OldList +genericTake from Data.OldList +get from Control.Monad.State.Class +getAll from Data.Semigroup.Internal +getAlt from Data.Semigroup.Internal +getAny from Data.Semigroup.Internal +getAp from Data.Monoid +getArgs from System.Environment +getCallStack from GHC.Stack.Types +getChanContents from Control.Concurrent.Chan +getConst from Data.Functor.Const +getContents from Data.Text.IO +getDual from Data.Semigroup.Internal +getField from GHC.Records +getFirst from Data.Monoid +getLast from Data.Monoid +getLine from Data.Text.IO +getMaskingState from GHC.IO +getNumCapabilities from GHC.Conc.Sync +getOption from Data.Semigroup +getProduct from Data.Semigroup.Internal +getStackTrace from GHC.ExecutionStack +getSum from Data.Semigroup.Internal +getZipList from Control.Applicative +gets from Control.Monad.State.Class +group from Data.OldList +groupBy from Data.OldList +guard from Control.Monad +guardM from Protolude.Bool +guarded from Protolude +guardedA from Protolude +hPutStr from Protolude.Show +hPutStrLn from Protolude.Show +handle from Control.Exception.Base +handleJust from Control.Exception.Base +hash from Data.Hashable.Class +hashUsing from Data.Hashable.Class +hashWithSalt from Data.Hashable.Class +head from Protolude.List +headDef from Protolude.Safe +headMay from Protolude.Safe +hush from Protolude.Exceptions +identity from Protolude +ifM from Protolude.Bool +ignore from Data.Text.Encoding.Error +imagPart from Data.Complex +infinity from GHC.Real +initDef from Protolude.Safe +initMay from Protolude.Safe +initSafe from Protolude.Safe +inits from Data.OldList +integralEnumFrom from GHC.Real +integralEnumFromThen from GHC.Real +integralEnumFromThenTo from GHC.Real +integralEnumFromTo from GHC.Real +interact from Data.Text.IO +intercalate from Data.OldList +interruptible from GHC.IO +intersperse from Data.OldList +ioError from GHC.IO.Exception +isCurrentThreadBound from Control.Concurrent +isDenormalized from GHC.Float +isEmptyMVar from GHC.MVar +isIEEE from GHC.Float +isInfinite from GHC.Float +isJust from Data.Maybe +isLeft from Data.Either +isNaN from GHC.Float +isNegativeZero from GHC.Float +isNewtype from GHC.Generics +isNothing from Data.Maybe +isPrefixOf from Data.OldList +isRight from Data.Either +isSigned from Data.Bits +iterate from GHC.List +join from GHC.Base +killThread from GHC.Conc.Sync +lastDef from Protolude.Safe +lastMay from Protolude.Safe +lcm from GHC.Real +leftToMaybe from Protolude.Either +lefts from Data.Either +length from Data.Foldable +lenientDecode from Data.Text.Encoding.Error +lift from Control.Monad.Trans.Class +liftA from GHC.Base +liftA2 from GHC.Base +liftA3 from GHC.Base +liftAA2 from Protolude.Applicative +liftIO from Control.Monad.IO.Class +liftIO1 from Protolude +liftIO2 from Protolude +liftM from GHC.Base +liftM' from Protolude.Monad +liftM2 from GHC.Base +liftM2' from Protolude.Monad +liftM3 from GHC.Base +liftM4 from GHC.Base +liftM5 from GHC.Base +lines from Data.Text +link from Control.Concurrent.Async +link2 from Control.Concurrent.Async +list from Protolude.List +listToMaybe from Data.Maybe +local from Control.Monad.Reader.Class +log from GHC.Float +log1mexp from GHC.Float +log1p from GHC.Float +log1pexp from GHC.Float +logBase from GHC.Float +magnitude from Data.Complex +many from GHC.Base +map from Protolude +mapAccumL from Data.Traversable +mapAccumR from Data.Traversable +mapAndUnzipM from Control.Monad +mapExcept from Control.Monad.Trans.Except +mapExceptT from Control.Monad.Trans.Except +mapException from Control.Exception.Base +mapM from Data.Traversable +mapM_ from Data.Foldable +mapMaybe from Data.Maybe +mappend from GHC.Base +mask from GHC.IO +mask_ from GHC.IO +max from GHC.Classes +maxBound from GHC.Enum +maxInt from GHC.Base +maximum from Data.Foldable +maximumBy from Data.Foldable +maximumDef from Protolude.Safe +maximumMay from Protolude.Safe +maybe from Data.Maybe +maybeEmpty from Protolude.Either +maybeToEither from Protolude.Either +maybeToLeft from Protolude.Either +maybeToList from Data.Maybe +maybeToRight from Protolude.Either +mconcat from GHC.Base +mempty from GHC.Base +mfilter from Control.Monad +min from GHC.Classes +minBound from GHC.Enum +minInt from GHC.Base +minimum from Data.Foldable +minimumBy from Data.Foldable +minimumDef from Protolude.Safe +minimumMay from Protolude.Safe +mkPolar from Data.Complex +mkWeakMVar from Control.Concurrent.MVar +mkWeakThreadId from GHC.Conc.Sync +mod from GHC.Real +modify from Control.Monad.State.Class +modifyMVar from Control.Concurrent.MVar +modifyMVarMasked from Control.Concurrent.MVar +modifyMVarMasked_ from Control.Concurrent.MVar +modifyMVar_ from Control.Concurrent.MVar +moduleName from GHC.Generics +mplus from GHC.Base +msum from Data.Foldable +mtimesDefault from Data.Semigroup +myThreadId from GHC.Conc.Sync +mzero from GHC.Base +natVal from GHC.TypeLits +negate from GHC.Num +newChan from Control.Concurrent.Chan +newEmptyMVar from GHC.MVar +newMVar from GHC.MVar +newQSem from Control.Concurrent.QSem +newQSemN from Control.Concurrent.QSemN +nonEmpty from Data.List.NonEmpty +not from GHC.Classes +notANumber from GHC.Real +notElem from Data.Foldable +notImplemented from Debug +note from Protolude.Exceptions +null from Data.Foldable +numerator from GHC.Real +numericEnumFrom from GHC.Real +numericEnumFromThen from GHC.Real +numericEnumFromThenTo from GHC.Real +numericEnumFromTo from GHC.Real +objectName from GHC.ExecutionStack.Internal +odd from GHC.Real +on from Data.Function +onException from Control.Exception.Base +one from Protolude.Semiring +openFile from GHC.IO.Handle.FD +option from Data.Semigroup +optional from Control.Applicative +or from Data.Foldable +orAlt from Protolude.Applicative +orElse from GHC.Conc.Sync +orEmpty from Protolude.Applicative +ord from GHC.Base +ordNub from Protolude.List +otherwise from GHC.Base +overflowError from GHC.Real +packageName from GHC.Generics +panic from Protolude.Panic +partitionEithers from Data.Either +pass from Protolude +permutations from Data.OldList +phase from Data.Complex +pi from GHC.Float +polar from Data.Complex +poll from Control.Concurrent.Async +popCount from Data.Bits +popCountDefault from Data.Bits +pred from GHC.Enum +prettyCallStack from GHC.Exception +prettySrcLoc from GHC.Exception +print from Protolude +product from Protolude.List +properFraction from GHC.Real +pure from GHC.Base +purer from Protolude.Applicative +put from Control.Monad.State.Class +putByteString from Protolude.Show +putErrLn from Protolude.Show +putErrText from Protolude.Show +putLByteString from Protolude.Show +putLText from Protolude.Show +putMVar from GHC.MVar +putStr from Protolude.Show +putStrLn from Protolude.Show +putText from Protolude.Show +quot from GHC.Real +quotRem from GHC.Real +race from Control.Concurrent.Async +race_ from Control.Concurrent.Async +ratioPrec from GHC.Real +ratioPrec1 from GHC.Real +ratioZeroDenominatorError from GHC.Real +readChan from Control.Concurrent.Chan +readEither from Protolude +readFile from Data.Text.IO +readMVar from GHC.MVar +readMaybe from Protolude +reader from Control.Monad.Reader.Class +reads from Text.Read +realPart from Data.Complex +realToFrac from GHC.Real +recip from GHC.Real +reduce from GHC.Real +rem from GHC.Real +repeat from GHC.List +replace from Data.Text.Encoding.Error +replicate from GHC.List +replicateM from Control.Monad +replicateM_ from Control.Monad +repr from Data.Type.Coercion +retry from GHC.Conc.Sync +return from GHC.Base +reverse from GHC.List +rightToMaybe from Protolude.Either +rights from Data.Either +rnf from Control.DeepSeq +rotate from Data.Bits +rotateL from Data.Bits +rotateR from Data.Bits +round from GHC.Real +rtsSupportsBoundThreads from Control.Concurrent +runConcurrently from Control.Concurrent.Async +runExcept from Control.Monad.Trans.Except +runExceptT from Control.Monad.Trans.Except +runIdentity from Data.Functor.Identity +runInBoundThread from Control.Concurrent +runInUnboundThread from Control.Concurrent +runReader from Control.Monad.Trans.Reader +runReaderT from Control.Monad.Trans.Reader +runST from GHC.ST +runState from Control.Monad.Trans.State.Lazy +runStateT from Control.Monad.Trans.State.Lazy +scaleFloat from GHC.Float +scanl from GHC.List +scanl' from GHC.List +scanr from GHC.List +sconcat from GHC.Base +second from Data.Bifunctor +selDecidedStrictness from GHC.Generics +selName from GHC.Generics +selSourceStrictness from GHC.Generics +selSourceUnpackedness from GHC.Generics +seq from GHC.Prim +sequence from Data.Traversable +sequenceA from Data.Traversable +sequenceA_ from Data.Foldable +sequence_ from Data.Foldable +setBit from Data.Bits +setNumCapabilities from GHC.Conc.Sync +shift from Data.Bits +shiftL from Data.Bits +shiftR from Data.Bits +show from Protolude +showStackTrace from GHC.ExecutionStack +signalQSem from Control.Concurrent.QSem +signalQSemN from Control.Concurrent.QSemN +significand from GHC.Float +signum from GHC.Num +sin from GHC.Float +sinh from GHC.Float +snd from Data.Tuple +some from GHC.Base +someNatVal from GHC.TypeLits +someSymbolVal from GHC.TypeLits +sort from Data.OldList +sortBy from Data.OldList +sortOn from Protolude.List +sourceColumn from GHC.ExecutionStack.Internal +sourceFile from GHC.ExecutionStack.Internal +sourceLine from GHC.ExecutionStack.Internal +splitAt from GHC.List +sqrt from GHC.Float +srcLoc from GHC.ExecutionStack.Internal +state from Control.Monad.State.Class +stderr from GHC.IO.Handle.FD +stdin from GHC.IO.Handle.FD +stdout from GHC.IO.Handle.FD +stimes from GHC.Base +stimesIdempotent from Data.Semigroup.Internal +stimesIdempotentMonoid from Data.Semigroup.Internal +stimesMonoid from Data.Semigroup.Internal +strConv from Protolude.Conv +strictDecode from Data.Text.Encoding.Error +subsequences from Data.OldList +subtract from GHC.Num +succ from GHC.Enum +sum from Protolude.List +swap from Data.Tuple +swapMVar from Control.Concurrent.MVar +sym from Data.Type.Equality +symbolVal from GHC.TypeLits +tailDef from Protolude.Safe +tailMay from Protolude.Safe +tailSafe from Protolude.Safe +tails from Data.OldList +take from GHC.List +takeMVar from GHC.MVar +takeWhile from GHC.List +tan from GHC.Float +tanh from GHC.Float +testBit from Data.Bits +testBitDefault from Data.Bits +threadCapability from GHC.Conc.Sync +threadDelay from GHC.Conc.IO +threadWaitRead from Control.Concurrent +threadWaitReadSTM from Control.Concurrent +threadWaitWrite from Control.Concurrent +threadWaitWriteSTM from Control.Concurrent +throwE from Control.Monad.Trans.Except +throwError from Control.Monad.Error.Class +throwIO from Protolude +throwSTM from GHC.Conc.Sync +throwTo from Protolude +to from GHC.Generics +toEnum from GHC.Enum +toException from GHC.Exception.Type +toInteger from GHC.Real +toIntegralSized from Data.Bits +toList from Data.Foldable +toRational from GHC.Real +toS from Protolude.Conv +toSL from Protolude.Conv +toStrict from Data.Text.Lazy +trace from Debug +traceIO from Debug +traceId from Debug +traceM from Debug +traceShow from Debug +traceShowId from Debug +traceShowM from Debug +trans from Data.Type.Equality +transpose from Data.OldList +traverse from Data.Traversable +traverse_ from Data.Foldable +truncate from GHC.Real +try from Control.Exception.Base +tryIO from Protolude.Exceptions +tryJust from Control.Exception.Base +tryPutMVar from GHC.MVar +tryReadMVar from GHC.MVar +tryTakeMVar from GHC.MVar +typeRep from Data.Typeable +unComp1 from GHC.Generics +unK1 from GHC.Generics +unM1 from GHC.Generics +uncons from Protolude +uncurry from Data.Tuple +undefined from Debug +underflowError from GHC.Real +unfoldr from Data.OldList +uninterruptibleMask from GHC.IO +uninterruptibleMask_ from GHC.IO +unless from Control.Monad +unlessM from Protolude.Bool +unlines from Data.Text +unsnoc from Protolude +until from GHC.Base +unwords from Data.Text +unzip from GHC.List +vacuous from Data.Void +void from Data.Functor +wait from Control.Concurrent.Async +waitAny from Control.Concurrent.Async +waitAnyCancel from Control.Concurrent.Async +waitAnyCatch from Control.Concurrent.Async +waitAnyCatchCancel from Control.Concurrent.Async +waitBoth from Control.Concurrent.Async +waitCatch from Control.Concurrent.Async +waitEither from Control.Concurrent.Async +waitEitherCancel from Control.Concurrent.Async +waitEitherCatch from Control.Concurrent.Async +waitEitherCatchCancel from Control.Concurrent.Async +waitEither_ from Control.Concurrent.Async +waitQSem from Control.Concurrent.QSem +waitQSemN from Control.Concurrent.QSemN +when from GHC.Base +whenM from Protolude.Bool +withAsync from Control.Concurrent.Async +withAsyncBound from Control.Concurrent.Async +withAsyncOn from Control.Concurrent.Async +withExcept from Control.Monad.Trans.Except +withExceptT from Control.Monad.Trans.Except +withFile from System.IO +withFrozenCallStack from GHC.Stack +withMVar from Control.Concurrent.MVar +withMVarMasked from Control.Concurrent.MVar +withState from Control.Monad.Trans.State.Lazy +witness from Debug +words from Data.Text +writeChan from Control.Concurrent.Chan +writeFile from Data.Text.IO +writeList2Chan from Control.Concurrent.Chan +xor from Data.Bits +zero from Protolude.Semiring +zeroBits from Data.Bits +zip from GHC.List +zipWith from GHC.List +zipWithM from Control.Monad +zipWithM_ from Control.Monad +|| from GHC.Classes +||^ from Protolude.Bool diff --git a/src/protolude/export_lists/protolude-4.exports b/src/protolude/export_lists/protolude-4.exports new file mode 100644 index 000000000..e69de29bb diff --git a/src/protolude/export_lists/protolude-5.exports b/src/protolude/export_lists/protolude-5.exports new file mode 100644 index 000000000..e69de29bb diff --git a/src/protolude/export_lists/protolude-6.exports b/src/protolude/export_lists/protolude-6.exports new file mode 100644 index 000000000..e69de29bb diff --git a/src/protolude/export_lists/protolude-7.exports b/src/protolude/export_lists/protolude-7.exports new file mode 100644 index 000000000..d347ffca6 --- /dev/null +++ b/src/protolude/export_lists/protolude-7.exports @@ -0,0 +1,956 @@ +$ from GHC.Base +$! from Protolude.Base +$!! from Control.DeepSeq +$> from Data.Functor +% from GHC.Real +& from Data.Function +&& from GHC.Classes +&&^ from Protolude.Bool +* from GHC.Num +* from GHC.Types +** from GHC.Float +*> from GHC.Base ++ from GHC.Num +++ from GHC.Base +- from GHC.Num +. from GHC.Base +.&. from Data.Bits +.|. from Data.Bits +/ from GHC.Real +/= from GHC.Classes +:% from GHC.Real +:*: from GHC.Generics +:*: from GHC.Generics +:+ from Data.Complex +:+: from GHC.Generics +:.: from GHC.Generics +:| from Data.List.NonEmpty +:~: from Data.Type.Equality +< from GHC.Classes +<$ from GHC.Base +<$!> from Control.Monad +<$> from Data.Functor +<&&> from Protolude.Bool +<&> from Protolude.Functor +<* from GHC.Base +<**> from GHC.Base +<*> from GHC.Base +<.> from Protolude.Semiring +<<$>> from Protolude.Functor +<<*>> from Protolude.Applicative +<= from GHC.Classes +<=< from Control.Monad +<> from Data.Monoid +<|> from GHC.Base +<||> from Protolude.Bool +=<< from GHC.Base +== from GHC.Classes +== from Data.Type.Equality +> from GHC.Classes +>= from GHC.Classes +>=> from Control.Monad +>> from GHC.Base +>>= from GHC.Base +All from Data.Monoid +All from Data.Monoid +AllocationLimitExceeded from GHC.IO.Exception +AllocationLimitExceeded from GHC.IO.Exception +Alt from Data.Monoid +Alt from Data.Monoid +Alternative from GHC.Base +Any from Data.Monoid +Any from Data.Monoid +AppendMode from GHC.IO.IOMode +Applicative from GHC.Base +ArithException from GHC.Exception +ArrayException from GHC.IO.Exception +AssertionFailed from GHC.IO.Exception +AssertionFailed from GHC.IO.Exception +Associativity from GHC.Generics +Async from Control.Concurrent.Async +AsyncException from GHC.IO.Exception +Bifunctor from Data.Bifunctor +Bits from Data.Bits +BlockedIndefinitelyOnMVar from GHC.IO.Exception +BlockedIndefinitelyOnMVar from GHC.IO.Exception +BlockedIndefinitelyOnSTM from GHC.IO.Exception +BlockedIndefinitelyOnSTM from GHC.IO.Exception +Bool from GHC.Types +Bounded from GHC.Enum +ByteString from Data.ByteString.Internal +C1 from GHC.Generics +CallStack from GHC.Stack.Types +Chan from Control.Concurrent.Chan +Char from GHC.Types +CmpNat from GHC.TypeLits +Coercible from GHC.Types +Coercion from Data.Type.Coercion +Coercion from Data.Type.Coercion +Comp1 from GHC.Generics +Complex from Data.Complex +Concurrently from Control.Concurrent.Async +Concurrently from Control.Concurrent.Async +Const from Data.Functor.Const +Const from Data.Functor.Const +Constraint from GHC.Types +Constructor from GHC.Generics +D# from GHC.Types +D1 from GHC.Generics +Datatype from GHC.Generics +Deadlock from GHC.IO.Exception +Deadlock from GHC.IO.Exception +Denormal from GHC.Exception +DivideByZero from GHC.Exception +Double from GHC.Types +Down from Data.Ord +Down from Data.Ord +Dual from Data.Monoid +Dual from Data.Monoid +EQ from GHC.Types +Either from Data.Either +Endo from Data.Monoid +Endo from Data.Monoid +Enum from GHC.Enum +Eq from GHC.Classes +ErrorCall from GHC.Exception +ErrorCall from GHC.Exception +ErrorCallWithLocation from GHC.Exception +Except from Control.Monad.Trans.Except +ExceptT from Control.Monad.Trans.Except +ExceptT from Control.Monad.Trans.Except +Exception from GHC.Exception +ExitCode from GHC.IO.Exception +ExitFailure from GHC.IO.Exception +ExitSuccess from GHC.IO.Exception +F# from GHC.Types +False from GHC.Types +FatalError from Protolude.Panic +FatalError from Protolude.Panic +FilePath from GHC.IO +FiniteBits from Data.Bits +First from Data.Monoid +First from Data.Monoid +Fixity from GHC.Generics +FixityI from GHC.Generics +Float from GHC.Types +Floating from GHC.Float +Foldable from Data.Foldable +Fractional from GHC.Real +FunPtr from GHC.Ptr +Functor from GHC.Base +GT from GHC.Types +Generic from GHC.Generics +Generic1 from GHC.Generics +Handle from GHC.IO.Handle.Types +HasCallStack from GHC.Stack.Types +Hashable from Data.Hashable.Class +HeapOverflow from GHC.IO.Exception +IO from GHC.Types +IOException from GHC.IO.Exception +IOMode from GHC.IO.IOMode +Identity from Data.Functor.Identity +Identity from Data.Functor.Identity +IndexOutOfBounds from GHC.IO.Exception +Infix from GHC.Generics +InfixI from GHC.Generics +Int from GHC.Types +Int16 from GHC.Int +Int32 from GHC.Int +Int64 from GHC.Int +Int8 from GHC.Int +IntMap from Data.IntMap.Base +IntPtr from Foreign.Ptr +IntSet from Data.IntSet.Base +Integer from GHC.Integer.Type +Integral from GHC.Real +IsLabel from GHC.OverloadedLabels +IsString from Data.String +Just from GHC.Base +K1 from GHC.Generics +K1 from GHC.Generics +KnownNat from GHC.TypeLits +KnownSymbol from GHC.TypeLits +L1 from GHC.Generics +LByteString from Protolude +LT from GHC.Types +LText from Protolude +Last from Data.Monoid +Last from Data.Monoid +Left from Data.Either +LeftAssociative from GHC.Generics +Leniency from Protolude.Conv +Lenient from Protolude.Conv +Location from GHC.ExecutionStack.Internal +Location from GHC.ExecutionStack.Internal +LossOfPrecision from GHC.Exception +M1 from GHC.Generics +M1 from GHC.Generics +MVar from GHC.MVar +Map from Data.Map.Base +MaskedInterruptible from GHC.IO +MaskedUninterruptible from GHC.IO +MaskingState from GHC.IO +Maybe from GHC.Base +Meta from GHC.Generics +MetaCons from GHC.Generics +MetaData from GHC.Generics +MetaSel from GHC.Generics +Monad from GHC.Base +MonadError from Control.Monad.Error.Class +MonadIO from Control.Monad.IO.Class +MonadPlus from GHC.Base +MonadReader from Control.Monad.Reader.Class +MonadState from Control.Monad.State.Class +Monoid from GHC.Base +NFData from Control.DeepSeq +Nat from GHC.Types +NestedAtomically from Control.Exception.Base +NestedAtomically from Control.Exception.Base +NoMethodError from Control.Exception.Base +NoMethodError from Control.Exception.Base +NonEmpty from Data.List.NonEmpty +NonTermination from Control.Exception.Base +NonTermination from Control.Exception.Base +NotAssociative from GHC.Generics +Nothing from GHC.Base +Num from GHC.Num +OnDecodeError from Data.Text.Encoding.Error +OnError from Data.Text.Encoding.Error +Option from Data.Semigroup +Option from Data.Semigroup +Ord from GHC.Classes +Ordering from GHC.Types +Overflow from GHC.Exception +PatternMatchFail from Control.Exception.Base +PatternMatchFail from Control.Exception.Base +Prefix from GHC.Generics +PrefixI from GHC.Generics +Print from Protolude.Show +Product from Data.Monoid +Product from Data.Monoid +Proxy from Data.Proxy +Proxy from Data.Proxy +Ptr from GHC.Ptr +QSem from Control.Concurrent.QSem +QSemN from Control.Concurrent.QSemN +R1 from GHC.Generics +Ratio from GHC.Real +RatioZeroDenominator from GHC.Exception +Rational from GHC.Real +Read from GHC.Read +ReadMode from GHC.IO.IOMode +ReadWriteMode from GHC.IO.IOMode +Reader from Control.Monad.Trans.Reader +ReaderT from Control.Monad.Trans.Reader +ReaderT from Control.Monad.Trans.Reader +Real from GHC.Real +RealFloat from GHC.Float +RealFrac from GHC.Real +Rec0 from GHC.Generics +RecConError from Control.Exception.Base +RecConError from Control.Exception.Base +RecSelError from Control.Exception.Base +RecSelError from Control.Exception.Base +RecUpdError from Control.Exception.Base +RecUpdError from Control.Exception.Base +Refl from Data.Type.Equality +Rep from GHC.Generics +Right from Data.Either +RightAssociative from GHC.Generics +S1 from GHC.Generics +ST from GHC.ST +STM from GHC.Conc.Sync +Selector from GHC.Generics +Semigroup from Data.Semigroup +Semiring from Protolude.Semiring +Seq from Data.Sequence +Set from Data.Set.Base +Show from GHC.Show +SomeAsyncException from GHC.IO.Exception +SomeAsyncException from GHC.IO.Exception +SomeException from GHC.Exception +SomeException from GHC.Exception +SomeNat from GHC.TypeLits +SomeNat from GHC.TypeLits +SomeSymbol from GHC.TypeLits +SomeSymbol from GHC.TypeLits +SrcLoc from GHC.ExecutionStack.Internal +SrcLoc from GHC.ExecutionStack.Internal +StablePtr from GHC.Stable +StackOverflow from GHC.IO.Exception +State from Control.Monad.Trans.State.Lazy +StateT from Control.Monad.Trans.State.Lazy +StateT from Control.Monad.Trans.State.Lazy +StaticPtr from GHC.StaticPtr +Storable from Foreign.Storable +Strict from Protolude.Conv +StringConv from Protolude.Conv +Sum from Data.Monoid +Sum from Data.Monoid +Symbol from GHC.Types +Text from Data.Text.Internal +ThreadId from GHC.Conc.Sync +ThreadKilled from GHC.IO.Exception +Traversable from Data.Traversable +True from GHC.Types +Type from GHC.Types +TypeError from Control.Exception.Base +TypeError from Control.Exception.Base +TypeRep from Data.Typeable.Internal +Typeable from Data.Typeable.Internal +U1 from GHC.Generics +U1 from GHC.Generics +URec from GHC.Generics +UndefinedElement from GHC.IO.Exception +Underflow from GHC.Exception +UnicodeException from Data.Text.Encoding.Error +Unmasked from GHC.IO +UserInterrupt from GHC.IO.Exception +V1 from GHC.Generics +Void from Data.Void +Word from GHC.Types +Word16 from GHC.Word +Word32 from GHC.Word +Word64 from GHC.Word +Word8 from GHC.Word +WordPtr from Foreign.Ptr +WrappedMonoid from Data.Semigroup +WriteMode from GHC.IO.IOMode +ZipList from Control.Applicative +ZipList from Control.Applicative +^ from GHC.Real +^%^ from GHC.Real +^^ from GHC.Real +^^%^^ from GHC.Real +abs from GHC.Num +absurd from Data.Void +acos from GHC.Float +acosh from GHC.Float +addMVarFinalizer from Control.Concurrent.MVar +all from Data.Foldable +allowInterrupt from Control.Exception +always from GHC.Conc.Sync +alwaysSucceeds from GHC.Conc.Sync +and from Data.Foldable +any from Data.Foldable +ap from GHC.Base +appEndo from Data.Monoid +appendFile from Data.Text.IO +applyN from Protolude +asTypeOf from GHC.Base +asin from GHC.Float +asinh from GHC.Float +ask from Control.Monad.Reader.Class +asks from Control.Monad.Reader.Class +asum from Data.Foldable +async from Control.Concurrent.Async +asyncBound from Control.Concurrent.Async +asyncExceptionFromException from GHC.IO.Exception +asyncExceptionToException from GHC.IO.Exception +asyncOn from Control.Concurrent.Async +asyncThreadId from Control.Concurrent.Async +atDef from Protolude.Safe +atMay from Protolude.Safe +atan from GHC.Float +atan2 from GHC.Float +atanh from GHC.Float +atomically from GHC.Conc.Sync +bimap from Data.Bifunctor +bit from Data.Bits +bitDefault from Data.Bits +bitSize from Data.Bits +bitSizeMaybe from Data.Bits +bool from Protolude.Bool +boundedEnumFrom from GHC.Enum +boundedEnumFromThen from GHC.Enum +bracket from Control.Exception.Base +bracketOnError from Control.Exception.Base +bracket_ from Control.Exception.Base +break from GHC.List +byteSwap16 from GHC.Word +byteSwap32 from GHC.Word +byteSwap64 from GHC.Word +callStack from GHC.Stack +cancel from Control.Concurrent.Async +cancelWith from Control.Concurrent.Async +cast from Data.Typeable +castWith from Data.Type.Equality +catMaybes from Data.Maybe +catch from Control.Exception.Base +catchE from Control.Monad.Trans.Except +catchError from Control.Monad.Error.Class +catchJust from Control.Exception.Base +catchSTM from GHC.Conc.Sync +catches from Control.Exception +ceiling from GHC.Real +check from Control.Monad.STM +chr from GHC.Char +cis from Data.Complex +clearBit from Data.Bits +coerceWith from Data.Type.Coercion +compare from GHC.Classes +comparing from Data.Ord +complement from Data.Bits +complementBit from Data.Bits +conFixity from GHC.Generics +conIsRecord from GHC.Generics +conName from GHC.Generics +concat from Data.Foldable +concatMap from Data.Foldable +concatMapM from Protolude.Monad +concurrently from Control.Concurrent.Async +conjugate from Data.Complex +const from GHC.Base +cos from GHC.Float +cosh from GHC.Float +countLeadingZeros from Data.Bits +countTrailingZeros from Data.Bits +currentCallStack from GHC.Stack.CCS +curry from Data.Tuple +cycle from GHC.List +cycle1 from Data.Semigroup +datatypeName from GHC.Generics +decodeFloat from GHC.Float +decodeUtf8 from Data.Text.Encoding +decodeUtf8' from Data.Text.Encoding +decodeUtf8With from Data.Text.Encoding +deepseq from Control.DeepSeq +denominator from GHC.Real +die from Protolude +diff from Data.Semigroup +displayException from GHC.Exception +div from GHC.Real +divMod from GHC.Real +divZeroError from GHC.Real +drop from GHC.List +dropWhile from GHC.List +dupChan from Control.Concurrent.Chan +either from Data.Either +eitherA from Protolude.Applicative +elem from Data.Foldable +empty from GHC.Base +encodeFloat from GHC.Float +encodeUtf8 from Data.Text.Encoding +enumFrom from GHC.Enum +enumFromThen from GHC.Enum +enumFromThenTo from GHC.Enum +enumFromTo from GHC.Enum +eqT from Data.Typeable +evalState from Control.Monad.Trans.State.Lazy +evalStateT from Control.Monad.Trans.State.Lazy +evaluate from GHC.IO +even from GHC.Real +execState from Control.Monad.Trans.State.Lazy +execStateT from Control.Monad.Trans.State.Lazy +exitFailure from System.Exit +exitSuccess from System.Exit +exitWith from System.Exit +exp from GHC.Float +expm1 from GHC.Float +exponent from GHC.Float +fatalErrorMessage from Protolude.Panic +filter from GHC.List +filterM from Control.Monad +finally from Control.Exception.Base +find from Data.Foldable +finiteBitSize from Data.Bits +first from Data.Bifunctor +fix from Data.Function +fixST from GHC.ST +flip from GHC.Base +floatDigits from GHC.Float +floatRadix from GHC.Float +floatRange from GHC.Float +floor from GHC.Real +fmap from GHC.Base +fmapDefault from Data.Traversable +fold from Data.Foldable +foldM from Control.Monad +foldM_ from Control.Monad +foldMap from Data.Foldable +foldMapDefault from Data.Traversable +foldl from Data.Foldable +foldl' from Data.Foldable +foldl1May from Protolude.Safe +foldl1May' from Protolude.Safe +foldlM from Data.Foldable +foldr from Data.Foldable +foldr' from Data.Foldable +foldr1May from Protolude.Safe +foldrM from Data.Foldable +for from Data.Traversable +forM from Data.Traversable +forM_ from Data.Foldable +for_ from Data.Foldable +force from Control.DeepSeq +foreach from Protolude.Functor +forever from Control.Monad +forkFinally from Control.Concurrent +forkIO from GHC.Conc.Sync +forkIOWithUnmask from GHC.Conc.Sync +forkOS from Control.Concurrent +forkOSWithUnmask from Control.Concurrent +forkOn from GHC.Conc.Sync +forkOnWithUnmask from GHC.Conc.Sync +from from GHC.Generics +fromEnum from GHC.Enum +fromException from GHC.Exception +fromInteger from GHC.Num +fromIntegral from GHC.Real +fromLabel from GHC.OverloadedLabels +fromLeft from Protolude.Either +fromMaybe from Data.Maybe +fromRational from GHC.Real +fromRight from Protolude.Either +fromStrict from Data.Text.Lazy +fst from Data.Tuple +functionName from GHC.ExecutionStack.Internal +gcastWith from Data.Type.Equality +gcd from GHC.Real +gcdInt' from GHC.Real +gcdWord' from GHC.Real +genericDrop from Data.OldList +genericLength from Data.OldList +genericReplicate from Data.OldList +genericSplitAt from Data.OldList +genericTake from Data.OldList +get from Control.Monad.State.Class +getAll from Data.Monoid +getAlt from Data.Monoid +getAny from Data.Monoid +getArgs from System.Environment +getCallStack from GHC.Stack.Types +getChanContents from Control.Concurrent.Chan +getConst from Data.Functor.Const +getContents from Data.Text.IO +getDual from Data.Monoid +getFirst from Data.Monoid +getLast from Data.Monoid +getLine from Data.Text.IO +getMaskingState from GHC.IO +getNumCapabilities from GHC.Conc.Sync +getOption from Data.Semigroup +getProduct from Data.Monoid +getStackTrace from GHC.ExecutionStack +getSum from Data.Monoid +getZipList from Control.Applicative +gets from Control.Monad.State.Class +group from Data.OldList +groupBy from Data.OldList +guard from Control.Monad +guardM from Protolude.Bool +guarded from Protolude +guardedA from Protolude +hPutStr from Protolude.Show +hPutStrLn from Protolude.Show +handle from Control.Exception.Base +handleJust from Control.Exception.Base +hash from Data.Hashable.Class +hashUsing from Data.Hashable.Class +hashWithSalt from Data.Hashable.Class +head from Protolude.List +headDef from Protolude.Safe +headMay from Protolude.Safe +hush from Protolude.Exceptions +identity from Protolude +ifM from Protolude.Bool +ignore from Data.Text.Encoding.Error +imagPart from Data.Complex +infinity from GHC.Real +initDef from Protolude.Safe +initMay from Protolude.Safe +initSafe from Protolude.Safe +inits from Data.OldList +integralEnumFrom from GHC.Real +integralEnumFromThen from GHC.Real +integralEnumFromThenTo from GHC.Real +integralEnumFromTo from GHC.Real +interact from Data.Text.IO +intercalate from Data.OldList +interruptible from GHC.IO +intersperse from Data.OldList +ioError from GHC.IO.Exception +isCurrentThreadBound from Control.Concurrent +isDenormalized from GHC.Float +isEmptyChan from Control.Concurrent.Chan +isEmptyMVar from GHC.MVar +isIEEE from GHC.Float +isInfinite from GHC.Float +isJust from Data.Maybe +isLeft from Data.Either +isNaN from GHC.Float +isNegativeZero from GHC.Float +isNewtype from GHC.Generics +isNothing from Data.Maybe +isPrefixOf from Data.OldList +isRight from Data.Either +isSigned from Data.Bits +iterate from GHC.List +join from GHC.Base +killThread from GHC.Conc.Sync +lastDef from Protolude.Safe +lastMay from Protolude.Safe +lcm from GHC.Real +leftToMaybe from Protolude.Either +lefts from Data.Either +length from Data.Foldable +lenientDecode from Data.Text.Encoding.Error +lift from Control.Monad.Trans.Class +liftA from GHC.Base +liftA2 from GHC.Base +liftA3 from GHC.Base +liftAA2 from Protolude.Applicative +liftIO from Control.Monad.IO.Class +liftIO1 from Protolude +liftIO2 from Protolude +liftM from GHC.Base +liftM' from Protolude.Monad +liftM2 from GHC.Base +liftM2' from Protolude.Monad +liftM3 from GHC.Base +liftM4 from GHC.Base +liftM5 from GHC.Base +lines from Data.Text +link from Control.Concurrent.Async +link2 from Control.Concurrent.Async +list from Protolude.List +listToMaybe from Data.Maybe +local from Control.Monad.Reader.Class +log from GHC.Float +log1mexp from GHC.Float +log1p from GHC.Float +log1pexp from GHC.Float +logBase from GHC.Float +magnitude from Data.Complex +many from GHC.Base +map from Protolude +mapAccumL from Data.Traversable +mapAccumR from Data.Traversable +mapAndUnzipM from Control.Monad +mapExcept from Control.Monad.Trans.Except +mapExceptT from Control.Monad.Trans.Except +mapException from Control.Exception.Base +mapM from Data.Traversable +mapM_ from Data.Foldable +mapMaybe from Data.Maybe +mappend from GHC.Base +mask from GHC.IO +mask_ from GHC.IO +max from GHC.Classes +maxBound from GHC.Enum +maxInt from GHC.Base +maximum from Data.Foldable +maximumBy from Data.Foldable +maximumDef from Protolude.Safe +maximumMay from Protolude.Safe +maybe from Data.Maybe +maybeEmpty from Protolude.Either +maybeToEither from Protolude.Either +maybeToLeft from Protolude.Either +maybeToList from Data.Maybe +maybeToRight from Protolude.Either +mconcat from GHC.Base +mempty from GHC.Base +mfilter from Control.Monad +min from GHC.Classes +minBound from GHC.Enum +minInt from GHC.Base +minimum from Data.Foldable +minimumBy from Data.Foldable +minimumDef from Protolude.Safe +minimumMay from Protolude.Safe +mkPolar from Data.Complex +mkWeakMVar from Control.Concurrent.MVar +mkWeakThreadId from GHC.Conc.Sync +mod from GHC.Real +modify from Control.Monad.State.Class +modifyMVar from Control.Concurrent.MVar +modifyMVarMasked from Control.Concurrent.MVar +modifyMVarMasked_ from Control.Concurrent.MVar +modifyMVar_ from Control.Concurrent.MVar +moduleName from GHC.Generics +mplus from GHC.Base +msum from Data.Foldable +mtimesDefault from Data.Semigroup +myThreadId from GHC.Conc.Sync +mzero from GHC.Base +natVal from GHC.TypeLits +negate from GHC.Num +newChan from Control.Concurrent.Chan +newEmptyMVar from GHC.MVar +newMVar from GHC.MVar +newQSem from Control.Concurrent.QSem +newQSemN from Control.Concurrent.QSemN +nonEmpty from Data.List.NonEmpty +not from GHC.Classes +notANumber from GHC.Real +notElem from Data.Foldable +notImplemented from Debug +note from Protolude.Exceptions +null from Data.Foldable +numerator from GHC.Real +numericEnumFrom from GHC.Real +numericEnumFromThen from GHC.Real +numericEnumFromThenTo from GHC.Real +numericEnumFromTo from GHC.Real +objectName from GHC.ExecutionStack.Internal +odd from GHC.Real +on from Data.Function +onException from Control.Exception.Base +one from Protolude.Semiring +openFile from GHC.IO.Handle.FD +option from Data.Semigroup +optional from Control.Applicative +or from Data.Foldable +orAlt from Protolude.Applicative +orElse from GHC.Conc.Sync +orEmpty from Protolude.Applicative +ord from GHC.Base +ordNub from Protolude.List +otherwise from GHC.Base +overflowError from GHC.Real +packageName from GHC.Generics +panic from Protolude.Panic +partitionEithers from Data.Either +pass from Protolude +permutations from Data.OldList +phase from Data.Complex +pi from GHC.Float +polar from Data.Complex +poll from Control.Concurrent.Async +popCount from Data.Bits +popCountDefault from Data.Bits +pred from GHC.Enum +prettyCallStack from GHC.Exception +prettySrcLoc from GHC.Exception +print from Protolude +product from Protolude.List +properFraction from GHC.Real +pure from GHC.Base +purer from Protolude.Applicative +put from Control.Monad.State.Class +putByteString from Protolude.Show +putErrLn from Protolude.Show +putErrText from Protolude.Show +putLByteString from Protolude.Show +putLText from Protolude.Show +putMVar from GHC.MVar +putStr from Protolude.Show +putStrLn from Protolude.Show +putText from Protolude.Show +quot from GHC.Real +quotRem from GHC.Real +race from Control.Concurrent.Async +race_ from Control.Concurrent.Async +ratioPrec from GHC.Real +ratioPrec1 from GHC.Real +ratioZeroDenominatorError from GHC.Real +readChan from Control.Concurrent.Chan +readEither from Protolude +readFile from Data.Text.IO +readMVar from GHC.MVar +readMaybe from Protolude +reader from Control.Monad.Reader.Class +reads from Text.Read +realPart from Data.Complex +realToFrac from GHC.Real +recip from GHC.Real +reduce from GHC.Real +rem from GHC.Real +repeat from GHC.List +replace from Data.Text.Encoding.Error +replicate from GHC.List +replicateM from Control.Monad +replicateM_ from Control.Monad +repr from Data.Type.Coercion +retry from GHC.Conc.Sync +return from GHC.Base +reverse from GHC.List +rightToMaybe from Protolude.Either +rights from Data.Either +rnf from Control.DeepSeq +rotate from Data.Bits +rotateL from Data.Bits +rotateR from Data.Bits +round from GHC.Real +rtsSupportsBoundThreads from Control.Concurrent +runConcurrently from Control.Concurrent.Async +runExcept from Control.Monad.Trans.Except +runExceptT from Control.Monad.Trans.Except +runIdentity from Data.Functor.Identity +runInBoundThread from Control.Concurrent +runInUnboundThread from Control.Concurrent +runReader from Control.Monad.Trans.Reader +runReaderT from Control.Monad.Trans.Reader +runST from GHC.ST +runState from Control.Monad.Trans.State.Lazy +runStateT from Control.Monad.Trans.State.Lazy +scaleFloat from GHC.Float +scanl from GHC.List +scanl' from GHC.List +scanr from GHC.List +sconcat from Data.Semigroup +second from Data.Bifunctor +selDecidedStrictness from GHC.Generics +selName from GHC.Generics +selSourceStrictness from GHC.Generics +selSourceUnpackedness from GHC.Generics +seq from GHC.Prim +sequence from Data.Traversable +sequenceA from Data.Traversable +sequenceA_ from Data.Foldable +sequence_ from Data.Foldable +setBit from Data.Bits +setNumCapabilities from GHC.Conc.Sync +shift from Data.Bits +shiftL from Data.Bits +shiftR from Data.Bits +show from Protolude +showStackTrace from GHC.ExecutionStack +signalQSem from Control.Concurrent.QSem +signalQSemN from Control.Concurrent.QSemN +significand from GHC.Float +signum from GHC.Num +sin from GHC.Float +sinh from GHC.Float +snd from Data.Tuple +some from GHC.Base +someNatVal from GHC.TypeLits +someSymbolVal from GHC.TypeLits +sort from Data.OldList +sortBy from Data.OldList +sortOn from Protolude.List +sourceColumn from GHC.ExecutionStack.Internal +sourceFile from GHC.ExecutionStack.Internal +sourceLine from GHC.ExecutionStack.Internal +splitAt from GHC.List +sqrt from GHC.Float +srcLoc from GHC.ExecutionStack.Internal +state from Control.Monad.State.Class +stderr from GHC.IO.Handle.FD +stdin from GHC.IO.Handle.FD +stdout from GHC.IO.Handle.FD +stimes from Data.Semigroup +stimesIdempotent from Data.Semigroup +stimesIdempotentMonoid from Data.Semigroup +stimesMonoid from Data.Semigroup +strConv from Protolude.Conv +strictDecode from Data.Text.Encoding.Error +subsequences from Data.OldList +subtract from GHC.Num +succ from GHC.Enum +sum from Protolude.List +swap from Data.Tuple +swapMVar from Control.Concurrent.MVar +sym from Data.Type.Equality +symbolVal from GHC.TypeLits +tailDef from Protolude.Safe +tailMay from Protolude.Safe +tailSafe from Protolude.Safe +tails from Data.OldList +take from GHC.List +takeMVar from GHC.MVar +takeWhile from GHC.List +tan from GHC.Float +tanh from GHC.Float +testBit from Data.Bits +testBitDefault from Data.Bits +threadCapability from GHC.Conc.Sync +threadDelay from GHC.Conc.IO +threadWaitRead from Control.Concurrent +threadWaitReadSTM from Control.Concurrent +threadWaitWrite from Control.Concurrent +threadWaitWriteSTM from Control.Concurrent +throwE from Control.Monad.Trans.Except +throwError from Control.Monad.Error.Class +throwIO from Protolude +throwSTM from GHC.Conc.Sync +throwTo from Protolude +to from GHC.Generics +toEnum from GHC.Enum +toException from GHC.Exception +toInteger from GHC.Real +toIntegralSized from Data.Bits +toList from Data.Foldable +toRational from GHC.Real +toS from Protolude.Conv +toSL from Protolude.Conv +toStrict from Data.Text.Lazy +trace from Debug +traceIO from Debug +traceId from Debug +traceM from Debug +traceShow from Debug +traceShowId from Debug +traceShowM from Debug +trans from Data.Type.Equality +transpose from Data.OldList +traverse from Data.Traversable +traverse_ from Data.Foldable +truncate from GHC.Real +try from Control.Exception.Base +tryIO from Protolude.Exceptions +tryJust from Control.Exception.Base +tryPutMVar from GHC.MVar +tryReadMVar from GHC.MVar +tryTakeMVar from GHC.MVar +typeRep from Data.Typeable.Internal +unComp1 from GHC.Generics +unGetChan from Control.Concurrent.Chan +unK1 from GHC.Generics +unM1 from GHC.Generics +uncons from Protolude +uncurry from Data.Tuple +undefined from Debug +unfoldr from Data.OldList +uninterruptibleMask from GHC.IO +uninterruptibleMask_ from GHC.IO +unless from Control.Monad +unlessM from Protolude.Bool +unlines from Data.Text +unsnoc from Protolude +until from GHC.Base +unwords from Data.Text +unzip from GHC.List +vacuous from Data.Void +void from Data.Functor +wait from Control.Concurrent.Async +waitAny from Control.Concurrent.Async +waitAnyCancel from Control.Concurrent.Async +waitAnyCatch from Control.Concurrent.Async +waitAnyCatchCancel from Control.Concurrent.Async +waitBoth from Control.Concurrent.Async +waitCatch from Control.Concurrent.Async +waitEither from Control.Concurrent.Async +waitEitherCancel from Control.Concurrent.Async +waitEitherCatch from Control.Concurrent.Async +waitEitherCatchCancel from Control.Concurrent.Async +waitEither_ from Control.Concurrent.Async +waitQSem from Control.Concurrent.QSem +waitQSemN from Control.Concurrent.QSemN +when from GHC.Base +whenM from Protolude.Bool +withAsync from Control.Concurrent.Async +withAsyncBound from Control.Concurrent.Async +withAsyncOn from Control.Concurrent.Async +withExcept from Control.Monad.Trans.Except +withExceptT from Control.Monad.Trans.Except +withFile from System.IO +withFrozenCallStack from GHC.Stack +withMVar from Control.Concurrent.MVar +withMVarMasked from Control.Concurrent.MVar +withState from Control.Monad.Trans.State.Lazy +witness from Debug +words from Data.Text +writeChan from Control.Concurrent.Chan +writeFile from Data.Text.IO +writeList2Chan from Control.Concurrent.Chan +xor from Data.Bits +zero from Protolude.Semiring +zeroBits from Data.Bits +zip from GHC.List +zipWith from GHC.List +zipWithM from Control.Monad +zipWithM_ from Control.Monad +|| from GHC.Classes +||^ from Protolude.Bool diff --git a/src/protolude/export_lists/protolude-8.exports b/src/protolude/export_lists/protolude-8.exports new file mode 100644 index 000000000..d347ffca6 --- /dev/null +++ b/src/protolude/export_lists/protolude-8.exports @@ -0,0 +1,956 @@ +$ from GHC.Base +$! from Protolude.Base +$!! from Control.DeepSeq +$> from Data.Functor +% from GHC.Real +& from Data.Function +&& from GHC.Classes +&&^ from Protolude.Bool +* from GHC.Num +* from GHC.Types +** from GHC.Float +*> from GHC.Base ++ from GHC.Num +++ from GHC.Base +- from GHC.Num +. from GHC.Base +.&. from Data.Bits +.|. from Data.Bits +/ from GHC.Real +/= from GHC.Classes +:% from GHC.Real +:*: from GHC.Generics +:*: from GHC.Generics +:+ from Data.Complex +:+: from GHC.Generics +:.: from GHC.Generics +:| from Data.List.NonEmpty +:~: from Data.Type.Equality +< from GHC.Classes +<$ from GHC.Base +<$!> from Control.Monad +<$> from Data.Functor +<&&> from Protolude.Bool +<&> from Protolude.Functor +<* from GHC.Base +<**> from GHC.Base +<*> from GHC.Base +<.> from Protolude.Semiring +<<$>> from Protolude.Functor +<<*>> from Protolude.Applicative +<= from GHC.Classes +<=< from Control.Monad +<> from Data.Monoid +<|> from GHC.Base +<||> from Protolude.Bool +=<< from GHC.Base +== from GHC.Classes +== from Data.Type.Equality +> from GHC.Classes +>= from GHC.Classes +>=> from Control.Monad +>> from GHC.Base +>>= from GHC.Base +All from Data.Monoid +All from Data.Monoid +AllocationLimitExceeded from GHC.IO.Exception +AllocationLimitExceeded from GHC.IO.Exception +Alt from Data.Monoid +Alt from Data.Monoid +Alternative from GHC.Base +Any from Data.Monoid +Any from Data.Monoid +AppendMode from GHC.IO.IOMode +Applicative from GHC.Base +ArithException from GHC.Exception +ArrayException from GHC.IO.Exception +AssertionFailed from GHC.IO.Exception +AssertionFailed from GHC.IO.Exception +Associativity from GHC.Generics +Async from Control.Concurrent.Async +AsyncException from GHC.IO.Exception +Bifunctor from Data.Bifunctor +Bits from Data.Bits +BlockedIndefinitelyOnMVar from GHC.IO.Exception +BlockedIndefinitelyOnMVar from GHC.IO.Exception +BlockedIndefinitelyOnSTM from GHC.IO.Exception +BlockedIndefinitelyOnSTM from GHC.IO.Exception +Bool from GHC.Types +Bounded from GHC.Enum +ByteString from Data.ByteString.Internal +C1 from GHC.Generics +CallStack from GHC.Stack.Types +Chan from Control.Concurrent.Chan +Char from GHC.Types +CmpNat from GHC.TypeLits +Coercible from GHC.Types +Coercion from Data.Type.Coercion +Coercion from Data.Type.Coercion +Comp1 from GHC.Generics +Complex from Data.Complex +Concurrently from Control.Concurrent.Async +Concurrently from Control.Concurrent.Async +Const from Data.Functor.Const +Const from Data.Functor.Const +Constraint from GHC.Types +Constructor from GHC.Generics +D# from GHC.Types +D1 from GHC.Generics +Datatype from GHC.Generics +Deadlock from GHC.IO.Exception +Deadlock from GHC.IO.Exception +Denormal from GHC.Exception +DivideByZero from GHC.Exception +Double from GHC.Types +Down from Data.Ord +Down from Data.Ord +Dual from Data.Monoid +Dual from Data.Monoid +EQ from GHC.Types +Either from Data.Either +Endo from Data.Monoid +Endo from Data.Monoid +Enum from GHC.Enum +Eq from GHC.Classes +ErrorCall from GHC.Exception +ErrorCall from GHC.Exception +ErrorCallWithLocation from GHC.Exception +Except from Control.Monad.Trans.Except +ExceptT from Control.Monad.Trans.Except +ExceptT from Control.Monad.Trans.Except +Exception from GHC.Exception +ExitCode from GHC.IO.Exception +ExitFailure from GHC.IO.Exception +ExitSuccess from GHC.IO.Exception +F# from GHC.Types +False from GHC.Types +FatalError from Protolude.Panic +FatalError from Protolude.Panic +FilePath from GHC.IO +FiniteBits from Data.Bits +First from Data.Monoid +First from Data.Monoid +Fixity from GHC.Generics +FixityI from GHC.Generics +Float from GHC.Types +Floating from GHC.Float +Foldable from Data.Foldable +Fractional from GHC.Real +FunPtr from GHC.Ptr +Functor from GHC.Base +GT from GHC.Types +Generic from GHC.Generics +Generic1 from GHC.Generics +Handle from GHC.IO.Handle.Types +HasCallStack from GHC.Stack.Types +Hashable from Data.Hashable.Class +HeapOverflow from GHC.IO.Exception +IO from GHC.Types +IOException from GHC.IO.Exception +IOMode from GHC.IO.IOMode +Identity from Data.Functor.Identity +Identity from Data.Functor.Identity +IndexOutOfBounds from GHC.IO.Exception +Infix from GHC.Generics +InfixI from GHC.Generics +Int from GHC.Types +Int16 from GHC.Int +Int32 from GHC.Int +Int64 from GHC.Int +Int8 from GHC.Int +IntMap from Data.IntMap.Base +IntPtr from Foreign.Ptr +IntSet from Data.IntSet.Base +Integer from GHC.Integer.Type +Integral from GHC.Real +IsLabel from GHC.OverloadedLabels +IsString from Data.String +Just from GHC.Base +K1 from GHC.Generics +K1 from GHC.Generics +KnownNat from GHC.TypeLits +KnownSymbol from GHC.TypeLits +L1 from GHC.Generics +LByteString from Protolude +LT from GHC.Types +LText from Protolude +Last from Data.Monoid +Last from Data.Monoid +Left from Data.Either +LeftAssociative from GHC.Generics +Leniency from Protolude.Conv +Lenient from Protolude.Conv +Location from GHC.ExecutionStack.Internal +Location from GHC.ExecutionStack.Internal +LossOfPrecision from GHC.Exception +M1 from GHC.Generics +M1 from GHC.Generics +MVar from GHC.MVar +Map from Data.Map.Base +MaskedInterruptible from GHC.IO +MaskedUninterruptible from GHC.IO +MaskingState from GHC.IO +Maybe from GHC.Base +Meta from GHC.Generics +MetaCons from GHC.Generics +MetaData from GHC.Generics +MetaSel from GHC.Generics +Monad from GHC.Base +MonadError from Control.Monad.Error.Class +MonadIO from Control.Monad.IO.Class +MonadPlus from GHC.Base +MonadReader from Control.Monad.Reader.Class +MonadState from Control.Monad.State.Class +Monoid from GHC.Base +NFData from Control.DeepSeq +Nat from GHC.Types +NestedAtomically from Control.Exception.Base +NestedAtomically from Control.Exception.Base +NoMethodError from Control.Exception.Base +NoMethodError from Control.Exception.Base +NonEmpty from Data.List.NonEmpty +NonTermination from Control.Exception.Base +NonTermination from Control.Exception.Base +NotAssociative from GHC.Generics +Nothing from GHC.Base +Num from GHC.Num +OnDecodeError from Data.Text.Encoding.Error +OnError from Data.Text.Encoding.Error +Option from Data.Semigroup +Option from Data.Semigroup +Ord from GHC.Classes +Ordering from GHC.Types +Overflow from GHC.Exception +PatternMatchFail from Control.Exception.Base +PatternMatchFail from Control.Exception.Base +Prefix from GHC.Generics +PrefixI from GHC.Generics +Print from Protolude.Show +Product from Data.Monoid +Product from Data.Monoid +Proxy from Data.Proxy +Proxy from Data.Proxy +Ptr from GHC.Ptr +QSem from Control.Concurrent.QSem +QSemN from Control.Concurrent.QSemN +R1 from GHC.Generics +Ratio from GHC.Real +RatioZeroDenominator from GHC.Exception +Rational from GHC.Real +Read from GHC.Read +ReadMode from GHC.IO.IOMode +ReadWriteMode from GHC.IO.IOMode +Reader from Control.Monad.Trans.Reader +ReaderT from Control.Monad.Trans.Reader +ReaderT from Control.Monad.Trans.Reader +Real from GHC.Real +RealFloat from GHC.Float +RealFrac from GHC.Real +Rec0 from GHC.Generics +RecConError from Control.Exception.Base +RecConError from Control.Exception.Base +RecSelError from Control.Exception.Base +RecSelError from Control.Exception.Base +RecUpdError from Control.Exception.Base +RecUpdError from Control.Exception.Base +Refl from Data.Type.Equality +Rep from GHC.Generics +Right from Data.Either +RightAssociative from GHC.Generics +S1 from GHC.Generics +ST from GHC.ST +STM from GHC.Conc.Sync +Selector from GHC.Generics +Semigroup from Data.Semigroup +Semiring from Protolude.Semiring +Seq from Data.Sequence +Set from Data.Set.Base +Show from GHC.Show +SomeAsyncException from GHC.IO.Exception +SomeAsyncException from GHC.IO.Exception +SomeException from GHC.Exception +SomeException from GHC.Exception +SomeNat from GHC.TypeLits +SomeNat from GHC.TypeLits +SomeSymbol from GHC.TypeLits +SomeSymbol from GHC.TypeLits +SrcLoc from GHC.ExecutionStack.Internal +SrcLoc from GHC.ExecutionStack.Internal +StablePtr from GHC.Stable +StackOverflow from GHC.IO.Exception +State from Control.Monad.Trans.State.Lazy +StateT from Control.Monad.Trans.State.Lazy +StateT from Control.Monad.Trans.State.Lazy +StaticPtr from GHC.StaticPtr +Storable from Foreign.Storable +Strict from Protolude.Conv +StringConv from Protolude.Conv +Sum from Data.Monoid +Sum from Data.Monoid +Symbol from GHC.Types +Text from Data.Text.Internal +ThreadId from GHC.Conc.Sync +ThreadKilled from GHC.IO.Exception +Traversable from Data.Traversable +True from GHC.Types +Type from GHC.Types +TypeError from Control.Exception.Base +TypeError from Control.Exception.Base +TypeRep from Data.Typeable.Internal +Typeable from Data.Typeable.Internal +U1 from GHC.Generics +U1 from GHC.Generics +URec from GHC.Generics +UndefinedElement from GHC.IO.Exception +Underflow from GHC.Exception +UnicodeException from Data.Text.Encoding.Error +Unmasked from GHC.IO +UserInterrupt from GHC.IO.Exception +V1 from GHC.Generics +Void from Data.Void +Word from GHC.Types +Word16 from GHC.Word +Word32 from GHC.Word +Word64 from GHC.Word +Word8 from GHC.Word +WordPtr from Foreign.Ptr +WrappedMonoid from Data.Semigroup +WriteMode from GHC.IO.IOMode +ZipList from Control.Applicative +ZipList from Control.Applicative +^ from GHC.Real +^%^ from GHC.Real +^^ from GHC.Real +^^%^^ from GHC.Real +abs from GHC.Num +absurd from Data.Void +acos from GHC.Float +acosh from GHC.Float +addMVarFinalizer from Control.Concurrent.MVar +all from Data.Foldable +allowInterrupt from Control.Exception +always from GHC.Conc.Sync +alwaysSucceeds from GHC.Conc.Sync +and from Data.Foldable +any from Data.Foldable +ap from GHC.Base +appEndo from Data.Monoid +appendFile from Data.Text.IO +applyN from Protolude +asTypeOf from GHC.Base +asin from GHC.Float +asinh from GHC.Float +ask from Control.Monad.Reader.Class +asks from Control.Monad.Reader.Class +asum from Data.Foldable +async from Control.Concurrent.Async +asyncBound from Control.Concurrent.Async +asyncExceptionFromException from GHC.IO.Exception +asyncExceptionToException from GHC.IO.Exception +asyncOn from Control.Concurrent.Async +asyncThreadId from Control.Concurrent.Async +atDef from Protolude.Safe +atMay from Protolude.Safe +atan from GHC.Float +atan2 from GHC.Float +atanh from GHC.Float +atomically from GHC.Conc.Sync +bimap from Data.Bifunctor +bit from Data.Bits +bitDefault from Data.Bits +bitSize from Data.Bits +bitSizeMaybe from Data.Bits +bool from Protolude.Bool +boundedEnumFrom from GHC.Enum +boundedEnumFromThen from GHC.Enum +bracket from Control.Exception.Base +bracketOnError from Control.Exception.Base +bracket_ from Control.Exception.Base +break from GHC.List +byteSwap16 from GHC.Word +byteSwap32 from GHC.Word +byteSwap64 from GHC.Word +callStack from GHC.Stack +cancel from Control.Concurrent.Async +cancelWith from Control.Concurrent.Async +cast from Data.Typeable +castWith from Data.Type.Equality +catMaybes from Data.Maybe +catch from Control.Exception.Base +catchE from Control.Monad.Trans.Except +catchError from Control.Monad.Error.Class +catchJust from Control.Exception.Base +catchSTM from GHC.Conc.Sync +catches from Control.Exception +ceiling from GHC.Real +check from Control.Monad.STM +chr from GHC.Char +cis from Data.Complex +clearBit from Data.Bits +coerceWith from Data.Type.Coercion +compare from GHC.Classes +comparing from Data.Ord +complement from Data.Bits +complementBit from Data.Bits +conFixity from GHC.Generics +conIsRecord from GHC.Generics +conName from GHC.Generics +concat from Data.Foldable +concatMap from Data.Foldable +concatMapM from Protolude.Monad +concurrently from Control.Concurrent.Async +conjugate from Data.Complex +const from GHC.Base +cos from GHC.Float +cosh from GHC.Float +countLeadingZeros from Data.Bits +countTrailingZeros from Data.Bits +currentCallStack from GHC.Stack.CCS +curry from Data.Tuple +cycle from GHC.List +cycle1 from Data.Semigroup +datatypeName from GHC.Generics +decodeFloat from GHC.Float +decodeUtf8 from Data.Text.Encoding +decodeUtf8' from Data.Text.Encoding +decodeUtf8With from Data.Text.Encoding +deepseq from Control.DeepSeq +denominator from GHC.Real +die from Protolude +diff from Data.Semigroup +displayException from GHC.Exception +div from GHC.Real +divMod from GHC.Real +divZeroError from GHC.Real +drop from GHC.List +dropWhile from GHC.List +dupChan from Control.Concurrent.Chan +either from Data.Either +eitherA from Protolude.Applicative +elem from Data.Foldable +empty from GHC.Base +encodeFloat from GHC.Float +encodeUtf8 from Data.Text.Encoding +enumFrom from GHC.Enum +enumFromThen from GHC.Enum +enumFromThenTo from GHC.Enum +enumFromTo from GHC.Enum +eqT from Data.Typeable +evalState from Control.Monad.Trans.State.Lazy +evalStateT from Control.Monad.Trans.State.Lazy +evaluate from GHC.IO +even from GHC.Real +execState from Control.Monad.Trans.State.Lazy +execStateT from Control.Monad.Trans.State.Lazy +exitFailure from System.Exit +exitSuccess from System.Exit +exitWith from System.Exit +exp from GHC.Float +expm1 from GHC.Float +exponent from GHC.Float +fatalErrorMessage from Protolude.Panic +filter from GHC.List +filterM from Control.Monad +finally from Control.Exception.Base +find from Data.Foldable +finiteBitSize from Data.Bits +first from Data.Bifunctor +fix from Data.Function +fixST from GHC.ST +flip from GHC.Base +floatDigits from GHC.Float +floatRadix from GHC.Float +floatRange from GHC.Float +floor from GHC.Real +fmap from GHC.Base +fmapDefault from Data.Traversable +fold from Data.Foldable +foldM from Control.Monad +foldM_ from Control.Monad +foldMap from Data.Foldable +foldMapDefault from Data.Traversable +foldl from Data.Foldable +foldl' from Data.Foldable +foldl1May from Protolude.Safe +foldl1May' from Protolude.Safe +foldlM from Data.Foldable +foldr from Data.Foldable +foldr' from Data.Foldable +foldr1May from Protolude.Safe +foldrM from Data.Foldable +for from Data.Traversable +forM from Data.Traversable +forM_ from Data.Foldable +for_ from Data.Foldable +force from Control.DeepSeq +foreach from Protolude.Functor +forever from Control.Monad +forkFinally from Control.Concurrent +forkIO from GHC.Conc.Sync +forkIOWithUnmask from GHC.Conc.Sync +forkOS from Control.Concurrent +forkOSWithUnmask from Control.Concurrent +forkOn from GHC.Conc.Sync +forkOnWithUnmask from GHC.Conc.Sync +from from GHC.Generics +fromEnum from GHC.Enum +fromException from GHC.Exception +fromInteger from GHC.Num +fromIntegral from GHC.Real +fromLabel from GHC.OverloadedLabels +fromLeft from Protolude.Either +fromMaybe from Data.Maybe +fromRational from GHC.Real +fromRight from Protolude.Either +fromStrict from Data.Text.Lazy +fst from Data.Tuple +functionName from GHC.ExecutionStack.Internal +gcastWith from Data.Type.Equality +gcd from GHC.Real +gcdInt' from GHC.Real +gcdWord' from GHC.Real +genericDrop from Data.OldList +genericLength from Data.OldList +genericReplicate from Data.OldList +genericSplitAt from Data.OldList +genericTake from Data.OldList +get from Control.Monad.State.Class +getAll from Data.Monoid +getAlt from Data.Monoid +getAny from Data.Monoid +getArgs from System.Environment +getCallStack from GHC.Stack.Types +getChanContents from Control.Concurrent.Chan +getConst from Data.Functor.Const +getContents from Data.Text.IO +getDual from Data.Monoid +getFirst from Data.Monoid +getLast from Data.Monoid +getLine from Data.Text.IO +getMaskingState from GHC.IO +getNumCapabilities from GHC.Conc.Sync +getOption from Data.Semigroup +getProduct from Data.Monoid +getStackTrace from GHC.ExecutionStack +getSum from Data.Monoid +getZipList from Control.Applicative +gets from Control.Monad.State.Class +group from Data.OldList +groupBy from Data.OldList +guard from Control.Monad +guardM from Protolude.Bool +guarded from Protolude +guardedA from Protolude +hPutStr from Protolude.Show +hPutStrLn from Protolude.Show +handle from Control.Exception.Base +handleJust from Control.Exception.Base +hash from Data.Hashable.Class +hashUsing from Data.Hashable.Class +hashWithSalt from Data.Hashable.Class +head from Protolude.List +headDef from Protolude.Safe +headMay from Protolude.Safe +hush from Protolude.Exceptions +identity from Protolude +ifM from Protolude.Bool +ignore from Data.Text.Encoding.Error +imagPart from Data.Complex +infinity from GHC.Real +initDef from Protolude.Safe +initMay from Protolude.Safe +initSafe from Protolude.Safe +inits from Data.OldList +integralEnumFrom from GHC.Real +integralEnumFromThen from GHC.Real +integralEnumFromThenTo from GHC.Real +integralEnumFromTo from GHC.Real +interact from Data.Text.IO +intercalate from Data.OldList +interruptible from GHC.IO +intersperse from Data.OldList +ioError from GHC.IO.Exception +isCurrentThreadBound from Control.Concurrent +isDenormalized from GHC.Float +isEmptyChan from Control.Concurrent.Chan +isEmptyMVar from GHC.MVar +isIEEE from GHC.Float +isInfinite from GHC.Float +isJust from Data.Maybe +isLeft from Data.Either +isNaN from GHC.Float +isNegativeZero from GHC.Float +isNewtype from GHC.Generics +isNothing from Data.Maybe +isPrefixOf from Data.OldList +isRight from Data.Either +isSigned from Data.Bits +iterate from GHC.List +join from GHC.Base +killThread from GHC.Conc.Sync +lastDef from Protolude.Safe +lastMay from Protolude.Safe +lcm from GHC.Real +leftToMaybe from Protolude.Either +lefts from Data.Either +length from Data.Foldable +lenientDecode from Data.Text.Encoding.Error +lift from Control.Monad.Trans.Class +liftA from GHC.Base +liftA2 from GHC.Base +liftA3 from GHC.Base +liftAA2 from Protolude.Applicative +liftIO from Control.Monad.IO.Class +liftIO1 from Protolude +liftIO2 from Protolude +liftM from GHC.Base +liftM' from Protolude.Monad +liftM2 from GHC.Base +liftM2' from Protolude.Monad +liftM3 from GHC.Base +liftM4 from GHC.Base +liftM5 from GHC.Base +lines from Data.Text +link from Control.Concurrent.Async +link2 from Control.Concurrent.Async +list from Protolude.List +listToMaybe from Data.Maybe +local from Control.Monad.Reader.Class +log from GHC.Float +log1mexp from GHC.Float +log1p from GHC.Float +log1pexp from GHC.Float +logBase from GHC.Float +magnitude from Data.Complex +many from GHC.Base +map from Protolude +mapAccumL from Data.Traversable +mapAccumR from Data.Traversable +mapAndUnzipM from Control.Monad +mapExcept from Control.Monad.Trans.Except +mapExceptT from Control.Monad.Trans.Except +mapException from Control.Exception.Base +mapM from Data.Traversable +mapM_ from Data.Foldable +mapMaybe from Data.Maybe +mappend from GHC.Base +mask from GHC.IO +mask_ from GHC.IO +max from GHC.Classes +maxBound from GHC.Enum +maxInt from GHC.Base +maximum from Data.Foldable +maximumBy from Data.Foldable +maximumDef from Protolude.Safe +maximumMay from Protolude.Safe +maybe from Data.Maybe +maybeEmpty from Protolude.Either +maybeToEither from Protolude.Either +maybeToLeft from Protolude.Either +maybeToList from Data.Maybe +maybeToRight from Protolude.Either +mconcat from GHC.Base +mempty from GHC.Base +mfilter from Control.Monad +min from GHC.Classes +minBound from GHC.Enum +minInt from GHC.Base +minimum from Data.Foldable +minimumBy from Data.Foldable +minimumDef from Protolude.Safe +minimumMay from Protolude.Safe +mkPolar from Data.Complex +mkWeakMVar from Control.Concurrent.MVar +mkWeakThreadId from GHC.Conc.Sync +mod from GHC.Real +modify from Control.Monad.State.Class +modifyMVar from Control.Concurrent.MVar +modifyMVarMasked from Control.Concurrent.MVar +modifyMVarMasked_ from Control.Concurrent.MVar +modifyMVar_ from Control.Concurrent.MVar +moduleName from GHC.Generics +mplus from GHC.Base +msum from Data.Foldable +mtimesDefault from Data.Semigroup +myThreadId from GHC.Conc.Sync +mzero from GHC.Base +natVal from GHC.TypeLits +negate from GHC.Num +newChan from Control.Concurrent.Chan +newEmptyMVar from GHC.MVar +newMVar from GHC.MVar +newQSem from Control.Concurrent.QSem +newQSemN from Control.Concurrent.QSemN +nonEmpty from Data.List.NonEmpty +not from GHC.Classes +notANumber from GHC.Real +notElem from Data.Foldable +notImplemented from Debug +note from Protolude.Exceptions +null from Data.Foldable +numerator from GHC.Real +numericEnumFrom from GHC.Real +numericEnumFromThen from GHC.Real +numericEnumFromThenTo from GHC.Real +numericEnumFromTo from GHC.Real +objectName from GHC.ExecutionStack.Internal +odd from GHC.Real +on from Data.Function +onException from Control.Exception.Base +one from Protolude.Semiring +openFile from GHC.IO.Handle.FD +option from Data.Semigroup +optional from Control.Applicative +or from Data.Foldable +orAlt from Protolude.Applicative +orElse from GHC.Conc.Sync +orEmpty from Protolude.Applicative +ord from GHC.Base +ordNub from Protolude.List +otherwise from GHC.Base +overflowError from GHC.Real +packageName from GHC.Generics +panic from Protolude.Panic +partitionEithers from Data.Either +pass from Protolude +permutations from Data.OldList +phase from Data.Complex +pi from GHC.Float +polar from Data.Complex +poll from Control.Concurrent.Async +popCount from Data.Bits +popCountDefault from Data.Bits +pred from GHC.Enum +prettyCallStack from GHC.Exception +prettySrcLoc from GHC.Exception +print from Protolude +product from Protolude.List +properFraction from GHC.Real +pure from GHC.Base +purer from Protolude.Applicative +put from Control.Monad.State.Class +putByteString from Protolude.Show +putErrLn from Protolude.Show +putErrText from Protolude.Show +putLByteString from Protolude.Show +putLText from Protolude.Show +putMVar from GHC.MVar +putStr from Protolude.Show +putStrLn from Protolude.Show +putText from Protolude.Show +quot from GHC.Real +quotRem from GHC.Real +race from Control.Concurrent.Async +race_ from Control.Concurrent.Async +ratioPrec from GHC.Real +ratioPrec1 from GHC.Real +ratioZeroDenominatorError from GHC.Real +readChan from Control.Concurrent.Chan +readEither from Protolude +readFile from Data.Text.IO +readMVar from GHC.MVar +readMaybe from Protolude +reader from Control.Monad.Reader.Class +reads from Text.Read +realPart from Data.Complex +realToFrac from GHC.Real +recip from GHC.Real +reduce from GHC.Real +rem from GHC.Real +repeat from GHC.List +replace from Data.Text.Encoding.Error +replicate from GHC.List +replicateM from Control.Monad +replicateM_ from Control.Monad +repr from Data.Type.Coercion +retry from GHC.Conc.Sync +return from GHC.Base +reverse from GHC.List +rightToMaybe from Protolude.Either +rights from Data.Either +rnf from Control.DeepSeq +rotate from Data.Bits +rotateL from Data.Bits +rotateR from Data.Bits +round from GHC.Real +rtsSupportsBoundThreads from Control.Concurrent +runConcurrently from Control.Concurrent.Async +runExcept from Control.Monad.Trans.Except +runExceptT from Control.Monad.Trans.Except +runIdentity from Data.Functor.Identity +runInBoundThread from Control.Concurrent +runInUnboundThread from Control.Concurrent +runReader from Control.Monad.Trans.Reader +runReaderT from Control.Monad.Trans.Reader +runST from GHC.ST +runState from Control.Monad.Trans.State.Lazy +runStateT from Control.Monad.Trans.State.Lazy +scaleFloat from GHC.Float +scanl from GHC.List +scanl' from GHC.List +scanr from GHC.List +sconcat from Data.Semigroup +second from Data.Bifunctor +selDecidedStrictness from GHC.Generics +selName from GHC.Generics +selSourceStrictness from GHC.Generics +selSourceUnpackedness from GHC.Generics +seq from GHC.Prim +sequence from Data.Traversable +sequenceA from Data.Traversable +sequenceA_ from Data.Foldable +sequence_ from Data.Foldable +setBit from Data.Bits +setNumCapabilities from GHC.Conc.Sync +shift from Data.Bits +shiftL from Data.Bits +shiftR from Data.Bits +show from Protolude +showStackTrace from GHC.ExecutionStack +signalQSem from Control.Concurrent.QSem +signalQSemN from Control.Concurrent.QSemN +significand from GHC.Float +signum from GHC.Num +sin from GHC.Float +sinh from GHC.Float +snd from Data.Tuple +some from GHC.Base +someNatVal from GHC.TypeLits +someSymbolVal from GHC.TypeLits +sort from Data.OldList +sortBy from Data.OldList +sortOn from Protolude.List +sourceColumn from GHC.ExecutionStack.Internal +sourceFile from GHC.ExecutionStack.Internal +sourceLine from GHC.ExecutionStack.Internal +splitAt from GHC.List +sqrt from GHC.Float +srcLoc from GHC.ExecutionStack.Internal +state from Control.Monad.State.Class +stderr from GHC.IO.Handle.FD +stdin from GHC.IO.Handle.FD +stdout from GHC.IO.Handle.FD +stimes from Data.Semigroup +stimesIdempotent from Data.Semigroup +stimesIdempotentMonoid from Data.Semigroup +stimesMonoid from Data.Semigroup +strConv from Protolude.Conv +strictDecode from Data.Text.Encoding.Error +subsequences from Data.OldList +subtract from GHC.Num +succ from GHC.Enum +sum from Protolude.List +swap from Data.Tuple +swapMVar from Control.Concurrent.MVar +sym from Data.Type.Equality +symbolVal from GHC.TypeLits +tailDef from Protolude.Safe +tailMay from Protolude.Safe +tailSafe from Protolude.Safe +tails from Data.OldList +take from GHC.List +takeMVar from GHC.MVar +takeWhile from GHC.List +tan from GHC.Float +tanh from GHC.Float +testBit from Data.Bits +testBitDefault from Data.Bits +threadCapability from GHC.Conc.Sync +threadDelay from GHC.Conc.IO +threadWaitRead from Control.Concurrent +threadWaitReadSTM from Control.Concurrent +threadWaitWrite from Control.Concurrent +threadWaitWriteSTM from Control.Concurrent +throwE from Control.Monad.Trans.Except +throwError from Control.Monad.Error.Class +throwIO from Protolude +throwSTM from GHC.Conc.Sync +throwTo from Protolude +to from GHC.Generics +toEnum from GHC.Enum +toException from GHC.Exception +toInteger from GHC.Real +toIntegralSized from Data.Bits +toList from Data.Foldable +toRational from GHC.Real +toS from Protolude.Conv +toSL from Protolude.Conv +toStrict from Data.Text.Lazy +trace from Debug +traceIO from Debug +traceId from Debug +traceM from Debug +traceShow from Debug +traceShowId from Debug +traceShowM from Debug +trans from Data.Type.Equality +transpose from Data.OldList +traverse from Data.Traversable +traverse_ from Data.Foldable +truncate from GHC.Real +try from Control.Exception.Base +tryIO from Protolude.Exceptions +tryJust from Control.Exception.Base +tryPutMVar from GHC.MVar +tryReadMVar from GHC.MVar +tryTakeMVar from GHC.MVar +typeRep from Data.Typeable.Internal +unComp1 from GHC.Generics +unGetChan from Control.Concurrent.Chan +unK1 from GHC.Generics +unM1 from GHC.Generics +uncons from Protolude +uncurry from Data.Tuple +undefined from Debug +unfoldr from Data.OldList +uninterruptibleMask from GHC.IO +uninterruptibleMask_ from GHC.IO +unless from Control.Monad +unlessM from Protolude.Bool +unlines from Data.Text +unsnoc from Protolude +until from GHC.Base +unwords from Data.Text +unzip from GHC.List +vacuous from Data.Void +void from Data.Functor +wait from Control.Concurrent.Async +waitAny from Control.Concurrent.Async +waitAnyCancel from Control.Concurrent.Async +waitAnyCatch from Control.Concurrent.Async +waitAnyCatchCancel from Control.Concurrent.Async +waitBoth from Control.Concurrent.Async +waitCatch from Control.Concurrent.Async +waitEither from Control.Concurrent.Async +waitEitherCancel from Control.Concurrent.Async +waitEitherCatch from Control.Concurrent.Async +waitEitherCatchCancel from Control.Concurrent.Async +waitEither_ from Control.Concurrent.Async +waitQSem from Control.Concurrent.QSem +waitQSemN from Control.Concurrent.QSemN +when from GHC.Base +whenM from Protolude.Bool +withAsync from Control.Concurrent.Async +withAsyncBound from Control.Concurrent.Async +withAsyncOn from Control.Concurrent.Async +withExcept from Control.Monad.Trans.Except +withExceptT from Control.Monad.Trans.Except +withFile from System.IO +withFrozenCallStack from GHC.Stack +withMVar from Control.Concurrent.MVar +withMVarMasked from Control.Concurrent.MVar +withState from Control.Monad.Trans.State.Lazy +witness from Debug +words from Data.Text +writeChan from Control.Concurrent.Chan +writeFile from Data.Text.IO +writeList2Chan from Control.Concurrent.Chan +xor from Data.Bits +zero from Protolude.Semiring +zeroBits from Data.Bits +zip from GHC.List +zipWith from GHC.List +zipWithM from Control.Monad +zipWithM_ from Control.Monad +|| from GHC.Classes +||^ from Protolude.Bool diff --git a/src/protolude/export_lists/protolude-9.exports b/src/protolude/export_lists/protolude-9.exports new file mode 100644 index 000000000..d347ffca6 --- /dev/null +++ b/src/protolude/export_lists/protolude-9.exports @@ -0,0 +1,956 @@ +$ from GHC.Base +$! from Protolude.Base +$!! from Control.DeepSeq +$> from Data.Functor +% from GHC.Real +& from Data.Function +&& from GHC.Classes +&&^ from Protolude.Bool +* from GHC.Num +* from GHC.Types +** from GHC.Float +*> from GHC.Base ++ from GHC.Num +++ from GHC.Base +- from GHC.Num +. from GHC.Base +.&. from Data.Bits +.|. from Data.Bits +/ from GHC.Real +/= from GHC.Classes +:% from GHC.Real +:*: from GHC.Generics +:*: from GHC.Generics +:+ from Data.Complex +:+: from GHC.Generics +:.: from GHC.Generics +:| from Data.List.NonEmpty +:~: from Data.Type.Equality +< from GHC.Classes +<$ from GHC.Base +<$!> from Control.Monad +<$> from Data.Functor +<&&> from Protolude.Bool +<&> from Protolude.Functor +<* from GHC.Base +<**> from GHC.Base +<*> from GHC.Base +<.> from Protolude.Semiring +<<$>> from Protolude.Functor +<<*>> from Protolude.Applicative +<= from GHC.Classes +<=< from Control.Monad +<> from Data.Monoid +<|> from GHC.Base +<||> from Protolude.Bool +=<< from GHC.Base +== from GHC.Classes +== from Data.Type.Equality +> from GHC.Classes +>= from GHC.Classes +>=> from Control.Monad +>> from GHC.Base +>>= from GHC.Base +All from Data.Monoid +All from Data.Monoid +AllocationLimitExceeded from GHC.IO.Exception +AllocationLimitExceeded from GHC.IO.Exception +Alt from Data.Monoid +Alt from Data.Monoid +Alternative from GHC.Base +Any from Data.Monoid +Any from Data.Monoid +AppendMode from GHC.IO.IOMode +Applicative from GHC.Base +ArithException from GHC.Exception +ArrayException from GHC.IO.Exception +AssertionFailed from GHC.IO.Exception +AssertionFailed from GHC.IO.Exception +Associativity from GHC.Generics +Async from Control.Concurrent.Async +AsyncException from GHC.IO.Exception +Bifunctor from Data.Bifunctor +Bits from Data.Bits +BlockedIndefinitelyOnMVar from GHC.IO.Exception +BlockedIndefinitelyOnMVar from GHC.IO.Exception +BlockedIndefinitelyOnSTM from GHC.IO.Exception +BlockedIndefinitelyOnSTM from GHC.IO.Exception +Bool from GHC.Types +Bounded from GHC.Enum +ByteString from Data.ByteString.Internal +C1 from GHC.Generics +CallStack from GHC.Stack.Types +Chan from Control.Concurrent.Chan +Char from GHC.Types +CmpNat from GHC.TypeLits +Coercible from GHC.Types +Coercion from Data.Type.Coercion +Coercion from Data.Type.Coercion +Comp1 from GHC.Generics +Complex from Data.Complex +Concurrently from Control.Concurrent.Async +Concurrently from Control.Concurrent.Async +Const from Data.Functor.Const +Const from Data.Functor.Const +Constraint from GHC.Types +Constructor from GHC.Generics +D# from GHC.Types +D1 from GHC.Generics +Datatype from GHC.Generics +Deadlock from GHC.IO.Exception +Deadlock from GHC.IO.Exception +Denormal from GHC.Exception +DivideByZero from GHC.Exception +Double from GHC.Types +Down from Data.Ord +Down from Data.Ord +Dual from Data.Monoid +Dual from Data.Monoid +EQ from GHC.Types +Either from Data.Either +Endo from Data.Monoid +Endo from Data.Monoid +Enum from GHC.Enum +Eq from GHC.Classes +ErrorCall from GHC.Exception +ErrorCall from GHC.Exception +ErrorCallWithLocation from GHC.Exception +Except from Control.Monad.Trans.Except +ExceptT from Control.Monad.Trans.Except +ExceptT from Control.Monad.Trans.Except +Exception from GHC.Exception +ExitCode from GHC.IO.Exception +ExitFailure from GHC.IO.Exception +ExitSuccess from GHC.IO.Exception +F# from GHC.Types +False from GHC.Types +FatalError from Protolude.Panic +FatalError from Protolude.Panic +FilePath from GHC.IO +FiniteBits from Data.Bits +First from Data.Monoid +First from Data.Monoid +Fixity from GHC.Generics +FixityI from GHC.Generics +Float from GHC.Types +Floating from GHC.Float +Foldable from Data.Foldable +Fractional from GHC.Real +FunPtr from GHC.Ptr +Functor from GHC.Base +GT from GHC.Types +Generic from GHC.Generics +Generic1 from GHC.Generics +Handle from GHC.IO.Handle.Types +HasCallStack from GHC.Stack.Types +Hashable from Data.Hashable.Class +HeapOverflow from GHC.IO.Exception +IO from GHC.Types +IOException from GHC.IO.Exception +IOMode from GHC.IO.IOMode +Identity from Data.Functor.Identity +Identity from Data.Functor.Identity +IndexOutOfBounds from GHC.IO.Exception +Infix from GHC.Generics +InfixI from GHC.Generics +Int from GHC.Types +Int16 from GHC.Int +Int32 from GHC.Int +Int64 from GHC.Int +Int8 from GHC.Int +IntMap from Data.IntMap.Base +IntPtr from Foreign.Ptr +IntSet from Data.IntSet.Base +Integer from GHC.Integer.Type +Integral from GHC.Real +IsLabel from GHC.OverloadedLabels +IsString from Data.String +Just from GHC.Base +K1 from GHC.Generics +K1 from GHC.Generics +KnownNat from GHC.TypeLits +KnownSymbol from GHC.TypeLits +L1 from GHC.Generics +LByteString from Protolude +LT from GHC.Types +LText from Protolude +Last from Data.Monoid +Last from Data.Monoid +Left from Data.Either +LeftAssociative from GHC.Generics +Leniency from Protolude.Conv +Lenient from Protolude.Conv +Location from GHC.ExecutionStack.Internal +Location from GHC.ExecutionStack.Internal +LossOfPrecision from GHC.Exception +M1 from GHC.Generics +M1 from GHC.Generics +MVar from GHC.MVar +Map from Data.Map.Base +MaskedInterruptible from GHC.IO +MaskedUninterruptible from GHC.IO +MaskingState from GHC.IO +Maybe from GHC.Base +Meta from GHC.Generics +MetaCons from GHC.Generics +MetaData from GHC.Generics +MetaSel from GHC.Generics +Monad from GHC.Base +MonadError from Control.Monad.Error.Class +MonadIO from Control.Monad.IO.Class +MonadPlus from GHC.Base +MonadReader from Control.Monad.Reader.Class +MonadState from Control.Monad.State.Class +Monoid from GHC.Base +NFData from Control.DeepSeq +Nat from GHC.Types +NestedAtomically from Control.Exception.Base +NestedAtomically from Control.Exception.Base +NoMethodError from Control.Exception.Base +NoMethodError from Control.Exception.Base +NonEmpty from Data.List.NonEmpty +NonTermination from Control.Exception.Base +NonTermination from Control.Exception.Base +NotAssociative from GHC.Generics +Nothing from GHC.Base +Num from GHC.Num +OnDecodeError from Data.Text.Encoding.Error +OnError from Data.Text.Encoding.Error +Option from Data.Semigroup +Option from Data.Semigroup +Ord from GHC.Classes +Ordering from GHC.Types +Overflow from GHC.Exception +PatternMatchFail from Control.Exception.Base +PatternMatchFail from Control.Exception.Base +Prefix from GHC.Generics +PrefixI from GHC.Generics +Print from Protolude.Show +Product from Data.Monoid +Product from Data.Monoid +Proxy from Data.Proxy +Proxy from Data.Proxy +Ptr from GHC.Ptr +QSem from Control.Concurrent.QSem +QSemN from Control.Concurrent.QSemN +R1 from GHC.Generics +Ratio from GHC.Real +RatioZeroDenominator from GHC.Exception +Rational from GHC.Real +Read from GHC.Read +ReadMode from GHC.IO.IOMode +ReadWriteMode from GHC.IO.IOMode +Reader from Control.Monad.Trans.Reader +ReaderT from Control.Monad.Trans.Reader +ReaderT from Control.Monad.Trans.Reader +Real from GHC.Real +RealFloat from GHC.Float +RealFrac from GHC.Real +Rec0 from GHC.Generics +RecConError from Control.Exception.Base +RecConError from Control.Exception.Base +RecSelError from Control.Exception.Base +RecSelError from Control.Exception.Base +RecUpdError from Control.Exception.Base +RecUpdError from Control.Exception.Base +Refl from Data.Type.Equality +Rep from GHC.Generics +Right from Data.Either +RightAssociative from GHC.Generics +S1 from GHC.Generics +ST from GHC.ST +STM from GHC.Conc.Sync +Selector from GHC.Generics +Semigroup from Data.Semigroup +Semiring from Protolude.Semiring +Seq from Data.Sequence +Set from Data.Set.Base +Show from GHC.Show +SomeAsyncException from GHC.IO.Exception +SomeAsyncException from GHC.IO.Exception +SomeException from GHC.Exception +SomeException from GHC.Exception +SomeNat from GHC.TypeLits +SomeNat from GHC.TypeLits +SomeSymbol from GHC.TypeLits +SomeSymbol from GHC.TypeLits +SrcLoc from GHC.ExecutionStack.Internal +SrcLoc from GHC.ExecutionStack.Internal +StablePtr from GHC.Stable +StackOverflow from GHC.IO.Exception +State from Control.Monad.Trans.State.Lazy +StateT from Control.Monad.Trans.State.Lazy +StateT from Control.Monad.Trans.State.Lazy +StaticPtr from GHC.StaticPtr +Storable from Foreign.Storable +Strict from Protolude.Conv +StringConv from Protolude.Conv +Sum from Data.Monoid +Sum from Data.Monoid +Symbol from GHC.Types +Text from Data.Text.Internal +ThreadId from GHC.Conc.Sync +ThreadKilled from GHC.IO.Exception +Traversable from Data.Traversable +True from GHC.Types +Type from GHC.Types +TypeError from Control.Exception.Base +TypeError from Control.Exception.Base +TypeRep from Data.Typeable.Internal +Typeable from Data.Typeable.Internal +U1 from GHC.Generics +U1 from GHC.Generics +URec from GHC.Generics +UndefinedElement from GHC.IO.Exception +Underflow from GHC.Exception +UnicodeException from Data.Text.Encoding.Error +Unmasked from GHC.IO +UserInterrupt from GHC.IO.Exception +V1 from GHC.Generics +Void from Data.Void +Word from GHC.Types +Word16 from GHC.Word +Word32 from GHC.Word +Word64 from GHC.Word +Word8 from GHC.Word +WordPtr from Foreign.Ptr +WrappedMonoid from Data.Semigroup +WriteMode from GHC.IO.IOMode +ZipList from Control.Applicative +ZipList from Control.Applicative +^ from GHC.Real +^%^ from GHC.Real +^^ from GHC.Real +^^%^^ from GHC.Real +abs from GHC.Num +absurd from Data.Void +acos from GHC.Float +acosh from GHC.Float +addMVarFinalizer from Control.Concurrent.MVar +all from Data.Foldable +allowInterrupt from Control.Exception +always from GHC.Conc.Sync +alwaysSucceeds from GHC.Conc.Sync +and from Data.Foldable +any from Data.Foldable +ap from GHC.Base +appEndo from Data.Monoid +appendFile from Data.Text.IO +applyN from Protolude +asTypeOf from GHC.Base +asin from GHC.Float +asinh from GHC.Float +ask from Control.Monad.Reader.Class +asks from Control.Monad.Reader.Class +asum from Data.Foldable +async from Control.Concurrent.Async +asyncBound from Control.Concurrent.Async +asyncExceptionFromException from GHC.IO.Exception +asyncExceptionToException from GHC.IO.Exception +asyncOn from Control.Concurrent.Async +asyncThreadId from Control.Concurrent.Async +atDef from Protolude.Safe +atMay from Protolude.Safe +atan from GHC.Float +atan2 from GHC.Float +atanh from GHC.Float +atomically from GHC.Conc.Sync +bimap from Data.Bifunctor +bit from Data.Bits +bitDefault from Data.Bits +bitSize from Data.Bits +bitSizeMaybe from Data.Bits +bool from Protolude.Bool +boundedEnumFrom from GHC.Enum +boundedEnumFromThen from GHC.Enum +bracket from Control.Exception.Base +bracketOnError from Control.Exception.Base +bracket_ from Control.Exception.Base +break from GHC.List +byteSwap16 from GHC.Word +byteSwap32 from GHC.Word +byteSwap64 from GHC.Word +callStack from GHC.Stack +cancel from Control.Concurrent.Async +cancelWith from Control.Concurrent.Async +cast from Data.Typeable +castWith from Data.Type.Equality +catMaybes from Data.Maybe +catch from Control.Exception.Base +catchE from Control.Monad.Trans.Except +catchError from Control.Monad.Error.Class +catchJust from Control.Exception.Base +catchSTM from GHC.Conc.Sync +catches from Control.Exception +ceiling from GHC.Real +check from Control.Monad.STM +chr from GHC.Char +cis from Data.Complex +clearBit from Data.Bits +coerceWith from Data.Type.Coercion +compare from GHC.Classes +comparing from Data.Ord +complement from Data.Bits +complementBit from Data.Bits +conFixity from GHC.Generics +conIsRecord from GHC.Generics +conName from GHC.Generics +concat from Data.Foldable +concatMap from Data.Foldable +concatMapM from Protolude.Monad +concurrently from Control.Concurrent.Async +conjugate from Data.Complex +const from GHC.Base +cos from GHC.Float +cosh from GHC.Float +countLeadingZeros from Data.Bits +countTrailingZeros from Data.Bits +currentCallStack from GHC.Stack.CCS +curry from Data.Tuple +cycle from GHC.List +cycle1 from Data.Semigroup +datatypeName from GHC.Generics +decodeFloat from GHC.Float +decodeUtf8 from Data.Text.Encoding +decodeUtf8' from Data.Text.Encoding +decodeUtf8With from Data.Text.Encoding +deepseq from Control.DeepSeq +denominator from GHC.Real +die from Protolude +diff from Data.Semigroup +displayException from GHC.Exception +div from GHC.Real +divMod from GHC.Real +divZeroError from GHC.Real +drop from GHC.List +dropWhile from GHC.List +dupChan from Control.Concurrent.Chan +either from Data.Either +eitherA from Protolude.Applicative +elem from Data.Foldable +empty from GHC.Base +encodeFloat from GHC.Float +encodeUtf8 from Data.Text.Encoding +enumFrom from GHC.Enum +enumFromThen from GHC.Enum +enumFromThenTo from GHC.Enum +enumFromTo from GHC.Enum +eqT from Data.Typeable +evalState from Control.Monad.Trans.State.Lazy +evalStateT from Control.Monad.Trans.State.Lazy +evaluate from GHC.IO +even from GHC.Real +execState from Control.Monad.Trans.State.Lazy +execStateT from Control.Monad.Trans.State.Lazy +exitFailure from System.Exit +exitSuccess from System.Exit +exitWith from System.Exit +exp from GHC.Float +expm1 from GHC.Float +exponent from GHC.Float +fatalErrorMessage from Protolude.Panic +filter from GHC.List +filterM from Control.Monad +finally from Control.Exception.Base +find from Data.Foldable +finiteBitSize from Data.Bits +first from Data.Bifunctor +fix from Data.Function +fixST from GHC.ST +flip from GHC.Base +floatDigits from GHC.Float +floatRadix from GHC.Float +floatRange from GHC.Float +floor from GHC.Real +fmap from GHC.Base +fmapDefault from Data.Traversable +fold from Data.Foldable +foldM from Control.Monad +foldM_ from Control.Monad +foldMap from Data.Foldable +foldMapDefault from Data.Traversable +foldl from Data.Foldable +foldl' from Data.Foldable +foldl1May from Protolude.Safe +foldl1May' from Protolude.Safe +foldlM from Data.Foldable +foldr from Data.Foldable +foldr' from Data.Foldable +foldr1May from Protolude.Safe +foldrM from Data.Foldable +for from Data.Traversable +forM from Data.Traversable +forM_ from Data.Foldable +for_ from Data.Foldable +force from Control.DeepSeq +foreach from Protolude.Functor +forever from Control.Monad +forkFinally from Control.Concurrent +forkIO from GHC.Conc.Sync +forkIOWithUnmask from GHC.Conc.Sync +forkOS from Control.Concurrent +forkOSWithUnmask from Control.Concurrent +forkOn from GHC.Conc.Sync +forkOnWithUnmask from GHC.Conc.Sync +from from GHC.Generics +fromEnum from GHC.Enum +fromException from GHC.Exception +fromInteger from GHC.Num +fromIntegral from GHC.Real +fromLabel from GHC.OverloadedLabels +fromLeft from Protolude.Either +fromMaybe from Data.Maybe +fromRational from GHC.Real +fromRight from Protolude.Either +fromStrict from Data.Text.Lazy +fst from Data.Tuple +functionName from GHC.ExecutionStack.Internal +gcastWith from Data.Type.Equality +gcd from GHC.Real +gcdInt' from GHC.Real +gcdWord' from GHC.Real +genericDrop from Data.OldList +genericLength from Data.OldList +genericReplicate from Data.OldList +genericSplitAt from Data.OldList +genericTake from Data.OldList +get from Control.Monad.State.Class +getAll from Data.Monoid +getAlt from Data.Monoid +getAny from Data.Monoid +getArgs from System.Environment +getCallStack from GHC.Stack.Types +getChanContents from Control.Concurrent.Chan +getConst from Data.Functor.Const +getContents from Data.Text.IO +getDual from Data.Monoid +getFirst from Data.Monoid +getLast from Data.Monoid +getLine from Data.Text.IO +getMaskingState from GHC.IO +getNumCapabilities from GHC.Conc.Sync +getOption from Data.Semigroup +getProduct from Data.Monoid +getStackTrace from GHC.ExecutionStack +getSum from Data.Monoid +getZipList from Control.Applicative +gets from Control.Monad.State.Class +group from Data.OldList +groupBy from Data.OldList +guard from Control.Monad +guardM from Protolude.Bool +guarded from Protolude +guardedA from Protolude +hPutStr from Protolude.Show +hPutStrLn from Protolude.Show +handle from Control.Exception.Base +handleJust from Control.Exception.Base +hash from Data.Hashable.Class +hashUsing from Data.Hashable.Class +hashWithSalt from Data.Hashable.Class +head from Protolude.List +headDef from Protolude.Safe +headMay from Protolude.Safe +hush from Protolude.Exceptions +identity from Protolude +ifM from Protolude.Bool +ignore from Data.Text.Encoding.Error +imagPart from Data.Complex +infinity from GHC.Real +initDef from Protolude.Safe +initMay from Protolude.Safe +initSafe from Protolude.Safe +inits from Data.OldList +integralEnumFrom from GHC.Real +integralEnumFromThen from GHC.Real +integralEnumFromThenTo from GHC.Real +integralEnumFromTo from GHC.Real +interact from Data.Text.IO +intercalate from Data.OldList +interruptible from GHC.IO +intersperse from Data.OldList +ioError from GHC.IO.Exception +isCurrentThreadBound from Control.Concurrent +isDenormalized from GHC.Float +isEmptyChan from Control.Concurrent.Chan +isEmptyMVar from GHC.MVar +isIEEE from GHC.Float +isInfinite from GHC.Float +isJust from Data.Maybe +isLeft from Data.Either +isNaN from GHC.Float +isNegativeZero from GHC.Float +isNewtype from GHC.Generics +isNothing from Data.Maybe +isPrefixOf from Data.OldList +isRight from Data.Either +isSigned from Data.Bits +iterate from GHC.List +join from GHC.Base +killThread from GHC.Conc.Sync +lastDef from Protolude.Safe +lastMay from Protolude.Safe +lcm from GHC.Real +leftToMaybe from Protolude.Either +lefts from Data.Either +length from Data.Foldable +lenientDecode from Data.Text.Encoding.Error +lift from Control.Monad.Trans.Class +liftA from GHC.Base +liftA2 from GHC.Base +liftA3 from GHC.Base +liftAA2 from Protolude.Applicative +liftIO from Control.Monad.IO.Class +liftIO1 from Protolude +liftIO2 from Protolude +liftM from GHC.Base +liftM' from Protolude.Monad +liftM2 from GHC.Base +liftM2' from Protolude.Monad +liftM3 from GHC.Base +liftM4 from GHC.Base +liftM5 from GHC.Base +lines from Data.Text +link from Control.Concurrent.Async +link2 from Control.Concurrent.Async +list from Protolude.List +listToMaybe from Data.Maybe +local from Control.Monad.Reader.Class +log from GHC.Float +log1mexp from GHC.Float +log1p from GHC.Float +log1pexp from GHC.Float +logBase from GHC.Float +magnitude from Data.Complex +many from GHC.Base +map from Protolude +mapAccumL from Data.Traversable +mapAccumR from Data.Traversable +mapAndUnzipM from Control.Monad +mapExcept from Control.Monad.Trans.Except +mapExceptT from Control.Monad.Trans.Except +mapException from Control.Exception.Base +mapM from Data.Traversable +mapM_ from Data.Foldable +mapMaybe from Data.Maybe +mappend from GHC.Base +mask from GHC.IO +mask_ from GHC.IO +max from GHC.Classes +maxBound from GHC.Enum +maxInt from GHC.Base +maximum from Data.Foldable +maximumBy from Data.Foldable +maximumDef from Protolude.Safe +maximumMay from Protolude.Safe +maybe from Data.Maybe +maybeEmpty from Protolude.Either +maybeToEither from Protolude.Either +maybeToLeft from Protolude.Either +maybeToList from Data.Maybe +maybeToRight from Protolude.Either +mconcat from GHC.Base +mempty from GHC.Base +mfilter from Control.Monad +min from GHC.Classes +minBound from GHC.Enum +minInt from GHC.Base +minimum from Data.Foldable +minimumBy from Data.Foldable +minimumDef from Protolude.Safe +minimumMay from Protolude.Safe +mkPolar from Data.Complex +mkWeakMVar from Control.Concurrent.MVar +mkWeakThreadId from GHC.Conc.Sync +mod from GHC.Real +modify from Control.Monad.State.Class +modifyMVar from Control.Concurrent.MVar +modifyMVarMasked from Control.Concurrent.MVar +modifyMVarMasked_ from Control.Concurrent.MVar +modifyMVar_ from Control.Concurrent.MVar +moduleName from GHC.Generics +mplus from GHC.Base +msum from Data.Foldable +mtimesDefault from Data.Semigroup +myThreadId from GHC.Conc.Sync +mzero from GHC.Base +natVal from GHC.TypeLits +negate from GHC.Num +newChan from Control.Concurrent.Chan +newEmptyMVar from GHC.MVar +newMVar from GHC.MVar +newQSem from Control.Concurrent.QSem +newQSemN from Control.Concurrent.QSemN +nonEmpty from Data.List.NonEmpty +not from GHC.Classes +notANumber from GHC.Real +notElem from Data.Foldable +notImplemented from Debug +note from Protolude.Exceptions +null from Data.Foldable +numerator from GHC.Real +numericEnumFrom from GHC.Real +numericEnumFromThen from GHC.Real +numericEnumFromThenTo from GHC.Real +numericEnumFromTo from GHC.Real +objectName from GHC.ExecutionStack.Internal +odd from GHC.Real +on from Data.Function +onException from Control.Exception.Base +one from Protolude.Semiring +openFile from GHC.IO.Handle.FD +option from Data.Semigroup +optional from Control.Applicative +or from Data.Foldable +orAlt from Protolude.Applicative +orElse from GHC.Conc.Sync +orEmpty from Protolude.Applicative +ord from GHC.Base +ordNub from Protolude.List +otherwise from GHC.Base +overflowError from GHC.Real +packageName from GHC.Generics +panic from Protolude.Panic +partitionEithers from Data.Either +pass from Protolude +permutations from Data.OldList +phase from Data.Complex +pi from GHC.Float +polar from Data.Complex +poll from Control.Concurrent.Async +popCount from Data.Bits +popCountDefault from Data.Bits +pred from GHC.Enum +prettyCallStack from GHC.Exception +prettySrcLoc from GHC.Exception +print from Protolude +product from Protolude.List +properFraction from GHC.Real +pure from GHC.Base +purer from Protolude.Applicative +put from Control.Monad.State.Class +putByteString from Protolude.Show +putErrLn from Protolude.Show +putErrText from Protolude.Show +putLByteString from Protolude.Show +putLText from Protolude.Show +putMVar from GHC.MVar +putStr from Protolude.Show +putStrLn from Protolude.Show +putText from Protolude.Show +quot from GHC.Real +quotRem from GHC.Real +race from Control.Concurrent.Async +race_ from Control.Concurrent.Async +ratioPrec from GHC.Real +ratioPrec1 from GHC.Real +ratioZeroDenominatorError from GHC.Real +readChan from Control.Concurrent.Chan +readEither from Protolude +readFile from Data.Text.IO +readMVar from GHC.MVar +readMaybe from Protolude +reader from Control.Monad.Reader.Class +reads from Text.Read +realPart from Data.Complex +realToFrac from GHC.Real +recip from GHC.Real +reduce from GHC.Real +rem from GHC.Real +repeat from GHC.List +replace from Data.Text.Encoding.Error +replicate from GHC.List +replicateM from Control.Monad +replicateM_ from Control.Monad +repr from Data.Type.Coercion +retry from GHC.Conc.Sync +return from GHC.Base +reverse from GHC.List +rightToMaybe from Protolude.Either +rights from Data.Either +rnf from Control.DeepSeq +rotate from Data.Bits +rotateL from Data.Bits +rotateR from Data.Bits +round from GHC.Real +rtsSupportsBoundThreads from Control.Concurrent +runConcurrently from Control.Concurrent.Async +runExcept from Control.Monad.Trans.Except +runExceptT from Control.Monad.Trans.Except +runIdentity from Data.Functor.Identity +runInBoundThread from Control.Concurrent +runInUnboundThread from Control.Concurrent +runReader from Control.Monad.Trans.Reader +runReaderT from Control.Monad.Trans.Reader +runST from GHC.ST +runState from Control.Monad.Trans.State.Lazy +runStateT from Control.Monad.Trans.State.Lazy +scaleFloat from GHC.Float +scanl from GHC.List +scanl' from GHC.List +scanr from GHC.List +sconcat from Data.Semigroup +second from Data.Bifunctor +selDecidedStrictness from GHC.Generics +selName from GHC.Generics +selSourceStrictness from GHC.Generics +selSourceUnpackedness from GHC.Generics +seq from GHC.Prim +sequence from Data.Traversable +sequenceA from Data.Traversable +sequenceA_ from Data.Foldable +sequence_ from Data.Foldable +setBit from Data.Bits +setNumCapabilities from GHC.Conc.Sync +shift from Data.Bits +shiftL from Data.Bits +shiftR from Data.Bits +show from Protolude +showStackTrace from GHC.ExecutionStack +signalQSem from Control.Concurrent.QSem +signalQSemN from Control.Concurrent.QSemN +significand from GHC.Float +signum from GHC.Num +sin from GHC.Float +sinh from GHC.Float +snd from Data.Tuple +some from GHC.Base +someNatVal from GHC.TypeLits +someSymbolVal from GHC.TypeLits +sort from Data.OldList +sortBy from Data.OldList +sortOn from Protolude.List +sourceColumn from GHC.ExecutionStack.Internal +sourceFile from GHC.ExecutionStack.Internal +sourceLine from GHC.ExecutionStack.Internal +splitAt from GHC.List +sqrt from GHC.Float +srcLoc from GHC.ExecutionStack.Internal +state from Control.Monad.State.Class +stderr from GHC.IO.Handle.FD +stdin from GHC.IO.Handle.FD +stdout from GHC.IO.Handle.FD +stimes from Data.Semigroup +stimesIdempotent from Data.Semigroup +stimesIdempotentMonoid from Data.Semigroup +stimesMonoid from Data.Semigroup +strConv from Protolude.Conv +strictDecode from Data.Text.Encoding.Error +subsequences from Data.OldList +subtract from GHC.Num +succ from GHC.Enum +sum from Protolude.List +swap from Data.Tuple +swapMVar from Control.Concurrent.MVar +sym from Data.Type.Equality +symbolVal from GHC.TypeLits +tailDef from Protolude.Safe +tailMay from Protolude.Safe +tailSafe from Protolude.Safe +tails from Data.OldList +take from GHC.List +takeMVar from GHC.MVar +takeWhile from GHC.List +tan from GHC.Float +tanh from GHC.Float +testBit from Data.Bits +testBitDefault from Data.Bits +threadCapability from GHC.Conc.Sync +threadDelay from GHC.Conc.IO +threadWaitRead from Control.Concurrent +threadWaitReadSTM from Control.Concurrent +threadWaitWrite from Control.Concurrent +threadWaitWriteSTM from Control.Concurrent +throwE from Control.Monad.Trans.Except +throwError from Control.Monad.Error.Class +throwIO from Protolude +throwSTM from GHC.Conc.Sync +throwTo from Protolude +to from GHC.Generics +toEnum from GHC.Enum +toException from GHC.Exception +toInteger from GHC.Real +toIntegralSized from Data.Bits +toList from Data.Foldable +toRational from GHC.Real +toS from Protolude.Conv +toSL from Protolude.Conv +toStrict from Data.Text.Lazy +trace from Debug +traceIO from Debug +traceId from Debug +traceM from Debug +traceShow from Debug +traceShowId from Debug +traceShowM from Debug +trans from Data.Type.Equality +transpose from Data.OldList +traverse from Data.Traversable +traverse_ from Data.Foldable +truncate from GHC.Real +try from Control.Exception.Base +tryIO from Protolude.Exceptions +tryJust from Control.Exception.Base +tryPutMVar from GHC.MVar +tryReadMVar from GHC.MVar +tryTakeMVar from GHC.MVar +typeRep from Data.Typeable.Internal +unComp1 from GHC.Generics +unGetChan from Control.Concurrent.Chan +unK1 from GHC.Generics +unM1 from GHC.Generics +uncons from Protolude +uncurry from Data.Tuple +undefined from Debug +unfoldr from Data.OldList +uninterruptibleMask from GHC.IO +uninterruptibleMask_ from GHC.IO +unless from Control.Monad +unlessM from Protolude.Bool +unlines from Data.Text +unsnoc from Protolude +until from GHC.Base +unwords from Data.Text +unzip from GHC.List +vacuous from Data.Void +void from Data.Functor +wait from Control.Concurrent.Async +waitAny from Control.Concurrent.Async +waitAnyCancel from Control.Concurrent.Async +waitAnyCatch from Control.Concurrent.Async +waitAnyCatchCancel from Control.Concurrent.Async +waitBoth from Control.Concurrent.Async +waitCatch from Control.Concurrent.Async +waitEither from Control.Concurrent.Async +waitEitherCancel from Control.Concurrent.Async +waitEitherCatch from Control.Concurrent.Async +waitEitherCatchCancel from Control.Concurrent.Async +waitEither_ from Control.Concurrent.Async +waitQSem from Control.Concurrent.QSem +waitQSemN from Control.Concurrent.QSemN +when from GHC.Base +whenM from Protolude.Bool +withAsync from Control.Concurrent.Async +withAsyncBound from Control.Concurrent.Async +withAsyncOn from Control.Concurrent.Async +withExcept from Control.Monad.Trans.Except +withExceptT from Control.Monad.Trans.Except +withFile from System.IO +withFrozenCallStack from GHC.Stack +withMVar from Control.Concurrent.MVar +withMVarMasked from Control.Concurrent.MVar +withState from Control.Monad.Trans.State.Lazy +witness from Debug +words from Data.Text +writeChan from Control.Concurrent.Chan +writeFile from Data.Text.IO +writeList2Chan from Control.Concurrent.Chan +xor from Data.Bits +zero from Protolude.Semiring +zeroBits from Data.Bits +zip from GHC.List +zipWith from GHC.List +zipWithM from Control.Monad +zipWithM_ from Control.Monad +|| from GHC.Classes +||^ from Protolude.Bool diff --git a/src/protolude/protolude.cabal b/src/protolude/protolude.cabal new file mode 100644 index 000000000..80ee3efd5 --- /dev/null +++ b/src/protolude/protolude.cabal @@ -0,0 +1,91 @@ +name: protolude +version: 0.3.5 +synopsis: A small prelude. +description: A sensible set of defaults for writing custom Preludes. +homepage: https://github.com/sdiehl/protolude +license: MIT +license-file: LICENSE +author: Stephen Diehl +maintainer: adamwespiser@gmail.com, stephen.m.diehl@gmail.com +copyright: 2016-2022 Stephen Diehl +category: Prelude +build-type: Simple +cabal-version: >=1.10 +bug-reports: https://github.com/sdiehl/protolude/issues +tested-with: + GHC ==7.6.3 + || ==7.8.4 + || ==7.10.3 + || ==8.0.1 + || ==8.2.1 + || ==8.4.1 + || ==8.6.1 + || ==8.8.1 + || ==8.10.1 + || ==9.0.1 + || ==9.2.2 + || ==9.6.1 + || ==9.8.2 + || ==9.10.1 + || ==9.12.1 + +extra-source-files: + README.md + ChangeLog.md + +source-repository head + type: git + location: git@github.com:protolude/protolude.git + +library + exposed-modules: + Protolude + Protolude.Applicative + Protolude.Base + Protolude.Bifunctor + Protolude.Bool + Protolude.CallStack + Protolude.Conv + Protolude.ConvertText + Protolude.Debug + Protolude.Either + Protolude.Error + Protolude.Exceptions + Protolude.Functor + Protolude.List + Protolude.Monad + Protolude.Panic + Protolude.Partial + Protolude.Safe + Protolude.Semiring + Protolude.Show + Protolude.Unsafe + + default-extensions: + NoImplicitPrelude + FlexibleContexts + MultiParamTypeClasses + OverloadedStrings + + ghc-options: -Wall -fwarn-implicit-prelude + build-depends: + array >=0.4 && <0.6 + , async >=2.0 && <2.3 + , base >=4.6 && <4.22 + , bytestring >=0.10 && <0.13 + , containers >=0.5 && <0.8 + , deepseq >=1.3 && <1.6 + , ghc-prim >=0.3 && <0.14 + , hashable >=1.2 && <1.6 + , mtl >=2.1 && <2.4 + , mtl-compat >=0.2 && <0.3 + , stm >=2.4 && <2.6 + , text >=1.2 && <2.2 + , transformers >=0.2 && <0.7 + , transformers-compat >=0.4 && <0.8 + + if !impl(ghc >=8.0) + build-depends: fail ==4.9.* + + hs-source-dirs: src + default-language: Haskell2010 diff --git a/src/protolude/src/Protolude.hs b/src/protolude/src/Protolude.hs new file mode 100644 index 000000000..9126fd669 --- /dev/null +++ b/src/protolude/src/Protolude.hs @@ -0,0 +1,1060 @@ +{-# LANGUAGE CPP #-} +{-# LANGUAGE Trustworthy #-} +{-# LANGUAGE BangPatterns #-} +{-# LANGUAGE FlexibleContexts #-} +{-# LANGUAGE NoImplicitPrelude #-} +{-# LANGUAGE ExplicitNamespaces #-} +{-# OPTIONS_GHC -fno-warn-unused-imports #-} + +module Protolude ( + -- * Base functions + module Base, + identity, + pass, +#if !MIN_VERSION_base(4,8,0) + (&), + scanl', +#endif + -- * Function functions + module Function, + applyN, + -- * List functions + module List, + map, + uncons, + unsnoc, + -- * Data Structures + module DataStructures, + -- * Show functions + module Show, + show, + print, + -- * Bool functions + module Bool, + -- * Monad functions + module Monad, + liftIO1, + liftIO2, + -- * Functor functions + module Functor, + -- * Either functions + module Either, + -- * Applicative functions + module Applicative, + guarded, + guardedA, + -- * String conversion + module ConvertText, + -- * Debug functions + module Debug, + + -- * Panic functions + module Panic, + -- * Exception functions + module Exception, + Protolude.throwIO, + Protolude.throwTo, + -- * Semiring functions + module Semiring, + + -- * String functions + module String, + -- * Safe functions + module Safe, + -- * Eq functions + module Eq, + -- * Ord functions + module Ord, + -- * Traversable functions + module Traversable, + -- * Foldable functions + module Foldable, + -- * Semigroup functions +#if MIN_VERSION_base(4,9,0) + module Semigroup, +#endif + -- * Monoid functions + module Monoid, + -- * Bifunctor functions + module Bifunctor, + -- * Bifunctor functions + module Hashable, + + -- * Deepseq functions + module DeepSeq, + + -- * Tuple functions + module Tuple, + + module Typeable, + +#if MIN_VERSION_base(4,7,0) + -- * Typelevel programming + module Typelevel, +#endif + + -- * Monads + module Fail, + module State, + module Reader, + module Except, + module Trans, + module ST, + module STM, + + -- * Integers + module Int, + module Bits, + + -- * Complex functions + module Complex, + + -- * Char functions + module Char, + + -- * Maybe functions + module Maybe, + + -- * Generics functions + module Generics, + + -- * ByteString functions + module ByteString, + LByteString, + + -- * Text functions + module Text, + LText, + + -- * Read functions + module Read, + readMaybe, + readEither, + + -- * System functions + module System, + die, + + -- * Concurrency functions + module Concurrency, + + -- * Foreign functions + module Foreign, +) where + +-- Protolude module exports. +import Protolude.Debug as Debug +import Protolude.List as List +import Protolude.Show as Show +import Protolude.Bool as Bool +import Protolude.Monad as Monad +import Protolude.Functor as Functor +import Protolude.Either as Either +import Protolude.Applicative as Applicative +import Protolude.ConvertText as ConvertText +import Protolude.Panic as Panic +import Protolude.Exceptions as Exception +import Protolude.Semiring as Semiring +import qualified Protolude.Conv as Conv + +import Protolude.Base as Base hiding ( + putStr -- Overriden by Show.putStr + , putStrLn -- Overriden by Show.putStrLn + , print -- Overriden by Protolude.print + , show -- Overriden by Protolude.show + , showFloat -- Custom Show instances deprecated. + , showList -- Custom Show instances deprecated. + , showSigned -- Custom Show instances deprecated. + , showSignedFloat -- Custom Show instances deprecated. + , showsPrec -- Custom Show instances deprecated. + ) +import qualified Protolude.Base as PBase + +-- Used for 'show', not exported. +import Data.String (String) +import Data.String as String (IsString) + +-- Maybe'ized version of partial functions +import Protolude.Safe as Safe ( + headMay + , headDef + , initMay + , initDef + , initSafe + , tailMay + , tailDef + , tailSafe + , lastDef + , lastMay + , foldr1May + , foldl1May + , foldl1May' + , maximumMay + , minimumMay + , maximumDef + , minimumDef + , atMay + , atDef + ) + +-- Applicatives +import Control.Applicative as Applicative ( + Applicative(..) + , Alternative(..) + , Const(Const,getConst) + , ZipList(ZipList,getZipList) + , (<**>) + , liftA + , liftA2 + , liftA3 + , optional + ) + +-- Base typeclasses +import Data.Eq as Eq ( + Eq(..) + ) +import Data.Ord as Ord ( + Ord(..) + , Ordering(LT,EQ,GT) + , Down(Down) + , comparing + ) +import Data.Traversable as Traversable +import Data.Foldable as Foldable ( + Foldable, + fold, + foldMap, + foldr, + foldr', + foldl, + foldl', + toList, +#if MIN_VERSION_base(4,8,0) + null, + length, +#endif + elem, + maximum, + minimum, + foldrM, + foldlM, + traverse_, + for_, + mapM_, + forM_, + sequence_, + sequenceA_, + asum, + msum, + concat, + concatMap, + and, + or, + any, + all, + maximumBy, + minimumBy, + notElem, + find, + ) +import Data.Functor.Identity as Functor ( + Identity(Identity, runIdentity) + ) + +#if MIN_VERSION_base(4,9,0) +import Data.List.NonEmpty as List ( + NonEmpty((:|)) + , nonEmpty + ) +import Data.Semigroup as Semigroup ( + Semigroup(sconcat, stimes) + , WrappedMonoid + , diff + , cycle1 + , stimesMonoid + , stimesIdempotent + , stimesIdempotentMonoid + , mtimesDefault + ) +#endif + +#if MIN_VERSION_base(4,9,0) && !MIN_VERSION_base(4,16,0) +import Data.Semigroup as Semigroup ( + Option(..) + , option + ) +#endif + +import Data.Monoid as Monoid + +#if !MIN_VERSION_base(4,8,0) +import Protolude.Bifunctor as Bifunctor (Bifunctor(bimap, first, second)) +#else +import Data.Bifunctor as Bifunctor (Bifunctor(bimap, first, second)) +#endif + +-- Deepseq +import Control.DeepSeq as DeepSeq ( + NFData(..) + , ($!!) + , deepseq + , force + ) + +-- Data structures +import Data.Tuple as Tuple ( + fst + , snd + , curry + , uncurry + , swap + ) + +import Data.List as List ( + splitAt + , break + , intercalate + , isPrefixOf + , isInfixOf + , isSuffixOf + , drop + , filter + , reverse + , replicate + , take + , sortBy + , sort + , intersperse + , transpose + , subsequences + , permutations + , scanl +#if MIN_VERSION_base(4,8,0) + , scanl' +#endif + , scanr + , iterate + , repeat + , cycle + , unfoldr + , takeWhile + , dropWhile + , group + , inits + , tails + , zipWith + , zip + , unzip + , genericLength + , genericTake + , genericDrop + , genericSplitAt + , genericReplicate + ) + +#if !MIN_VERSION_base(4,8,0) +-- These imports are required for the scanl' rewrite rules +import GHC.Exts (build) +import Data.List (tail) +#endif + +-- Hashing +import Data.Hashable as Hashable ( + Hashable + , hash + , hashWithSalt + , hashUsing + ) + +import Data.Map as DataStructures (Map) +import Data.Set as DataStructures (Set) +import Data.Sequence as DataStructures (Seq) +import Data.IntMap as DataStructures (IntMap) +import Data.IntSet as DataStructures (IntSet) + +import Data.Typeable as Typeable ( + TypeRep + , Typeable + , typeOf + , cast + , gcast +#if MIN_VERSION_base(4,7,0) + , typeRep + , eqT +#endif + ) + +#if MIN_VERSION_base(4,7,0) +import Data.Proxy as Typelevel ( + Proxy(..) + ) + +import Data.Type.Coercion as Typelevel ( + Coercion(..) + , coerceWith + , repr + ) + +import Data.Type.Equality as Typelevel ( + (:~:)(..) + , type (==) + , sym + , trans + , castWith + , gcastWith + ) + +#endif + +#if MIN_VERSION_base(4,8,0) +import Data.Void as Typelevel ( + Void + , absurd + , vacuous + ) +#endif + +import Control.Monad.Fail as Fail ( + MonadFail + ) + +-- Monad transformers +import Control.Monad.State as State ( + MonadState + , State + , StateT(StateT) + , put + , get + , gets + , modify + , state + , withState + + , runState + , execState + , evalState + + , runStateT + , execStateT + , evalStateT + ) + +import Control.Monad.Reader as Reader ( + MonadReader + , Reader + , ReaderT(ReaderT) + , ask + , asks + , local + , reader + , runReader + , runReaderT + ) + +import Control.Monad.Trans.Except as Except ( + throwE + , catchE + ) + +import Control.Monad.Except as Except ( + MonadError + , Except + , ExceptT(ExceptT) + , throwError + , catchError + , runExcept + , runExceptT + , mapExcept + , mapExceptT + , withExcept + , withExceptT + ) + +import Control.Monad.Trans as Trans ( + MonadIO + , lift + , liftIO + ) + +-- Base types +import Data.Int as Int ( + Int + , Int8 + , Int16 + , Int32 + , Int64 + ) +import Data.Bits as Bits ( + Bits, + (.&.), + (.|.), + xor, + complement, + shift, + rotate, +#if MIN_VERSION_base(4,7,0) + zeroBits, +#endif + bit, + setBit, + clearBit, + complementBit, + testBit, +#if MIN_VERSION_base(4,7,0) + bitSizeMaybe, +#endif + bitSize, + isSigned, + shiftL, + shiftR, + rotateL, + rotateR, + popCount, +#if MIN_VERSION_base(4,7,0) + FiniteBits, + finiteBitSize, + bitDefault, + testBitDefault, + popCountDefault, +#endif +#if MIN_VERSION_base(4,8,0) + toIntegralSized, + countLeadingZeros, + countTrailingZeros, +#endif + ) +import Data.Word as Bits ( + Word + , Word8 + , Word16 + , Word32 + , Word64 +#if MIN_VERSION_base(4,7,0) + , byteSwap16 + , byteSwap32 + , byteSwap64 +#endif + ) + +import Data.Either as Either ( + Either(Left,Right) + , either + , lefts + , rights + , partitionEithers +#if MIN_VERSION_base(4,7,0) + , isLeft + , isRight +#endif + ) + +import Data.Complex as Complex ( + Complex((:+)) + , realPart + , imagPart + , mkPolar + , cis + , polar + , magnitude + , phase + , conjugate + ) +import Data.Char as Char ( + Char + , ord + , chr + , digitToInt + , intToDigit + , toUpper + , toLower + , toTitle + , isAscii + , isLetter + , isDigit + , isHexDigit + , isPrint + , isAlpha + , isAlphaNum + , isUpper + , isLower + , isSpace + , isControl + ) +import Data.Bool as Bool ( + Bool(True, False), + (&&), + (||), + not, + otherwise + ) +import Data.Maybe as Maybe ( + Maybe(Nothing, Just) + , maybe + , isJust + , isNothing + , fromMaybe + , listToMaybe + , maybeToList + , catMaybes + , mapMaybe + ) + +import Data.Function as Function ( + const + , (.) + , ($) + , flip + , fix + , on +#if MIN_VERSION_base(4,8,0) + , (&) +#endif + ) + +-- Genericss +import GHC.Generics as Generics ( + Generic(..) + , Generic1 + , Rep + , K1(..) + , M1(..) + , U1(..) + , V1 + , D1 + , C1 + , S1 + , (:+:)(..) + , (:*:)(..) + , (:.:)(..) + , Rec0 + , Constructor(..) + , Datatype(..) + , Selector(..) + , Fixity(..) + , Associativity(..) +#if ( __GLASGOW_HASKELL__ >= 800 ) + , Meta(..) + , FixityI(..) + , URec +#endif + ) + +-- ByteString +import qualified Data.ByteString.Lazy +import Data.ByteString as ByteString (ByteString) + +-- Text +import Data.Text as Text ( + Text + , lines + , words + , unlines + , unwords + ) +import qualified Data.Text.Lazy + +import Data.Text.IO as Text ( + getLine + , getContents + , interact + , readFile + , writeFile + , appendFile + ) + +import Data.Text.Lazy as Text ( + toStrict + , fromStrict + ) + +import Data.Text.Encoding as Text ( + encodeUtf8 + , decodeUtf8 + , decodeUtf8' + , decodeUtf8With + ) + +import Data.Text.Encoding.Error as Text ( + OnDecodeError + , OnError + , UnicodeException + , lenientDecode + , strictDecode + , ignore + , replace + ) + +-- IO +import System.Environment as System (getArgs) +import qualified System.Exit +import System.Exit as System ( + ExitCode(..) + , exitWith + , exitFailure + , exitSuccess + ) +import System.IO as System ( + Handle + , FilePath + , IOMode(..) + , stdin + , stdout + , stderr + , withFile + , openFile + ) + +-- ST +import Control.Monad.ST as ST ( + ST + , runST + , fixST + ) + +-- Concurrency and Parallelism +import Control.Exception as Exception ( + Exception, + toException, + fromException, +#if MIN_VERSION_base(4,8,0) + displayException, +#endif + SomeException(SomeException) + , IOException + , ArithException( + Overflow, + Underflow, + LossOfPrecision, + DivideByZero, + Denormal, + RatioZeroDenominator + ) + , ArrayException(IndexOutOfBounds, UndefinedElement) + , AssertionFailed(AssertionFailed) +#if MIN_VERSION_base(4,7,0) + , SomeAsyncException(SomeAsyncException) + , asyncExceptionToException + , asyncExceptionFromException +#endif + , AsyncException(StackOverflow, HeapOverflow, ThreadKilled, UserInterrupt) + , NonTermination(NonTermination) + , NestedAtomically(NestedAtomically) + , BlockedIndefinitelyOnMVar(BlockedIndefinitelyOnMVar) + , BlockedIndefinitelyOnSTM(BlockedIndefinitelyOnSTM) +#if MIN_VERSION_base(4,8,0) + , AllocationLimitExceeded(AllocationLimitExceeded) +#endif +#if MIN_VERSION_base(4,10,0) + , CompactionFailed(CompactionFailed) +#endif + , Deadlock(Deadlock) + , NoMethodError(NoMethodError) + , PatternMatchFail(PatternMatchFail) + , RecConError(RecConError) + , RecSelError(RecSelError) + , RecUpdError(RecUpdError) +#if MIN_VERSION_base(4,9,0) + , ErrorCall(ErrorCall, ErrorCallWithLocation) +#else + , ErrorCall(ErrorCall) +#endif +#if MIN_VERSION_base(4,9,0) + , TypeError(TypeError) +#endif + , ioError + , catch + , catches + , Handler(Handler) + , catchJust + , handle + , handleJust + , try + , tryJust + , evaluate + , mapException + , mask + , mask_ + , uninterruptibleMask + , uninterruptibleMask_ + , MaskingState(..) + , getMaskingState +#if MIN_VERSION_base(4,9,0) + , interruptible +#endif + , allowInterrupt + , bracket + , bracket_ + , bracketOnError + , finally + , onException + ) +import qualified Control.Exception as PException + +import Control.Monad.STM as STM ( + STM + , atomically +#if !(MIN_VERSION_stm(2,5,0)) + , always + , alwaysSucceeds +#endif + , retry + , orElse + , check + , throwSTM + , catchSTM + ) + +import Control.Concurrent.MVar as Concurrency ( + MVar + , newEmptyMVar + , newMVar + , takeMVar + , putMVar + , readMVar + , swapMVar + , tryTakeMVar + , tryPutMVar + , isEmptyMVar + , withMVar +#if MIN_VERSION_base(4,7,0) + , withMVarMasked +#endif + , modifyMVar_ + , modifyMVar + , modifyMVarMasked_ + , modifyMVarMasked +#if MIN_VERSION_base(4,7,0) + , tryReadMVar + , mkWeakMVar +#endif + , addMVarFinalizer + ) +import Control.Concurrent.Chan as Concurrency ( + Chan + , newChan + , writeChan + , readChan + , dupChan + , getChanContents + , writeList2Chan + ) +import Control.Concurrent.QSem as Concurrency ( + QSem + , newQSem + , waitQSem + , signalQSem + ) +import Control.Concurrent.QSemN as Concurrency ( + QSemN + , newQSemN + , waitQSemN + , signalQSemN + ) +import Control.Concurrent as Concurrency ( + ThreadId + , forkIO + , forkFinally + , forkIOWithUnmask + , killThread + , forkOn + , forkOnWithUnmask + , getNumCapabilities + , setNumCapabilities + , threadCapability + , yield + , threadDelay + , threadWaitRead + , threadWaitWrite +#if MIN_VERSION_base(4,7,0) + , threadWaitReadSTM + , threadWaitWriteSTM +#endif + , rtsSupportsBoundThreads + , forkOS +#if MIN_VERSION_base(4,9,0) + , forkOSWithUnmask +#endif + , isCurrentThreadBound + , runInBoundThread + , runInUnboundThread + , mkWeakThreadId + , myThreadId + ) +import Control.Concurrent.Async as Concurrency ( + Async(..) + , Concurrently(..) + , async + , asyncBound + , asyncOn + , withAsync + , withAsyncBound + , withAsyncOn + , wait + , poll + , waitCatch + , cancel + , cancelWith + , asyncThreadId + , waitAny + , waitAnyCatch + , waitAnyCancel + , waitAnyCatchCancel + , waitEither + , waitEitherCatch + , waitEitherCancel + , waitEitherCatchCancel + , waitEither_ + , waitBoth + , link + , link2 + , race + , race_ + , concurrently + ) + +import Foreign.Ptr as Foreign (IntPtr, WordPtr) +import Foreign.Storable as Foreign (Storable) +import Foreign.StablePtr as Foreign (StablePtr) + +-- Read instances hiding unsafe builtins (read) +import qualified Text.Read as Read +import Text.Read as Read ( + Read + , reads + ) + +-- Type synonymss for lazy texts +type LText = Data.Text.Lazy.Text +type LByteString = Data.ByteString.Lazy.ByteString + + +#if !MIN_VERSION_base(4,8,0) +infixl 1 & + +(&) :: a -> (a -> b) -> b +x & f = f x +#endif + +-- | The identity function, returns the give value unchanged. +identity :: a -> a +identity x = x + +map :: Functor.Functor f => (a -> b) -> f a -> f b +map = Functor.fmap + +uncons :: [a] -> Maybe (a, [a]) +uncons [] = Nothing +uncons (x:xs) = Just (x, xs) + +unsnoc :: [x] -> Maybe ([x],x) +unsnoc = Foldable.foldr go Nothing + where + go x mxs = Just (case mxs of + Nothing -> ([], x) + Just (xs, e) -> (x:xs, e)) + +-- | Apply a function n times to a given value +applyN :: Int -> (a -> a) -> a -> a +applyN n f = Foldable.foldr (.) identity (List.replicate n f) + +-- | Parse a string using the 'Read' instance. +-- Succeeds if there is exactly one valid result. +-- +-- >>> readMaybe ("123" :: Text) :: Maybe Int +-- Just 123 +-- +-- >>> readMaybe ("hello" :: Text) :: Maybe Int +-- Nothing +readMaybe :: (Read b, Conv.StringConv a String) => a -> Maybe b +readMaybe = Read.readMaybe . Conv.toS + +-- | Parse a string using the 'Read' instance. +-- Succeeds if there is exactly one valid result. +-- A 'Left' value indicates a parse error. +-- +-- >>> readEither "123" :: Either Text Int +-- Right 123 +-- +-- >>> readEither "hello" :: Either Text Int +-- Left "Prelude.read: no parse" +readEither :: (Read a, Conv.StringConv String e, Conv.StringConv e String) => e -> Either e a +readEither = first Conv.toS . Read.readEither . Conv.toS + +-- | The print function outputs a value of any printable type to the standard +-- output device. Printable types are those that are instances of class Show; +-- print converts values to strings for output using the show operation and adds +-- a newline. +print :: (Trans.MonadIO m, PBase.Show a) => a -> m () +print = liftIO . PBase.print + +-- | Lifted throwIO +throwIO :: (Trans.MonadIO m, Exception e) => e -> m a +throwIO = liftIO . PException.throwIO + +-- | Lifted throwTo +throwTo :: (Trans.MonadIO m, Exception e) => ThreadId -> e -> m () +throwTo tid e = liftIO (PException.throwTo tid e) + +-- | Do nothing returning unit inside applicative. +pass :: Applicative f => f () +pass = pure () + +guarded :: (Alternative f) => (a -> Bool) -> a -> f a +guarded p x = Bool.bool empty (pure x) (p x) + +guardedA :: (Functor.Functor f, Alternative t) => (a -> f Bool) -> a -> f (t a) +guardedA p x = Bool.bool empty (pure x) `Functor.fmap` p x + +-- | Lift an 'IO' operation with 1 argument into another monad +liftIO1 :: MonadIO m => (a -> IO b) -> a -> m b +liftIO1 = (.) liftIO + +-- | Lift an 'IO' operation with 2 arguments into another monad +liftIO2 :: MonadIO m => (a -> b -> IO c) -> a -> b -> m c +liftIO2 = ((.).(.)) liftIO + +show :: (Show a, Conv.StringConv String b) => a -> b +show x = Conv.toS (PBase.show x) +{-# SPECIALIZE show :: Show a => a -> Text #-} +{-# SPECIALIZE show :: Show a => a -> LText #-} +{-# SPECIALIZE show :: Show a => a -> String #-} + +#if MIN_VERSION_base(4,8,0) +-- | Terminate main process with failure +die :: Text -> IO a +die err = System.Exit.die (ConvertText.toS err) +#else +-- | Terminate main process with failure +die :: Text -> IO a +die err = hPutStrLn stderr err >> exitFailure +#endif + +#if !MIN_VERSION_base(4,8,0) +-- This is a literal copy of the implementation in GHC.List in base-4.10.1.0. + +-- | A strictly accumulating version of 'scanl' +{-# NOINLINE [1] scanl' #-} +scanl' :: (b -> a -> b) -> b -> [a] -> [b] +scanl' = scanlGo' + where + scanlGo' :: (b -> a -> b) -> b -> [a] -> [b] + scanlGo' f !q ls = q : (case ls of + [] -> [] + x:xs -> scanlGo' f (f q x) xs) + +{-# RULES +"scanl'" [~1] forall f a bs . scanl' f a bs = + build (\c n -> a `c` foldr (scanlFB' f c) (flipSeqScanl' n) bs a) +"scanlList'" [1] forall f a bs . + foldr (scanlFB' f (:)) (flipSeqScanl' []) bs a = tail (scanl' f a bs) + #-} + +{-# INLINE [0] scanlFB' #-} +scanlFB' :: (b -> a -> b) -> (b -> c -> c) -> a -> (b -> c) -> b -> c +scanlFB' f c = \b g -> \x -> let !b' = f x b in b' `c` g b' + +{-# INLINE [0] flipSeqScanl' #-} +flipSeqScanl' :: a -> b -> a +flipSeqScanl' a !_b = a +#endif diff --git a/src/protolude/src/Protolude/Applicative.hs b/src/protolude/src/Protolude/Applicative.hs new file mode 100644 index 000000000..0e3c25b35 --- /dev/null +++ b/src/protolude/src/Protolude/Applicative.hs @@ -0,0 +1,38 @@ +{-# LANGUAGE Safe #-} +{-# LANGUAGE NoImplicitPrelude #-} + +module Protolude.Applicative + ( orAlt, + orEmpty, + eitherA, + purer, + liftAA2, + (<<*>>), + ) +where + +import Control.Applicative +import Data.Bool (Bool) +import Data.Either (Either (Left, Right)) +import Data.Function ((.)) +import Data.Monoid (Monoid (mempty)) + +orAlt :: (Alternative f, Monoid a) => f a -> f a +orAlt f = f <|> pure mempty + +orEmpty :: Alternative f => Bool -> a -> f a +orEmpty b a = if b then pure a else empty + +eitherA :: (Alternative f) => f a -> f b -> f (Either a b) +eitherA a b = (Left <$> a) <|> (Right <$> b) + +purer :: (Applicative f, Applicative g) => a -> f (g a) +purer = pure . pure + +liftAA2 :: (Applicative f, Applicative g) => (a -> b -> c) -> f (g a) -> f (g b) -> f (g c) +liftAA2 = liftA2 . liftA2 + +infixl 4 <<*>> + +(<<*>>) :: (Applicative f, Applicative g) => f (g (a -> b)) -> f (g a) -> f (g b) +(<<*>>) = liftA2 (<*>) diff --git a/src/protolude/src/Protolude/Base.hs b/src/protolude/src/Protolude/Base.hs new file mode 100644 index 000000000..0682d1eb8 --- /dev/null +++ b/src/protolude/src/Protolude/Base.hs @@ -0,0 +1,225 @@ +{-# LANGUAGE CPP #-} +{-# LANGUAGE MagicHash #-} +{-# LANGUAGE Unsafe #-} +{-# LANGUAGE BangPatterns #-} +{-# LANGUAGE NoImplicitPrelude #-} +{-# LANGUAGE ExplicitNamespaces #-} + +module Protolude.Base ( + module Base, + ($!), +) where + +-- Glorious Glasgow Haskell Compiler +#if defined(__GLASGOW_HASKELL__) && ( __GLASGOW_HASKELL__ >= 600 ) + +-- Base GHC types +import GHC.Num as Base ( + Num( + (+), + (-), + (*), + negate, + abs, + signum, + fromInteger + ) + , Integer + , subtract + ) +import GHC.Enum as Base ( + Bounded(minBound, maxBound) + , Enum( + succ, + pred, + toEnum, + fromEnum, + enumFrom, + enumFromThen, + enumFromTo, + enumFromThenTo + ) + , boundedEnumFrom + , boundedEnumFromThen + ) +import GHC.Real as Base ( + (%) + , (/) + , Fractional + , Integral + , Ratio + , Rational + , Real + , RealFrac + , (^) + , (^%^) + , (^^) + , (^^%^^) + , ceiling + , denominator + , div + , divMod +#if MIN_VERSION_base(4,7,0) + , divZeroError +#endif + , even + , floor + , fromIntegral + , fromRational + , gcd +#if MIN_VERSION_base(4,9,0) && !MIN_VERSION_base(4,15,0) +#if defined(MIN_VERSION_integer_gmp) + , gcdInt' + , gcdWord' +#endif +#endif + , infinity + , integralEnumFrom + , integralEnumFromThen + , integralEnumFromThenTo + , integralEnumFromTo + , lcm + , mod + , notANumber + , numerator + , numericEnumFrom + , numericEnumFromThen + , numericEnumFromThenTo + , numericEnumFromTo + , odd +#if MIN_VERSION_base(4,7,0) + , overflowError +#endif + , properFraction + , quot + , quotRem + , ratioPrec + , ratioPrec1 +#if MIN_VERSION_base(4,7,0) + , ratioZeroDenominatorError +#endif + , realToFrac + , recip + , reduce + , rem + , round + , showSigned + , toInteger + , toRational + , truncate +#if MIN_VERSION_base(4,12,0) + , underflowError +#endif + ) +import GHC.Float as Base ( + Float(F#) + , Double(D#) + , Floating (..) + , RealFloat(..) + , showFloat + , showSignedFloat + ) +import GHC.Show as Base ( + Show(showsPrec, show, showList) + ) +import GHC.Exts as Base ( + Constraint + , Ptr + , FunPtr + ) +import GHC.Base as Base ( + (++) + , seq + , asTypeOf + , ord + , maxInt + , minInt + , until + ) + +-- Exported for lifting into new functions. +import System.IO as Base ( + print + , putStr + , putStrLn + ) + +import GHC.Types as Base ( + Bool + , Char + , Int + , Word + , Ordering + , IO +#if ( __GLASGOW_HASKELL__ >= 710 ) + , Coercible +#endif + ) + +#if ( __GLASGOW_HASKELL__ >= 710 ) +import GHC.StaticPtr as Base (StaticPtr) +#endif + +#if ( __GLASGOW_HASKELL__ >= 800 ) +import GHC.OverloadedLabels as Base ( + IsLabel(fromLabel) + ) + +import GHC.ExecutionStack as Base ( + Location(Location, srcLoc, objectName, functionName) + , SrcLoc(SrcLoc, sourceColumn, sourceLine, sourceColumn) + , getStackTrace + , showStackTrace + ) + +import GHC.Stack as Base ( + CallStack + , type HasCallStack + , callStack + , prettySrcLoc + , currentCallStack + , getCallStack + , prettyCallStack + , withFrozenCallStack + ) +#endif + +#if ( __GLASGOW_HASKELL__ >= 710 ) +import GHC.TypeLits as Base ( + Symbol + , SomeSymbol(SomeSymbol) + , Nat + , SomeNat(SomeNat) + , CmpNat + , KnownSymbol + , KnownNat + , natVal + , someNatVal + , symbolVal + , someSymbolVal + ) +#endif + +#if ( __GLASGOW_HASKELL__ >= 802 ) +import GHC.Records as Base ( + HasField(getField) + ) +#endif + +#if ( __GLASGOW_HASKELL__ >= 800 ) +import Data.Kind as Base ( + type Type +#if ( __GLASGOW_HASKELL__ < 805 ) + , type (*) +#endif + , type Type + ) +#endif + +-- Default Prelude defines this at the toplevel module, so we do as well. +infixr 0 $! + +($!) :: (a -> b) -> a -> b +f $! x = let !vx = x in f vx + +#endif diff --git a/src/protolude/src/Protolude/Bifunctor.hs b/src/protolude/src/Protolude/Bifunctor.hs new file mode 100644 index 000000000..6dd9ad4ab --- /dev/null +++ b/src/protolude/src/Protolude/Bifunctor.hs @@ -0,0 +1,51 @@ +{-# LANGUAGE Safe #-} +{-# LANGUAGE NoImplicitPrelude #-} + +module Protolude.Bifunctor + ( Bifunctor, + bimap, + first, + second, + ) +where + +import Control.Applicative (Const (Const)) +import Data.Either (Either (Left, Right)) +import Data.Function ((.), id) + +class Bifunctor p where + {-# MINIMAL bimap | first, second #-} + + bimap :: (a -> b) -> (c -> d) -> p a c -> p b d + bimap f g = first f . second g + + first :: (a -> b) -> p a c -> p b c + first f = bimap f id + + second :: (b -> c) -> p a b -> p a c + second = bimap id + +instance Bifunctor (,) where + bimap f g ~(a, b) = (f a, g b) + +instance Bifunctor ((,,) x1) where + bimap f g ~(x1, a, b) = (x1, f a, g b) + +instance Bifunctor ((,,,) x1 x2) where + bimap f g ~(x1, x2, a, b) = (x1, x2, f a, g b) + +instance Bifunctor ((,,,,) x1 x2 x3) where + bimap f g ~(x1, x2, x3, a, b) = (x1, x2, x3, f a, g b) + +instance Bifunctor ((,,,,,) x1 x2 x3 x4) where + bimap f g ~(x1, x2, x3, x4, a, b) = (x1, x2, x3, x4, f a, g b) + +instance Bifunctor ((,,,,,,) x1 x2 x3 x4 x5) where + bimap f g ~(x1, x2, x3, x4, x5, a, b) = (x1, x2, x3, x4, x5, f a, g b) + +instance Bifunctor Either where + bimap f _ (Left a) = Left (f a) + bimap _ g (Right b) = Right (g b) + +instance Bifunctor Const where + bimap f _ (Const a) = Const (f a) diff --git a/src/protolude/src/Protolude/Bool.hs b/src/protolude/src/Protolude/Bool.hs new file mode 100644 index 000000000..ed987c809 --- /dev/null +++ b/src/protolude/src/Protolude/Bool.hs @@ -0,0 +1,64 @@ +{-# LANGUAGE Safe #-} +{-# LANGUAGE NoImplicitPrelude #-} + +module Protolude.Bool ( + whenM +, unlessM +, ifM +, guardM +, bool +, (&&^) +, (||^) +, (<&&>) +, (<||>) +) where + +import Data.Bool (Bool(True, False), (&&), (||)) +import Data.Function (flip) +import Control.Applicative(Applicative, liftA2) +import Control.Monad (Monad, MonadPlus, return, when, unless, guard, (>>=), (=<<)) + +bool :: a -> a -> Bool -> a +bool f t p = if p then t else f + +whenM :: Monad m => m Bool -> m () -> m () +whenM p m = + p >>= flip when m + +unlessM :: Monad m => m Bool -> m () -> m () +unlessM p m = + p >>= flip unless m + +ifM :: Monad m => m Bool -> m a -> m a -> m a +ifM p x y = p >>= \b -> if b then x else y + +guardM :: MonadPlus m => m Bool -> m () +guardM f = guard =<< f + +-- | The '||' operator lifted to a monad. If the first +-- argument evaluates to 'True' the second argument will not +-- be evaluated. +infixr 2 ||^ -- same as (||) +(||^) :: Monad m => m Bool -> m Bool -> m Bool +(||^) a b = ifM a (return True) b + +infixr 2 <||> +-- | '||' lifted to an Applicative. +-- Unlike '||^' the operator is __not__ short-circuiting. +(<||>) :: Applicative a => a Bool -> a Bool -> a Bool +(<||>) = liftA2 (||) +{-# INLINE (<||>) #-} + +-- | The '&&' operator lifted to a monad. If the first +-- argument evaluates to 'False' the second argument will not +-- be evaluated. +infixr 3 &&^ -- same as (&&) +(&&^) :: Monad m => m Bool -> m Bool -> m Bool +(&&^) a b = ifM a b (return False) + +infixr 3 <&&> +-- | '&&' lifted to an Applicative. +-- Unlike '&&^' the operator is __not__ short-circuiting. +(<&&>) :: Applicative a => a Bool -> a Bool -> a Bool +(<&&>) = liftA2 (&&) +{-# INLINE (<&&>) #-} diff --git a/src/protolude/src/Protolude/CallStack.hs b/src/protolude/src/Protolude/CallStack.hs new file mode 100644 index 000000000..ce587f669 --- /dev/null +++ b/src/protolude/src/Protolude/CallStack.hs @@ -0,0 +1,18 @@ +{-# LANGUAGE CPP #-} +{-# LANGUAGE KindSignatures #-} +{-# LANGUAGE ImplicitParams #-} +{-# LANGUAGE ConstraintKinds #-} + +module Protolude.CallStack +( HasCallStack +) where + +#if MIN_VERSION_base(4,9,0) +import GHC.Stack (HasCallStack) +#elif MIN_VERSION_base(4,8,1) +import qualified GHC.Stack +type HasCallStack = (?callStack :: GHC.Stack.CallStack) +#else +import GHC.Exts (Constraint) +type HasCallStack = (() :: Constraint) +#endif diff --git a/src/protolude/src/Protolude/Conv.hs b/src/protolude/src/Protolude/Conv.hs new file mode 100644 index 000000000..47a1167dc --- /dev/null +++ b/src/protolude/src/Protolude/Conv.hs @@ -0,0 +1,78 @@ +{-# LANGUAGE Trustworthy #-} +{-# LANGUAGE FlexibleInstances #-} +{-# LANGUAGE TypeSynonymInstances #-} + +-- | An alternative to 'Protolude.ConvertText' that includes +-- partial conversions. Not re-exported by 'Protolude'. +module Protolude.Conv ( + StringConv +, strConv +, toS +, toSL +, Leniency (Lenient, Strict) +) where + +import Data.ByteString.Char8 as B +import Data.ByteString.Lazy.Char8 as LB +import Data.Text as T +import Data.Text.Encoding as T +import Data.Text.Encoding.Error as T +import Data.Text.Lazy as LT +import Data.Text.Lazy.Encoding as LT + +import Protolude.Base +import Data.Eq (Eq) +import Data.Ord (Ord) +import Data.Function ((.), id) +import Data.String (String) +import Control.Applicative (pure) + +data Leniency = Lenient | Strict + deriving (Eq,Show,Ord,Enum,Bounded) + +class StringConv a b where + strConv :: Leniency -> a -> b + +toS :: StringConv a b => a -> b +toS = strConv Strict + +toSL :: StringConv a b => a -> b +toSL = strConv Lenient + +instance StringConv String String where strConv _ = id +instance StringConv String B.ByteString where strConv _ = B.pack +instance StringConv String LB.ByteString where strConv _ = LB.pack +instance StringConv String T.Text where strConv _ = T.pack +instance StringConv String LT.Text where strConv _ = LT.pack + +instance StringConv B.ByteString String where strConv _ = B.unpack +instance StringConv B.ByteString B.ByteString where strConv _ = id +instance StringConv B.ByteString LB.ByteString where strConv _ = LB.fromChunks . pure +instance StringConv B.ByteString T.Text where strConv = decodeUtf8T +instance StringConv B.ByteString LT.Text where strConv l = strConv l . LB.fromChunks . pure + +instance StringConv LB.ByteString String where strConv _ = LB.unpack +instance StringConv LB.ByteString B.ByteString where strConv _ = B.concat . LB.toChunks +instance StringConv LB.ByteString LB.ByteString where strConv _ = id +instance StringConv LB.ByteString T.Text where strConv l = decodeUtf8T l . strConv l +instance StringConv LB.ByteString LT.Text where strConv = decodeUtf8LT + +instance StringConv T.Text String where strConv _ = T.unpack +instance StringConv T.Text B.ByteString where strConv _ = T.encodeUtf8 +instance StringConv T.Text LB.ByteString where strConv l = strConv l . T.encodeUtf8 +instance StringConv T.Text LT.Text where strConv _ = LT.fromStrict +instance StringConv T.Text T.Text where strConv _ = id + +instance StringConv LT.Text String where strConv _ = LT.unpack +instance StringConv LT.Text T.Text where strConv _ = LT.toStrict +instance StringConv LT.Text LT.Text where strConv _ = id +instance StringConv LT.Text LB.ByteString where strConv _ = LT.encodeUtf8 +instance StringConv LT.Text B.ByteString where strConv l = strConv l . LT.encodeUtf8 + +decodeUtf8T :: Leniency -> B.ByteString -> T.Text +decodeUtf8T Lenient = T.decodeUtf8With T.lenientDecode +decodeUtf8T Strict = T.decodeUtf8With T.strictDecode + +decodeUtf8LT :: Leniency -> LB.ByteString -> LT.Text +decodeUtf8LT Lenient = LT.decodeUtf8With T.lenientDecode +decodeUtf8LT Strict = LT.decodeUtf8With T.strictDecode diff --git a/src/protolude/src/Protolude/ConvertText.hs b/src/protolude/src/Protolude/ConvertText.hs new file mode 100644 index 000000000..df3fd26db --- /dev/null +++ b/src/protolude/src/Protolude/ConvertText.hs @@ -0,0 +1,50 @@ +{-# LANGUAGE FlexibleInstances #-} +{-# LANGUAGE Safe #-} + +-- | Non-partial text conversion typeclass and functions. +-- For an alternative with partial conversions import 'Protolude.Conv'. +module Protolude.ConvertText ( + ConvertText (toS) +, toUtf8 +, toUtf8Lazy +) where + +import qualified Data.ByteString as B +import qualified Data.ByteString.Lazy as LB +import qualified Data.Text as T +import qualified Data.Text.Lazy as LT + +import Data.Function (id, (.)) +import Data.String (String) +import Data.Text.Encoding (encodeUtf8) + +-- | Convert from one Unicode textual type to another. Not for serialization/deserialization, +-- so doesn't have instances for bytestrings. +class ConvertText a b where + toS :: a -> b + +instance ConvertText String String where toS = id +instance ConvertText String T.Text where toS = T.pack +instance ConvertText String LT.Text where toS = LT.pack + +instance ConvertText T.Text String where toS = T.unpack +instance ConvertText T.Text LT.Text where toS = LT.fromStrict +instance ConvertText T.Text T.Text where toS = id + +instance ConvertText LT.Text String where toS = LT.unpack +instance ConvertText LT.Text T.Text where toS = LT.toStrict +instance ConvertText LT.Text LT.Text where toS = id + +instance ConvertText LB.ByteString B.ByteString where toS = LB.toStrict +instance ConvertText LB.ByteString LB.ByteString where toS = id + +instance ConvertText B.ByteString B.ByteString where toS = id +instance ConvertText B.ByteString LB.ByteString where toS = LB.fromStrict + +toUtf8 :: ConvertText a T.Text => a -> B.ByteString +toUtf8 = + encodeUtf8 . toS + +toUtf8Lazy :: ConvertText a T.Text => a -> LB.ByteString +toUtf8Lazy = + LB.fromStrict . encodeUtf8 . toS diff --git a/src/protolude/src/Protolude/Debug.hs b/src/protolude/src/Protolude/Debug.hs new file mode 100644 index 000000000..056fabe09 --- /dev/null +++ b/src/protolude/src/Protolude/Debug.hs @@ -0,0 +1,69 @@ +{-# LANGUAGE Trustworthy #-} +{-# LANGUAGE NoImplicitPrelude #-} +{-# OPTIONS_GHC -fno-warn-warnings-deprecations #-} + +module Protolude.Debug ( + undefined, + trace, + traceM, + traceId, + traceIO, + traceShow, + traceShowId, + traceShowM, + notImplemented, + witness, +) where + +import Data.Text (Text, unpack) +import Control.Monad (Monad, return) + +import qualified Protolude.Base as P +import Protolude.Error (error) +import Protolude.Show (Print, hPutStrLn) + +import System.IO(stderr) +import System.IO.Unsafe (unsafePerformIO) + +{-# WARNING trace "'trace' remains in code" #-} +trace :: Print b => b -> a -> a +trace string expr = unsafePerformIO (do + hPutStrLn stderr string + return expr) + +{-# WARNING traceIO "'traceIO' remains in code" #-} +traceIO :: Print b => b -> a -> P.IO a +traceIO string expr = do + hPutStrLn stderr string + return expr + +{-# WARNING traceShow "'traceShow' remains in code" #-} +traceShow :: P.Show a => a -> b -> b +traceShow a b = trace (P.show a) b + +{-# WARNING traceShowId "'traceShowId' remains in code" #-} +traceShowId :: P.Show a => a -> a +traceShowId a = trace (P.show a) a + +{-# WARNING traceShowM "'traceShowM' remains in code" #-} +traceShowM :: (P.Show a, Monad m) => a -> m () +traceShowM a = trace (P.show a) (return ()) + +{-# WARNING traceM "'traceM' remains in code" #-} +traceM :: (Monad m) => Text -> m () +traceM s = trace (unpack s) (return ()) + +{-# WARNING traceId "'traceId' remains in code" #-} +traceId :: Text -> Text +traceId s = trace s s + +{-# WARNING notImplemented "'notImplemented' remains in code" #-} +notImplemented :: a +notImplemented = error "Not implemented" + +{-# WARNING undefined "'undefined' remains in code" #-} +undefined :: a +undefined = error "Prelude.undefined" + +witness :: a +witness = error "Type witness should not be evaluated" diff --git a/src/protolude/src/Protolude/Either.hs b/src/protolude/src/Protolude/Either.hs new file mode 100644 index 000000000..7cf955a40 --- /dev/null +++ b/src/protolude/src/Protolude/Either.hs @@ -0,0 +1,51 @@ +{-# LANGUAGE CPP #-} +{-# LANGUAGE Safe #-} +{-# LANGUAGE NoImplicitPrelude #-} + +module Protolude.Either ( + maybeToLeft +, maybeToRight +, leftToMaybe +, rightToMaybe +, maybeEmpty +, maybeToEither +, fromLeft +, fromRight +) where + +import Data.Function (const) +import Data.Monoid (Monoid, mempty) +import Data.Maybe (Maybe(Nothing, Just), maybe) +import Data.Either (Either(Left, Right), either) +#if MIN_VERSION_base(4,10,0) +import Data.Either (fromLeft, fromRight) +#else +-- | Return the contents of a 'Right'-value or a default value otherwise. +fromLeft :: a -> Either a b -> a +fromLeft _ (Left a) = a +fromLeft a _ = a + +-- | Return the contents of a 'Right'-value or a default value otherwise. +fromRight :: b -> Either a b -> b +fromRight _ (Right b) = b +fromRight b _ = b +#endif + +leftToMaybe :: Either l r -> Maybe l +leftToMaybe = either Just (const Nothing) + +rightToMaybe :: Either l r -> Maybe r +rightToMaybe = either (const Nothing) Just + +maybeToRight :: l -> Maybe r -> Either l r +maybeToRight l = maybe (Left l) Right + +maybeToLeft :: r -> Maybe l -> Either l r +maybeToLeft r = maybe (Right r) Left + +maybeEmpty :: Monoid b => (a -> b) -> Maybe a -> b +maybeEmpty = maybe mempty + +maybeToEither :: e -> Maybe a -> Either e a +maybeToEither e Nothing = Left e +maybeToEither _ (Just a) = Right a diff --git a/src/protolude/src/Protolude/Error.hs b/src/protolude/src/Protolude/Error.hs new file mode 100644 index 000000000..deb83fa3c --- /dev/null +++ b/src/protolude/src/Protolude/Error.hs @@ -0,0 +1,52 @@ +{-# LANGUAGE CPP #-} +{-# LANGUAGE PolyKinds #-} +{-# LANGUAGE MagicHash #-} +{-# LANGUAGE ImplicitParams #-} +{-# LANGUAGE ExistentialQuantification #-} +#if ( __GLASGOW_HASKELL__ >= 800 ) +{-# LANGUAGE TypeInType #-} +#endif + +#if MIN_VERSION_base(4,9,0) +{-# OPTIONS_GHC -fno-warn-redundant-constraints #-} +#endif + +module Protolude.Error +( error +) where + +import Data.Text (Text, unpack) + +#if MIN_VERSION_base(4,9,0) +-- Full stack trace. + +import GHC.Prim (TYPE, raise#) +import GHC.Types (RuntimeRep) +import Protolude.CallStack (HasCallStack) +import GHC.Exception (errorCallWithCallStackException) + +{-# WARNING error "'error' remains in code" #-} +error :: forall (r :: RuntimeRep) . forall (a :: TYPE r) . HasCallStack => Text -> a +error s = raise# (errorCallWithCallStackException (unpack s) ?callStack) + +#elif MIN_VERSION_base(4,7,0) +-- Basic Call Stack with callsite. + +import GHC.Prim (raise#) +import GHC.Exception (errorCallException) + +{-# WARNING error "'error' remains in code" #-} +error :: Text -> a +error s = raise# (errorCallException (unpack s)) + +#else + +-- No exception tracing. +import GHC.Types +import GHC.Exception + +{-# WARNING error "'error' remains in code" #-} +error :: Text -> a +error s = throw (ErrorCall (unpack s)) + +#endif diff --git a/src/protolude/src/Protolude/Exceptions.hs b/src/protolude/src/Protolude/Exceptions.hs new file mode 100644 index 000000000..76d090faf --- /dev/null +++ b/src/protolude/src/Protolude/Exceptions.hs @@ -0,0 +1,35 @@ +{-# LANGUAGE CPP #-} +{-# LANGUAGE Trustworthy #-} +{-# LANGUAGE NoImplicitPrelude #-} + +module Protolude.Exceptions ( + hush, + note, + tryIO, +) where + +import Protolude.Base (IO) +import Data.Function ((.)) +import Control.Monad.Trans (liftIO) +import Control.Monad.IO.Class (MonadIO) +import Control.Monad.Except (ExceptT(ExceptT), MonadError, throwError) +import Control.Exception as Exception +import Control.Applicative +import Data.Maybe (Maybe, maybe) +import Data.Either (Either(Left,Right)) + +hush :: Alternative m => Either e a -> m a +hush (Left _) = empty +hush (Right x) = pure x + +-- To suppress redundant applicative constraint warning on GHC 8.0 +#if ( __GLASGOW_HASKELL__ >= 800 ) +note :: (MonadError e m) => e -> Maybe a -> m a +note err = maybe (throwError err) pure +#else +note :: (MonadError e m, Applicative m) => e -> Maybe a -> m a +note err = maybe (throwError err) pure +#endif + +tryIO :: MonadIO m => IO a -> ExceptT IOException m a +tryIO = ExceptT . liftIO . Exception.try diff --git a/src/protolude/src/Protolude/Functor.hs b/src/protolude/src/Protolude/Functor.hs new file mode 100644 index 000000000..32fa09280 --- /dev/null +++ b/src/protolude/src/Protolude/Functor.hs @@ -0,0 +1,62 @@ +{-# LANGUAGE CPP #-} +{-# LANGUAGE Safe #-} +{-# LANGUAGE NoImplicitPrelude #-} + +module Protolude.Functor ( + Functor(fmap), + ($>), + (<$), + (<$>), + (<<$>>), + (<&>), + void, + foreach, +) where + +import Data.Function ((.), flip) +#if MIN_VERSION_base(4,11,0) +import Data.Functor ((<&>)) +#endif + +#if MIN_VERSION_base(4,7,0) +import Data.Functor ( + Functor(fmap) + , (<$) + , ($>) + , (<$>) + , void + ) +#else +import Data.Functor ( + Functor(fmap) + , (<$) + , (<$>) + ) + + +infixl 4 $> + +($>) :: Functor f => f a -> b -> f b +($>) = flip (<$) + +void :: Functor f => f a -> f () +void x = () <$ x +#endif + +infixl 4 <<$>> + +(<<$>>) :: (Functor f, Functor g) => (a -> b) -> f (g a) -> f (g b) +(<<$>>) = fmap . fmap + +foreach :: Functor f => f a -> (a -> b) -> f b +foreach = flip fmap + +#if !MIN_VERSION_base(4,11,0) +-- | Infix version of foreach. +-- +-- '<&>' is to '<$>' what '&' is to '$'. + +infixl 1 <&> +(<&>) :: Functor f => f a -> (a -> b) -> f b +(<&>) = foreach +#endif diff --git a/src/protolude/src/Protolude/List.hs b/src/protolude/src/Protolude/List.hs new file mode 100644 index 000000000..bd7978bc5 --- /dev/null +++ b/src/protolude/src/Protolude/List.hs @@ -0,0 +1,52 @@ +{-# LANGUAGE NoImplicitPrelude #-} +{-# LANGUAGE Safe #-} + +module Protolude.List + ( head, + ordNub, + sortOn, + list, + product, + sum, + groupBy, + ) +where + +import Control.Applicative (pure) +import Data.Foldable (Foldable, foldl', foldr) +import Data.Function ((.)) +import Data.Functor (fmap) +import Data.List (groupBy, sortBy) +import Data.Maybe (Maybe (Nothing)) +import Data.Ord (Ord, comparing) +import qualified Data.Set as Set +import Prelude ((*), (+), Num) + +head :: (Foldable f) => f a -> Maybe a +head = foldr (\x _ -> pure x) Nothing + +sortOn :: (Ord o) => (a -> o) -> [a] -> [a] +sortOn = sortBy . comparing + +-- O(n * log n) +ordNub :: (Ord a) => [a] -> [a] +ordNub l = go Set.empty l + where + go _ [] = [] + go s (x : xs) = + if x `Set.member` s + then go s xs + else x : go (Set.insert x s) xs + +list :: [b] -> (a -> b) -> [a] -> [b] +list def f xs = case xs of + [] -> def + _ -> fmap f xs + +{-# INLINE product #-} +product :: (Foldable f, Num a) => f a -> a +product = foldl' (*) 1 + +{-# INLINE sum #-} +sum :: (Foldable f, Num a) => f a -> a +sum = foldl' (+) 0 diff --git a/src/protolude/src/Protolude/Monad.hs b/src/protolude/src/Protolude/Monad.hs new file mode 100644 index 000000000..cf1674f2d --- /dev/null +++ b/src/protolude/src/Protolude/Monad.hs @@ -0,0 +1,69 @@ +{-# LANGUAGE CPP #-} +{-# LANGUAGE Trustworthy #-} +{-# LANGUAGE NoImplicitPrelude #-} + +module Protolude.Monad ( + Monad((>>=), return) + , MonadPlus(mzero, mplus) + + , (=<<) + , (>=>) + , (<=<) + , (>>) + , forever + + , join + , mfilter + , filterM + , mapAndUnzipM + , zipWithM + , zipWithM_ + , foldM + , foldM_ + , replicateM + , replicateM_ + , concatMapM + + , guard + , when + , unless + + , liftM + , liftM2 + , liftM3 + , liftM4 + , liftM5 + , liftM' + , liftM2' + , ap + + , (<$!>) + ) where + +import Protolude.Base (seq) +import Data.List (concat) +import Control.Monad + +concatMapM :: Monad m => (a -> m [b]) -> [a] -> m [b] +concatMapM f xs = liftM concat (mapM f xs) + +liftM' :: Monad m => (a -> b) -> m a -> m b +liftM' = (<$!>) +{-# INLINE liftM' #-} + +liftM2' :: (Monad m) => (a -> b -> c) -> m a -> m b -> m c +liftM2' f a b = do + x <- a + y <- b + let z = f x y + z `seq` return z +{-# INLINE liftM2' #-} + +#if !MIN_VERSION_base(4,8,0) +(<$!>) :: Monad m => (a -> b) -> m a -> m b +f <$!> m = do + x <- m + let z = f x + z `seq` return z +{-# INLINE (<$!>) #-} +#endif diff --git a/src/protolude/src/Protolude/Panic.hs b/src/protolude/src/Protolude/Panic.hs new file mode 100644 index 000000000..92392a414 --- /dev/null +++ b/src/protolude/src/Protolude/Panic.hs @@ -0,0 +1,27 @@ +{-# LANGUAGE CPP #-} +{-# LANGUAGE Trustworthy #-} +{-# LANGUAGE ConstraintKinds #-} +{-# LANGUAGE DeriveDataTypeable #-} +#if MIN_VERSION_base(4,9,0) +{-# OPTIONS_GHC -fno-warn-redundant-constraints #-} +#endif + +module Protolude.Panic ( + FatalError(FatalError, fatalErrorMessage), + panic, +) where + +import Protolude.Base (Show) +import Protolude.CallStack (HasCallStack) +import Data.Text (Text) +import Data.Typeable (Typeable) +import Control.Exception as X + +-- | Uncatchable exceptions thrown and never caught. +newtype FatalError = FatalError { fatalErrorMessage :: Text } + deriving (Show, Typeable) + +instance Exception FatalError + +panic :: HasCallStack => Text -> a +panic a = throw (FatalError a) diff --git a/src/protolude/src/Protolude/Partial.hs b/src/protolude/src/Protolude/Partial.hs new file mode 100644 index 000000000..ae2da8687 --- /dev/null +++ b/src/protolude/src/Protolude/Partial.hs @@ -0,0 +1,26 @@ +module Protolude.Partial + ( head, + init, + tail, + last, + foldl, + foldr, + foldl', + foldr', + foldr1, + foldl1, + cycle, + maximum, + minimum, + (!!), + sum, + product, + fromJust, + read, + ) +where + +import Data.Foldable (foldl, foldl', foldl1, foldr, foldr', foldr1, product, sum) +import Data.List ((!!), cycle, head, init, last, maximum, minimum, tail) +import Data.Maybe (fromJust) +import Text.Read (read) diff --git a/src/protolude/src/Protolude/Safe.hs b/src/protolude/src/Protolude/Safe.hs new file mode 100644 index 000000000..a1bdb5efa --- /dev/null +++ b/src/protolude/src/Protolude/Safe.hs @@ -0,0 +1,137 @@ +{-# LANGUAGE CPP #-} +{-# LANGUAGE Safe #-} +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE NoImplicitPrelude #-} + +module Protolude.Safe ( + headMay + , headDef + , initMay + , initDef + , initSafe + , tailMay + , tailDef + , tailSafe + , lastDef + , lastMay + , foldr1May + , foldl1May + , foldl1May' + , maximumMay + , minimumMay + , maximumDef + , minimumDef + , atMay + , atDef +) where + + +import Data.Ord (Ord, (<)) +import Data.Int (Int) +import Data.Char (Char) +import Data.Bool (Bool, otherwise) +import Data.Maybe (Maybe(Nothing, Just), fromMaybe) +import Data.Either (Either(Left, Right)) +import Data.Function ((.)) +import Data.List (null, head, last, tail, init, maximum, minimum, foldr1, foldl1, foldl1', (++)) + +import Prelude ((-)) +import GHC.Show (show) + +liftMay :: (a -> Bool) -> (a -> b) -> (a -> Maybe b) +liftMay test f val = if test val then Nothing else Just (f val) + +------------------------------------------------------------------------------- +-- Head +------------------------------------------------------------------------------- + +headMay :: [a] -> Maybe a +headMay = liftMay null head + +headDef :: a -> [a] -> a +headDef def = fromMaybe def . headMay + +------------------------------------------------------------------------------- +-- Init +------------------------------------------------------------------------------- + +initMay :: [a] -> Maybe [a] +initMay = liftMay null init + +initDef :: [a] -> [a] -> [a] +initDef def = fromMaybe def . initMay + +initSafe :: [a] -> [a] +initSafe = initDef [] + +------------------------------------------------------------------------------- +-- Tail +------------------------------------------------------------------------------- + +tailMay :: [a] -> Maybe [a] +tailMay = liftMay null tail + +tailDef :: [a] -> [a] -> [a] +tailDef def = fromMaybe def . tailMay + +tailSafe :: [a] -> [a] +tailSafe = tailDef [] + +------------------------------------------------------------------------------- +-- Last +------------------------------------------------------------------------------- + +lastMay :: [a] -> Maybe a +lastMay = liftMay null last + +lastDef :: a -> [a] -> a +lastDef def = fromMaybe def . lastMay + +------------------------------------------------------------------------------- +-- Maximum +------------------------------------------------------------------------------- + +minimumMay, maximumMay :: Ord a => [a] -> Maybe a +minimumMay = liftMay null minimum +maximumMay = liftMay null maximum + +minimumDef, maximumDef :: Ord a => a -> [a] -> a +minimumDef def = fromMaybe def . minimumMay +maximumDef def = fromMaybe def . maximumMay + +------------------------------------------------------------------------------- +-- Foldr +------------------------------------------------------------------------------- + +foldr1May, foldl1May, foldl1May' :: (a -> a -> a) -> [a] -> Maybe a +foldr1May = liftMay null . foldr1 + +------------------------------------------------------------------------------- +-- Foldl +------------------------------------------------------------------------------- + +foldl1May = liftMay null . foldl1 +foldl1May' = liftMay null . foldl1' + +------------------------------------------------------------------------------- +-- At +------------------------------------------------------------------------------- + +at_ :: [a] -> Int -> Either [Char] a +at_ ys o + | o < 0 = Left ("index must not be negative, index=" ++ show o) + | otherwise = f o ys + where + f 0 (x:_) = Right x + f i (_:xs) = f (i-1) xs + f i [] = Left ("index too large, index=" ++ show o ++ ", length=" ++ show (o-i)) + +atMay :: [a] -> Int -> Maybe a +atMay xs i = case xs `at_` i of + Left _ -> Nothing + Right val -> Just val + +atDef :: a -> [a] -> Int -> a +atDef def xs i = case xs `at_` i of + Left _ -> def + Right val -> val diff --git a/src/protolude/src/Protolude/Semiring.hs b/src/protolude/src/Protolude/Semiring.hs new file mode 100644 index 000000000..1d2ffdd05 --- /dev/null +++ b/src/protolude/src/Protolude/Semiring.hs @@ -0,0 +1,22 @@ +{-# LANGUAGE Safe #-} +{-# LANGUAGE NoImplicitPrelude #-} + +module Protolude.Semiring + ( Semiring, + one, + (<.>), + zero, + ) +where + +import Data.Monoid + +-- | Alias for 'mempty' +zero :: Monoid m => m +zero = mempty + +class Monoid m => Semiring m where + {-# MINIMAL one, (<.>) #-} + + one :: m + (<.>) :: m -> m -> m diff --git a/src/protolude/src/Protolude/Show.hs b/src/protolude/src/Protolude/Show.hs new file mode 100644 index 000000000..567bcca48 --- /dev/null +++ b/src/protolude/src/Protolude/Show.hs @@ -0,0 +1,83 @@ +{-# LANGUAGE ExtendedDefaultRules #-} +{-# LANGUAGE FlexibleContexts #-} +{-# LANGUAGE FlexibleInstances #-} +{-# LANGUAGE Trustworthy #-} +{-# LANGUAGE NoImplicitPrelude #-} + +module Protolude.Show + ( Print, + hPutStr, + putStr, + hPutStrLn, + putStrLn, + putErrLn, + putText, + putErrText, + putLText, + putByteString, + putLByteString, + ) +where + +import Control.Monad.IO.Class (MonadIO, liftIO) +import qualified Data.ByteString.Char8 as BS +import qualified Data.ByteString.Lazy.Char8 as BL +import Data.Function ((.)) +import qualified Data.Text as T +import qualified Data.Text.IO as T +import qualified Data.Text.Lazy as TL +import qualified Data.Text.Lazy.IO as TL +import qualified Protolude.Base as Base +import qualified System.IO as Base +import System.IO (Handle, stderr, stdout) + +class Print a where + hPutStr :: MonadIO m => Handle -> a -> m () + putStr :: MonadIO m => a -> m () + putStr = hPutStr stdout + hPutStrLn :: MonadIO m => Handle -> a -> m () + putStrLn :: MonadIO m => a -> m () + putStrLn = hPutStrLn stdout + putErrLn :: MonadIO m => a -> m () + putErrLn = hPutStrLn stderr + +instance Print T.Text where + hPutStr = \h -> liftIO . T.hPutStr h + hPutStrLn = \h -> liftIO . T.hPutStrLn h + +instance Print TL.Text where + hPutStr = \h -> liftIO . TL.hPutStr h + hPutStrLn = \h -> liftIO . TL.hPutStrLn h + +instance Print BS.ByteString where + hPutStr = \h -> liftIO . BS.hPutStr h + hPutStrLn = \h -> liftIO . BS.hPutStrLn h + +instance Print BL.ByteString where + hPutStr = \h -> liftIO . BL.hPutStr h + hPutStrLn = \h -> liftIO . BL.hPutStrLn h + +instance Print [Base.Char] where + hPutStr = \h -> liftIO . Base.hPutStr h + hPutStrLn = \h -> liftIO . Base.hPutStrLn h + +-- For forcing type inference +putText :: MonadIO m => T.Text -> m () +putText = putStrLn +{-# SPECIALIZE putText :: T.Text -> Base.IO () #-} + +putLText :: MonadIO m => TL.Text -> m () +putLText = putStrLn +{-# SPECIALIZE putLText :: TL.Text -> Base.IO () #-} + +putByteString :: MonadIO m => BS.ByteString -> m () +putByteString = putStrLn +{-# SPECIALIZE putByteString :: BS.ByteString -> Base.IO () #-} + +putLByteString :: MonadIO m => BL.ByteString -> m () +putLByteString = putStrLn +{-# SPECIALIZE putLByteString :: BL.ByteString -> Base.IO () #-} + +putErrText :: MonadIO m => T.Text -> m () +putErrText = putErrLn +{-# SPECIALIZE putErrText :: T.Text -> Base.IO () #-} diff --git a/src/protolude/src/Protolude/Unsafe.hs b/src/protolude/src/Protolude/Unsafe.hs new file mode 100644 index 000000000..af370d190 --- /dev/null +++ b/src/protolude/src/Protolude/Unsafe.hs @@ -0,0 +1,75 @@ +{-# LANGUAGE CPP #-} +{-# LANGUAGE Unsafe #-} +{-# LANGUAGE NoImplicitPrelude #-} + +module Protolude.Unsafe ( + unsafeHead, + unsafeTail, + unsafeInit, + unsafeLast, + unsafeFromJust, + unsafeIndex, + unsafeThrow, + unsafeRead, +) where + +import Protolude.Base (Int) + +#if ( __GLASGOW_HASKELL__ >= 800 ) +import Protolude.Base (HasCallStack) +#endif +import Data.Char (Char) +import Text.Read (Read, read) +import qualified Data.List as List +import qualified Data.Maybe as Maybe +import qualified Control.Exception as Exc + +unsafeThrow :: Exc.Exception e => e -> a +unsafeThrow = Exc.throw + +#if ( __GLASGOW_HASKELL__ >= 800 ) +unsafeHead :: HasCallStack => [a] -> a +unsafeHead = List.head + +unsafeTail :: HasCallStack => [a] -> [a] +unsafeTail = List.tail + +unsafeInit :: HasCallStack => [a] -> [a] +unsafeInit = List.init + +unsafeLast :: HasCallStack => [a] -> a +unsafeLast = List.last + +unsafeFromJust :: HasCallStack => Maybe.Maybe a -> a +unsafeFromJust = Maybe.fromJust + +unsafeIndex :: HasCallStack => [a] -> Int -> a +unsafeIndex = (List.!!) + +unsafeRead :: (HasCallStack, Read a) => [Char] -> a +unsafeRead = Text.Read.read +#endif + + +#if ( __GLASGOW_HASKELL__ < 800 ) +unsafeHead :: [a] -> a +unsafeHead = List.head + +unsafeTail :: [a] -> [a] +unsafeTail = List.tail + +unsafeInit :: [a] -> [a] +unsafeInit = List.init + +unsafeLast :: [a] -> a +unsafeLast = List.last + +unsafeFromJust :: Maybe.Maybe a -> a +unsafeFromJust = Maybe.fromJust + +unsafeIndex :: [a] -> Int -> a +unsafeIndex = (List.!!) + +unsafeRead :: Read a => [Char] -> a +unsafeRead = Text.Read.read +#endif diff --git a/src/protolude/stack.yaml b/src/protolude/stack.yaml new file mode 100644 index 000000000..3694021d8 --- /dev/null +++ b/src/protolude/stack.yaml @@ -0,0 +1,7 @@ +resolver: lts-14.0 +packages: +- '.' +extra-deps: +- fail-4.9.0.0 +flags: {} +extra-package-dbs: [] diff --git a/src/protolude/test_stack_lts.sh b/src/protolude/test_stack_lts.sh new file mode 100755 index 000000000..73603409d --- /dev/null +++ b/src/protolude/test_stack_lts.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +set -e + +stack build --resolver lts-4.0 +stack build --resolver lts-5.0 +stack build --resolver lts-6.0 +stack build --resolver lts-7.0 +stack build --resolver lts-8.0 +stack build --resolver lts-9.0 +stack build --resolver lts-10.0 +stack build --resolver lts-11.0 +stack build --resolver lts-12.0 +stack build --resolver lts-13.0 +stack build --resolver lts-14.0 +stack build --resolver lts-15.0 +stack build --resolver lts-16.0 +stack build --resolver lts-17.0 +stack build --resolver lts-18.0 +stack build --resolver lts-19.0