packages feed

monad-io-adapter-0.1.0.0: package.yaml

name: monad-io-adapter
version: 0.1.0.0
category: Control
synopsis: Adapters between MonadIO and MonadBase IO.
description: |
  This package provides utilities for converting between computations
  parameterized via two different typeclasses 'MonadIO' and 'MonadBase', both of
  which can be used to abstract over monad transformer stacks with 'IO' at the
  base. Unfortunately, both classes are frequently used in the Haskell
  ecosystem, since they have minor differences.

  Due to these typeclasses being unrelated, it’s not entirely uncommon to end up
  with type signatures like @('MonadIO' m, 'MonadBaseControl' 'IO' m) => ...@,
  which are a little silly, since @'MonadBaseControl' 'IO'@ really includes all
  the power of 'MonadIO'.

  To help alleviate this problem, this package provides a set of utilities for
  converting between the two constraints in situations where possible.

copyright: 2017 CJ Affiliate by Conversant
license: ISC
author: Alexis King <lexi.lambda@gmail.com>
maintainer: Alexis King <lexi.lambda@gmail.com>
github: cjdev/monad-io-adapter

extra-source-files:
- CHANGELOG.md
- package.yaml
- README.md
- stack.yaml

ghc-options: -Wall
default-extensions:
- FlexibleContexts
- FlexibleInstances
- FunctionalDependencies
- GADTs
- GeneralizedNewtypeDeriving
- KindSignatures
- LambdaCase
- MultiParamTypeClasses
- RankNTypes
- ScopedTypeVariables
- StandaloneDeriving
- TupleSections
- TypeApplications
- TypeOperators

library:
  dependencies:
  - base >= 4.9 && < 5
  - exceptions >= 0.6 && < 1
  - monad-control >= 1 && < 2
  - monad-logger
  - mtl
  - transformers
  - transformers-base
  source-dirs: src

tests:
  monad-io-adapter-test-suite:
    dependencies:
    - base
    - hspec
    - monad-io-adapter
    - transformers-base
    ghc-options:
    - -rtsopts
    - -threaded
    - -with-rtsopts=-N
    main: Main.hs
    source-dirs: test