{-# LANGUAGE CPP #-}
module Imports (module Imports) where

import Prelude as Imports
import Control.Arrow as Imports
import Control.Monad as Imports
import Data.Maybe as Imports
import Data.Functor as Imports
#if MIN_VERSION_base(4,19,0)
  hiding (unzip)
#endif
import Data.IORef as Imports (IORef, newIORef, atomicWriteIORef, atomicModifyIORef')
import Data.ByteString as Imports (ByteString)
import Data.ByteString.Lazy as Imports (LazyByteString)

atomicReadIORef :: IORef a -> IO a
atomicReadIORef :: forall a. IORef a -> IO a
atomicReadIORef IORef a
ref = IORef a -> (a -> (a, a)) -> IO a
forall a b. IORef a -> (a -> (a, b)) -> IO b
atomicModifyIORef' IORef a
ref (a -> a
forall a. a -> a
id (a -> a) -> (a -> a) -> a -> (a, a)
forall b c c'. (b -> c) -> (b -> c') -> b -> (c, c')
forall (a :: * -> * -> *) b c c'.
Arrow a =>
a b c -> a b c' -> a b (c, c')
&&& a -> a
forall a. a -> a
id)

pass :: Applicative m => m ()
pass :: forall (m :: * -> *). Applicative m => m ()
pass = () -> m ()
forall a. a -> m a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ()