commit 831aa825ebdac47219714570972ea4d2c922385f Author: Yann Esposito (Yogsototh) Date: Sun Dec 2 12:33:51 2018 +0100 initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f25d1fe --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/tutorial.md +/.stack-work/ diff --git a/.hlint.yaml b/.hlint.yaml new file mode 100644 index 0000000..42823f9 --- /dev/null +++ b/.hlint.yaml @@ -0,0 +1,5 @@ +- ignore: {name: Use String} +- error: {lhs: foldl x, rhs: foldl' x} +- error: {lhs: modifyTVar x, rhs: modifyTVar' x} +- error: {lhs: atomicModifyIORef x, rhs: atomicModifyIORef' x} +- group: {name: generalise, enabled: true} diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..2cf1e51 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,35 @@ +# Use new container infrastructure to enable caching +sudo: false + +# Choose a lightweight base image; we provide our own build tools. +language: c + +# GHC depends on GMP. You can add other dependencies here as well. +addons: + apt: + packages: + - libgmp-dev + +# The different configurations we want to test. You could also do things like +# change flags or use --stack-yaml to point to a different file. +env: +- ARGS="" +#- ARGS="--resolver lts-10" +- ARGS="--resolver lts" +- ARGS="--resolver nightly" + +before_install: +# Download and unpack the stack executable +- mkdir -p ~/.local/bin +- export PATH=$HOME/.local/bin:$PATH +- travis_retry curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack' + +# This line does all of the work: installs GHC if necessary, builds the +# library, executables, and test suites, and runs the test suites. +# `--no-terminal works` around some quirks in Travis's terminal implementation. +script: stack $ARGS --no-terminal --install-ghc test + +# Caching so the next build will be fast too. +cache: + directories: + - $HOME/.stack diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..3bdaa5a --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,12 @@ +Change log +========== + +aggreact uses [Semantic Versioning][1]. +The change log is available [on GitHub][2]. + +[1]: http://semver.org/spec/v2.0.0.html +[2]: https://github.com/yogsototh/aggreact/releases + +## v0.1.0.0 + +* Initially created. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..c38dcf4 --- /dev/null +++ b/LICENSE @@ -0,0 +1,13 @@ +Copyright (c) 2018, Yann Esposito + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..0f30d83 --- /dev/null +++ b/README.md @@ -0,0 +1,17 @@ +`aggreact` +========== + +Add comments to your static website and also list all mentions on multiple +social networks. + +## Install + +- Install [`stack`](https://haskellstack.org) +- clone this repo +- `stack build` + +## Use + +``` haskell +stack exec -- aggreact +``` diff --git a/Setup.hs b/Setup.hs new file mode 100644 index 0000000..9a994af --- /dev/null +++ b/Setup.hs @@ -0,0 +1,2 @@ +import Distribution.Simple +main = defaultMain diff --git a/aggreact.cabal b/aggreact.cabal new file mode 100644 index 0000000..d9d198b --- /dev/null +++ b/aggreact.cabal @@ -0,0 +1,113 @@ +-- This file has been generated from package.yaml by hpack version 0.28.2. +-- +-- see: https://github.com/sol/hpack +-- +-- hash: dbea1e0f8e841e18db7ba59a8d31a8b8146cc860758b3ea43c34252a7f6229a3 + +name: aggreact +version: 0.1.0.0 +category: Test +stability: alpha (experimental) +homepage: https://github.com/yogsototh/aggreact#readme +bug-reports: https://github.com/yogsototh/aggreact/issues +author: Yann Esposito +maintainer: yann.esposito@gmail.com +copyright: © 2018 Yann Esposito +license: ISC +license-file: LICENSE +build-type: Simple +cabal-version: >= 1.10 +extra-source-files: + README.md + stack.yaml + +source-repository head + type: git + location: https://github.com/yogsototh/aggreact + +library + exposed-modules: + Aggreact + Aggreact.Comments + Store + other-modules: + Paths_aggreact + hs-source-dirs: + src + default-extensions: OverloadedStrings NoImplicitPrelude ScopedTypeVariables + ghc-options: -Wall -Wcompat -Wincomplete-uni-patterns -Wredundant-constraints -Wnoncanonical-monad-instances -Werror -O2 + build-depends: + base >=4.8 && <5 + , containers + , protolude + , servant + , servant-server + , time + , versioning + default-language: Haskell2010 + +executable aggreact + main-is: Main.hs + other-modules: + Paths_aggreact + hs-source-dirs: + src-exe + default-extensions: OverloadedStrings NoImplicitPrelude ScopedTypeVariables + ghc-options: -Wall -Wcompat -Wincomplete-uni-patterns -Wredundant-constraints -Wnoncanonical-monad-instances -Werror -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: + aggreact + , base >=4.8 && <5 + , protolude + default-language: Haskell2010 + +test-suite aggreact-doctest + type: exitcode-stdio-1.0 + main-is: Main.hs + other-modules: + Paths_aggreact + hs-source-dirs: + src-doctest + default-extensions: OverloadedStrings NoImplicitPrelude ScopedTypeVariables + ghc-options: -Wall -Wcompat -Wincomplete-uni-patterns -Wredundant-constraints -Wnoncanonical-monad-instances -Werror -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: + Glob >=0.7 + , QuickCheck >=2.5 + , aggreact + , base >=4.8 && <5 + , doctest >=0.10 + , protolude + default-language: Haskell2010 + +test-suite aggreact-test + type: exitcode-stdio-1.0 + main-is: Main.hs + other-modules: + Paths_aggreact + hs-source-dirs: + src-test + default-extensions: OverloadedStrings NoImplicitPrelude ScopedTypeVariables + ghc-options: -Wall -Wcompat -Wincomplete-uni-patterns -Wredundant-constraints -Wnoncanonical-monad-instances -Werror -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: + aggreact + , base >=4.8 && <5 + , protolude + , tasty >=0.11 + , tasty-hunit >=0.9 + , tasty-smallcheck >=0.8 + default-language: Haskell2010 + +benchmark aggreact-benchmark + type: exitcode-stdio-1.0 + main-is: Main.hs + other-modules: + Paths_aggreact + hs-source-dirs: + src-benchmark + default-extensions: OverloadedStrings NoImplicitPrelude ScopedTypeVariables + ghc-options: -Wall -Wcompat -Wincomplete-uni-patterns -Wredundant-constraints -Wnoncanonical-monad-instances -Werror -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: + aggreact + , base >=4.8 && <5 + , criterion >=1.1 + , protolude + default-language: Haskell2010 diff --git a/dist-newstyle/cache/compiler b/dist-newstyle/cache/compiler new file mode 100644 index 0000000..97c1cf0 Binary files /dev/null and b/dist-newstyle/cache/compiler differ diff --git a/dist-newstyle/cache/config b/dist-newstyle/cache/config new file mode 100644 index 0000000..798dafe Binary files /dev/null and b/dist-newstyle/cache/config differ diff --git a/dist-newstyle/cache/elaborated-plan b/dist-newstyle/cache/elaborated-plan new file mode 100644 index 0000000..8471913 Binary files /dev/null and b/dist-newstyle/cache/elaborated-plan differ diff --git a/dist-newstyle/cache/improved-plan b/dist-newstyle/cache/improved-plan new file mode 100644 index 0000000..c10fc6c Binary files /dev/null and b/dist-newstyle/cache/improved-plan differ diff --git a/dist-newstyle/cache/plan.json b/dist-newstyle/cache/plan.json new file mode 100644 index 0000000..8011567 --- /dev/null +++ b/dist-newstyle/cache/plan.json @@ -0,0 +1 @@ +{"cabal-version":"2.2.0.0","cabal-lib-version":"2.2.0.0","compiler-id":"ghc-8.4.4","os":"osx","arch":"x86_64","install-plan":[{"type":"pre-existing","id":"Cabal-2.2.0.1","pkg-name":"Cabal","pkg-version":"2.2.0.1","depends":["array-0.5.2.0","base-4.11.1.0","bytestring-0.10.8.2","containers-0.5.11.0","deepseq-1.4.3.0","filepath-1.4.2","pretty-1.1.3.6","process-1.6.3.0","time-1.8.0.2","transformers-0.5.5.0","mtl-2.2.2","text-1.2.3.1","parsec-3.1.13.0","directory-1.3.1.5","binary-0.8.5.1","unix-2.7.2.2"]},{"type":"configured","id":"Glb-0.9.3-137a1541","pkg-name":"Glob","pkg-version":"0.9.3","flags":{},"style":"global","pkg-src-sha256":"3a77853eba3700c5346cd6d4008302e70dca93a7e8ac0d679cf41b16c7a4c9e8","depends":["base-4.11.1.0","containers-0.5.11.0","directory-1.3.1.5","dlst-0.8.0.5-8514010c","filepath-1.4.2","transformers-0.5.5.0","trnsfrmrs-cmpt-0.6.2-38621b90"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"Only-0.1-644d9bb3","pkg-name":"Only","pkg-version":"0.1","flags":{},"style":"global","pkg-src-sha256":"ab7aa193e8c257d3bda6b0b3c1cbcf74cdaa85ab08cb20c2dd62ba248c1ab265","depends":["base-4.11.1.0","deepseq-1.4.3.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"QckChck-2.12.6.1-a4f8828f","pkg-name":"QuickCheck","pkg-version":"2.12.6.1","flags":{"templatehaskell":true},"style":"global","pkg-src-sha256":"0b2aa7f5c625b5875c36f5f548926fcdaedf4311bd3a4c291fcf10b8d7faa170","depends":["base-4.11.1.0","rndm-1.1-19158125","containers-0.5.11.0","rf-2.0.0.0-a4c5ad1c","transformers-0.5.5.0","deepseq-1.4.3.0","template-haskell-2.13.0.0","tf-rndm-0.5-ac0f4c31"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"SttVr-1.1.1.1-14b54f14","pkg-name":"StateVar","pkg-version":"1.1.1.1","flags":{},"style":"global","pkg-src-sha256":"eb6436516ab2d5e3d3e070b5a1595c4dceea760a58a9cc8d23dad5f6008f2223","depends":["base-4.11.1.0","stm-2.4.5.1","transformers-0.5.5.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"aggreact-0.1.0.0-inplace","pkg-name":"aggreact","pkg-version":"0.1.0.0","flags":{},"style":"local","dist-dir":"/Users/yaesposi/y/aggreact/dist-newstyle/build/x86_64-osx/ghc-8.4.4/aggreact-0.1.0.0","depends":["base-4.11.1.0","prtld-0.2.3-e6b8d763","srvnt-0.15-add91e21","srvnt-srvr-0.15-1d589db7"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"aggreact-0.1.0.0-inplace-aggreact","pkg-name":"aggreact","pkg-version":"0.1.0.0","flags":{},"style":"local","dist-dir":"/Users/yaesposi/y/aggreact/dist-newstyle/build/x86_64-osx/ghc-8.4.4/aggreact-0.1.0.0/x/aggreact","depends":["aggreact-0.1.0.0-inplace","base-4.11.1.0","prtld-0.2.3-e6b8d763"],"exe-depends":[],"component-name":"exe:aggreact","bin-file":"/Users/yaesposi/y/aggreact/dist-newstyle/build/x86_64-osx/ghc-8.4.4/aggreact-0.1.0.0/x/aggreact/build/aggreact/aggreact"},{"type":"configured","id":"aggreact-0.1.0.0-inplace-aggreact-benchmark","pkg-name":"aggreact","pkg-version":"0.1.0.0","flags":{},"style":"local","dist-dir":"/Users/yaesposi/y/aggreact/dist-newstyle/build/x86_64-osx/ghc-8.4.4/aggreact-0.1.0.0/b/aggreact-benchmark","depends":["aggreact-0.1.0.0-inplace","base-4.11.1.0","crtrn-1.5.3.0-f71f1ba7","prtld-0.2.3-e6b8d763"],"exe-depends":[],"component-name":"bench:aggreact-benchmark","bin-file":"/Users/yaesposi/y/aggreact/dist-newstyle/build/x86_64-osx/ghc-8.4.4/aggreact-0.1.0.0/b/aggreact-benchmark/build/aggreact-benchmark/aggreact-benchmark"},{"type":"configured","id":"aggreact-0.1.0.0-inplace-aggreact-doctest","pkg-name":"aggreact","pkg-version":"0.1.0.0","flags":{},"style":"local","dist-dir":"/Users/yaesposi/y/aggreact/dist-newstyle/build/x86_64-osx/ghc-8.4.4/aggreact-0.1.0.0/t/aggreact-doctest","depends":["Glb-0.9.3-137a1541","QckChck-2.12.6.1-a4f8828f","aggreact-0.1.0.0-inplace","base-4.11.1.0","dctst-0.16.0.1-eb893e63","prtld-0.2.3-e6b8d763"],"exe-depends":[],"component-name":"test:aggreact-doctest","bin-file":"/Users/yaesposi/y/aggreact/dist-newstyle/build/x86_64-osx/ghc-8.4.4/aggreact-0.1.0.0/t/aggreact-doctest/build/aggreact-doctest/aggreact-doctest"},{"type":"configured","id":"aggreact-0.1.0.0-inplace-aggreact-test","pkg-name":"aggreact","pkg-version":"0.1.0.0","flags":{},"style":"local","dist-dir":"/Users/yaesposi/y/aggreact/dist-newstyle/build/x86_64-osx/ghc-8.4.4/aggreact-0.1.0.0/t/aggreact-test","depends":["aggreact-0.1.0.0-inplace","base-4.11.1.0","prtld-0.2.3-e6b8d763","tsty-1.1.0.4-1add605d","tsty-hnt-0.10.0.1-ff5e5b1f","tsty-smllchck-0.8.1-e085afc6"],"exe-depends":[],"component-name":"test:aggreact-test","bin-file":"/Users/yaesposi/y/aggreact/dist-newstyle/build/x86_64-osx/ghc-8.4.4/aggreact-0.1.0.0/t/aggreact-test/build/aggreact-test/aggreact-test"},{"type":"pre-existing","id":"array-0.5.2.0","pkg-name":"array","pkg-version":"0.5.2.0","depends":["base-4.11.1.0"]},{"type":"pre-existing","id":"base-4.11.1.0","pkg-name":"base","pkg-version":"4.11.1.0","depends":["rts","ghc-prim-0.5.2.0","integer-gmp-1.0.2.0"]},{"type":"configured","id":"bfnctrs-5.5.3-7602119c","pkg-name":"bifunctors","pkg-version":"5.5.3","flags":{"semigroups":true,"tagged":true},"style":"global","pkg-src-sha256":"d434528fd2ea765bace57c4ade0bc9fa32ba2c425f563b33a4b60f625ecfc9ca","depends":["base-4.11.1.0","bs-rphns-0.8-5e9ea5df","cmnd-5.0.4-7407464c","containers-0.5.11.0","template-haskell-2.13.0.0","th-bstrctn-0.2.8.0-8fee3d42","transformers-0.5.5.0","tggd-0.8.6-13a167c6","smgrps-0.18.5-eb0048fc"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.5.1","pkg-name":"binary","pkg-version":"0.8.5.1","depends":["base-4.11.1.0","bytestring-0.10.8.2","containers-0.5.11.0","array-0.5.2.0"]},{"type":"configured","id":"blz-bldr-0.4.1.0-2c42bea7","pkg-name":"blaze-builder","pkg-version":"0.4.1.0","flags":{},"style":"global","pkg-src-sha256":"91fc8b966f3e9dc9461e1675c7566b881740f99abc906495491a3501630bc814","depends":["base-4.11.1.0","deepseq-1.4.3.0","text-1.2.3.1","bytestring-0.10.8.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"blz-html-0.9.1.1-0c04bb46","pkg-name":"blaze-html","pkg-version":"0.9.1.1","flags":{},"style":"global","pkg-src-sha256":"ea0e944298dbbd692b41af4f15dbd1a1574aec7b8f91f38391d25106b143bb1b","depends":["base-4.11.1.0","blz-bldr-0.4.1.0-2c42bea7","blz-mrkp-0.8.2.2-a8d772d1","bytestring-0.10.8.2","text-1.2.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"blz-mrkp-0.8.2.2-a8d772d1","pkg-name":"blaze-markup","pkg-version":"0.8.2.2","flags":{},"style":"global","pkg-src-sha256":"c6f0cf8fd707ba8c0b700e0c5ad6a1212c8b57d46a9cbdfb904d8bf585ad82e1","depends":["base-4.11.1.0","blz-bldr-0.4.1.0-2c42bea7","text-1.2.3.1","bytestring-0.10.8.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"bs-cmpt-0.10.5-5296dec8","pkg-name":"base-compat","pkg-version":"0.10.5","flags":{},"style":"global","pkg-src-sha256":"990aea21568956d44ab018c5dbfbaea014b9a0d5295d29ca7550149419a6fb41","depends":["base-4.11.1.0","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"bs-cmpt-bttrs-0.10.5-12fabe7f","pkg-name":"base-compat-batteries","pkg-version":"0.10.5","flags":{},"style":"global","pkg-src-sha256":"175dcfd1453bd02ec955c05181cbf4278af145183b5899c62d3be29d866170ee","depends":["base-4.11.1.0","bs-cmpt-0.10.5-5296dec8","cntrvrnt-1.5-160ba823"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"bs-rphns-0.8-5e9ea5df","pkg-name":"base-orphans","pkg-version":"0.8","flags":{},"style":"global","pkg-src-sha256":"aceec656bfb4222ad3035c3d87d80130b42b595b72888f9ab59c6dbb7ed24817","depends":["base-4.11.1.0","ghc-prim-0.5.2.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"bs64-bytstrng-1.0.0.1-9d9949a2","pkg-name":"base64-bytestring","pkg-version":"1.0.0.1","flags":{},"style":"global","pkg-src-sha256":"ab25abf4b00a2f52b270bc3ed43f1d59f16c8eec9d7dffb14df1e9265b233b50","depends":["base-4.11.1.0","bytestring-0.10.8.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"bsb-http-chnkd-0.0.0.4-a28474fb","pkg-name":"bsb-http-chunked","pkg-version":"0.0.0.4","flags":{},"style":"global","pkg-src-sha256":"148309e23eb8b261c1de374712372d62d8c8dc8ee504c392809c7ec33c0a0e7c","depends":["base-4.11.1.0","bytestring-0.10.8.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"bsmnt-0.0.8-c8c8e3db","pkg-name":"basement","pkg-version":"0.0.8","flags":{},"style":"global","pkg-src-sha256":"c7f41b97f2b0a71804c3c7d760047dc9adc9734e789084ca1198c4764ce192a4","depends":["base-4.11.1.0","ghc-prim-0.5.2.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"bstrct-dq-0.3-97a38a8d","pkg-name":"abstract-deque","pkg-version":"0.3","flags":{"usecas":false},"style":"global","pkg-src-sha256":"09aa10f38193a8275a7791b92a4f3a7192a304874637e2a35c897dde25d75ca2","depends":["base-4.11.1.0","array-0.5.2.0","rndm-1.1-19158125","containers-0.5.11.0","time-1.8.0.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"bstrct-pr-0.3.3-69d86e06","pkg-name":"abstract-par","pkg-version":"0.3.3","flags":{},"style":"global","pkg-src-sha256":"248a8739bd902462cb16755b690b55660e196e58cc7e6ef8157a72c2a3d5d860","depends":["base-4.11.1.0","deepseq-1.4.3.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"bytestring-0.10.8.2","pkg-name":"bytestring","pkg-version":"0.10.8.2","depends":["base-4.11.1.0","ghc-prim-0.5.2.0","deepseq-1.4.3.0","integer-gmp-1.0.2.0"]},{"type":"configured","id":"bytrdr-1.0.4-5c1379a4","pkg-name":"byteorder","pkg-version":"1.0.4","flags":{},"style":"global","pkg-src-sha256":"bd20bbb586947f99c38a4c93d9d0266f49f6fc581767b51ba568f6d5d52d2919","components":{"lib":{"depends":["base-4.11.1.0"],"exe-depends":[]}}},{"type":"configured","id":"cbl-dctst-1.0.6-bd6648d1","pkg-name":"cabal-doctest","pkg-version":"1.0.6","flags":{},"style":"global","pkg-src-sha256":"decaaa5a73eaabaf3c4f8c644bd7f6e3f428b6244e935c0cf105f75f9b24ed2d","depends":["base-4.11.1.0","Cabal-2.2.0.1","filepath-1.4.2","directory-1.3.1.5"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"cd-pg-0.2-e95dd647","pkg-name":"code-page","pkg-version":"0.2","flags":{},"style":"global","pkg-src-sha256":"bfe32a8c4be9cf0d5a088267bf3fdf4adda8ba3f109e85675c93e70d575e1844","depends":["base-4.11.1.0"],"exe-depends":["hsc2hs-0.68.3-9ed58bd3"],"component-name":"lib"},{"type":"configured","id":"ck-0.4.4-500096c8","pkg-name":"cookie","pkg-version":"0.4.4","flags":{},"style":"global","pkg-src-sha256":"3245ed04ae933cf7becede816d1f76043b851472700abf558ae90b28414cc0e3","depends":["base-4.11.1.0","bytestring-0.10.8.2","time-1.8.0.2","text-1.2.3.1","dt-dflt-clss-0.1.2.0-6a54c2ca","deepseq-1.4.3.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"clck-0.7.2-33f9488d","pkg-name":"clock","pkg-version":"0.7.2","flags":{"llvm":false},"style":"global","pkg-src-sha256":"886601978898d3a91412fef895e864576a7125d661e1f8abc49a2a08840e691f","depends":["base-4.11.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"cll-stck-0.1.0-fec0c7db","pkg-name":"call-stack","pkg-version":"0.1.0","flags":{},"style":"global","pkg-src-sha256":"f25f5e0992a39371079cc25c2a14b5abb872fa7d868a32753aac3a258b83b1e2","depends":["base-4.11.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"clr-2.3.4-5306560c","pkg-name":"colour","pkg-version":"2.3.4","flags":{},"style":"global","pkg-src-sha256":"0f439f00b322ce3d551f28a4dd1520aa2c91d699de4cdc6d485b9b04be0dc5eb","depends":["base-4.11.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"cmnd-5.0.4-7407464c","pkg-name":"comonad","pkg-version":"5.0.4","flags":{"containers":true,"contravariant":true,"distributive":true,"test-doctests":true},"style":"global","pkg-src-sha256":"78a89d7f9f0975b40b3294adcb70885649572b687ac5f5dc98e452471838e825","components":{"lib":{"depends":["base-4.11.1.0","smgrps-0.18.5-eb0048fc","tggd-0.8.6-13a167c6","transformers-0.5.5.0","trnsfrmrs-cmpt-0.6.2-38621b90","containers-0.5.11.0","cntrvrnt-1.5-160ba823","dstrbtv-0.6-98e8a6c7"],"exe-depends":[]},"setup":{"depends":["Cabal-2.2.0.1","base-4.11.1.0","cbl-dctst-1.0.6-bd6648d1"],"exe-depends":[]}}},{"type":"configured","id":"cntrvrnt-1.5-160ba823","pkg-name":"contravariant","pkg-version":"1.5","flags":{"safe":false,"semigroups":true,"statevar":true,"tagged":true},"style":"global","pkg-src-sha256":"6ef067b692ad69ffff294b953aa85f3ded459d4ae133c37896222a09280fc3c2","components":{"lib":{"depends":["SttVr-1.1.1.1-14b54f14","base-4.11.1.0","transformers-0.5.5.0"],"exe-depends":[]}}},{"type":"pre-existing","id":"containers-0.5.11.0","pkg-name":"containers","pkg-version":"0.5.11.0","depends":["base-4.11.1.0","array-0.5.2.0","deepseq-1.4.3.0","ghc-prim-0.5.2.0"]},{"type":"configured","id":"crl-0.5.7.0-8acbfaa1","pkg-name":"cereal","pkg-version":"0.5.7.0","flags":{"bytestring-builder":false},"style":"global","pkg-src-sha256":"7abdaf6d52260e714adcf1c3e16f2e25a56492d90a747d1a9594e15f05acf1c8","depends":["base-4.11.1.0","containers-0.5.11.0","array-0.5.2.0","ghc-prim-0.5.2.0","bytestring-0.10.8.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"crtrn-1.5.3.0-02acab39","pkg-name":"criterion","pkg-version":"1.5.3.0","flags":{"embed-data-files":false,"fast":false},"style":"global","pkg-src-sha256":"b602a99439de710778b8d8ad4a3799caf872db4c8c793bfd13b725aa936c049f","depends":["base-4.11.1.0","bs-cmpt-bttrs-0.10.5-12fabe7f","crtrn-1.5.3.0-f71f1ba7","ptprs-pplctv-0.14.3.0-1df4cfb3"],"exe-depends":[],"component-name":"exe:criterion-report","bin-file":"/Users/yaesposi/.cabal/store/ghc-8.4.4/crtrn-1.5.3.0-02acab39/bin/criterion-report"},{"type":"configured","id":"crtrn-1.5.3.0-f71f1ba7","pkg-name":"criterion","pkg-version":"1.5.3.0","flags":{"embed-data-files":false,"fast":false},"style":"global","pkg-src-sha256":"b602a99439de710778b8d8ad4a3799caf872db4c8c793bfd13b725aa936c049f","depends":["sn-1.4.2.0-518ac4e5","ns-wl-pprnt-0.6.8.2-32aee689","base-4.11.1.0","bs-cmpt-bttrs-0.10.5-12fabe7f","binary-0.8.5.1","bytestring-0.10.8.2","cssv-0.5.1.0-b043643b","cd-pg-0.2-e95dd647","containers-0.5.11.0","crtrn-msrmnt-0.1.1.0-738a94b8","deepseq-1.4.3.0","directory-1.3.1.5","xcptns-0.10.0-193f3948","filepath-1.4.2","Glb-0.9.3-137a1541","mcrstch-1.0.1.1-ae6157ee","js-flt-0.8.3-29f76e4a","js-jqry-3.3.1-06bf3069","mtl-2.2.2","mwc-rndm-0.14.0.0-9c2a2d97","ptprs-pplctv-0.14.3.0-1df4cfb3","parsec-3.1.13.0","sttstcs-0.15.0.0-97e18b66","text-1.2.3.1","time-1.8.0.2","transformers-0.5.5.0","trnsfrmrs-cmpt-0.6.2-38621b90","vctr-0.12.0.1-f6cec248","vctr-lgrthms-0.8.0.1-f0d2c289"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"crtrn-msrmnt-0.1.1.0-738a94b8","pkg-name":"criterion-measurement","pkg-version":"0.1.1.0","flags":{"fast":false},"style":"global","pkg-src-sha256":"f5f87769386a927dbf487d2f256fc6804f2902078e86dcf113e35178a582ab56","depends":["sn-1.4.2.0-518ac4e5","base-4.11.1.0","bs-cmpt-0.10.5-5296dec8","binary-0.8.5.1","containers-0.5.11.0","deepseq-1.4.3.0","vctr-0.12.0.1-f6cec248"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"cryptnt-0.25-5ad9d7fe","pkg-name":"cryptonite","pkg-version":"0.25","flags":{"check_alignment":false,"integer-gmp":true,"old_toolchain_inliner":false,"support_aesni":true,"support_deepseq":true,"support_pclmuldq":false,"support_rdrand":true,"support_sse":false},"style":"global","pkg-src-sha256":"89be1a18af8730a7bfe4d718d7d5f6ce858e9df93a411566d15bf992db5a3c8c","depends":["base-4.11.1.0","bytestring-0.10.8.2","mmry-0.14.18-58d366ad","bsmnt-0.0.8-c8c8e3db","ghc-prim-0.5.2.0","integer-gmp-1.0.2.0","deepseq-1.4.3.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"cs-nsnstv-1.2.0.11-e002f8d8","pkg-name":"case-insensitive","pkg-version":"1.2.0.11","flags":{},"style":"global","pkg-src-sha256":"a7ce6d17e50caaa0f19ad8e67361499022860554c521b1e57993759da3eb37e3","depends":["base-4.11.1.0","bytestring-0.10.8.2","text-1.2.3.1","deepseq-1.4.3.0","hshbl-1.2.7.0-6a719111"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"cssv-0.5.1.0-b043643b","pkg-name":"cassava","pkg-version":"0.5.1.0","flags":{"bytestring--lt-0_10_4":false},"style":"global","pkg-src-sha256":"762c8aaea2cdad61f52bad1b9f1f3b32764b4b6da03371aba6e5017f69614277","depends":["array-0.5.2.0","ttprsc-0.13.2.2-d1dd943b","base-4.11.1.0","bytestring-0.10.8.2","containers-0.5.11.0","deepseq-1.4.3.0","hshbl-1.2.7.0-6a719111","scntfc-0.3.6.2-6c0f201d","text-1.2.3.1","nrdrd-cntnrs-0.2.9.0-65df6070","vctr-0.12.0.1-f6cec248","Only-0.1-644d9bb3","txt-shrt-0.1.2-e3e0c6cd"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"d-typs-1.0.3-60b04f72","pkg-name":"uuid-types","pkg-version":"1.0.3","flags":{},"style":"global","pkg-src-sha256":"9276517ab24a9b06f39d6e3c33c6c2b4ace1fc2126dbc1cd9806866a6551b3fd","depends":["base-4.11.1.0","binary-0.8.5.1","bytestring-0.10.8.2","deepseq-1.4.3.0","hshbl-1.2.7.0-6a719111","rndm-1.1-19158125","text-1.2.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"dctst-0.16.0.1-eb893e63","pkg-name":"doctest","pkg-version":"0.16.0.1","flags":{},"style":"global","pkg-src-sha256":"9b5275497330607f66aaf2625b798b2ad566867fed3f52cea9de31a23361d780","depends":["base-4.11.1.0","bs-cmpt-0.10.5-5296dec8","cd-pg-0.2-e95dd647","deepseq-1.4.3.0","directory-1.3.1.5","filepath-1.4.2","ghc-8.4.4","ghc-pths-0.1.0.9-e9fb90c3","process-1.6.3.0","syb-0.7-a47c499a","transformers-0.5.5.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"dctst-0.16.0.1-f79ce294","pkg-name":"doctest","pkg-version":"0.16.0.1","flags":{},"style":"global","pkg-src-sha256":"9b5275497330607f66aaf2625b798b2ad566867fed3f52cea9de31a23361d780","depends":["base-4.11.1.0","bs-cmpt-0.10.5-5296dec8","cd-pg-0.2-e95dd647","deepseq-1.4.3.0","directory-1.3.1.5","dctst-0.16.0.1-eb893e63","filepath-1.4.2","ghc-8.4.4","ghc-pths-0.1.0.9-e9fb90c3","process-1.6.3.0","syb-0.7-a47c499a","transformers-0.5.5.0"],"exe-depends":[],"component-name":"exe:doctest","bin-file":"/Users/yaesposi/.cabal/store/ghc-8.4.4/dctst-0.16.0.1-f79ce294/bin/doctest"},{"type":"pre-existing","id":"deepseq-1.4.3.0","pkg-name":"deepseq","pkg-version":"1.4.3.0","depends":["base-4.11.1.0","array-0.5.2.0"]},{"type":"pre-existing","id":"directory-1.3.1.5","pkg-name":"directory","pkg-version":"1.3.1.5","depends":["base-4.11.1.0","time-1.8.0.2","filepath-1.4.2","unix-2.7.2.2"]},{"type":"configured","id":"dlst-0.8.0.5-8514010c","pkg-name":"dlist","pkg-version":"0.8.0.5","flags":{},"style":"global","pkg-src-sha256":"98a88aa839b40d4aee8b08880030d282d627b63de311f5414dca6e831a951b43","depends":["base-4.11.1.0","deepseq-1.4.3.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"dns-lnr-lgbr-0.1.0.0-1feb6007","pkg-name":"dense-linear-algebra","pkg-version":"0.1.0.0","flags":{},"style":"global","pkg-src-sha256":"f7777a7931b40332ebbc716f64abb63697cbab0128e5c1228d47760c5597f2d4","depends":["base-4.11.1.0","deepseq-1.4.3.0","mth-fnctns-0.3.1.0-fc0f2b77","prmtv-0.6.4.0-98c9ee4b","vctr-0.12.0.1-f6cec248","vctr-lgrthms-0.8.0.1-f0d2c289","vctr-th-nbx-0.2.1.6-95471d35","vctr-bnry-nstncs-0.2.5.1-2b62bd6a"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"dstrbtv-0.6-98e8a6c7","pkg-name":"distributive","pkg-version":"0.6","flags":{"semigroups":true,"tagged":true},"style":"global","pkg-src-sha256":"a4af1341a63a430dc569dd1e59631f127c40ebdd353a945a74d18682f6bdc1d4","components":{"lib":{"depends":["base-4.11.1.0","bs-rphns-0.8-5e9ea5df","transformers-0.5.5.0","tggd-0.8.6-13a167c6"],"exe-depends":[]},"setup":{"depends":["Cabal-2.2.0.1","base-4.11.1.0","cbl-dctst-1.0.6-bd6648d1"],"exe-depends":[]}}},{"type":"configured","id":"dt-dflt-clss-0.1.2.0-6a54c2ca","pkg-name":"data-default-class","pkg-version":"0.1.2.0","flags":{},"style":"global","pkg-src-sha256":"4f01b423f000c3e069aaf52a348564a6536797f31498bb85c3db4bd2d0973e56","components":{"lib":{"depends":["base-4.11.1.0"],"exe-depends":[]}}},{"type":"pre-existing","id":"filepath-1.4.2","pkg-name":"filepath","pkg-version":"1.4.2","depends":["base-4.11.1.0"]},{"type":"configured","id":"fl-mbd-0.0.11-ebe6d17e","pkg-name":"file-embed","pkg-version":"0.0.11","flags":{},"style":"global","pkg-src-sha256":"eea5d00973808e440f346972b7477c8d8c2194a7036cc532eafeffc5189fcd50","depends":["base-4.11.1.0","bytestring-0.10.8.2","directory-1.3.1.5","template-haskell-2.13.0.0","filepath-1.4.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"fst-lggr-2.4.11-ed92c18d","pkg-name":"fast-logger","pkg-version":"2.4.11","flags":{},"style":"global","pkg-src-sha256":"bbe5deab58f435754dbe938cf0ddf26fc21f317c35fb3431d4bdb96809dea2a9","depends":["base-4.11.1.0","array-0.5.2.0","t-pdt-0.1.4-5d2eb98d","sy-fl-0.2.2-f5d206bc","bytestring-0.10.8.2","directory-1.3.1.5","filepath-1.4.2","text-1.2.3.1","unix-2.7.2.2","nx-tm-0.3.8-a16feb9b"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-8.4.4","pkg-name":"ghc","pkg-version":"8.4.4","depends":["base-4.11.1.0","deepseq-1.4.3.0","directory-1.3.1.5","process-1.6.3.0","bytestring-0.10.8.2","binary-0.8.5.1","time-1.8.0.2","containers-0.5.11.0","array-0.5.2.0","filepath-1.4.2","template-haskell-2.13.0.0","hpc-0.6.0.3","transformers-0.5.5.0","ghc-boot-8.4.4","ghc-boot-th-8.4.4","ghci-8.4.4","unix-2.7.2.2","terminfo-0.4.1.1"]},{"type":"pre-existing","id":"ghc-boot-8.4.4","pkg-name":"ghc-boot","pkg-version":"8.4.4","depends":["base-4.11.1.0","binary-0.8.5.1","bytestring-0.10.8.2","directory-1.3.1.5","filepath-1.4.2","ghc-boot-th-8.4.4"]},{"type":"pre-existing","id":"ghc-boot-th-8.4.4","pkg-name":"ghc-boot-th","pkg-version":"8.4.4","depends":["base-4.11.1.0"]},{"type":"pre-existing","id":"ghc-prim-0.5.2.0","pkg-name":"ghc-prim","pkg-version":"0.5.2.0","depends":["rts"]},{"type":"configured","id":"ghc-pths-0.1.0.9-e9fb90c3","pkg-name":"ghc-paths","pkg-version":"0.1.0.9","flags":{},"style":"global","pkg-src-sha256":"afa68fb86123004c37c1dc354286af2d87a9dcfb12ddcb80e8bd0cd55bc87945","components":{"lib":{"depends":["base-4.11.1.0"],"exe-depends":[]},"setup":{"depends":["Cabal-2.2.0.1","base-4.11.1.0","directory-1.3.1.5"],"exe-depends":[]}}},{"type":"pre-existing","id":"ghci-8.4.4","pkg-name":"ghci","pkg-version":"8.4.4","depends":["array-0.5.2.0","base-4.11.1.0","binary-0.8.5.1","bytestring-0.10.8.2","containers-0.5.11.0","deepseq-1.4.3.0","filepath-1.4.2","ghc-boot-8.4.4","ghc-boot-th-8.4.4","template-haskell-2.13.0.0","transformers-0.5.5.0","unix-2.7.2.2"]},{"type":"pre-existing","id":"hpc-0.6.0.3","pkg-name":"hpc","pkg-version":"0.6.0.3","depends":["base-4.11.1.0","containers-0.5.11.0","directory-1.3.1.5","filepath-1.4.2","time-1.8.0.2"]},{"type":"configured","id":"hsc2hs-0.68.3-9ed58bd3","pkg-name":"hsc2hs","pkg-version":"0.68.3","flags":{"in-ghc-tree":false},"style":"global","pkg-src-sha256":"b08818a03225492ca66c82fd323f5f599020597e92fe51b4a78753b62ba18660","depends":["base-4.11.1.0","containers-0.5.11.0","directory-1.3.1.5","filepath-1.4.2","process-1.6.3.0"],"exe-depends":[],"component-name":"exe:hsc2hs","bin-file":"/Users/yaesposi/.cabal/store/ghc-8.4.4/hsc2hs-0.68.3-9ed58bd3/bin/hsc2hs"},{"type":"configured","id":"hshbl-1.2.7.0-6a719111","pkg-name":"hashable","pkg-version":"1.2.7.0","flags":{"examples":false,"integer-gmp":true,"sse2":true,"sse41":false},"style":"global","pkg-src-sha256":"ecb5efc0586023f5a0dc861100621c1dbb4cbb2f0516829a16ebac39f0432abf","depends":["base-4.11.1.0","bytestring-0.10.8.2","deepseq-1.4.3.0","ghc-prim-0.5.2.0","text-1.2.3.1","integer-gmp-1.0.2.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"http-dt-0.0.8-3467e7f1","pkg-name":"http-date","pkg-version":"0.0.8","flags":{},"style":"global","pkg-src-sha256":"0f4c6348487abe4f9d58e43d3c23bdefc7fd1fd5672effd3c7d84aaff05f5427","depends":["base-4.11.1.0","array-0.5.2.0","ttprsc-0.13.2.2-d1dd943b","bytestring-0.10.8.2","time-1.8.0.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"http-md-0.7.1.3-ad1b046f","pkg-name":"http-media","pkg-version":"0.7.1.3","flags":{},"style":"global","pkg-src-sha256":"394ffcfb4f655721d5965870bf9861c324c14d40ed4dc173e926235fe0fe124f","depends":["base-4.11.1.0","bytestring-0.10.8.2","cs-nsnstv-1.2.0.11-e002f8d8","containers-0.5.11.0","tf8-strng-1.0.1.1-2c623848"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"http-p-dt-0.4-8d6f98d1","pkg-name":"http-api-data","pkg-version":"0.4","flags":{"use-text-show":false},"style":"global","pkg-src-sha256":"837e3f39f23df2caa23d75a4608f4a0505a1ab23f7290006976a37a373164a8a","components":{"lib":{"depends":["base-4.11.1.0","bytestring-0.10.8.2","containers-0.5.11.0","text-1.2.3.1","time-1.8.0.2","ttprsc-0.13.2.2-d1dd943b","ttprsc-s8601-1.0.1.0-2c392ebe","bs-cmpt-0.10.5-5296dec8","ck-0.4.4-500096c8","hshbl-1.2.7.0-6a719111","http-typs-0.12.2-2e8c4f72","tggd-0.8.6-13a167c6","tm-lcl-cmpt-0.1.1.5-f72352a4","nrdrd-cntnrs-0.2.9.0-65df6070","d-typs-1.0.3-60b04f72"],"exe-depends":[]},"setup":{"depends":["Cabal-2.2.0.1","base-4.11.1.0","cbl-dctst-1.0.6-bd6648d1"],"exe-depends":[]}}},{"type":"configured","id":"http-typs-0.12.2-2e8c4f72","pkg-name":"http-types","pkg-version":"0.12.2","flags":{},"style":"global","pkg-src-sha256":"523102d7ba8923e1b399cfd2a1c821e858146ecd934fc147c3acd0fd2b2f9305","depends":["base-4.11.1.0","bytestring-0.10.8.2","array-0.5.2.0","cs-nsnstv-1.2.0.11-e002f8d8","text-1.2.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"http2-1.6.4-fae88873","pkg-name":"http2","pkg-version":"1.6.4","flags":{"devel":false},"style":"global","pkg-src-sha256":"2fcadd614cb8fa031e23a0fae096be76b08af7bbd525dc67096bd575cc3f1e66","depends":["base-4.11.1.0","array-0.5.2.0","bytestring-0.10.8.2","cs-nsnstv-1.2.0.11-e002f8d8","containers-0.5.11.0","ntwrk-byt-rdr-0.0.0.0-6109b23a","psqs-0.2.7.0-91145439","stm-2.4.5.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"integer-gmp-1.0.2.0","pkg-name":"integer-gmp","pkg-version":"1.0.2.0","depends":["ghc-prim-0.5.2.0"]},{"type":"configured","id":"js-flt-0.8.3-29f76e4a","pkg-name":"js-flot","pkg-version":"0.8.3","flags":{},"style":"global","pkg-src-sha256":"1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a","depends":["base-4.11.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-jqry-3.3.1-06bf3069","pkg-name":"js-jquery","pkg-version":"3.3.1","flags":{},"style":"global","pkg-src-sha256":"e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b","depends":["base-4.11.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ld-lcl-1.0.0.7-71b7dd20","pkg-name":"old-locale","pkg-version":"1.0.0.7","flags":{},"style":"global","pkg-src-sha256":"dbaf8bf6b888fb98845705079296a23c3f40ee2f449df7312f7f7f1de18d7b50","depends":["base-4.11.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ld-tm-1.1.0.3-937119e9","pkg-name":"old-time","pkg-version":"1.1.0.3","flags":{},"style":"global","pkg-src-sha256":"1ccb158b0f7851715d36b757c523b026ca1541e2030d02239802ba39b4112bc1","components":{"lib":{"depends":["base-4.11.1.0","ld-lcl-1.0.0.7-71b7dd20"],"exe-depends":[]}}},{"type":"configured","id":"lgct-0.6.0.2-35bf7173","pkg-name":"logict","pkg-version":"0.6.0.2","flags":{},"style":"global","pkg-src-sha256":"1182b68e8d00279460c7fb9b8284bf129805c07754c678b2a8de5a6d768e161e","depends":["base-4.11.1.0","mtl-2.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"mcrstch-1.0.1.1-ae6157ee","pkg-name":"microstache","pkg-version":"1.0.1.1","flags":{},"style":"global","pkg-src-sha256":"5de98542313eb75f84961366ff8a70ed632387ba6518215035b2dd1b32d6a120","depends":["sn-1.4.2.0-518ac4e5","base-4.11.1.0","bytestring-0.10.8.2","containers-0.5.11.0","deepseq-1.4.3.0","directory-1.3.1.5","filepath-1.4.2","parsec-3.1.13.0","transformers-0.5.5.0","text-1.2.3.1","nrdrd-cntnrs-0.2.9.0-65df6070","vctr-0.12.0.1-f6cec248"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"mm-typs-0.1.0.8-22b62fa6","pkg-name":"mime-types","pkg-version":"0.1.0.8","flags":{},"style":"global","pkg-src-sha256":"a88b14a27cb03a0193b1d7afdbfcded82f3aff3eec2e20fd3f41794190a08c91","depends":["base-4.11.1.0","containers-0.5.11.0","text-1.2.3.1","bytestring-0.10.8.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"mmrph-1.1.2-07a4917d","pkg-name":"mmorph","pkg-version":"1.1.2","flags":{},"style":"global","pkg-src-sha256":"c90afd7996c94be2b9a5796a7b94918d198c53b0c1d7a3eaf2982293560c5fbe","depends":["base-4.11.1.0","mtl-2.2.2","transformers-0.5.5.0","trnsfrmrs-cmpt-0.6.2-38621b90"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"mmry-0.14.18-58d366ad","pkg-name":"memory","pkg-version":"0.14.18","flags":{"support_basement":true,"support_bytestring":true,"support_deepseq":true,"support_foundation":true},"style":"global","pkg-src-sha256":"f5458d170a291788ac8da896bb44b0cc84021c99dd596c52adf2f7a7f6c03507","depends":["base-4.11.1.0","ghc-prim-0.5.2.0","bytestring-0.10.8.2","deepseq-1.4.3.0","bsmnt-0.0.8-c8c8e3db"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"mnd-cntrl-1.0.2.3-c020539d","pkg-name":"monad-control","pkg-version":"1.0.2.3","flags":{},"style":"global","pkg-src-sha256":"6c1034189d237ae45368c70f0e68f714dd3beda715dd265b6c8a99fcc64022b1","components":{"lib":{"depends":["base-4.11.1.0","stm-2.4.5.1","transformers-0.5.5.0","trnsfrmrs-bs-0.4.5.2-8ab580b0","trnsfrmrs-cmpt-0.6.2-38621b90"],"exe-depends":[]}}},{"type":"configured","id":"mnd-pr-0.3.4.8-996fae74","pkg-name":"monad-par","pkg-version":"0.3.4.8","flags":{"chaselev":false,"newgeneric":false},"style":"global","pkg-src-sha256":"f84cdf51908a1c41c3f672be9520a8fdc028ea39d90a25ecfe5a3b223cfeb951","depends":["base-4.11.1.0","bstrct-pr-0.3.3-69d86e06","bstrct-dq-0.3-97a38a8d","mnd-pr-xtrs-0.3.3-4d45d8de","deepseq-1.4.3.0","array-0.5.2.0","mwc-rndm-0.14.0.0-9c2a2d97","containers-0.5.11.0","prlll-3.2.2.0-bd6fd469","mtl-2.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"mnd-pr-xtrs-0.3.3-4d45d8de","pkg-name":"monad-par-extras","pkg-version":"0.3.3","flags":{},"style":"global","pkg-src-sha256":"e21e33190bc248afa4ae467287ac37d24037ef3de6050c44fd85b52f4d5b842e","depends":["base-4.11.1.0","bstrct-pr-0.3.3-69d86e06","crl-0.5.7.0-8acbfaa1","deepseq-1.4.3.0","rndm-1.1-19158125","mtl-2.2.2","transformers-0.5.5.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"mth-fnctns-0.3.1.0-fc0f2b77","pkg-name":"math-functions","pkg-version":"0.3.1.0","flags":{"system-expm1":false},"style":"global","pkg-src-sha256":"3340ebec0ab91444f86ce3f785db920b8acfd5fbad70d38abcb02b77ac0f6655","depends":["base-4.11.1.0","deepseq-1.4.3.0","dt-dflt-clss-0.1.2.0-6a54c2ca","vctr-0.12.0.1-f6cec248","prmtv-0.6.4.0-98c9ee4b","vctr-th-nbx-0.2.1.6-95471d35"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.11.1.0","transformers-0.5.5.0"]},{"type":"configured","id":"mtl-cmpt-0.2.1.3-4d4a6fbb","pkg-name":"mtl-compat","pkg-version":"0.2.1.3","flags":{"two-point-one":false,"two-point-two":false},"style":"global","pkg-src-sha256":"6458ca53593a31ebce1d94ef8dd4f6a06d050dd7ed32335f6cc6b6e5d3456894","depends":["base-4.11.1.0","mtl-2.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"mwc-rndm-0.14.0.0-9c2a2d97","pkg-name":"mwc-random","pkg-version":"0.14.0.0","flags":{},"style":"global","pkg-src-sha256":"00370edaa60a51c86663868ecc2b1995824970001875cec458e9acc13511efa2","depends":["base-4.11.1.0","prmtv-0.6.4.0-98c9ee4b","time-1.8.0.2","vctr-0.12.0.1-f6cec248","mth-fnctns-0.3.1.0-fc0f2b77"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"nbndd-dlys-0.1.1.0-774adf65","pkg-name":"unbounded-delays","pkg-version":"0.1.1.0","flags":{},"style":"global","pkg-src-sha256":"8aa7f7d10a8d0073518804db76c3ef4c313359994ef175122341b0bce07329c7","components":{"lib":{"depends":["base-4.11.1.0"],"exe-depends":[]}}},{"type":"configured","id":"nlft-cr-0.1.2.0-dadef38c","pkg-name":"unliftio-core","pkg-version":"0.1.2.0","flags":{},"style":"global","pkg-src-sha256":"24c38b3d610ca2642ed496d1de3d7b6b398ce0410aa0a15f3c7ce636ba8f7a78","depends":["base-4.11.1.0","transformers-0.5.5.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"nrdrd-cntnrs-0.2.9.0-65df6070","pkg-name":"unordered-containers","pkg-version":"0.2.9.0","flags":{"debug":false},"style":"global","pkg-src-sha256":"6730cb5c4a3e953e2c199d6425be08fd088ff0089a3e140d63226c052e318250","depends":["base-4.11.1.0","deepseq-1.4.3.0","hshbl-1.2.7.0-6a719111"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ns-trmnl-0.8.2-c829a142","pkg-name":"ansi-terminal","pkg-version":"0.8.2","flags":{"example":false},"style":"global","pkg-src-sha256":"90a7324811e7da0d0aecd66454b1622e3b1ee22ed09bbdae379c0ff079d2fa90","depends":["base-4.11.1.0","clr-2.3.4-5306560c"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ns-wl-pprnt-0.6.8.2-32aee689","pkg-name":"ansi-wl-pprint","pkg-version":"0.6.8.2","flags":{"example":false},"style":"global","pkg-src-sha256":"a630721bd57678c3bfeb6c703f8249e434cbf85f40daceec4660fb8c6725cb3e","depends":["ns-trmnl-0.8.2-c829a142","base-4.11.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ntgr-lgrthms-1.0.2.2-635bafc1","pkg-name":"integer-logarithms","pkg-version":"1.0.2.2","flags":{"check-bounds":false,"integer-gmp":true},"style":"global","pkg-src-sha256":"ba86628d5c14f31fddccea86eeec122ed992af28d5b7ad964b2f5487605e7fc3","depends":["base-4.11.1.0","array-0.5.2.0","ghc-prim-0.5.2.0","integer-gmp-1.0.2.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ntwrk-2.8.0.0-48ee157f","pkg-name":"network","pkg-version":"2.8.0.0","flags":{},"style":"global","pkg-src-sha256":"c8905268b7e3b4cf624a40245bf11b35274a6dd836a5d4d531b5760075645303","components":{"lib":{"depends":["base-4.11.1.0","bytestring-0.10.8.2","unix-2.7.2.2"],"exe-depends":[]}}},{"type":"configured","id":"ntwrk-byt-rdr-0.0.0.0-6109b23a","pkg-name":"network-byte-order","pkg-version":"0.0.0.0","flags":{},"style":"global","pkg-src-sha256":"3bb6f1110d9ac16a18f0c2d5921af584044e667e46fcfbdebd7a1e74e329de71","depends":["base-4.11.1.0","bytestring-0.10.8.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ntwrk-r-2.6.1.0-70f8c459","pkg-name":"network-uri","pkg-version":"2.6.1.0","flags":{},"style":"global","pkg-src-sha256":"423e0a2351236f3fcfd24e39cdbc38050ec2910f82245e69ca72a661f7fc47f0","depends":["base-4.11.1.0","deepseq-1.4.3.0","parsec-3.1.13.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"nx-cmpt-0.5.1-741da4a6","pkg-name":"unix-compat","pkg-version":"0.5.1","flags":{"old-time":false},"style":"global","pkg-src-sha256":"a39d0c79dd906763770b80ba5b6c5cb710e954f894350e9917de0d73f3a19c52","components":{"lib":{"depends":["base-4.11.1.0","unix-2.7.2.2"],"exe-depends":[]}}},{"type":"configured","id":"nx-tm-0.3.8-a16feb9b","pkg-name":"unix-time","pkg-version":"0.3.8","flags":{},"style":"global","pkg-src-sha256":"dca1bd332f4690f667570868c91c1270083428067e0e20b88a9d9516efa33a14","components":{"lib":{"depends":["base-4.11.1.0","bytestring-0.10.8.2","ld-tm-1.1.0.3-937119e9","binary-0.8.5.1"],"exe-depends":[]}}},{"type":"pre-existing","id":"parsec-3.1.13.0","pkg-name":"parsec","pkg-version":"3.1.13.0","depends":["base-4.11.1.0","mtl-2.2.2","bytestring-0.10.8.2","text-1.2.3.1"]},{"type":"configured","id":"ppr-0.1.4-37eabf9b","pkg-name":"appar","pkg-version":"0.1.4","flags":{},"style":"global","pkg-src-sha256":"58ea66abe4dd502d2fc01eecdb0828d5e214704a3c1b33b1f8b33974644c4b26","components":{"lib":{"depends":["base-4.11.1.0","bytestring-0.10.8.2"],"exe-depends":[]}}},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.11.1.0","deepseq-1.4.3.0","ghc-prim-0.5.2.0"]},{"type":"configured","id":"prlll-3.2.2.0-bd6fd469","pkg-name":"parallel","pkg-version":"3.2.2.0","flags":{},"style":"global","pkg-src-sha256":"170453a71a2a8b31cca63125533f7771d7debeb639700bdabdd779c34d8a6ef6","depends":["array-0.5.2.0","base-4.11.1.0","containers-0.5.11.0","deepseq-1.4.3.0","ghc-prim-0.5.2.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"prmtv-0.6.4.0-98c9ee4b","pkg-name":"primitive","pkg-version":"0.6.4.0","flags":{},"style":"global","pkg-src-sha256":"4cbeaf7924dd79221f327ea101a29bf35c4976dc3319df157ff46ea68e6a0c64","depends":["base-4.11.1.0","ghc-prim-0.5.2.0","transformers-0.5.5.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.3.0","pkg-name":"process","pkg-version":"1.6.3.0","depends":["base-4.11.1.0","directory-1.3.1.5","filepath-1.4.2","deepseq-1.4.3.0","unix-2.7.2.2"]},{"type":"configured","id":"prt-1.7.6-bc09669e","pkg-name":"iproute","pkg-version":"1.7.6","flags":{},"style":"global","pkg-src-sha256":"919767c06e23f4cb2024d21ee2c8a85ec49d3b48cff95dd43ddc88e03ffc6ceb","depends":["base-4.11.1.0","ppr-0.1.4-37eabf9b","bytrdr-1.0.4-5c1379a4","containers-0.5.11.0","ntwrk-2.8.0.0-48ee157f"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"prtld-0.2.3-e6b8d763","pkg-name":"protolude","pkg-version":"0.2.3","flags":{},"style":"global","pkg-src-sha256":"d23d39b5088f1656649c8e42fc86a20e48799d38f79d162fb38bd50d7ef7f37f","depends":["base-4.11.1.0","array-0.5.2.0","ghc-prim-0.5.2.0","sync-2.2.1-75ea745c","deepseq-1.4.3.0","containers-0.5.11.0","hshbl-1.2.7.0-6a719111","transformers-0.5.5.0","text-1.2.3.1","stm-2.4.5.1","bytestring-0.10.8.2","mtl-2.2.2","mtl-cmpt-0.2.1.3-4d4a6fbb","trnsfrmrs-cmpt-0.6.2-38621b90"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"psqs-0.2.7.0-91145439","pkg-name":"psqueues","pkg-version":"0.2.7.0","flags":{},"style":"global","pkg-src-sha256":"4cf3628884015b091471e4425f5414207fd547cf71d9546e9b7318d857624fea","depends":["base-4.11.1.0","deepseq-1.4.3.0","hshbl-1.2.7.0-6a719111","ghc-prim-0.5.2.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ptprs-pplctv-0.14.3.0-1df4cfb3","pkg-name":"optparse-applicative","pkg-version":"0.14.3.0","flags":{},"style":"global","pkg-src-sha256":"72476302fe555a508917b2d7d6121c7b58ea5434cdc08aeb5d4b652e8f0e7663","depends":["base-4.11.1.0","transformers-0.5.5.0","trnsfrmrs-cmpt-0.6.2-38621b90","process-1.6.3.0","ns-wl-pprnt-0.6.8.2-32aee689"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"rf-2.0.0.0-a4c5ad1c","pkg-name":"erf","pkg-version":"2.0.0.0","flags":{},"style":"global","pkg-src-sha256":"24f0b79c7e1d25cb2cd44c2258d7a464bf6db8079775b50b60b54a254616b337","components":{"lib":{"depends":["base-4.11.1.0"],"exe-depends":[]}}},{"type":"configured","id":"rndm-1.1-19158125","pkg-name":"random","pkg-version":"1.1","flags":{},"style":"global","pkg-src-sha256":"b718a41057e25a3a71df693ab0fe2263d492e759679b3c2fea6ea33b171d3a5a","depends":["base-4.11.1.0","time-1.8.0.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"rsrct-1.2.2-c3dbfb4b","pkg-name":"resourcet","pkg-version":"1.2.2","flags":{},"style":"global","pkg-src-sha256":"1323425aba3827479eb3588efaf7608b12a083327d64ec814f02863c3673cbe5","depends":["base-4.11.1.0","containers-0.5.11.0","transformers-0.5.5.0","mtl-2.2.2","xcptns-0.10.0-193f3948","nlft-cr-0.1.2.0-dadef38c","prmtv-0.6.4.0-98c9ee4b"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0","depends":[]},{"type":"configured","id":"scntfc-0.3.6.2-6c0f201d","pkg-name":"scientific","pkg-version":"0.3.6.2","flags":{"bytestring-builder":false,"integer-simple":false},"style":"global","pkg-src-sha256":"278d0afc87450254f8a76eab21b5583af63954efc9b74844a17a21a68013140f","depends":["base-4.11.1.0","ntgr-lgrthms-1.0.2.2-635bafc1","deepseq-1.4.3.0","text-1.2.3.1","hshbl-1.2.7.0-6a719111","prmtv-0.6.4.0-98c9ee4b","containers-0.5.11.0","binary-0.8.5.1","bytestring-0.10.8.2","integer-gmp-1.0.2.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"smgrps-0.18.5-eb0048fc","pkg-name":"semigroups","pkg-version":"0.18.5","flags":{"binary":true,"bytestring":true,"bytestring-builder":false,"containers":true,"deepseq":true,"hashable":true,"tagged":true,"text":true,"transformers":true,"unordered-containers":true},"style":"global","pkg-src-sha256":"ab2a96af6e81e31b909c37ba65f436f1493dbf387cfe0de10b6586270c4ce29d","depends":["base-4.11.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"smllchck-1.1.5-265bfa9e","pkg-name":"smallcheck","pkg-version":"1.1.5","flags":{},"style":"global","pkg-src-sha256":"9020e67895a57bde02d7df2c0af06a4c769eff56d48b6a830f6d803df891aea4","components":{"lib":{"depends":["base-4.11.1.0","ghc-prim-0.5.2.0","lgct-0.6.0.2-35bf7173","mtl-2.2.2","pretty-1.1.3.6"],"exe-depends":[]}}},{"type":"configured","id":"smpl-sndfl-0.2.27-5c2fdd40","pkg-name":"simple-sendfile","pkg-version":"0.2.27","flags":{"allow-bsd":true},"style":"global","pkg-src-sha256":"f68572592099a2db3f7212ac7d133447ae5bbb2605285d3de1a29a52d9c79caf","depends":["base-4.11.1.0","ntwrk-2.8.0.0-48ee157f","bytestring-0.10.8.2","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"sn-1.4.2.0-518ac4e5","pkg-name":"aeson","pkg-version":"1.4.2.0","flags":{"bytestring-builder":false,"cffi":false,"developer":false,"fast":false},"style":"global","pkg-src-sha256":"75ce71814a33d5e5568208e6806a8847e7ba47fea74d30f6a8b1b56ecb318bd0","depends":["base-4.11.1.0","containers-0.5.11.0","deepseq-1.4.3.0","ghc-prim-0.5.2.0","template-haskell-2.13.0.0","text-1.2.3.1","time-1.8.0.2","bs-cmpt-0.10.5-5296dec8","nrdrd-cntnrs-0.2.9.0-65df6070","tggd-0.8.6-13a167c6","prmtv-0.6.4.0-98c9ee4b","ttprsc-0.13.2.2-d1dd943b","dlst-0.8.0.5-8514010c","hshbl-1.2.7.0-6a719111","scntfc-0.3.6.2-6c0f201d","th-bstrctn-0.2.8.0-8fee3d42","tm-lcl-cmpt-0.1.1.5-f72352a4","d-typs-1.0.3-60b04f72","vctr-0.12.0.1-f6cec248","bytestring-0.10.8.2","cntrvrnt-1.5-160ba823"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"sngltn-bl-0.1.4-fb3887b5","pkg-name":"singleton-bool","pkg-version":"0.1.4","flags":{},"style":"global","pkg-src-sha256":"0195c6e2be1e149e5b687ec3be84fd5089b377345fddd333a9d681eacdfafb2a","depends":["base-4.11.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"srvnt-0.15-add91e21","pkg-name":"servant","pkg-version":"0.15","flags":{},"style":"global","pkg-src-sha256":"4f3f35c9c0f5e4ee8c2d10c9113ac4a6409a4d57759137e68f43588f5e6bfa39","components":{"lib":{"depends":["base-4.11.1.0","bytestring-0.10.8.2","mtl-2.2.2","transformers-0.5.5.0","text-1.2.3.1","http-p-dt-0.4-8d6f98d1","sngltn-bl-0.1.4-fb3887b5","bs-cmpt-0.10.5-5296dec8","sn-1.4.2.0-518ac4e5","ttprsc-0.13.2.2-d1dd943b","bfnctrs-5.5.3-7602119c","cs-nsnstv-1.2.0.11-e002f8d8","http-md-0.7.1.3-ad1b046f","http-typs-0.12.2-2e8c4f72","mmrph-1.1.2-07a4917d","ntwrk-r-2.6.1.0-70f8c459","QckChck-2.12.6.1-a4f8828f","strng-cnvrsns-0.4.0.1-2e2c9962","tggd-0.8.6-13a167c6","vlt-0.3.1.2-c94f2ed6"],"exe-depends":[]},"setup":{"depends":["Cabal-2.2.0.1","base-4.11.1.0","cbl-dctst-1.0.6-bd6648d1"],"exe-depends":[]}}},{"type":"configured","id":"srvnt-srvr-0.15-1d589db7","pkg-name":"servant-server","pkg-version":"0.15","flags":{},"style":"global","pkg-src-sha256":"98034e618ff844f18dbedeb663e1a88a87ce3bc3792e9a40d7e17ca1e96b93e2","components":{"lib":{"depends":["base-4.11.1.0","bytestring-0.10.8.2","containers-0.5.11.0","mtl-2.2.2","text-1.2.3.1","transformers-0.5.5.0","filepath-1.4.2","srvnt-0.15-add91e21","http-p-dt-0.4-8d6f98d1","bs-cmpt-0.10.5-5296dec8","bs64-bytstrng-1.0.0.1-9d9949a2","xcptns-0.10.0-193f3948","http-md-0.7.1.3-ad1b046f","http-typs-0.12.2-2e8c4f72","ntwrk-r-2.6.1.0-70f8c459","mnd-cntrl-1.0.2.3-c020539d","ntwrk-2.8.0.0-48ee157f","strng-cnvrsns-0.4.0.1-2e2c9962","rsrct-1.2.2-c3dbfb4b","tggd-0.8.6-13a167c6","trnsfrmrs-bs-0.4.5.2-8ab580b0","w-3.2.1.2-34e4603d","w-pp-sttc-3.1.6.2-92ad0c36","wrd8-0.1.3-2a862df7"],"exe-depends":[]},"exe:greet":{"depends":["base-4.11.1.0","bs-cmpt-0.10.5-5296dec8","srvnt-0.15-add91e21","w-3.2.1.2-34e4603d","text-1.2.3.1","sn-1.4.2.0-518ac4e5","wrp-3.2.25-0192261b"],"exe-depends":[],"bin-file":"/Users/yaesposi/.cabal/store/ghc-8.4.4/srvnt-srvr-0.15-1d589db7/bin/greet"},"setup":{"depends":["Cabal-2.2.0.1","base-4.11.1.0","cbl-dctst-1.0.6-bd6648d1"],"exe-depends":[]}}},{"type":"pre-existing","id":"stm-2.4.5.1","pkg-name":"stm","pkg-version":"2.4.5.1","depends":["base-4.11.1.0","array-0.5.2.0"]},{"type":"configured","id":"strmng-cmmns-0.2.1.0-9413753f","pkg-name":"streaming-commons","pkg-version":"0.2.1.0","flags":{"use-bytestring-builder":false},"style":"global","pkg-src-sha256":"d8d1fe588924479ea7eefce8c6af77dfb373ee6bde7f4691bdfcbd782b36d68d","depends":["base-4.11.1.0","array-0.5.2.0","sync-2.2.1-75ea745c","bytestring-0.10.8.2","directory-1.3.1.5","ntwrk-2.8.0.0-48ee157f","rndm-1.1-19158125","process-1.6.3.0","stm-2.4.5.1","text-1.2.3.1","transformers-0.5.5.0","zlb-0.6.2-c3b2a6e8","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"strng-cnvrsns-0.4.0.1-2e2c9962","pkg-name":"string-conversions","pkg-version":"0.4.0.1","flags":{},"style":"global","pkg-src-sha256":"46bcce6d9ce62c558b7658a75d9c6a62f7259d6b0473d011d8078234ad6a1994","depends":["base-4.11.1.0","bytestring-0.10.8.2","text-1.2.3.1","tf8-strng-1.0.1.1-2c623848"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"sttstcs-0.15.0.0-97e18b66","pkg-name":"statistics","pkg-version":"0.15.0.0","flags":{},"style":"global","pkg-src-sha256":"95e9c45c95e81a35c7bd7443e8d6626fd100505a567de47622185fe9c8be6472","depends":["base-4.11.1.0","bs-rphns-0.8-5e9ea5df","mth-fnctns-0.3.1.0-fc0f2b77","mwc-rndm-0.14.0.0-9c2a2d97","sn-1.4.2.0-518ac4e5","deepseq-1.4.3.0","binary-0.8.5.1","mnd-pr-0.3.4.8-996fae74","prmtv-0.6.4.0-98c9ee4b","dns-lnr-lgbr-0.1.0.0-1feb6007","vctr-0.12.0.1-f6cec248","vctr-lgrthms-0.8.0.1-f0d2c289","vctr-th-nbx-0.2.1.6-95471d35","vctr-bnry-nstncs-0.2.5.1-2b62bd6a","dt-dflt-clss-0.1.2.0-6a54c2ca"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"sy-fl-0.2.2-f5d206bc","pkg-name":"easy-file","pkg-version":"0.2.2","flags":{},"style":"global","pkg-src-sha256":"52f52e72ba48d60935932401c233a72bf45c582871238aecc5a18021ce67b47e","components":{"lib":{"depends":["base-4.11.1.0","directory-1.3.1.5","filepath-1.4.2","time-1.8.0.2","unix-2.7.2.2"],"exe-depends":[]}}},{"type":"configured","id":"syb-0.7-a47c499a","pkg-name":"syb","pkg-version":"0.7","flags":{},"style":"global","pkg-src-sha256":"b8757dce5ab4045c49a0ae90407d575b87ee5523a7dd5dfa5c9d54fcceff42b5","depends":["base-4.11.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"sync-2.2.1-75ea745c","pkg-name":"async","pkg-version":"2.2.1","flags":{"bench":false},"style":"global","pkg-src-sha256":"8f0b86022a1319d3c1c68655790da4b7f98017982e27ec3f3dbfe01029d39027","depends":["base-4.11.1.0","hshbl-1.2.7.0-6a719111","stm-2.4.5.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"t-pdt-0.1.4-5d2eb98d","pkg-name":"auto-update","pkg-version":"0.1.4","flags":{},"style":"global","pkg-src-sha256":"5e96c151024e8bcaf4eaa932e16995872b2017f46124b967e155744d9580b425","depends":["base-4.11.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.13.0.0","pkg-name":"template-haskell","pkg-version":"2.13.0.0","depends":["base-4.11.1.0","ghc-boot-th-8.4.4","pretty-1.1.3.6"]},{"type":"pre-existing","id":"terminfo-0.4.1.1","pkg-name":"terminfo","pkg-version":"0.4.1.1","depends":["base-4.11.1.0"]},{"type":"pre-existing","id":"text-1.2.3.1","pkg-name":"text","pkg-version":"1.2.3.1","depends":["array-0.5.2.0","base-4.11.1.0","binary-0.8.5.1","deepseq-1.4.3.0","ghc-prim-0.5.2.0","bytestring-0.10.8.2","integer-gmp-1.0.2.0"]},{"type":"configured","id":"tf-rndm-0.5-ac0f4c31","pkg-name":"tf-random","pkg-version":"0.5","flags":{},"style":"global","pkg-src-sha256":"2e30cec027b313c9e1794d326635d8fc5f79b6bf6e7580ab4b00186dadc88510","depends":["base-4.11.1.0","prmtv-0.6.4.0-98c9ee4b","rndm-1.1-19158125","time-1.8.0.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"tf8-strng-1.0.1.1-2c623848","pkg-name":"utf8-string","pkg-version":"1.0.1.1","flags":{},"style":"global","pkg-src-sha256":"fb0b9e3acbe0605bcd1c63e51f290a7bbbe6628dfa3294ff453e4235fbaef140","components":{"lib":{"depends":["base-4.11.1.0","bytestring-0.10.8.2"],"exe-depends":[]}}},{"type":"configured","id":"tggd-0.8.6-13a167c6","pkg-name":"tagged","pkg-version":"0.8.6","flags":{"deepseq":true,"transformers":true},"style":"global","pkg-src-sha256":"ad16def0884cf6f05ae1ae8e90192cf9d8d9673fa264b249499bd9e4fac791dd","depends":["base-4.11.1.0","template-haskell-2.13.0.0","deepseq-1.4.3.0","transformers-0.5.5.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"th-bstrctn-0.2.8.0-8fee3d42","pkg-name":"th-abstraction","pkg-version":"0.2.8.0","flags":{},"style":"global","pkg-src-sha256":"ca136bd3fa76230a288ba0a3a65c36a555f32c179369a258b4a04d2f30e12758","depends":["base-4.11.1.0","ghc-prim-0.5.2.0","template-haskell-2.13.0.0","containers-0.5.11.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"time-1.8.0.2","pkg-name":"time","pkg-version":"1.8.0.2","depends":["base-4.11.1.0","deepseq-1.4.3.0"]},{"type":"configured","id":"tm-lcl-cmpt-0.1.1.5-f72352a4","pkg-name":"time-locale-compat","pkg-version":"0.1.1.5","flags":{"old-locale":false},"style":"global","pkg-src-sha256":"07ff1566de7d851423a843b2de385442319348c621d4f779b3d365ce91ac502c","depends":["base-4.11.1.0","time-1.8.0.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"transformers-0.5.5.0","pkg-name":"transformers","pkg-version":"0.5.5.0","depends":["base-4.11.1.0"]},{"type":"configured","id":"trnsfrmrs-bs-0.4.5.2-8ab580b0","pkg-name":"transformers-base","pkg-version":"0.4.5.2","flags":{"orphaninstances":true},"style":"global","pkg-src-sha256":"d0c80c63fdce6a077dd8eda4f1ff289b85578703a3f1272e141d400fe23245e8","depends":["base-4.11.1.0","stm-2.4.5.1","transformers-0.5.5.0","trnsfrmrs-cmpt-0.6.2-38621b90","bs-rphns-0.8-5e9ea5df"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"trnsfrmrs-cmpt-0.6.2-38621b90","pkg-name":"transformers-compat","pkg-version":"0.6.2","flags":{"five":false,"five-three":true,"four":false,"generic-deriving":true,"mtl":true,"three":false,"two":false},"style":"global","pkg-src-sha256":"dc06228b7b8a546f9d257b4fe2b369fc2cb279240bbe4312aa8f47bb2752e4be","depends":["base-4.11.1.0","transformers-0.5.5.0","ghc-prim-0.5.2.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"tsty-1.1.0.4-1add605d","pkg-name":"tasty","pkg-version":"1.1.0.4","flags":{"clock":true},"style":"global","pkg-src-sha256":"3b4e3fa2c7dce8452c2636e5fe22323919461f52e905c132aae8dc12f10beebf","depends":["base-4.11.1.0","stm-2.4.5.1","containers-0.5.11.0","mtl-2.2.2","tggd-0.8.6-13a167c6","ptprs-pplctv-0.14.3.0-1df4cfb3","nbndd-dlys-0.1.1.0-774adf65","sync-2.2.1-75ea745c","ns-trmnl-0.8.2-c829a142","clck-0.7.2-33f9488d","unix-2.7.2.2","wcwdth-0.0.2-d961ed67"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"tsty-hnt-0.10.0.1-ff5e5b1f","pkg-name":"tasty-hunit","pkg-version":"0.10.0.1","flags":{},"style":"global","pkg-src-sha256":"8f903bef276ef503e4ef8b66a1e201c224588e426bc76f7581480f66d47b7048","depends":["base-4.11.1.0","tsty-1.1.0.4-1add605d","cll-stck-0.1.0-fec0c7db"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"tsty-smllchck-0.8.1-e085afc6","pkg-name":"tasty-smallcheck","pkg-version":"0.8.1","flags":{},"style":"global","pkg-src-sha256":"314ba7acdb7793730e7677f553a72dd6a4a8f9a45ff3e931cd7d384affb3c6d8","components":{"lib":{"depends":["sync-2.2.1-75ea745c","base-4.11.1.0","smllchck-1.1.5-265bfa9e","tggd-0.8.6-13a167c6","tsty-1.1.0.4-1add605d"],"exe-depends":[]}}},{"type":"configured","id":"ttprsc-0.13.2.2-d1dd943b","pkg-name":"attoparsec","pkg-version":"0.13.2.2","flags":{"developer":false},"style":"global","pkg-src-sha256":"dd93471eb969172cc4408222a3842d867adda3dd7fb39ad8a4df1b121a67d848","depends":["array-0.5.2.0","base-4.11.1.0","bytestring-0.10.8.2","containers-0.5.11.0","deepseq-1.4.3.0","scntfc-0.3.6.2-6c0f201d","transformers-0.5.5.0","text-1.2.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ttprsc-s8601-1.0.1.0-2c392ebe","pkg-name":"attoparsec-iso8601","pkg-version":"1.0.1.0","flags":{"developer":false,"fast":false},"style":"global","pkg-src-sha256":"499ffbd2d39e79cc4fda5ad0129dbf94fdb72a84aa932dfe2a5f5c5c02074142","depends":["ttprsc-0.13.2.2-d1dd943b","base-4.11.1.0","bs-cmpt-0.10.5-5296dec8","text-1.2.3.1","time-1.8.0.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"txt-shrt-0.1.2-e3e0c6cd","pkg-name":"text-short","pkg-version":"0.1.2","flags":{"asserts":false},"style":"global","pkg-src-sha256":"b3f2b867d14c7c2586ea580028606b6662293ad080726d5241def937e5e31167","depends":["base-4.11.1.0","bytestring-0.10.8.2","hshbl-1.2.7.0-6a719111","deepseq-1.4.3.0","text-1.2.3.1","binary-0.8.5.1","ghc-prim-0.5.2.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.11.1.0","bytestring-0.10.8.2","time-1.8.0.2"]},{"type":"configured","id":"vctr-0.12.0.1-f6cec248","pkg-name":"vector","pkg-version":"0.12.0.1","flags":{"boundschecks":true,"internalchecks":false,"unsafechecks":false,"wall":false},"style":"global","pkg-src-sha256":"b100ee79b9da2651276278cd3e0f08a3c152505cc52982beda507515af173d7b","depends":["base-4.11.1.0","prmtv-0.6.4.0-98c9ee4b","ghc-prim-0.5.2.0","deepseq-1.4.3.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"vctr-bnry-nstncs-0.2.5.1-2b62bd6a","pkg-name":"vector-binary-instances","pkg-version":"0.2.5.1","flags":{},"style":"global","pkg-src-sha256":"3945b99f8efd319c837700b7cef5163ee23e656e89227357e0b7a41d2a66c512","depends":["base-4.11.1.0","vctr-0.12.0.1-f6cec248","binary-0.8.5.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"vctr-lgrthms-0.8.0.1-f0d2c289","pkg-name":"vector-algorithms","pkg-version":"0.8.0.1","flags":{"bench":true,"boundschecks":true,"internalchecks":false,"llvm":false,"properties":true,"unsafechecks":false},"style":"global","pkg-src-sha256":"15bcde786dcf03861946885e030d3dbe3b683e1a6fc12d7317e115084f4637fe","depends":["base-4.11.1.0","vctr-0.12.0.1-f6cec248","prmtv-0.6.4.0-98c9ee4b","bytestring-0.10.8.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"vctr-th-nbx-0.2.1.6-95471d35","pkg-name":"vector-th-unbox","pkg-version":"0.2.1.6","flags":{},"style":"global","pkg-src-sha256":"be87d4a6f1005ee2d0de6adf521e05c9e83c441568a8a8b60c79efe24ae90235","depends":["base-4.11.1.0","template-haskell-2.13.0.0","vctr-0.12.0.1-f6cec248"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"vd-0.7.2-9423a9d2","pkg-name":"void","pkg-version":"0.7.2","flags":{"safe":false},"style":"global","pkg-src-sha256":"d3fffe66a03e4b53db1e459edf75ad8402385a817cae415d857ec0b03ce0cf2b","depends":["base-4.11.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"vlt-0.3.1.2-c94f2ed6","pkg-name":"vault","pkg-version":"0.3.1.2","flags":{"useghc":true},"style":"global","pkg-src-sha256":"9e00e52ec0b054cfb9b1e44d8ce2eefb499cc1dcd4bcdd0d434b370d635e551c","components":{"lib":{"depends":["base-4.11.1.0","containers-0.5.11.0","hshbl-1.2.7.0-6a719111","smgrps-0.18.5-eb0048fc","nrdrd-cntnrs-0.2.9.0-65df6070"],"exe-depends":[]}}},{"type":"configured","id":"w-3.2.1.2-34e4603d","pkg-name":"wai","pkg-version":"3.2.1.2","flags":{},"style":"global","pkg-src-sha256":"282351461f19fbac26aa0a7896d7ab583b4abef522fcd9aba944f1848e58234b","depends":["base-4.11.1.0","bytestring-0.10.8.2","ntwrk-2.8.0.0-48ee157f","http-typs-0.12.2-2e8c4f72","text-1.2.3.1","transformers-0.5.5.0","vlt-0.3.1.2-c94f2ed6"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"w-lggr-2.3.2-bc1f69c0","pkg-name":"wai-logger","pkg-version":"2.3.2","flags":{},"style":"global","pkg-src-sha256":"8dd4ff875d9ac2c115f5d45cc4375635a6c3e55a75c632ff3781d1fb086eb470","depends":["base-4.11.1.0","bytrdr-1.0.4-5c1379a4","bytestring-0.10.8.2","cs-nsnstv-1.2.0.11-e002f8d8","fst-lggr-2.4.11-ed92c18d","http-typs-0.12.2-2e8c4f72","ntwrk-2.8.0.0-48ee157f","w-3.2.1.2-34e4603d","unix-2.7.2.2","nx-tm-0.3.8-a16feb9b"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"w-pp-sttc-3.1.6.2-523b03b0","pkg-name":"wai-app-static","pkg-version":"3.1.6.2","flags":{"print":false},"style":"global","pkg-src-sha256":"d0b0a566be61ef4c8f800922a71dbc4de64287f8f73782b1461cd5d294c1dc3e","depends":["base-4.11.1.0","w-pp-sttc-3.1.6.2-92ad0c36","directory-1.3.1.5","containers-0.5.11.0","bytestring-0.10.8.2","text-1.2.3.1","mm-typs-0.1.0.8-22b62fa6"],"exe-depends":[],"component-name":"exe:warp","bin-file":"/Users/yaesposi/.cabal/store/ghc-8.4.4/w-pp-sttc-3.1.6.2-523b03b0/bin/warp"},{"type":"configured","id":"w-pp-sttc-3.1.6.2-92ad0c36","pkg-name":"wai-app-static","pkg-version":"3.1.6.2","flags":{"print":false},"style":"global","pkg-src-sha256":"d0b0a566be61ef4c8f800922a71dbc4de64287f8f73782b1461cd5d294c1dc3e","depends":["base-4.11.1.0","w-3.2.1.2-34e4603d","bytestring-0.10.8.2","http-typs-0.12.2-2e8c4f72","transformers-0.5.5.0","nx-cmpt-0.5.1-741da4a6","directory-1.3.1.5","containers-0.5.11.0","time-1.8.0.2","ld-lcl-1.0.0.7-71b7dd20","fl-mbd-0.0.11-ebe6d17e","text-1.2.3.1","cryptnt-0.25-5ad9d7fe","mmry-0.14.18-58d366ad","http-dt-0.0.8-3467e7f1","blz-html-0.9.1.1-0c04bb46","blz-mrkp-0.8.2.2-a8d772d1","mm-typs-0.1.0.8-22b62fa6","nrdrd-cntnrs-0.2.9.0-65df6070","template-haskell-2.13.0.0","zlb-0.6.2-c3b2a6e8","filepath-1.4.2","w-xtr-3.0.24.3-57bb2545","ptprs-pplctv-0.14.3.0-1df4cfb3","wrp-3.2.25-0192261b"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"w-xtr-3.0.24.3-57bb2545","pkg-name":"wai-extra","pkg-version":"3.0.24.3","flags":{"build-example":false},"style":"global","pkg-src-sha256":"41e8f93ff03947623f5b447c71806f07819e1006f8267c84fd050e89fbafc439","depends":["base-4.11.1.0","bytestring-0.10.8.2","w-3.2.1.2-34e4603d","ld-lcl-1.0.0.7-71b7dd20","time-1.8.0.2","ntwrk-2.8.0.0-48ee157f","directory-1.3.1.5","transformers-0.5.5.0","http-typs-0.12.2-2e8c4f72","text-1.2.3.1","cs-nsnstv-1.2.0.11-e002f8d8","dt-dflt-clss-0.1.2.0-6a54c2ca","fst-lggr-2.4.11-ed92c18d","w-lggr-2.3.2-bc1f69c0","ns-trmnl-0.8.2-c829a142","rsrct-1.2.2-c3dbfb4b","vd-0.7.2-9423a9d2","containers-0.5.11.0","bs64-bytstrng-1.0.0.1-9d9949a2","wrd8-0.1.3-2a862df7","deepseq-1.4.3.0","strmng-cmmns-0.2.1.0-9413753f","nx-cmpt-0.5.1-741da4a6","ck-0.4.4-500096c8","vlt-0.3.1.2-c94f2ed6","zlb-0.6.2-c3b2a6e8","sn-1.4.2.0-518ac4e5","prt-1.7.6-bc09669e","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"wcwdth-0.0.2-d961ed67","pkg-name":"wcwidth","pkg-version":"0.0.2","flags":{"cli":false,"split-base":true},"style":"global","pkg-src-sha256":"ffc68736a3bbde3e8157710f29f4a99c0ca593c41194579c54a92c62f6c12ed8","components":{"lib":{"depends":["base-4.11.1.0","containers-0.5.11.0"],"exe-depends":[]}}},{"type":"configured","id":"wrd8-0.1.3-2a862df7","pkg-name":"word8","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src-sha256":"2630934c75728bfbf390c1f0206b225507b354f68d4047b06c018a36823b5d8a","depends":["base-4.11.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"wrp-3.2.25-0192261b","pkg-name":"warp","pkg-version":"3.2.25","flags":{"allow-sendfilefd":true,"network-bytestring":false,"warp-debug":false},"style":"global","pkg-src-sha256":"7e0b8f2c6f156b5969832923e16fbf87cd1ac20678c5c03ce77cb094f44a8566","depends":["base-4.11.1.0","array-0.5.2.0","sync-2.2.1-75ea745c","t-pdt-0.1.4-5d2eb98d","bsb-http-chnkd-0.0.0.4-a28474fb","bytestring-0.10.8.2","cs-nsnstv-1.2.0.11-e002f8d8","containers-0.5.11.0","ghc-prim-0.5.2.0","http-typs-0.12.2-2e8c4f72","prt-1.7.6-bc09669e","http2-1.6.4-fae88873","smpl-sndfl-0.2.27-5c2fdd40","nx-cmpt-0.5.1-741da4a6","w-3.2.1.2-34e4603d","text-1.2.3.1","strmng-cmmns-0.2.1.0-9413753f","vlt-0.3.1.2-c94f2ed6","stm-2.4.5.1","wrd8-0.1.3-2a862df7","hshbl-1.2.7.0-6a719111","http-dt-0.0.8-3467e7f1","ntwrk-2.8.0.0-48ee157f","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"xcptns-0.10.0-193f3948","pkg-name":"exceptions","pkg-version":"0.10.0","flags":{},"style":"global","pkg-src-sha256":"1edd912e5ea5cbda37941b06738597d35214dc247d332b1bfffc82adadfa49d7","depends":["base-4.11.1.0","stm-2.4.5.1","template-haskell-2.13.0.0","transformers-0.5.5.0","trnsfrmrs-cmpt-0.6.2-38621b90","mtl-2.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"zlb-0.6.2-c3b2a6e8","pkg-name":"zlib","pkg-version":"0.6.2","flags":{"non-blocking-ffi":false,"pkg-config":false},"style":"global","pkg-src-sha256":"0dcc7d925769bdbeb323f83b66884101084167501f11d74d21eb9bc515707fed","depends":["base-4.11.1.0","bytestring-0.10.8.2"],"exe-depends":[],"component-name":"lib"}]} \ No newline at end of file diff --git a/dist-newstyle/cache/solver-plan b/dist-newstyle/cache/solver-plan new file mode 100644 index 0000000..7c0290d Binary files /dev/null and b/dist-newstyle/cache/solver-plan differ diff --git a/dist-newstyle/cache/source-hashes b/dist-newstyle/cache/source-hashes new file mode 100644 index 0000000..4fe0f8c Binary files /dev/null and b/dist-newstyle/cache/source-hashes differ diff --git a/dist-newstyle/cache/up-to-date b/dist-newstyle/cache/up-to-date new file mode 100644 index 0000000..0427b47 Binary files /dev/null and b/dist-newstyle/cache/up-to-date differ diff --git a/package.yaml b/package.yaml new file mode 100644 index 0000000..a9d7a16 --- /dev/null +++ b/package.yaml @@ -0,0 +1,81 @@ +name: aggreact +version: '0.1.0.0' +category: Test +author: Yann Esposito +maintainer: yann.esposito@gmail.com +copyright: © 2018 Yann Esposito +github: yogsototh/aggreact +license: ISC +extra-source-files: +- README.md +- stack.yaml +default-extensions: + - OverloadedStrings + - NoImplicitPrelude + - ScopedTypeVariables +ghc-options: +- -Wall +- -Wcompat +- -Wincomplete-uni-patterns +- -Wredundant-constraints +- -Wnoncanonical-monad-instances +- -Werror +- -O2 +dependencies: +- base >=4.8 && <5 +- protolude +library: + source-dirs: src + dependencies: + - containers + - servant + - servant-server + - time + - versioning +executables: + aggreact: + main: Main.hs + source-dirs: src-exe + ghc-options: + - -threaded + - -rtsopts + - -with-rtsopts=-N + dependencies: + - aggreact +tests: + aggreact-doctest: + main: Main.hs + source-dirs: src-doctest + ghc-options: + - -threaded + - -rtsopts + - -with-rtsopts=-N + dependencies: + - doctest >=0.10 + - Glob >=0.7 + - QuickCheck >=2.5 + - aggreact + aggreact-test: + main: Main.hs + source-dirs: src-test + ghc-options: + - -threaded + - -rtsopts + - -with-rtsopts=-N + dependencies: + - tasty >=0.11 + - tasty-hunit >=0.9 + - tasty-smallcheck >=0.8 + - aggreact +benchmarks: + aggreact-benchmark: + main: Main.hs + source-dirs: src-benchmark + ghc-options: + - -threaded + - -rtsopts + - -with-rtsopts=-N + dependencies: + - criterion >=1.1 + - aggreact +stability: alpha (experimental) diff --git a/src-benchmark/Main.hs b/src-benchmark/Main.hs new file mode 100644 index 0000000..7741a36 --- /dev/null +++ b/src-benchmark/Main.hs @@ -0,0 +1,9 @@ +import Protolude + +import Criterion +import Criterion.Main + +import Lib (inc) + +main :: IO () +main = defaultMain [bench "inc 41" (whnf inc (41 :: Int))] diff --git a/src-doctest/Main.hs b/src-doctest/Main.hs new file mode 100644 index 0000000..03d5ae7 --- /dev/null +++ b/src-doctest/Main.hs @@ -0,0 +1,7 @@ +import Protolude + +import System.FilePath.Glob +import Test.DocTest + +main :: IO () +main = glob "src/**/*.hs" >>= doctest diff --git a/src-exe/Main.hs b/src-exe/Main.hs new file mode 100644 index 0000000..2be6be1 --- /dev/null +++ b/src-exe/Main.hs @@ -0,0 +1,6 @@ +import Protolude + +import Aggreact (inc) + +main :: IO () +main = print (inc 41) diff --git a/src-test/Main.hs b/src-test/Main.hs new file mode 100644 index 0000000..34e768b --- /dev/null +++ b/src-test/Main.hs @@ -0,0 +1,40 @@ +import Protolude + +import Test.Tasty +import Test.Tasty.HUnit +import Test.Tasty.SmallCheck + +import Lib (inc) + +main :: IO () +main = defaultMain $ testGroup "all-tests" tests + +tests :: [TestTree] +tests = + [ testGroup "SmallCheck" scTests + , testGroup "Unit tests" huTests + ] + +scTests :: [TestTree] +scTests = + [ testProperty "inc == succ" prop_succ + , testProperty "inc . negate == negate . pred" prop_pred + ] + +huTests :: [TestTree] +huTests = + [ testCase "Increment below TheAnswer" case_inc_below + , testCase "Decrement above TheAnswer" case_dec_above + ] + +prop_succ :: Int -> Bool +prop_succ n = inc n == succ n + +prop_pred :: Int -> Bool +prop_pred n = inc (negate n) == negate (pred n) + +case_inc_below :: Assertion +case_inc_below = inc 41 @?= (42 :: Int) + +case_dec_above :: Assertion +case_dec_above = negate (inc (negate 43)) @?= (42 :: Int) diff --git a/src/Aggreact.hs b/src/Aggreact.hs new file mode 100644 index 0000000..fc33fc3 --- /dev/null +++ b/src/Aggreact.hs @@ -0,0 +1,36 @@ +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE TypeOperators #-} +{-# LANGUAGE Strict #-} + +{- | +Module : Aggreact +Description : Example of a library file. +Copyright : (c) 2018, Yann Esposito +License : ISC +Maintainer : yann.esposito@gmail.com +Stability : experimental +Portability : POSIX + +Main library + +-} +module Aggreact + ( + -- * Exported functions + mainServe + , Conf (..) + ) where + +import Protolude + +import Aggreact.Comments + +import Servant.API + +type CommentAPI = + "comments" :> Capture "stub" Text :> Get '[JSON] Comments + +data Conf = Conf { port :: Int16 } + +mainServe :: Conf -> IO () +mainServe = undefined diff --git a/src/Aggreact/Comments.hs b/src/Aggreact/Comments.hs new file mode 100644 index 0000000..3bc618e --- /dev/null +++ b/src/Aggreact/Comments.hs @@ -0,0 +1,44 @@ +{-# LANGUAGE Strict #-} + +{- | +Module : Aggreact +Description : Example of a library file. +Copyright : (c) 2018, Yann Esposito +License : ISC +Maintainer : yann.esposito@gmail.com +Stability : experimental +Portability : POSIX + +Main library + +-} +module Aggreact.Comments + ( + -- * Types + ID (..) + , Comment (..) + , Comments + ) where + +import Protolude + +import Data.Time (UTCTime) +import Data.Tree (Tree (..)) + +newtype ID = ID Int64 deriving (Eq,Ord) + +type Comments = Tree Comment + +data Comment = + Comment + { id :: ID + , parent :: ID + , created :: UTCTime + , content :: Text + , userid :: Text + } + +data Root = + Root + { stub :: Text + } deriving (Show) diff --git a/src/Store.hs b/src/Store.hs new file mode 100644 index 0000000..4555d09 --- /dev/null +++ b/src/Store.hs @@ -0,0 +1,38 @@ +{-# LANGUAGE NoImplicitPrelude #-} +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE TypeOperators #-} +{-# LANGUAGE Strict #-} + +{- | +Module : Aggreact +Description : Example of a library file. +Copyright : (c) 2018, Yann Esposito +License : ISC +Maintainer : yann.esposito@gmail.com +Stability : experimental +Portability : POSIX + +Main library + +-} +module Store + ( + -- * Exported Functions + inc + ) where + +import Protolude + +import qualified Versioning.Base as V +import qualified Versioning.JSON as VJSON + +load :: FilePath -> v -> IO (Either Text (v a)) +load dbFile v = do + dbFileExists <- doesFileExist dbFile + db <- if dbFileExists + then do + fileContent <- BS.readFile dbFile + VJSON.fromJsonAnyVersionEither fileContent `fmap` \x -> V.upgrade latestVersion x + else + return (dbFile <> " doesn't exists") + diff --git a/stack.yaml b/stack.yaml new file mode 100644 index 0000000..e900377 --- /dev/null +++ b/stack.yaml @@ -0,0 +1,66 @@ +# This file was automatically generated by 'stack init' +# +# Some commonly used options have been documented as comments in this file. +# For advanced use and comprehensive documentation of the format, please see: +# https://docs.haskellstack.org/en/stable/yaml_configuration/ + +# Resolver to choose a 'specific' stackage snapshot or a compiler version. +# A snapshot resolver dictates the compiler version and the set of packages +# to be used for project dependencies. For example: +# +# resolver: lts-3.5 +# resolver: nightly-2015-09-21 +# resolver: ghc-7.10.2 +# resolver: ghcjs-0.1.0_ghc-7.10.2 +# +# The location of a snapshot can be provided as a file or url. Stack assumes +# a snapshot provided as a file might change, whereas a url resource does not. +# +# resolver: ./custom-snapshot.yaml +# resolver: https://example.com/snapshots/2018-01-01.yaml +resolver: lts-12.20 + +# User packages to be built. +# Various formats can be used as shown in the example below. +# +# packages: +# - some-directory +# - https://example.com/foo/bar/baz-0.0.2.tar.gz +# - location: +# git: https://github.com/commercialhaskell/stack.git +# commit: e7b331f14bcffb8367cd58fbfc8b40ec7642100a +# - location: https://github.com/commercialhaskell/stack/commit/e7b331f14bcffb8367cd58fbfc8b40ec7642100a +# subdirs: +# - auto-update +# - wai +packages: +- . +# Dependency packages to be pulled from upstream that are not in the resolver +# using the same syntax as the packages field. +# (e.g., acme-missiles-0.3) +extra-deps: +- versioning-0.3.0.1 + +# Override default flag values for local packages and extra-deps +# flags: {} + +# Extra package databases containing global packages +# extra-package-dbs: [] + +# Control whether we use the GHC we find on the path +# system-ghc: true +# +# Require a specific version of stack, using version ranges +# require-stack-version: -any # Default +# require-stack-version: ">=1.7" +# +# Override the architecture used by stack, especially useful on Windows +# arch: i386 +# arch: x86_64 +# +# Extra directories used by stack for building +# extra-include-dirs: [/path/to/dir] +# extra-lib-dirs: [/path/to/dir] +# +# Allow a newer minor version of GHC than the snapshot specifies +# compiler-check: newer-minor