packages feed

deriving-trans-0.5.2.0: deriving-trans.cabal

cabal-version: 3.0
name: deriving-trans
version: 0.5.2.0
synopsis: Derive instances for monad transformer stacks
description:
  Implementing instances for monad transformer stacks can be tedious.
  <https://hackage.haskell.org/package/mtl mtl> defines each instance for each
  transfomer, but this can be avoided.

  'Elevator' let's you access instances of the underlying monad of a transformer.
  Composing transformers with 'ComposeT' brings instances into scope during the
  initialization of a transformer stack.

  'Elevator' can be used with DerivingVia to select a specific transformer to
  derive instances for a transformer stack.
  'ComposeT' composes transformers and accumulates instances in a transformer
  stack.
license: BSD-3-Clause
license-file: LICENSE
author: Felix Springer
maintainer: felixspringer149@gmail.com
homepage: https://github.com/jumper149/deriving-trans
bug-reports: https://github.com/jumper149/deriving-trans/issues
category: Control
build-type: Simple
extra-source-files: CHANGELOG.md

flag exceptions
  default: True
  description:
    Implement instances for 'MonadThrow' and 'MonadCatch'.

flag mtl
  default: True
  description:
    Implement instances for mtl's type classes.

flag primitive
  default: True
  description:
    Implement instances for `PrimMonad`.

flag unliftio
  default: True
  description:
    Implement instances for 'MonadUnliftIO'.

library
  exposed-modules:
    Control.Monad.Trans.Compose
    Control.Monad.Trans.Compose.Infix
    Control.Monad.Trans.Compose.Stack
    Control.Monad.Trans.Compose.Transparent
    Control.Monad.Trans.Elevator
  --other-modules:
  build-depends:
    , base < 5
    , monad-control
    , monad-control-identity
    , transformers
    , transformers-base
  if flag(exceptions)
    build-depends:
      , exceptions
  if flag(mtl)
    build-depends:
      , mtl
  if flag(primitive)
    build-depends:
      , primitive
  if flag(unliftio)
    build-depends:
      , unliftio-core
  hs-source-dirs: src
  default-language: Haskell2010
  default-extensions:
    BangPatterns
    ConstraintKinds
    DataKinds
    DeriveFoldable
    DeriveFunctor
    DeriveGeneric
    DeriveTraversable
    DerivingStrategies
    DerivingVia
    EmptyDataDeriving
    FlexibleContexts
    FlexibleInstances
    FunctionalDependencies
    GeneralizedNewtypeDeriving
    MultiParamTypeClasses
    NamedFieldPuns
    OverloadedStrings
    RankNTypes
    StandaloneDeriving
    StandaloneKindSignatures
    TupleSections
    TypeApplications
    TypeFamilies
    TypeOperators
  ghc-options:
    -Wall
    -Wunused-packages