<commit_before>homepage: https://github.com/roman/Haskell-componentm#readme
changelog-type: markdown
hash: 23da08b9b935ce99daffc7956a20dc7c9b54a159b704b1ac2605be1282f6ce96
test-bench-deps:
  rio: ! '>=0.0.3'
  base: ! '>=4.8 && <5'
  teardown: ! '>=0.3'
  containers: ! '>=0.5.7'
  componentm: -any
  tasty-hunit: ! '>=0.9.2'
  prettyprinter: ! '>=1.1'
  tasty: ! '>=0.11.2'
maintainer: <EMAIL>
synopsis: Monad for allocation and cleanup of application resources
changelog: ! "Change log\n==========\n\nteardown uses [Semantic Versioning][1].\nThe
  change log is available [on GitHub][2].\n\n[1]: http://semver.org/spec/v2.0.0.html\n[2]:
  https://github.com/roman/Haskell-teardown/libraries/teardown/CHANGELOG.md\n\n##
  v0.0.0.1\n\n* Relax lower version bounds for `prettyprinter`, `containers`, `exceptions`,\n
  \ `deepseq`, `tasty`, `tasty-hunit` dependencies\n\n## v0.0.0.0\n\n* Add `ComponentM`
  type, which supports `Monad` and `Applicative`\n* Add `buildComponent` to build
  components in IO with attached cleanup functions\n* Add `buildComponent_` to build
  components in IO without cleanup functions\n* Add `withComponentM` to run an application\n"
basic-deps:
  exceptions: ! '>=0.8.3'
  rio: ! '>=0.0.3'
  base: ! '>=4.8 && <5'
  teardown: ! '>=0.3'
  containers: ! '>=0.5.7'
  prettyprinter: ! '>=1.1'
  deepseq: ! '>=1.4.2'
