    ----------------------------------------------------------------------------
    -- |
    -- Module      :  Control.Concurrent.Counter
    -- Copyright   :  (c) Sergey Vinokurov 2022
    -- License     :  Apache-2.0 (see LICENSE)
    -- Maintainer  :  serg.foo@gmail.com
    --
    -- Work with lifted 'Counter' values in the 'IO' monad. Please see other
    -- modules in this package for 'Control.Monad.ST.ST' monad and for unlifted values.
    ----------------------------------------------------------------------------

    module Control.Concurrent.Counter
      ( Counter

      -- * Create
      , new

      -- * Read/write
      , get
      , set
      , cas

      -- * Arithmetic operations
      , add
      , sub

      -- * Bitwise operations
      , and
      , or
      , xor
      , nand
      ) where

    import Prelude hiding (and, or)

    import Control.Concurrent.Counter.Lifted.IO