packages feed

fx-0.11.1.1: fx.cabal

cabal-version: 3.4
name: fx
version: 0.11.1.1
synopsis: Modular effectful computations with explicit environments and errors
description:
  A lightweight library for writing effectful computations with explicit
  environment dependencies and error handling. Provides value-based abstractions
  for effects without deep monad transformer stacks.

  Key features: explicit env/err types, composable and safe resource management and
  concurrency, and compatibility with Ports and Adapters architecture.

category: Effects, Resources
homepage: https://github.com/nikita-volkov/fx
bug-reports: https://github.com/nikita-volkov/fx/issues
author: Nikita Volkov <nikita.y.volkov@mail.ru>
maintainer: Nikita Volkov <nikita.y.volkov@mail.ru>
copyright: (c) 2019 Nikita Volkov
license: MIT
license-file: LICENSE

source-repository head
  type: git
  location: https://github.com/nikita-volkov/fx

common base
  default-language: Haskell2010
  default-extensions:
    BangPatterns
    BlockArguments
    ConstraintKinds
    DataKinds
    DefaultSignatures
    DeriveDataTypeable
    DeriveFoldable
    DeriveFunctor
    DeriveGeneric
    DeriveTraversable
    DerivingStrategies
    DerivingVia
    EmptyDataDecls
    FlexibleContexts
    FlexibleInstances
    FunctionalDependencies
    GADTs
    GeneralizedNewtypeDeriving
    InstanceSigs
    LambdaCase
    LiberalTypeSynonyms
    MagicHash
    MultiParamTypeClasses
    MultiWayIf
    NoImplicitPrelude
    NoMonomorphismRestriction
    OverloadedStrings
    ParallelListComp
    PatternGuards
    QuasiQuotes
    RankNTypes
    RecordWildCards
    ScopedTypeVariables
    StandaloneDeriving
    TemplateHaskell
    TupleSections
    TypeApplications
    TypeFamilies
    TypeOperators
    UnboxedTuples

common executable
  import: base
  ghc-options:
    -O2
    -threaded
    -with-rtsopts=-N
    -rtsopts
    -funbox-strict-fields

common test
  import: base
  ghc-options:
    -threaded
    -with-rtsopts=-N

library
  import: base
  hs-source-dirs: library
  exposed-modules:
    Fx

  other-modules:
    Fx.Conc
    Fx.Future
    Fx.Fx
    Fx.Prelude
    Fx.Scope
    Fx.Strings

  build-depends:
    base >=4.9 && <5,
    monad-parallel >=0.8 && <0.9,
    mtl >=2.2 && <3,
    stm >=2.5 && <3,
    text >=1 && <3,
    transformers >=0.5 && <0.8,

test-suite test
  import: test
  type: exitcode-stdio-1.0
  hs-source-dirs: test
  main-is: Main.hs
  build-tool-depends:
    hspec-discover:hspec-discover >=2 && <3

  build-depends:
    fx,
    hspec >=2.11 && <3,
    rerebase <2,