all-versions:
- '0.0.0.0'
- '0.0.0.1'
author: <NAME>
latest: '0.0.0.1'
description-type: markdown
description: ! "# componentm\n\n> An utility library to build multiple components
  (config, db, cache, logging,\n> etc.) of an application in a traceable, reliable
  and efficient fashion\n\n## Table Of Contents\n\n* [Installation](#installation)\n*
  [Purpose](#purpose)\n * [Differences with ResourceT](#differences-with-resourcet)\n*
  [Development](#development)\n* [Documentation](#documentation)\n* [License](#license)\n\n##
  Installation\n\n[![Hackage](https://img.shields.io/hackage/v/componentm.svg)](https://img.shields.io/hackage/v/componentm.svg)\n[![Stackage
  LTS](http://stackage.org/package/componentm/badge/lts)](http://stackage.org/lts/package/componentm)\n[![Stackage
  Nightly](http://stackage.org/package/componentm/badge/nightly)](http://stackage.org/nightly/package/componentm)\n\nMake
  sure you include the following entry on your [cabal file's\ndependecies](https://www.haskell.org/cabal/users-guide/developing-packages.html#build-information)\nsection.\n\n```cabal\nlibrary:\n
  \ build-depends: componentm\n```\n\nOr on your `package.yaml`\n\n```\ndependencies:\n-
  componentm\n```\n\n## Purpose\n\nThis library is intended to be a high level API
  for the\n[teardown](http://hackage.haskell.org/package/teardown) library; it provides
  a\nhigh level monad interface that helps composition of resource\nallocation/teardown
  in a safe and reliable way.\n\n### Differences with ResourceT\n\nThe [resourcet](http://hackage.haskell.org/package/resourcet)
  library provides a\nmonad transformer that keeps track of allocated resources at
  runtime making sure\nthat if an exception happens or the block of execution finishes,
  the resources\nallocated are cleaned up.\n\nThe [componentm](http://hackage.haskell.org/package/componentm)
  library on the\nother hand, does not run as a Monad transformer, but rather it gets
  called at\nthe very beginning of your application, it builds the _environment_ needed
  by\nyour application environment to work (e.g. [Layer\n1](http://www.parsonsmatt.org/2018/03/22/three_layer_haskell_cake.html)),
  and\nprovides helper _bracket style_ functions that cleanup all allocated resources\nin
  the right order when your application terminates either normally or with an\nerror.\n\n##
  Development\n[![Build Status](https://travis-ci.org/roman/Haskell-componentm.svg?branch=master)](https://travis-ci.org/roman/Haskell-componentm)\n[![Hackage
  Dependencies](https://img.shields.io/hackage-deps/v/componentm.svg)](http://packdeps.haskellers.com/feed?needle=componentm)\n[![Github](https://img.shields.io/github/commits-since/roman/haskell-componentm/v0.0.0.1.svg)](https://img.shields.io/github/commits-since/roman/haskell-componentm/v0.0.0.1.svg)\n\nThis
  library is intended to be minimal, providing a few functions that work\nreliably
  among many different kind of projects. If you want to contribute, Pull\nRequest
  are very welcome! Please try to follow these simple rules:\n\n* Please create a
  topic branch for every separate change you make.\n* Update the README.md file if
  necessary.\n* Please _do not_ change the version number on your Pull Request.\n\n###
  Open Commit Bit\n\nThis project has an open commit bit policy: Anyone with an accepted
  pull request\ngets added as a repository collaborator. Please try to follow these
  simple\nrules:\n\n* Commit directly onto the master branch only for typos, improvements
  to the\n  README and documentation.\n* Create a feature branch and open a pull-request
  early for any new features to\n  get feedback.\n* Make sure you adhere to the general
  pull request rules above.\n\n## License\n\nCopyright (c) 2017-2018 <NAME>\n\nPermission
  to use, copy, modify, and/or distribute this software for any\npurpose with or without
  fee is hereby granted, provided that the above\ncopyright notice and this permission
  notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR
  DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
  OF\nMERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\nANY
  SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\nWHATSOEVER RESULTING
  FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\nACTION OF CONTRACT, NEGLIGENCE
  OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE
  OF THIS SOFTWARE.\n"
license-name: MIT
<commit_msg>Update from Hackage at 2018-05-20T21:52:50Z<commit_after>homepage: https://github.com/roman/Haskell-componentm#readme
changelog-type: markdown
hash: d15df070056810a512183021d95af6fc99a4ff96a26352de4fe46b92ebc84728
test-bench-deps:
  rio: ! '>=0.0.3'
  base: ! '>=4.8 && <5'
  teardown: ! '>=0.3'
  containers: ! '>=0.5.7'
  componentm: -any
  tasty-hunit: ! '>=0.9.2'
  pretty-show: ! '>=1.6.13'
  prettyprinter: ! '>=1.1'
  tasty: ! '>=0.11.2'
maintainer: <EMAIL>
synopsis: Monad for allocation and cleanup of application resources
changelog: ! "Change log\n==========\n\nteardown uses [Semantic Versioning][1].\nThe
  change log is available [on GitHub][2].\n\n[1]: http://semver.org/spec/v2.0.0.html\n[2]:
  https://github.com/roman/Haskell-teardown/libraries/teardown/CHANGELOG.md\n\n##
  v0.0.0.2\n\n* Add `pretty-show` dependency\n* Improve upon pretty instances of types
  from this library\n* Expose internal modules for flexibility\n\n## v0.0.0.1\n\n*
  Relax lower version bounds for `prettyprinter`, `containers`, `exceptions`,\n  `deepseq`,
  `tasty`, `tasty-hunit` dependencies\n\n## v0.0.0.0\n\n* Add `ComponentM` type, which
  supports `Monad` and `Applicative`\n* Add `buildComponent` to build components in
  IO with attached cleanup functions\n* Add `buildComponent_` to build components
  in IO without cleanup functions\n* Add `withComponentM` to run an application\n"
basic-deps:
  exceptions: ! '>=0.8.3'
  rio: ! '>=0.0.3'
  base: ! '>=4.8 && <5'
  teardown: ! '>=0.3'
  containers: ! '>=0.5.7'
  pretty-show: ! '>=1.6.13'
  prettyprinter: ! '>=1.1'
  deepseq: ! '>=1.4.2'
all-versions:
- '0.0.0.0'
- '0.0.0.1'
- '0.0.0.2'
author: <NAME>
latest: '0.0.0.2'
description-type: markdown
description: ! "# componentm\n\n> An utility library to build multiple components
  (config, db, cache, logging,\n> etc.) of an application in a traceable, reliable
  and efficient fashion\n\n## Table Of Contents\n\n* [Installation](#installation)\n*
  [Purpose](#purpose)\n * [Differences with ResourceT](#differences-with-resourcet)\n*
  [Development](#development)\n* [Documentation](#documentation)\n* [License](#license)\n\n##
  Installation\n\n[![Hackage](https://img.shields.io/hackage/v/componentm.svg)](https://img.shields.io/hackage/v/componentm.svg)\n[![Stackage
  LTS](http://stackage.org/package/componentm/badge/lts)](http://stackage.org/lts/package/componentm)\n[![Stackage
  Nightly](http://stackage.org/package/componentm/badge/nightly)](http://stackage.org/nightly/package/componentm)\n\nMake
  sure you include the following entry on your [cabal file's\ndependecies](https://www.haskell.org/cabal/users-guide/developing-packages.html#build-information)\nsection.\n\n```cabal\nlibrary:\n
  \ build-depends: componentm\n```\n\nOr on your `package.yaml`\n\n```\ndependencies:\n-
  componentm\n```\n\n## Purpose\n\nThis library is intended to be a high level API
  for the\n[teardown](http://hackage.haskell.org/package/teardown) library; it provides
  a\nhigh level monad interface that helps composition of resource\nallocation/teardown
  in a safe and reliable way.\n\n### Differences with ResourceT\n\nThe [resourcet](http://hackage.haskell.org/package/resourcet)
  library provides a\nmonad transformer that keeps track of allocated resources at
  runtime making sure\nthat if an exception happens or the block of execution finishes,
  the resources\nallocated are cleaned up.\n\nThe [componentm](http://hackage.haskell.org/package/componentm)
  library on the\nother hand, does not run as a Monad transformer, but rather it gets
  called at\nthe very beginning of your application, it builds the _environment_ needed
  by\nyour application environment to work (e.g. [Layer\n1](http://www.parsonsmatt.org/2018/03/22/three_layer_haskell_cake.html)),
  and\nprovides helper _bracket style_ functions that cleanup all allocated resources\nin
  the right order when your application terminates either normally or with an\nerror.\n\n##
  Development\n[![Build Status](https://travis-ci.org/roman/Haskell-componentm.svg?branch=master)](https://travis-ci.org/roman/Haskell-componentm)\n[![Hackage
  Dependencies](https://img.shields.io/hackage-deps/v/componentm.svg)](http://packdeps.haskellers.com/feed?needle=componentm)\n[![Github](https://img.shields.io/github/commits-since/roman/haskell-componentm/v0.0.0.2.svg)](https://img.shields.io/github/commits-since/roman/haskell-componentm/v0.0.0.2.svg)\n\nThis
  library is intended to be minimal, providing a few functions that work\nreliably
  among many different kind of projects. If you want to contribute, Pull\nRequest
  are very welcome! Please try to follow these simple rules:\n\n* Please create a
  topic branch for every separate change you make.\n* Update the README.md file if
  necessary.\n* Please _do not_ change the version number on your Pull Request.\n\n###
  Open Commit Bit\n\nThis project has an open commit bit policy: Anyone with an accepted
  pull request\ngets added as a repository collaborator. Please try to follow these
  simple\nrules:\n\n* Commit directly onto the master branch only for typos, improvements
  to the\n  README and documentation.\n* Create a feature branch and open a pull-request
  early for any new features to\n  get feedback.\n* Make sure you adhere to the general
  pull request rules above.\n\n## License\n\nCopyright (c) 2017-2018 <NAME>\n\nPermission
  to use, copy, modify, and/or distribute this software for any\npurpose with or without
  fee is hereby granted, provided that the above\ncopyright notice and this permission
  notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR
  DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
  OF\nMERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\nANY
  SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\nWHATSOEVER RESULTING
  FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\nACTION OF CONTRACT, NEGLIGENCE
  OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE
  OF THIS SOFTWARE.\n"
license-name: MIT

{'fraction_non_alphanumeric': 0.13229766975695315, 'fraction_numerical': 0.024471728054789945, 'mean_word_length': 4.497704315886134, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 43, 'https://': 20, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 16, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7362210', 'n_tokens_mistral': 4238, 'n_tokens_neox': 3988, 'n_words': 1103}