systemd-socket-activation-1.1.0.1: src/SocketActivation/IO.hs
module SocketActivation.IO where
import Essentials
import Control.Monad.IO.Class (MonadIO)
import Control.Monad.Trans.Except (ExceptT (..))
import Data.Either (Either (Left))
import System.IO (IO)
import SocketActivation.Concepts (Error)
newtype IO' a = IO' { run :: IO (Either Error a) }
deriving (Functor, Applicative, Monad, MonadIO) via ExceptT Error IO
throwError :: Error -> IO' a
throwError = IO' . pure . Left