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' { forall a. IO' a -> IO (Either Error a) run :: IO (Either Error a) } deriving (forall a b. a -> IO' b -> IO' a forall a b. (a -> b) -> IO' a -> IO' b forall (f :: * -> *). (forall a b. (a -> b) -> f a -> f b) -> (forall a b. a -> f b -> f a) -> Functor f <$ :: forall a b. a -> IO' b -> IO' a $c<$ :: forall a b. a -> IO' b -> IO' a fmap :: forall a b. (a -> b) -> IO' a -> IO' b $cfmap :: forall a b. (a -> b) -> IO' a -> IO' b Functor, Functor IO' forall a. a -> IO' a forall a b. IO' a -> IO' b -> IO' a forall a b. IO' a -> IO' b -> IO' b forall a b. IO' (a -> b) -> IO' a -> IO' b forall a b c. (a -> b -> c) -> IO' a -> IO' b -> IO' c forall (f :: * -> *). Functor f -> (forall a. a -> f a) -> (forall a b. f (a -> b) -> f a -> f b) -> (forall a b c. (a -> b -> c) -> f a -> f b -> f c) -> (forall a b. f a -> f b -> f b) -> (forall a b. f a -> f b -> f a) -> Applicative f <* :: forall a b. IO' a -> IO' b -> IO' a $c<* :: forall a b. IO' a -> IO' b -> IO' a *> :: forall a b. IO' a -> IO' b -> IO' b $c*> :: forall a b. IO' a -> IO' b -> IO' b liftA2 :: forall a b c. (a -> b -> c) -> IO' a -> IO' b -> IO' c $cliftA2 :: forall a b c. (a -> b -> c) -> IO' a -> IO' b -> IO' c <*> :: forall a b. IO' (a -> b) -> IO' a -> IO' b $c<*> :: forall a b. IO' (a -> b) -> IO' a -> IO' b pure :: forall a. a -> IO' a $cpure :: forall a. a -> IO' a Applicative, Applicative IO' forall a. a -> IO' a forall a b. IO' a -> IO' b -> IO' b forall a b. IO' a -> (a -> IO' b) -> IO' b forall (m :: * -> *). Applicative m -> (forall a b. m a -> (a -> m b) -> m b) -> (forall a b. m a -> m b -> m b) -> (forall a. a -> m a) -> Monad m return :: forall a. a -> IO' a $creturn :: forall a. a -> IO' a >> :: forall a b. IO' a -> IO' b -> IO' b $c>> :: forall a b. IO' a -> IO' b -> IO' b >>= :: forall a b. IO' a -> (a -> IO' b) -> IO' b $c>>= :: forall a b. IO' a -> (a -> IO' b) -> IO' b Monad, Monad IO' forall a. IO a -> IO' a forall (m :: * -> *). Monad m -> (forall a. IO a -> m a) -> MonadIO m liftIO :: forall a. IO a -> IO' a $cliftIO :: forall a. IO a -> IO' a MonadIO) via ExceptT Error IO throwError :: Error -> IO' a throwError :: forall a. Error -> IO' a throwError = forall a. IO (Either Error a) -> IO' a IO' forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k). Category cat => cat b c -> cat a b -> cat a c . forall (f :: * -> *) a. Applicative f => a -> f a pure forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k). Category cat => cat b c -> cat a b -> cat a c . forall a b. a -> Either a b Left