packages feed

deriving-trans-0.5.1.0: deriving-trans.cabal

cabal-version:       3.0
name:                deriving-trans
version:             0.5.1.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 'Control.Monad.Catch.MonadThrow' and 'Control.Monad.Catch.MonadCatch'.

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

flag unliftio
  default: True
  description:
    Implement instances for 'Control.Monad.IO.Unlift.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(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
    TypeApplications
    TypeFamilies
    TypeOperators
  ghc-options:
    -Wall
    -Wunused-packages