packages feed

io-classes-1.3.0.0: io-classes.cabal

cabal-version:       3.0
name:                io-classes
version:             1.3.0.0
synopsis:            Type classes for concurrency with STM, ST and timing
description:
  IO Monad class hierarchy compatible with
  [io-sim](https://hackage.haskell.org/package/io-sim), 'base', 'async',
  'stm', 'exceptions' & 'time' packages.
license:             Apache-2.0
license-files:       LICENSE NOTICE
copyright:           2019-2023 Input Output Global Inc (IOG)
author:              Alexander Vieth, Duncan Coutts, Marcin Szamotulski, Thomas Winant
maintainer:          Duncan Coutts duncan@well-typed.com, Marcin Szamotulski coot@coot.me
category:            Control
build-type:          Simple
extra-doc-files:     CHANGELOG.md README.md
bug-reports:         https://github.com/input-output-hk/io-sim/issues
tested-with:         GHC == { 8.10, 9.2, 9.4, 9.6, 9.8 }

source-repository head
  type:     git
  location: https://github.com/input-output-hk/io-sim
  subdir:   io-classes

flag asserts
  description: Enable assertions
  manual:      False
  default:     False

common warnings
    ghc-options: -Wall
                 -Wcompat
                 -Wincomplete-uni-patterns
                 -Wincomplete-record-updates
                 -Wpartial-fields
                 -Widentities
                 -Wunused-packages
                 -Wno-redundant-constraints
                 -Wno-unticked-promoted-constructors

library
  import:              warnings
  hs-source-dirs:      src

  -- At this experiment/prototype stage everything is exposed.
  -- This has to be tidied up once the design becomes clear.
  exposed-modules:     Control.Concurrent.Class.MonadMVar
                       Control.Concurrent.Class.MonadSTM
                       Control.Concurrent.Class.MonadSTM.TArray
                       Control.Concurrent.Class.MonadSTM.TBQueue
                       Control.Concurrent.Class.MonadSTM.TChan
                       Control.Concurrent.Class.MonadSTM.TMVar
                       Control.Concurrent.Class.MonadSTM.TQueue
                       Control.Concurrent.Class.MonadSTM.TSem
                       Control.Concurrent.Class.MonadSTM.TVar
                       Control.Monad.Class.MonadAsync
                       Control.Monad.Class.MonadEventlog
                       Control.Monad.Class.MonadFork
                       Control.Monad.Class.MonadMVar
                       Control.Monad.Class.MonadSay
                       Control.Monad.Class.MonadST
                       Control.Monad.Class.MonadSTM
                       Control.Monad.Class.MonadSTM.Internal
                       Control.Monad.Class.MonadThrow
                       Control.Monad.Class.MonadTime
                       Control.Monad.Class.MonadTimer
                       Control.Monad.Class.MonadTest
  default-language:    Haskell2010
  other-extensions:    CPP
                       DataKinds
                       DefaultSignatures
                       DeriveFunctor
                       DeriveGeneric
                       DerivingStrategies
                       ExistentialQuantification
                       ExplicitNamespaces
                       FlexibleContexts
                       FlexibleInstances
                       FunctionalDependencies
                       GADTs
                       GeneralisedNewtypeDeriving
                       MultiParamTypeClasses
                       NamedFieldPuns
                       QuantifiedConstraints
                       RankNTypes
                       ScopedTypeVariables
                       StandaloneDeriving
                       TypeFamilies
                       TypeFamilyDependencies
                       TypeOperators
                       UndecidableInstances
  build-depends:       base  >=4.9 && <4.20,
                       array,
                       async >=2.1,
                       bytestring,
                       mtl   >=2.2 && <2.4,
                       stm   >=2.5 && <2.6,
                       time  >=1.9.1 && <1.13

  if flag(asserts)
    ghc-options: -fno-ignore-asserts