packages feed

deriving-trans-0.7.0.0: deriving-trans.cabal

cabal-version: 3.0
name: deriving-trans
version: 0.7.0.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 random
  default: True
  description:
    Implement instances for random's type classes.

flag resourcet
  default: True
  description:
    Implement instances for `MonadResource`.

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
  build-depends:
    , base >= 4.16.1.0 && < 5
    , monad-control
    , monad-control-identity
    , transformers >= 0.6
    , transformers-base
  if flag(exceptions)
    build-depends:
      , exceptions >= 0.10.5
  if flag(mtl)
    other-modules:
      Control.Monad.Accum.OrphanInstances
      Control.Monad.Select.OrphanInstances
    build-depends:
      , mtl >= 2.3
  if flag(primitive)
    build-depends:
      , primitive
  if flag(random)
    build-depends:
      , random >= 1.2
  if flag(resourcet)
    build-depends:
      , resourcet >= 1.2
  if flag(unliftio)
    build-depends:
      , unliftio-core
  hs-source-dirs: src
  default-language: GHC2021
  default-extensions:
    DataKinds
    DerivingStrategies
    DerivingVia
    FunctionalDependencies
    OverloadedStrings
    TypeFamilies
    UnboxedTuples
  ghc-options:
    -Weverything
    -Wno-implicit-prelude
    -Wno-missing-kind-signatures
    -Wno-missing-export-lists
    -Wno-missing-import-lists
    -Wno-missing-safe-haskell-mode
    -Wno-unsafe