{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE UndecidableInstances #-}
module Navi.NaviT
( NaviT (..),
runNaviT,
)
where
import Effects.Logger.Namespace
( defaultLogFormatter,
formatLog,
)
import Effects.Process.Typed qualified as TP
import Effects.Time (MonadTime)
import Navi.Config.Types (NoteSystem (AppleScript, DBus, NotifySend))
import Navi.Effects.MonadNotify (MonadNotify (sendNote))
import Navi.Effects.MonadSystemInfo (MonadSystemInfo)
import Navi.Env.AppleScript (naviToAppleScript)
import Navi.Env.Core
( Env,
HasLogEnv (getLogEnv),
)
import Navi.Env.DBus (MonadDBus)
import Navi.Env.DBus qualified as DBus
import Navi.Env.NotifySend (naviToNotifySend)
import Navi.Prelude
type NaviT :: Type -> (Type -> Type) -> Type -> Type
newtype NaviT e m a = MkNaviT (ReaderT e m a)
deriving
( (forall a b. (a -> b) -> NaviT e m a -> NaviT e m b)
-> (forall a b. a -> NaviT e m b -> NaviT e m a)
-> Functor (NaviT e m)
forall a b. a -> NaviT e m b -> NaviT e m a
forall a b. (a -> b) -> NaviT e m a -> NaviT e m b
forall e (m :: Type -> Type) a b.
Functor m =>
a -> NaviT e m b -> NaviT e m a
forall e (m :: Type -> Type) a b.
Functor m =>
(a -> b) -> NaviT e m a -> NaviT e m b
forall (f :: Type -> Type).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
$cfmap :: forall e (m :: Type -> Type) a b.
Functor m =>
(a -> b) -> NaviT e m a -> NaviT e m b
fmap :: forall a b. (a -> b) -> NaviT e m a -> NaviT e m b
$c<$ :: forall e (m :: Type -> Type) a b.
Functor m =>
a -> NaviT e m b -> NaviT e m a
<$ :: forall a b. a -> NaviT e m b -> NaviT e m a
Functor,
Functor (NaviT e m)
Functor (NaviT e m) =>
(forall a. a -> NaviT e m a)
-> (forall a b. NaviT e m (a -> b) -> NaviT e m a -> NaviT e m b)
-> (forall a b c.
(a -> b -> c) -> NaviT e m a -> NaviT e m b -> NaviT e m c)
-> (forall a b. NaviT e m a -> NaviT e m b -> NaviT e m b)
-> (forall a b. NaviT e m a -> NaviT e m b -> NaviT e m a)
-> Applicative (NaviT e m)
forall a. a -> NaviT e m a
forall a b. NaviT e m a -> NaviT e m b -> NaviT e m a
forall a b. NaviT e m a -> NaviT e m b -> NaviT e m b
forall a b. NaviT e m (a -> b) -> NaviT e m a -> NaviT e m b
forall a b c.
(a -> b -> c) -> NaviT e m a -> NaviT e m b -> NaviT e m c
forall e (m :: Type -> Type). Applicative m => Functor (NaviT e m)
forall e (m :: Type -> Type) a. Applicative m => a -> NaviT e m a
forall e (m :: Type -> Type) a b.
Applicative m =>
NaviT e m a -> NaviT e m b -> NaviT e m a
forall e (m :: Type -> Type) a b.
Applicative m =>
NaviT e m a -> NaviT e m b -> NaviT e m b
forall e (m :: Type -> Type) a b.
Applicative m =>
NaviT e m (a -> b) -> NaviT e m a -> NaviT e m b
forall e (m :: Type -> Type) a b c.
Applicative m =>
(a -> b -> c) -> NaviT e m a -> NaviT e m b -> NaviT e m c
forall (f :: Type -> Type).
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
$cpure :: forall e (m :: Type -> Type) a. Applicative m => a -> NaviT e m a
pure :: forall a. a -> NaviT e m a
$c<*> :: forall e (m :: Type -> Type) a b.
Applicative m =>
NaviT e m (a -> b) -> NaviT e m a -> NaviT e m b
<*> :: forall a b. NaviT e m (a -> b) -> NaviT e m a -> NaviT e m b
$cliftA2 :: forall e (m :: Type -> Type) a b c.
Applicative m =>
(a -> b -> c) -> NaviT e m a -> NaviT e m b -> NaviT e m c
liftA2 :: forall a b c.
(a -> b -> c) -> NaviT e m a -> NaviT e m b -> NaviT e m c
$c*> :: forall e (m :: Type -> Type) a b.
Applicative m =>
NaviT e m a -> NaviT e m b -> NaviT e m b
*> :: forall a b. NaviT e m a -> NaviT e m b -> NaviT e m b
$c<* :: forall e (m :: Type -> Type) a b.
Applicative m =>
NaviT e m a -> NaviT e m b -> NaviT e m a
<* :: forall a b. NaviT e m a -> NaviT e m b -> NaviT e m a
Applicative,
Applicative (NaviT e m)
Applicative (NaviT e m) =>
(forall a b. NaviT e m a -> (a -> NaviT e m b) -> NaviT e m b)
-> (forall a b. NaviT e m a -> NaviT e m b -> NaviT e m b)
-> (forall a. a -> NaviT e m a)
-> Monad (NaviT e m)
forall a. a -> NaviT e m a
forall a b. NaviT e m a -> NaviT e m b -> NaviT e m b
forall a b. NaviT e m a -> (a -> NaviT e m b) -> NaviT e m b
forall e (m :: Type -> Type). Monad m => Applicative (NaviT e m)
forall e (m :: Type -> Type) a. Monad m => a -> NaviT e m a
forall e (m :: Type -> Type) a b.
Monad m =>
NaviT e m a -> NaviT e m b -> NaviT e m b
forall e (m :: Type -> Type) a b.
Monad m =>
NaviT e m a -> (a -> NaviT e m b) -> NaviT e m b
forall (m :: Type -> Type).
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
$c>>= :: forall e (m :: Type -> Type) a b.
Monad m =>
NaviT e m a -> (a -> NaviT e m b) -> NaviT e m b
>>= :: forall a b. NaviT e m a -> (a -> NaviT e m b) -> NaviT e m b
$c>> :: forall e (m :: Type -> Type) a b.
Monad m =>
NaviT e m a -> NaviT e m b -> NaviT e m b
>> :: forall a b. NaviT e m a -> NaviT e m b -> NaviT e m b
$creturn :: forall e (m :: Type -> Type) a. Monad m => a -> NaviT e m a
return :: forall a. a -> NaviT e m a
Monad,
Monad (NaviT e m)
Monad (NaviT e m) =>
(forall a b.
HasCallStack =>
NaviT e m a -> (Async a -> NaviT e m b) -> NaviT e m b)
-> (forall a b.
HasCallStack =>
NaviT e m a -> (Async a -> NaviT e m b) -> NaviT e m b)
-> (forall a b.
HasCallStack =>
Int -> NaviT e m a -> (Async a -> NaviT e m b) -> NaviT e m b)
-> (forall a b.
HasCallStack =>
((forall c. NaviT e m c -> NaviT e m c) -> NaviT e m a)
-> (Async a -> NaviT e m b) -> NaviT e m b)
-> (forall a b.
HasCallStack =>
Int
-> ((forall c. NaviT e m c -> NaviT e m c) -> NaviT e m a)
-> (Async a -> NaviT e m b)
-> NaviT e m b)
-> (forall a. HasCallStack => Async a -> NaviT e m a)
-> (forall a.
HasCallStack =>
Async a -> NaviT e m (Maybe (Either SomeException a)))
-> (forall a.
HasCallStack =>
Async a -> NaviT e m (Either SomeException a))
-> (forall a. HasCallStack => Async a -> NaviT e m ())
-> (forall a. HasCallStack => Async a -> NaviT e m ())
-> (forall e a.
(Exception e, HasCallStack) =>
Async a -> e -> NaviT e m ())
-> (forall a b.
HasCallStack =>
NaviT e m a -> NaviT e m b -> NaviT e m (Either a b))
-> (forall a b.
HasCallStack =>
NaviT e m a -> NaviT e m b -> NaviT e m (a, b))
-> (forall a b.
HasCallStack =>
NaviT e m a -> NaviT e m b -> NaviT e m ())
-> (forall a. HasCallStack => [Async a] -> NaviT e m (Async a, a))
-> (forall a.
HasCallStack =>
[Async a] -> NaviT e m (Async a, Either SomeException a))
-> (forall a. HasCallStack => [Async a] -> NaviT e m (Async a, a))
-> (forall a.
HasCallStack =>
[Async a] -> NaviT e m (Async a, Either SomeException a))
-> (forall a b.
HasCallStack =>
Async a -> Async b -> NaviT e m (Either a b))
-> (forall a b.
HasCallStack =>
Async a
-> Async b
-> NaviT
e m (Either (Either SomeException a) (Either SomeException b)))
-> (forall a b.
HasCallStack =>
Async a -> Async b -> NaviT e m (Either a b))
-> (forall a b.
HasCallStack =>
Async a
-> Async b
-> NaviT
e m (Either (Either SomeException a) (Either SomeException b)))
-> (forall a b. HasCallStack => Async a -> Async b -> NaviT e m ())
-> (forall a b.
HasCallStack =>
Async a -> Async b -> NaviT e m (a, b))
-> (forall a. HasCallStack => NaviT e m a -> NaviT e m (Async a))
-> (forall a. HasCallStack => NaviT e m a -> NaviT e m (Async a))
-> (forall a.
HasCallStack =>
Int -> NaviT e m a -> NaviT e m (Async a))
-> (forall a.
HasCallStack =>
((forall c. NaviT e m c -> NaviT e m c) -> NaviT e m a)
-> NaviT e m (Async a))
-> (forall a.
HasCallStack =>
Int
-> ((forall c. NaviT e m c -> NaviT e m c) -> NaviT e m a)
-> NaviT e m (Async a))
-> (forall a. HasCallStack => Async a -> NaviT e m ())
-> (forall a.
HasCallStack =>
(SomeException -> Bool) -> Async a -> NaviT e m ())
-> (forall a b. HasCallStack => Async a -> Async b -> NaviT e m ())
-> (forall a b.
HasCallStack =>
(SomeException -> Bool) -> Async a -> Async b -> NaviT e m ())
-> (forall (t :: Type -> Type) a b.
(HasCallStack, Traversable t) =>
Positive Int -> (a -> NaviT e m b) -> t a -> NaviT e m (t b))
-> (forall (t :: Type -> Type) a b.
(HasCallStack, Traversable t) =>
(a -> NaviT e m b) -> t a -> NaviT e m (t b))
-> (forall (f :: Type -> Type) a b.
(Foldable f, HasCallStack) =>
Positive Int -> (a -> NaviT e m b) -> f a -> NaviT e m ())
-> (forall (f :: Type -> Type) a b.
(Foldable f, HasCallStack) =>
(a -> NaviT e m b) -> f a -> NaviT e m ())
-> MonadAsync (NaviT e m)
forall a. HasCallStack => Int -> NaviT e m a -> NaviT e m (Async a)
forall a.
HasCallStack =>
Int
-> ((forall c. NaviT e m c -> NaviT e m c) -> NaviT e m a)
-> NaviT e m (Async a)
forall a. HasCallStack => [Async a] -> NaviT e m (Async a, a)
forall a.
HasCallStack =>
[Async a] -> NaviT e m (Async a, Either SomeException a)
forall a. HasCallStack => Async a -> NaviT e m a
forall a.
HasCallStack =>
Async a -> NaviT e m (Maybe (Either SomeException a))
forall a.
HasCallStack =>
Async a -> NaviT e m (Either SomeException a)
forall a. HasCallStack => Async a -> NaviT e m ()
forall a. HasCallStack => NaviT e m a -> NaviT e m (Async a)
forall a.
HasCallStack =>
(SomeException -> Bool) -> Async a -> NaviT e m ()
forall a.
HasCallStack =>
((forall c. NaviT e m c -> NaviT e m c) -> NaviT e m a)
-> NaviT e m (Async a)
forall a b.
HasCallStack =>
Int -> NaviT e m a -> (Async a -> NaviT e m b) -> NaviT e m b
forall a b.
HasCallStack =>
Int
-> ((forall c. NaviT e m c -> NaviT e m c) -> NaviT e m a)
-> (Async a -> NaviT e m b)
-> NaviT e m b
forall a b.
HasCallStack =>
Async a -> Async b -> NaviT e m (Either a b)
forall a b.
HasCallStack =>
Async a
-> Async b
-> NaviT
e m (Either (Either SomeException a) (Either SomeException b))
forall a b. HasCallStack => Async a -> Async b -> NaviT e m ()
forall a b. HasCallStack => Async a -> Async b -> NaviT e m (a, b)
forall a b.
HasCallStack =>
NaviT e m a -> NaviT e m b -> NaviT e m (Either a b)
forall a b.
HasCallStack =>
NaviT e m a -> NaviT e m b -> NaviT e m ()
forall a b.
HasCallStack =>
NaviT e m a -> NaviT e m b -> NaviT e m (a, b)
forall a b.
HasCallStack =>
NaviT e m a -> (Async a -> NaviT e m b) -> NaviT e m b
forall a b.
HasCallStack =>
(SomeException -> Bool) -> Async a -> Async b -> NaviT e m ()
forall a b.
HasCallStack =>
((forall c. NaviT e m c -> NaviT e m c) -> NaviT e m a)
-> (Async a -> NaviT e m b) -> NaviT e m b
forall e a.
(Exception e, HasCallStack) =>
Async a -> e -> NaviT e m ()
forall e (m :: Type -> Type). MonadAsync m => Monad (NaviT e m)
forall e (m :: Type -> Type) a.
(MonadAsync m, HasCallStack) =>
Int -> NaviT e m a -> NaviT e m (Async a)
forall e (m :: Type -> Type) a.
(MonadAsync m, HasCallStack) =>
Int
-> ((forall c. NaviT e m c -> NaviT e m c) -> NaviT e m a)
-> NaviT e m (Async a)
forall e (m :: Type -> Type) a.
(MonadAsync m, HasCallStack) =>
[Async a] -> NaviT e m (Async a, a)
forall e (m :: Type -> Type) a.
(MonadAsync m, HasCallStack) =>
[Async a] -> NaviT e m (Async a, Either SomeException a)
forall e (m :: Type -> Type) a.
(MonadAsync m, HasCallStack) =>
Async a -> NaviT e m a
forall e (m :: Type -> Type) a.
(MonadAsync m, HasCallStack) =>
Async a -> NaviT e m (Maybe (Either SomeException a))
forall e (m :: Type -> Type) a.
(MonadAsync m, HasCallStack) =>
Async a -> NaviT e m (Either SomeException a)
forall e (m :: Type -> Type) a.
(MonadAsync m, HasCallStack) =>
Async a -> NaviT e m ()
forall e (m :: Type -> Type) a.
(MonadAsync m, HasCallStack) =>
NaviT e m a -> NaviT e m (Async a)
forall e (m :: Type -> Type) a.
(MonadAsync m, HasCallStack) =>
(SomeException -> Bool) -> Async a -> NaviT e m ()
forall e (m :: Type -> Type) a.
(MonadAsync m, HasCallStack) =>
((forall c. NaviT e m c -> NaviT e m c) -> NaviT e m a)
-> NaviT e m (Async a)
forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
Int -> NaviT e m a -> (Async a -> NaviT e m b) -> NaviT e m b
forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
Int
-> ((forall c. NaviT e m c -> NaviT e m c) -> NaviT e m a)
-> (Async a -> NaviT e m b)
-> NaviT e m b
forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
Async a -> Async b -> NaviT e m (Either a b)
forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
Async a
-> Async b
-> NaviT
e m (Either (Either SomeException a) (Either SomeException b))
forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
Async a -> Async b -> NaviT e m ()
forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
Async a -> Async b -> NaviT e m (a, b)
forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
NaviT e m a -> NaviT e m b -> NaviT e m (Either a b)
forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
NaviT e m a -> NaviT e m b -> NaviT e m ()
forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
NaviT e m a -> NaviT e m b -> NaviT e m (a, b)
forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
NaviT e m a -> (Async a -> NaviT e m b) -> NaviT e m b
forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
(SomeException -> Bool) -> Async a -> Async b -> NaviT e m ()
forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
((forall c. NaviT e m c -> NaviT e m c) -> NaviT e m a)
-> (Async a -> NaviT e m b) -> NaviT e m b
forall e (m :: Type -> Type) e a.
(MonadAsync m, Exception e, HasCallStack) =>
Async a -> e -> NaviT e m ()
forall e (m :: Type -> Type) (f :: Type -> Type) a b.
(MonadAsync m, Foldable f, HasCallStack) =>
Positive Int -> (a -> NaviT e m b) -> f a -> NaviT e m ()
forall e (m :: Type -> Type) (f :: Type -> Type) a b.
(MonadAsync m, Foldable f, HasCallStack) =>
(a -> NaviT e m b) -> f a -> NaviT e m ()
forall e (m :: Type -> Type) (t :: Type -> Type) a b.
(MonadAsync m, HasCallStack, Traversable t) =>
Positive Int -> (a -> NaviT e m b) -> t a -> NaviT e m (t b)
forall e (m :: Type -> Type) (t :: Type -> Type) a b.
(MonadAsync m, HasCallStack, Traversable t) =>
(a -> NaviT e m b) -> t a -> NaviT e m (t b)
forall (m :: Type -> Type).
Monad m =>
(forall a b. HasCallStack => m a -> (Async a -> m b) -> m b)
-> (forall a b. HasCallStack => m a -> (Async a -> m b) -> m b)
-> (forall a b.
HasCallStack =>
Int -> m a -> (Async a -> m b) -> m b)
-> (forall a b.
HasCallStack =>
((forall c. m c -> m c) -> m a) -> (Async a -> m b) -> m b)
-> (forall a b.
HasCallStack =>
Int -> ((forall c. m c -> m c) -> m a) -> (Async a -> m b) -> m b)
-> (forall a. HasCallStack => Async a -> m a)
-> (forall a.
HasCallStack =>
Async a -> m (Maybe (Either SomeException a)))
-> (forall a.
HasCallStack =>
Async a -> m (Either SomeException a))
-> (forall a. HasCallStack => Async a -> m ())
-> (forall a. HasCallStack => Async a -> m ())
-> (forall e a.
(Exception e, HasCallStack) =>
Async a -> e -> m ())
-> (forall a b. HasCallStack => m a -> m b -> m (Either a b))
-> (forall a b. HasCallStack => m a -> m b -> m (a, b))
-> (forall a b. HasCallStack => m a -> m b -> m ())
-> (forall a. HasCallStack => [Async a] -> m (Async a, a))
-> (forall a.
HasCallStack =>
[Async a] -> m (Async a, Either SomeException a))
-> (forall a. HasCallStack => [Async a] -> m (Async a, a))
-> (forall a.
HasCallStack =>
[Async a] -> m (Async a, Either SomeException a))
-> (forall a b.
HasCallStack =>
Async a -> Async b -> m (Either a b))
-> (forall a b.
HasCallStack =>
Async a
-> Async b
-> m (Either (Either SomeException a) (Either SomeException b)))
-> (forall a b.
HasCallStack =>
Async a -> Async b -> m (Either a b))
-> (forall a b.
HasCallStack =>
Async a
-> Async b
-> m (Either (Either SomeException a) (Either SomeException b)))
-> (forall a b. HasCallStack => Async a -> Async b -> m ())
-> (forall a b. HasCallStack => Async a -> Async b -> m (a, b))
-> (forall a. HasCallStack => m a -> m (Async a))
-> (forall a. HasCallStack => m a -> m (Async a))
-> (forall a. HasCallStack => Int -> m a -> m (Async a))
-> (forall a.
HasCallStack =>
((forall c. m c -> m c) -> m a) -> m (Async a))
-> (forall a.
HasCallStack =>
Int -> ((forall c. m c -> m c) -> m a) -> m (Async a))
-> (forall a. HasCallStack => Async a -> m ())
-> (forall a.
HasCallStack =>
(SomeException -> Bool) -> Async a -> m ())
-> (forall a b. HasCallStack => Async a -> Async b -> m ())
-> (forall a b.
HasCallStack =>
(SomeException -> Bool) -> Async a -> Async b -> m ())
-> (forall (t :: Type -> Type) a b.
(HasCallStack, Traversable t) =>
Positive Int -> (a -> m b) -> t a -> m (t b))
-> (forall (t :: Type -> Type) a b.
(HasCallStack, Traversable t) =>
(a -> m b) -> t a -> m (t b))
-> (forall (f :: Type -> Type) a b.
(Foldable f, HasCallStack) =>
Positive Int -> (a -> m b) -> f a -> m ())
-> (forall (f :: Type -> Type) a b.
(Foldable f, HasCallStack) =>
(a -> m b) -> f a -> m ())
-> MonadAsync m
forall (f :: Type -> Type) a b.
(Foldable f, HasCallStack) =>
Positive Int -> (a -> NaviT e m b) -> f a -> NaviT e m ()
forall (f :: Type -> Type) a b.
(Foldable f, HasCallStack) =>
(a -> NaviT e m b) -> f a -> NaviT e m ()
forall (t :: Type -> Type) a b.
(HasCallStack, Traversable t) =>
Positive Int -> (a -> NaviT e m b) -> t a -> NaviT e m (t b)
forall (t :: Type -> Type) a b.
(HasCallStack, Traversable t) =>
(a -> NaviT e m b) -> t a -> NaviT e m (t b)
$cwithAsync :: forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
NaviT e m a -> (Async a -> NaviT e m b) -> NaviT e m b
withAsync :: forall a b.
HasCallStack =>
NaviT e m a -> (Async a -> NaviT e m b) -> NaviT e m b
$cwithAsyncBound :: forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
NaviT e m a -> (Async a -> NaviT e m b) -> NaviT e m b
withAsyncBound :: forall a b.
HasCallStack =>
NaviT e m a -> (Async a -> NaviT e m b) -> NaviT e m b
$cwithAsyncOn :: forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
Int -> NaviT e m a -> (Async a -> NaviT e m b) -> NaviT e m b
withAsyncOn :: forall a b.
HasCallStack =>
Int -> NaviT e m a -> (Async a -> NaviT e m b) -> NaviT e m b
$cwithAsyncWithUnmask :: forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
((forall c. NaviT e m c -> NaviT e m c) -> NaviT e m a)
-> (Async a -> NaviT e m b) -> NaviT e m b
withAsyncWithUnmask :: forall a b.
HasCallStack =>
((forall c. NaviT e m c -> NaviT e m c) -> NaviT e m a)
-> (Async a -> NaviT e m b) -> NaviT e m b
$cwithAsyncOnWithUnmask :: forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
Int
-> ((forall c. NaviT e m c -> NaviT e m c) -> NaviT e m a)
-> (Async a -> NaviT e m b)
-> NaviT e m b
withAsyncOnWithUnmask :: forall a b.
HasCallStack =>
Int
-> ((forall c. NaviT e m c -> NaviT e m c) -> NaviT e m a)
-> (Async a -> NaviT e m b)
-> NaviT e m b
$cwait :: forall e (m :: Type -> Type) a.
(MonadAsync m, HasCallStack) =>
Async a -> NaviT e m a
wait :: forall a. HasCallStack => Async a -> NaviT e m a
$cpoll :: forall e (m :: Type -> Type) a.
(MonadAsync m, HasCallStack) =>
Async a -> NaviT e m (Maybe (Either SomeException a))
poll :: forall a.
HasCallStack =>
Async a -> NaviT e m (Maybe (Either SomeException a))
$cwaitCatch :: forall e (m :: Type -> Type) a.
(MonadAsync m, HasCallStack) =>
Async a -> NaviT e m (Either SomeException a)
waitCatch :: forall a.
HasCallStack =>
Async a -> NaviT e m (Either SomeException a)
$ccancel :: forall e (m :: Type -> Type) a.
(MonadAsync m, HasCallStack) =>
Async a -> NaviT e m ()
cancel :: forall a. HasCallStack => Async a -> NaviT e m ()
$cuninterruptibleCancel :: forall e (m :: Type -> Type) a.
(MonadAsync m, HasCallStack) =>
Async a -> NaviT e m ()
uninterruptibleCancel :: forall a. HasCallStack => Async a -> NaviT e m ()
$ccancelWith :: forall e (m :: Type -> Type) e a.
(MonadAsync m, Exception e, HasCallStack) =>
Async a -> e -> NaviT e m ()
cancelWith :: forall e a.
(Exception e, HasCallStack) =>
Async a -> e -> NaviT e m ()
$crace :: forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
NaviT e m a -> NaviT e m b -> NaviT e m (Either a b)
race :: forall a b.
HasCallStack =>
NaviT e m a -> NaviT e m b -> NaviT e m (Either a b)
$cconcurrently :: forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
NaviT e m a -> NaviT e m b -> NaviT e m (a, b)
concurrently :: forall a b.
HasCallStack =>
NaviT e m a -> NaviT e m b -> NaviT e m (a, b)
$cconcurrently_ :: forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
NaviT e m a -> NaviT e m b -> NaviT e m ()
concurrently_ :: forall a b.
HasCallStack =>
NaviT e m a -> NaviT e m b -> NaviT e m ()
$cwaitAny :: forall e (m :: Type -> Type) a.
(MonadAsync m, HasCallStack) =>
[Async a] -> NaviT e m (Async a, a)
waitAny :: forall a. HasCallStack => [Async a] -> NaviT e m (Async a, a)
$cwaitAnyCatch :: forall e (m :: Type -> Type) a.
(MonadAsync m, HasCallStack) =>
[Async a] -> NaviT e m (Async a, Either SomeException a)
waitAnyCatch :: forall a.
HasCallStack =>
[Async a] -> NaviT e m (Async a, Either SomeException a)
$cwaitAnyCancel :: forall e (m :: Type -> Type) a.
(MonadAsync m, HasCallStack) =>
[Async a] -> NaviT e m (Async a, a)
waitAnyCancel :: forall a. HasCallStack => [Async a] -> NaviT e m (Async a, a)
$cwaitAnyCatchCancel :: forall e (m :: Type -> Type) a.
(MonadAsync m, HasCallStack) =>
[Async a] -> NaviT e m (Async a, Either SomeException a)
waitAnyCatchCancel :: forall a.
HasCallStack =>
[Async a] -> NaviT e m (Async a, Either SomeException a)
$cwaitEither :: forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
Async a -> Async b -> NaviT e m (Either a b)
waitEither :: forall a b.
HasCallStack =>
Async a -> Async b -> NaviT e m (Either a b)
$cwaitEitherCatch :: forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
Async a
-> Async b
-> NaviT
e m (Either (Either SomeException a) (Either SomeException b))
waitEitherCatch :: forall a b.
HasCallStack =>
Async a
-> Async b
-> NaviT
e m (Either (Either SomeException a) (Either SomeException b))
$cwaitEitherCancel :: forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
Async a -> Async b -> NaviT e m (Either a b)
waitEitherCancel :: forall a b.
HasCallStack =>
Async a -> Async b -> NaviT e m (Either a b)
$cwaitEitherCatchCancel :: forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
Async a
-> Async b
-> NaviT
e m (Either (Either SomeException a) (Either SomeException b))
waitEitherCatchCancel :: forall a b.
HasCallStack =>
Async a
-> Async b
-> NaviT
e m (Either (Either SomeException a) (Either SomeException b))
$cwaitEither_ :: forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
Async a -> Async b -> NaviT e m ()
waitEither_ :: forall a b. HasCallStack => Async a -> Async b -> NaviT e m ()
$cwaitBoth :: forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
Async a -> Async b -> NaviT e m (a, b)
waitBoth :: forall a b. HasCallStack => Async a -> Async b -> NaviT e m (a, b)
$casync :: forall e (m :: Type -> Type) a.
(MonadAsync m, HasCallStack) =>
NaviT e m a -> NaviT e m (Async a)
async :: forall a. HasCallStack => NaviT e m a -> NaviT e m (Async a)
$casyncBound :: forall e (m :: Type -> Type) a.
(MonadAsync m, HasCallStack) =>
NaviT e m a -> NaviT e m (Async a)
asyncBound :: forall a. HasCallStack => NaviT e m a -> NaviT e m (Async a)
$casyncOn :: forall e (m :: Type -> Type) a.
(MonadAsync m, HasCallStack) =>
Int -> NaviT e m a -> NaviT e m (Async a)
asyncOn :: forall a. HasCallStack => Int -> NaviT e m a -> NaviT e m (Async a)
$casyncWithUnmask :: forall e (m :: Type -> Type) a.
(MonadAsync m, HasCallStack) =>
((forall c. NaviT e m c -> NaviT e m c) -> NaviT e m a)
-> NaviT e m (Async a)
asyncWithUnmask :: forall a.
HasCallStack =>
((forall c. NaviT e m c -> NaviT e m c) -> NaviT e m a)
-> NaviT e m (Async a)
$casyncOnWithUnmask :: forall e (m :: Type -> Type) a.
(MonadAsync m, HasCallStack) =>
Int
-> ((forall c. NaviT e m c -> NaviT e m c) -> NaviT e m a)
-> NaviT e m (Async a)
asyncOnWithUnmask :: forall a.
HasCallStack =>
Int
-> ((forall c. NaviT e m c -> NaviT e m c) -> NaviT e m a)
-> NaviT e m (Async a)
$clink :: forall e (m :: Type -> Type) a.
(MonadAsync m, HasCallStack) =>
Async a -> NaviT e m ()
link :: forall a. HasCallStack => Async a -> NaviT e m ()
$clinkOnly :: forall e (m :: Type -> Type) a.
(MonadAsync m, HasCallStack) =>
(SomeException -> Bool) -> Async a -> NaviT e m ()
linkOnly :: forall a.
HasCallStack =>
(SomeException -> Bool) -> Async a -> NaviT e m ()
$clink2 :: forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
Async a -> Async b -> NaviT e m ()
link2 :: forall a b. HasCallStack => Async a -> Async b -> NaviT e m ()
$clink2Only :: forall e (m :: Type -> Type) a b.
(MonadAsync m, HasCallStack) =>
(SomeException -> Bool) -> Async a -> Async b -> NaviT e m ()
link2Only :: forall a b.
HasCallStack =>
(SomeException -> Bool) -> Async a -> Async b -> NaviT e m ()
$cpooledMapConcurrentlyN :: forall e (m :: Type -> Type) (t :: Type -> Type) a b.
(MonadAsync m, HasCallStack, Traversable t) =>
Positive Int -> (a -> NaviT e m b) -> t a -> NaviT e m (t b)
pooledMapConcurrentlyN :: forall (t :: Type -> Type) a b.
(HasCallStack, Traversable t) =>
Positive Int -> (a -> NaviT e m b) -> t a -> NaviT e m (t b)
$cpooledMapConcurrently :: forall e (m :: Type -> Type) (t :: Type -> Type) a b.
(MonadAsync m, HasCallStack, Traversable t) =>
(a -> NaviT e m b) -> t a -> NaviT e m (t b)
pooledMapConcurrently :: forall (t :: Type -> Type) a b.
(HasCallStack, Traversable t) =>
(a -> NaviT e m b) -> t a -> NaviT e m (t b)
$cpooledMapConcurrentlyN_ :: forall e (m :: Type -> Type) (f :: Type -> Type) a b.
(MonadAsync m, Foldable f, HasCallStack) =>
Positive Int -> (a -> NaviT e m b) -> f a -> NaviT e m ()
pooledMapConcurrentlyN_ :: forall (f :: Type -> Type) a b.
(Foldable f, HasCallStack) =>
Positive Int -> (a -> NaviT e m b) -> f a -> NaviT e m ()
$cpooledMapConcurrently_ :: forall e (m :: Type -> Type) (f :: Type -> Type) a b.
(MonadAsync m, Foldable f, HasCallStack) =>
(a -> NaviT e m b) -> f a -> NaviT e m ()
pooledMapConcurrently_ :: forall (f :: Type -> Type) a b.
(Foldable f, HasCallStack) =>
(a -> NaviT e m b) -> f a -> NaviT e m ()
MonadAsync,
MonadThrow (NaviT e m)
MonadThrow (NaviT e m) =>
(forall e a.
(HasCallStack, Exception e) =>
NaviT e m a -> (e -> NaviT e m a) -> NaviT e m a)
-> MonadCatch (NaviT e m)
forall e a.
(HasCallStack, Exception e) =>
NaviT e m a -> (e -> NaviT e m a) -> NaviT e m a
forall e (m :: Type -> Type).
MonadCatch m =>
MonadThrow (NaviT e m)
forall e (m :: Type -> Type) e a.
(MonadCatch m, HasCallStack, Exception e) =>
NaviT e m a -> (e -> NaviT e m a) -> NaviT e m a
forall (m :: Type -> Type).
MonadThrow m =>
(forall e a.
(HasCallStack, Exception e) =>
m a -> (e -> m a) -> m a)
-> MonadCatch m
$ccatch :: forall e (m :: Type -> Type) e a.
(MonadCatch m, HasCallStack, Exception e) =>
NaviT e m a -> (e -> NaviT e m a) -> NaviT e m a
catch :: forall e a.
(HasCallStack, Exception e) =>
NaviT e m a -> (e -> NaviT e m a) -> NaviT e m a
MonadCatch,
Monad (NaviT e m)
Monad (NaviT e m) =>
(HasCallStack => NaviT e m Client)
-> (HasCallStack => Client -> NaviNote -> NaviT e m ())
-> MonadDBus (NaviT e m)
HasCallStack => NaviT e m Client
HasCallStack => Client -> NaviNote -> NaviT e m ()
forall e (m :: Type -> Type). MonadDBus m => Monad (NaviT e m)
forall e (m :: Type -> Type).
(MonadDBus m, HasCallStack) =>
NaviT e m Client
forall e (m :: Type -> Type).
(MonadDBus m, HasCallStack) =>
Client -> NaviNote -> NaviT e m ()
forall (m :: Type -> Type).
Monad m =>
(HasCallStack => m Client)
-> (HasCallStack => Client -> NaviNote -> m ()) -> MonadDBus m
$cconnectSession :: forall e (m :: Type -> Type).
(MonadDBus m, HasCallStack) =>
NaviT e m Client
connectSession :: HasCallStack => NaviT e m Client
$cnotify :: forall e (m :: Type -> Type).
(MonadDBus m, HasCallStack) =>
Client -> NaviNote -> NaviT e m ()
notify :: HasCallStack => Client -> NaviNote -> NaviT e m ()
MonadDBus,
Monad (NaviT e m)
Monad (NaviT e m) =>
(HasCallStack => OsPath -> NaviT e m ByteString)
-> MonadFileReader (NaviT e m)
HasCallStack => OsPath -> NaviT e m ByteString
forall e (m :: Type -> Type).
MonadFileReader m =>
Monad (NaviT e m)
forall e (m :: Type -> Type).
(MonadFileReader m, HasCallStack) =>
OsPath -> NaviT e m ByteString
forall (m :: Type -> Type).
Monad m =>
(HasCallStack => OsPath -> m ByteString) -> MonadFileReader m
$creadBinaryFile :: forall e (m :: Type -> Type).
(MonadFileReader m, HasCallStack) =>
OsPath -> NaviT e m ByteString
readBinaryFile :: HasCallStack => OsPath -> NaviT e m ByteString
MonadFileReader,
Monad (NaviT e m)
Monad (NaviT e m) =>
(HasCallStack => OsPath -> IOMode -> NaviT e m Handle)
-> (forall a.
HasCallStack =>
OsPath -> IOMode -> (Handle -> NaviT e m a) -> NaviT e m a)
-> (HasCallStack => Handle -> NaviT e m ())
-> (HasCallStack => Handle -> NaviT e m ())
-> (HasCallStack => Handle -> Integer -> NaviT e m ())
-> (HasCallStack => Handle -> BufferMode -> NaviT e m ())
-> (HasCallStack => Handle -> SeekMode -> Integer -> NaviT e m ())
-> (HasCallStack => Handle -> NaviT e m Integer)
-> (HasCallStack => Handle -> Bool -> NaviT e m ())
-> (HasCallStack => Handle -> ByteString -> NaviT e m ())
-> (HasCallStack => Handle -> ByteString -> NaviT e m ByteString)
-> MonadHandleWriter (NaviT e m)
HasCallStack => Handle -> NaviT e m Integer
HasCallStack => Handle -> NaviT e m ()
HasCallStack => Handle -> Bool -> NaviT e m ()
HasCallStack => Handle -> Integer -> NaviT e m ()
HasCallStack => Handle -> ByteString -> NaviT e m ()
HasCallStack => Handle -> ByteString -> NaviT e m ByteString
HasCallStack => Handle -> SeekMode -> Integer -> NaviT e m ()
HasCallStack => Handle -> BufferMode -> NaviT e m ()
HasCallStack => OsPath -> IOMode -> NaviT e m Handle
forall a.
HasCallStack =>
OsPath -> IOMode -> (Handle -> NaviT e m a) -> NaviT e m a
forall e (m :: Type -> Type).
MonadHandleWriter m =>
Monad (NaviT e m)
forall e (m :: Type -> Type).
(MonadHandleWriter m, HasCallStack) =>
Handle -> NaviT e m Integer
forall e (m :: Type -> Type).
(MonadHandleWriter m, HasCallStack) =>
Handle -> NaviT e m ()
forall e (m :: Type -> Type).
(MonadHandleWriter m, HasCallStack) =>
Handle -> Bool -> NaviT e m ()
forall e (m :: Type -> Type).
(MonadHandleWriter m, HasCallStack) =>
Handle -> Integer -> NaviT e m ()
forall e (m :: Type -> Type).
(MonadHandleWriter m, HasCallStack) =>
Handle -> ByteString -> NaviT e m ()
forall e (m :: Type -> Type).
(MonadHandleWriter m, HasCallStack) =>
Handle -> ByteString -> NaviT e m ByteString
forall e (m :: Type -> Type).
(MonadHandleWriter m, HasCallStack) =>
Handle -> SeekMode -> Integer -> NaviT e m ()
forall e (m :: Type -> Type).
(MonadHandleWriter m, HasCallStack) =>
Handle -> BufferMode -> NaviT e m ()
forall e (m :: Type -> Type).
(MonadHandleWriter m, HasCallStack) =>
OsPath -> IOMode -> NaviT e m Handle
forall e (m :: Type -> Type) a.
(MonadHandleWriter m, HasCallStack) =>
OsPath -> IOMode -> (Handle -> NaviT e m a) -> NaviT e m a
forall (m :: Type -> Type).
Monad m =>
(HasCallStack => OsPath -> IOMode -> m Handle)
-> (forall a.
HasCallStack =>
OsPath -> IOMode -> (Handle -> m a) -> m a)
-> (HasCallStack => Handle -> m ())
-> (HasCallStack => Handle -> m ())
-> (HasCallStack => Handle -> Integer -> m ())
-> (HasCallStack => Handle -> BufferMode -> m ())
-> (HasCallStack => Handle -> SeekMode -> Integer -> m ())
-> (HasCallStack => Handle -> m Integer)
-> (HasCallStack => Handle -> Bool -> m ())
-> (HasCallStack => Handle -> ByteString -> m ())
-> (HasCallStack => Handle -> ByteString -> m ByteString)
-> MonadHandleWriter m
$copenBinaryFile :: forall e (m :: Type -> Type).
(MonadHandleWriter m, HasCallStack) =>
OsPath -> IOMode -> NaviT e m Handle
openBinaryFile :: HasCallStack => OsPath -> IOMode -> NaviT e m Handle
$cwithBinaryFile :: forall e (m :: Type -> Type) a.
(MonadHandleWriter m, HasCallStack) =>
OsPath -> IOMode -> (Handle -> NaviT e m a) -> NaviT e m a
withBinaryFile :: forall a.
HasCallStack =>
OsPath -> IOMode -> (Handle -> NaviT e m a) -> NaviT e m a
$chClose :: forall e (m :: Type -> Type).
(MonadHandleWriter m, HasCallStack) =>
Handle -> NaviT e m ()
hClose :: HasCallStack => Handle -> NaviT e m ()
$chFlush :: forall e (m :: Type -> Type).
(MonadHandleWriter m, HasCallStack) =>
Handle -> NaviT e m ()
hFlush :: HasCallStack => Handle -> NaviT e m ()
$chSetFileSize :: forall e (m :: Type -> Type).
(MonadHandleWriter m, HasCallStack) =>
Handle -> Integer -> NaviT e m ()
hSetFileSize :: HasCallStack => Handle -> Integer -> NaviT e m ()
$chSetBuffering :: forall e (m :: Type -> Type).
(MonadHandleWriter m, HasCallStack) =>
Handle -> BufferMode -> NaviT e m ()
hSetBuffering :: HasCallStack => Handle -> BufferMode -> NaviT e m ()
$chSeek :: forall e (m :: Type -> Type).
(MonadHandleWriter m, HasCallStack) =>
Handle -> SeekMode -> Integer -> NaviT e m ()
hSeek :: HasCallStack => Handle -> SeekMode -> Integer -> NaviT e m ()
$chTell :: forall e (m :: Type -> Type).
(MonadHandleWriter m, HasCallStack) =>
Handle -> NaviT e m Integer
hTell :: HasCallStack => Handle -> NaviT e m Integer
$chSetEcho :: forall e (m :: Type -> Type).
(MonadHandleWriter m, HasCallStack) =>
Handle -> Bool -> NaviT e m ()
hSetEcho :: HasCallStack => Handle -> Bool -> NaviT e m ()
$chPut :: forall e (m :: Type -> Type).
(MonadHandleWriter m, HasCallStack) =>
Handle -> ByteString -> NaviT e m ()
hPut :: HasCallStack => Handle -> ByteString -> NaviT e m ()
$chPutNonBlocking :: forall e (m :: Type -> Type).
(MonadHandleWriter m, HasCallStack) =>
Handle -> ByteString -> NaviT e m ByteString
hPutNonBlocking :: HasCallStack => Handle -> ByteString -> NaviT e m ByteString
MonadHandleWriter,
Monad (NaviT e m)
Monad (NaviT e m) =>
(forall a. IO a -> NaviT e m a) -> MonadIO (NaviT e m)
forall a. IO a -> NaviT e m a
forall e (m :: Type -> Type). MonadIO m => Monad (NaviT e m)
forall e (m :: Type -> Type) a. MonadIO m => IO a -> NaviT e m a
forall (m :: Type -> Type).
Monad m =>
(forall a. IO a -> m a) -> MonadIO m
$cliftIO :: forall e (m :: Type -> Type) a. MonadIO m => IO a -> NaviT e m a
liftIO :: forall a. IO a -> NaviT e m a
MonadIO,
Monad (NaviT e m)
Monad (NaviT e m) =>
(forall a. HasCallStack => a -> NaviT e m (IORef a))
-> (forall a. HasCallStack => IORef a -> NaviT e m a)
-> (forall a. HasCallStack => IORef a -> a -> NaviT e m ())
-> (forall a. HasCallStack => IORef a -> a -> NaviT e m ())
-> (forall a. HasCallStack => IORef a -> (a -> a) -> NaviT e m ())
-> (forall a b.
HasCallStack =>
IORef a -> (a -> (a, b)) -> NaviT e m b)
-> MonadIORef (NaviT e m)
forall a. HasCallStack => a -> NaviT e m (IORef a)
forall a. HasCallStack => IORef a -> NaviT e m a
forall a. HasCallStack => IORef a -> a -> NaviT e m ()
forall a. HasCallStack => IORef a -> (a -> a) -> NaviT e m ()
forall a b. HasCallStack => IORef a -> (a -> (a, b)) -> NaviT e m b
forall e (m :: Type -> Type). MonadIORef m => Monad (NaviT e m)
forall e (m :: Type -> Type) a.
(MonadIORef m, HasCallStack) =>
a -> NaviT e m (IORef a)
forall e (m :: Type -> Type) a.
(MonadIORef m, HasCallStack) =>
IORef a -> NaviT e m a
forall e (m :: Type -> Type) a.
(MonadIORef m, HasCallStack) =>
IORef a -> a -> NaviT e m ()
forall e (m :: Type -> Type) a.
(MonadIORef m, HasCallStack) =>
IORef a -> (a -> a) -> NaviT e m ()
forall e (m :: Type -> Type) a b.
(MonadIORef m, HasCallStack) =>
IORef a -> (a -> (a, b)) -> NaviT e m b
forall (m :: Type -> Type).
Monad m =>
(forall a. HasCallStack => a -> m (IORef a))
-> (forall a. HasCallStack => IORef a -> m a)
-> (forall a. HasCallStack => IORef a -> a -> m ())
-> (forall a. HasCallStack => IORef a -> a -> m ())
-> (forall a. HasCallStack => IORef a -> (a -> a) -> m ())
-> (forall a b. HasCallStack => IORef a -> (a -> (a, b)) -> m b)
-> MonadIORef m
$cnewIORef :: forall e (m :: Type -> Type) a.
(MonadIORef m, HasCallStack) =>
a -> NaviT e m (IORef a)
newIORef :: forall a. HasCallStack => a -> NaviT e m (IORef a)
$creadIORef :: forall e (m :: Type -> Type) a.
(MonadIORef m, HasCallStack) =>
IORef a -> NaviT e m a
readIORef :: forall a. HasCallStack => IORef a -> NaviT e m a
$cwriteIORef :: forall e (m :: Type -> Type) a.
(MonadIORef m, HasCallStack) =>
IORef a -> a -> NaviT e m ()
writeIORef :: forall a. HasCallStack => IORef a -> a -> NaviT e m ()
$catomicWriteIORef :: forall e (m :: Type -> Type) a.
(MonadIORef m, HasCallStack) =>
IORef a -> a -> NaviT e m ()
atomicWriteIORef :: forall a. HasCallStack => IORef a -> a -> NaviT e m ()
$cmodifyIORef' :: forall e (m :: Type -> Type) a.
(MonadIORef m, HasCallStack) =>
IORef a -> (a -> a) -> NaviT e m ()
modifyIORef' :: forall a. HasCallStack => IORef a -> (a -> a) -> NaviT e m ()
$catomicModifyIORef' :: forall e (m :: Type -> Type) a b.
(MonadIORef m, HasCallStack) =>
IORef a -> (a -> (a, b)) -> NaviT e m b
atomicModifyIORef' :: forall a b. HasCallStack => IORef a -> (a -> (a, b)) -> NaviT e m b
MonadIORef,
MonadCatch (NaviT e m)
MonadCatch (NaviT e m) =>
(forall b.
HasCallStack =>
((forall a. NaviT e m a -> NaviT e m a) -> NaviT e m b)
-> NaviT e m b)
-> (forall b.
HasCallStack =>
((forall a. NaviT e m a -> NaviT e m a) -> NaviT e m b)
-> NaviT e m b)
-> (forall a b c.
HasCallStack =>
NaviT e m a
-> (a -> ExitCase b -> NaviT e m c)
-> (a -> NaviT e m b)
-> NaviT e m (b, c))
-> MonadMask (NaviT e m)
forall b.
HasCallStack =>
((forall a. NaviT e m a -> NaviT e m a) -> NaviT e m b)
-> NaviT e m b
forall a b c.
HasCallStack =>
NaviT e m a
-> (a -> ExitCase b -> NaviT e m c)
-> (a -> NaviT e m b)
-> NaviT e m (b, c)
forall e (m :: Type -> Type). MonadMask m => MonadCatch (NaviT e m)
forall e (m :: Type -> Type) b.
(MonadMask m, HasCallStack) =>
((forall a. NaviT e m a -> NaviT e m a) -> NaviT e m b)
-> NaviT e m b
forall e (m :: Type -> Type) a b c.
(MonadMask m, HasCallStack) =>
NaviT e m a
-> (a -> ExitCase b -> NaviT e m c)
-> (a -> NaviT e m b)
-> NaviT e m (b, c)
forall (m :: Type -> Type).
MonadCatch m =>
(forall b. HasCallStack => ((forall a. m a -> m a) -> m b) -> m b)
-> (forall b.
HasCallStack =>
((forall a. m a -> m a) -> m b) -> m b)
-> (forall a b c.
HasCallStack =>
m a -> (a -> ExitCase b -> m c) -> (a -> m b) -> m (b, c))
-> MonadMask m
$cmask :: forall e (m :: Type -> Type) b.
(MonadMask m, HasCallStack) =>
((forall a. NaviT e m a -> NaviT e m a) -> NaviT e m b)
-> NaviT e m b
mask :: forall b.
HasCallStack =>
((forall a. NaviT e m a -> NaviT e m a) -> NaviT e m b)
-> NaviT e m b
$cuninterruptibleMask :: forall e (m :: Type -> Type) b.
(MonadMask m, HasCallStack) =>
((forall a. NaviT e m a -> NaviT e m a) -> NaviT e m b)
-> NaviT e m b
uninterruptibleMask :: forall b.
HasCallStack =>
((forall a. NaviT e m a -> NaviT e m a) -> NaviT e m b)
-> NaviT e m b
$cgeneralBracket :: forall e (m :: Type -> Type) a b c.
(MonadMask m, HasCallStack) =>
NaviT e m a
-> (a -> ExitCase b -> NaviT e m c)
-> (a -> NaviT e m b)
-> NaviT e m (b, c)
generalBracket :: forall a b c.
HasCallStack =>
NaviT e m a
-> (a -> ExitCase b -> NaviT e m c)
-> (a -> NaviT e m b)
-> NaviT e m (b, c)
MonadMask,
MonadReader e,
Monad (NaviT e m)
Monad (NaviT e m) =>
(forall a. HasCallStack => STM a -> NaviT e m a)
-> MonadSTM (NaviT e m)
forall a. HasCallStack => STM a -> NaviT e m a
forall e (m :: Type -> Type). MonadSTM m => Monad (NaviT e m)
forall e (m :: Type -> Type) a.
(MonadSTM m, HasCallStack) =>
STM a -> NaviT e m a
forall (m :: Type -> Type).
Monad m =>
(forall a. HasCallStack => STM a -> m a) -> MonadSTM m
$catomically :: forall e (m :: Type -> Type) a.
(MonadSTM m, HasCallStack) =>
STM a -> NaviT e m a
atomically :: forall a. HasCallStack => STM a -> NaviT e m a
MonadSTM,
Monad (NaviT e m)
Monad (NaviT e m) =>
(forall result.
HasCallStack =>
ServiceType result -> NaviT e m (result, Maybe PollInterval))
-> MonadSystemInfo (NaviT e m)
forall result.
HasCallStack =>
ServiceType result -> NaviT e m (result, Maybe PollInterval)
forall e (m :: Type -> Type).
MonadSystemInfo m =>
Monad (NaviT e m)
forall e (m :: Type -> Type) result.
(MonadSystemInfo m, HasCallStack) =>
ServiceType result -> NaviT e m (result, Maybe PollInterval)
forall (m :: Type -> Type).
Monad m =>
(forall result.
HasCallStack =>
ServiceType result -> m (result, Maybe PollInterval))
-> MonadSystemInfo m
$cquery :: forall e (m :: Type -> Type) result.
(MonadSystemInfo m, HasCallStack) =>
ServiceType result -> NaviT e m (result, Maybe PollInterval)
query :: forall result.
HasCallStack =>
ServiceType result -> NaviT e m (result, Maybe PollInterval)
MonadSystemInfo,
Monad (NaviT e m)
Monad (NaviT e m) =>
(HasCallStack => String -> NaviT e m ())
-> (HasCallStack => String -> NaviT e m ())
-> (HasCallStack => ByteString -> NaviT e m ())
-> (HasCallStack => NaviT e m Char)
-> (HasCallStack => NaviT e m String)
-> (HasCallStack => NaviT e m String)
-> (forall a. (HasCallStack, Integral a) => NaviT e m (Window a))
-> (HasCallStack => NaviT e m Bool)
-> MonadTerminal (NaviT e m)
HasCallStack => NaviT e m Bool
HasCallStack => NaviT e m Char
HasCallStack => NaviT e m String
HasCallStack => String -> NaviT e m ()
HasCallStack => ByteString -> NaviT e m ()
forall a. (HasCallStack, Integral a) => NaviT e m (Window a)
forall e (m :: Type -> Type). MonadTerminal m => Monad (NaviT e m)
forall e (m :: Type -> Type).
(MonadTerminal m, HasCallStack) =>
NaviT e m Bool
forall e (m :: Type -> Type).
(MonadTerminal m, HasCallStack) =>
NaviT e m Char
forall e (m :: Type -> Type).
(MonadTerminal m, HasCallStack) =>
NaviT e m String
forall e (m :: Type -> Type).
(MonadTerminal m, HasCallStack) =>
String -> NaviT e m ()
forall e (m :: Type -> Type).
(MonadTerminal m, HasCallStack) =>
ByteString -> NaviT e m ()
forall e (m :: Type -> Type) a.
(MonadTerminal m, HasCallStack, Integral a) =>
NaviT e m (Window a)
forall (m :: Type -> Type).
Monad m =>
(HasCallStack => String -> m ())
-> (HasCallStack => String -> m ())
-> (HasCallStack => ByteString -> m ())
-> (HasCallStack => m Char)
-> (HasCallStack => m String)
-> (HasCallStack => m String)
-> (forall a. (HasCallStack, Integral a) => m (Window a))
-> (HasCallStack => m Bool)
-> MonadTerminal m
$cputStr :: forall e (m :: Type -> Type).
(MonadTerminal m, HasCallStack) =>
String -> NaviT e m ()
putStr :: HasCallStack => String -> NaviT e m ()
$cputStrLn :: forall e (m :: Type -> Type).
(MonadTerminal m, HasCallStack) =>
String -> NaviT e m ()
putStrLn :: HasCallStack => String -> NaviT e m ()
$cputBinary :: forall e (m :: Type -> Type).
(MonadTerminal m, HasCallStack) =>
ByteString -> NaviT e m ()
putBinary :: HasCallStack => ByteString -> NaviT e m ()
$cgetChar :: forall e (m :: Type -> Type).
(MonadTerminal m, HasCallStack) =>
NaviT e m Char
getChar :: HasCallStack => NaviT e m Char
$cgetLine :: forall e (m :: Type -> Type).
(MonadTerminal m, HasCallStack) =>
NaviT e m String
getLine :: HasCallStack => NaviT e m String
$cgetContents' :: forall e (m :: Type -> Type).
(MonadTerminal m, HasCallStack) =>
NaviT e m String
getContents' :: HasCallStack => NaviT e m String
$cgetTerminalSize :: forall e (m :: Type -> Type) a.
(MonadTerminal m, HasCallStack, Integral a) =>
NaviT e m (Window a)
getTerminalSize :: forall a. (HasCallStack, Integral a) => NaviT e m (Window a)
$csupportsPretty :: forall e (m :: Type -> Type).
(MonadTerminal m, HasCallStack) =>
NaviT e m Bool
supportsPretty :: HasCallStack => NaviT e m Bool
MonadTerminal,
Monad (NaviT e m)
Monad (NaviT e m) =>
(HasCallStack => NaviT e m ZonedTime)
-> (HasCallStack => UTCTime -> NaviT e m TimeZone)
-> (HasCallStack => UTCTime -> NaviT e m ZonedTime)
-> (HasCallStack => NaviT e m TZ)
-> (HasCallStack => NaviT e m Double)
-> MonadTime (NaviT e m)
HasCallStack => NaviT e m Double
HasCallStack => NaviT e m ZonedTime
HasCallStack => NaviT e m TZ
HasCallStack => UTCTime -> NaviT e m TimeZone
HasCallStack => UTCTime -> NaviT e m ZonedTime
forall e (m :: Type -> Type). MonadTime m => Monad (NaviT e m)
forall e (m :: Type -> Type).
(MonadTime m, HasCallStack) =>
NaviT e m Double
forall e (m :: Type -> Type).
(MonadTime m, HasCallStack) =>
NaviT e m ZonedTime
forall e (m :: Type -> Type).
(MonadTime m, HasCallStack) =>
NaviT e m TZ
forall e (m :: Type -> Type).
(MonadTime m, HasCallStack) =>
UTCTime -> NaviT e m TimeZone
forall e (m :: Type -> Type).
(MonadTime m, HasCallStack) =>
UTCTime -> NaviT e m ZonedTime
forall (m :: Type -> Type).
Monad m =>
(HasCallStack => m ZonedTime)
-> (HasCallStack => UTCTime -> m TimeZone)
-> (HasCallStack => UTCTime -> m ZonedTime)
-> (HasCallStack => m TZ)
-> (HasCallStack => m Double)
-> MonadTime m
$cgetSystemZonedTime :: forall e (m :: Type -> Type).
(MonadTime m, HasCallStack) =>
NaviT e m ZonedTime
getSystemZonedTime :: HasCallStack => NaviT e m ZonedTime
$cgetTimeZone :: forall e (m :: Type -> Type).
(MonadTime m, HasCallStack) =>
UTCTime -> NaviT e m TimeZone
getTimeZone :: HasCallStack => UTCTime -> NaviT e m TimeZone
$cutcToLocalZonedTime :: forall e (m :: Type -> Type).
(MonadTime m, HasCallStack) =>
UTCTime -> NaviT e m ZonedTime
utcToLocalZonedTime :: HasCallStack => UTCTime -> NaviT e m ZonedTime
$cloadLocalTZ :: forall e (m :: Type -> Type).
(MonadTime m, HasCallStack) =>
NaviT e m TZ
loadLocalTZ :: HasCallStack => NaviT e m TZ
$cgetMonotonicTime :: forall e (m :: Type -> Type).
(MonadTime m, HasCallStack) =>
NaviT e m Double
getMonotonicTime :: HasCallStack => NaviT e m Double
MonadTime,
Monad (NaviT e m)
Monad (NaviT e m) =>
(HasCallStack => Int -> NaviT e m ())
-> (forall e.
(Exception e, HasCallStack) =>
ThreadId -> e -> NaviT e m ())
-> (HasCallStack => NaviT e m Int)
-> (HasCallStack => Int -> NaviT e m ())
-> (HasCallStack => ThreadId -> NaviT e m (Int, Bool))
-> (HasCallStack => NaviT e m ThreadId)
-> (HasCallStack => ThreadId -> String -> NaviT e m ())
-> (HasCallStack => ThreadId -> NaviT e m (Maybe String))
-> MonadThread (NaviT e m)
HasCallStack => NaviT e m Int
HasCallStack => NaviT e m ThreadId
HasCallStack => Int -> NaviT e m ()
HasCallStack => ThreadId -> NaviT e m (Maybe String)
HasCallStack => ThreadId -> NaviT e m (Int, Bool)
HasCallStack => ThreadId -> String -> NaviT e m ()
forall e.
(Exception e, HasCallStack) =>
ThreadId -> e -> NaviT e m ()
forall e (m :: Type -> Type). MonadThread m => Monad (NaviT e m)
forall e (m :: Type -> Type).
(MonadThread m, HasCallStack) =>
NaviT e m Int
forall e (m :: Type -> Type).
(MonadThread m, HasCallStack) =>
NaviT e m ThreadId
forall e (m :: Type -> Type).
(MonadThread m, HasCallStack) =>
Int -> NaviT e m ()
forall e (m :: Type -> Type).
(MonadThread m, HasCallStack) =>
ThreadId -> NaviT e m (Maybe String)
forall e (m :: Type -> Type).
(MonadThread m, HasCallStack) =>
ThreadId -> NaviT e m (Int, Bool)
forall e (m :: Type -> Type).
(MonadThread m, HasCallStack) =>
ThreadId -> String -> NaviT e m ()
forall e (m :: Type -> Type) e.
(MonadThread m, Exception e, HasCallStack) =>
ThreadId -> e -> NaviT e m ()
forall (m :: Type -> Type).
Monad m =>
(HasCallStack => Int -> m ())
-> (forall e. (Exception e, HasCallStack) => ThreadId -> e -> m ())
-> (HasCallStack => m Int)
-> (HasCallStack => Int -> m ())
-> (HasCallStack => ThreadId -> m (Int, Bool))
-> (HasCallStack => m ThreadId)
-> (HasCallStack => ThreadId -> String -> m ())
-> (HasCallStack => ThreadId -> m (Maybe String))
-> MonadThread m
$cthreadDelay :: forall e (m :: Type -> Type).
(MonadThread m, HasCallStack) =>
Int -> NaviT e m ()
threadDelay :: HasCallStack => Int -> NaviT e m ()
$cthrowTo :: forall e (m :: Type -> Type) e.
(MonadThread m, Exception e, HasCallStack) =>
ThreadId -> e -> NaviT e m ()
throwTo :: forall e.
(Exception e, HasCallStack) =>
ThreadId -> e -> NaviT e m ()
$cgetNumCapabilities :: forall e (m :: Type -> Type).
(MonadThread m, HasCallStack) =>
NaviT e m Int
getNumCapabilities :: HasCallStack => NaviT e m Int
$csetNumCapabilities :: forall e (m :: Type -> Type).
(MonadThread m, HasCallStack) =>
Int -> NaviT e m ()
setNumCapabilities :: HasCallStack => Int -> NaviT e m ()
$cthreadCapability :: forall e (m :: Type -> Type).
(MonadThread m, HasCallStack) =>
ThreadId -> NaviT e m (Int, Bool)
threadCapability :: HasCallStack => ThreadId -> NaviT e m (Int, Bool)
$cmyThreadId :: forall e (m :: Type -> Type).
(MonadThread m, HasCallStack) =>
NaviT e m ThreadId
myThreadId :: HasCallStack => NaviT e m ThreadId
$clabelThread :: forall e (m :: Type -> Type).
(MonadThread m, HasCallStack) =>
ThreadId -> String -> NaviT e m ()
labelThread :: HasCallStack => ThreadId -> String -> NaviT e m ()
$cthreadLabel :: forall e (m :: Type -> Type).
(MonadThread m, HasCallStack) =>
ThreadId -> NaviT e m (Maybe String)
threadLabel :: HasCallStack => ThreadId -> NaviT e m (Maybe String)
MonadThread,
Monad (NaviT e m)
Monad (NaviT e m) =>
(forall e a. (HasCallStack, Exception e) => e -> NaviT e m a)
-> MonadThrow (NaviT e m)
forall e a. (HasCallStack, Exception e) => e -> NaviT e m a
forall e (m :: Type -> Type). MonadThrow m => Monad (NaviT e m)
forall e (m :: Type -> Type) e a.
(MonadThrow m, HasCallStack, Exception e) =>
e -> NaviT e m a
forall (m :: Type -> Type).
Monad m =>
(forall e a. (HasCallStack, Exception e) => e -> m a)
-> MonadThrow m
$cthrowM :: forall e (m :: Type -> Type) e a.
(MonadThrow m, HasCallStack, Exception e) =>
e -> NaviT e m a
throwM :: forall e a. (HasCallStack, Exception e) => e -> NaviT e m a
MonadThrow,
Monad (NaviT e m)
Monad (NaviT e m) =>
(forall stdin stdout stderr.
HasCallStack =>
ProcessConfig stdin stdout stderr -> NaviT e m ExitCode)
-> (forall stdin stdoutIgnored stderrIgnored.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderrIgnored
-> NaviT e m (ExitCode, ByteString, ByteString))
-> (forall stdin stdoutIgnored stderr.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderr
-> NaviT e m (ExitCode, ByteString))
-> (forall stdin stdoutIgnored stderr.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderr
-> NaviT e m (ExitCode, ByteString))
-> (forall stdin stdoutIgnored stderr.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderr
-> NaviT e m (ExitCode, ByteString))
-> (forall stdin stdout stderr a.
HasCallStack =>
ProcessConfig stdin stdout stderr
-> (Process stdin stdout stderr -> NaviT e m a) -> NaviT e m a)
-> (forall stdin stdout stderr a.
HasCallStack =>
ProcessConfig stdin stdout stderr
-> (Process stdin stdout stderr -> NaviT e m a) -> NaviT e m a)
-> (forall stdin stdout stderr.
HasCallStack =>
ProcessConfig stdin stdout stderr
-> NaviT e m (Process stdin stdout stderr))
-> (forall stdin stdout stderr.
HasCallStack =>
Process stdin stdout stderr -> NaviT e m ())
-> (forall stdin stdout stderr.
HasCallStack =>
ProcessConfig stdin stdout stderr -> NaviT e m ())
-> (forall stdin stdoutIgnored stderrIgnored.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderrIgnored
-> NaviT e m (ByteString, ByteString))
-> (forall stdin stdoutIgnored stderr.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderr -> NaviT e m ByteString)
-> (forall stdin stdoutIgnored stderr.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderr -> NaviT e m ByteString)
-> (forall stdin stdoutIgnored stderr.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderr -> NaviT e m ByteString)
-> (forall stdin stdout stderr a.
HasCallStack =>
ProcessConfig stdin stdout stderr
-> (Process stdin stdout stderr -> NaviT e m a) -> NaviT e m a)
-> (forall stdin stdout stderr a.
HasCallStack =>
ProcessConfig stdin stdout stderr
-> (Process stdin stdout stderr -> NaviT e m a) -> NaviT e m a)
-> (forall stdin stdout stderr.
HasCallStack =>
Process stdin stdout stderr -> NaviT e m ExitCode)
-> (forall stdin stdout stderr.
HasCallStack =>
Process stdin stdout stderr -> NaviT e m (Maybe ExitCode))
-> (forall stdin stdout stderr.
HasCallStack =>
Process stdin stdout stderr -> NaviT e m ())
-> MonadTypedProcess (NaviT e m)
forall stdin stdout stderr.
HasCallStack =>
Process stdin stdout stderr -> NaviT e m (Maybe ExitCode)
forall stdin stdout stderr.
HasCallStack =>
Process stdin stdout stderr -> NaviT e m ()
forall stdin stdout stderr.
HasCallStack =>
Process stdin stdout stderr -> NaviT e m ExitCode
forall stdin stdout stderr.
HasCallStack =>
ProcessConfig stdin stdout stderr -> NaviT e m ()
forall stdin stdoutIgnored stderrIgnored.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderrIgnored
-> NaviT e m (ByteString, ByteString)
forall stdin stdoutIgnored stderr.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderr
-> NaviT e m (ExitCode, ByteString)
forall stdin stdoutIgnored stderrIgnored.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderrIgnored
-> NaviT e m (ExitCode, ByteString, ByteString)
forall stdin stdoutIgnored stderr.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderr -> NaviT e m ByteString
forall stdin stdout stderr.
HasCallStack =>
ProcessConfig stdin stdout stderr -> NaviT e m ExitCode
forall stdin stdout stderr.
HasCallStack =>
ProcessConfig stdin stdout stderr
-> NaviT e m (Process stdin stdout stderr)
forall stdin stdout stderr a.
HasCallStack =>
ProcessConfig stdin stdout stderr
-> (Process stdin stdout stderr -> NaviT e m a) -> NaviT e m a
forall e (m :: Type -> Type).
MonadTypedProcess m =>
Monad (NaviT e m)
forall e (m :: Type -> Type) stdin stdout stderr.
(MonadTypedProcess m, HasCallStack) =>
Process stdin stdout stderr -> NaviT e m (Maybe ExitCode)
forall e (m :: Type -> Type) stdin stdout stderr.
(MonadTypedProcess m, HasCallStack) =>
Process stdin stdout stderr -> NaviT e m ()
forall e (m :: Type -> Type) stdin stdout stderr.
(MonadTypedProcess m, HasCallStack) =>
Process stdin stdout stderr -> NaviT e m ExitCode
forall e (m :: Type -> Type) stdin stdout stderr.
(MonadTypedProcess m, HasCallStack) =>
ProcessConfig stdin stdout stderr -> NaviT e m ()
forall e (m :: Type -> Type) stdin stdoutIgnored stderrIgnored.
(MonadTypedProcess m, HasCallStack) =>
ProcessConfig stdin stdoutIgnored stderrIgnored
-> NaviT e m (ByteString, ByteString)
forall e (m :: Type -> Type) stdin stdoutIgnored stderr.
(MonadTypedProcess m, HasCallStack) =>
ProcessConfig stdin stdoutIgnored stderr
-> NaviT e m (ExitCode, ByteString)
forall e (m :: Type -> Type) stdin stdoutIgnored stderrIgnored.
(MonadTypedProcess m, HasCallStack) =>
ProcessConfig stdin stdoutIgnored stderrIgnored
-> NaviT e m (ExitCode, ByteString, ByteString)
forall e (m :: Type -> Type) stdin stdoutIgnored stderr.
(MonadTypedProcess m, HasCallStack) =>
ProcessConfig stdin stdoutIgnored stderr -> NaviT e m ByteString
forall e (m :: Type -> Type) stdin stdout stderr.
(MonadTypedProcess m, HasCallStack) =>
ProcessConfig stdin stdout stderr -> NaviT e m ExitCode
forall e (m :: Type -> Type) stdin stdout stderr.
(MonadTypedProcess m, HasCallStack) =>
ProcessConfig stdin stdout stderr
-> NaviT e m (Process stdin stdout stderr)
forall e (m :: Type -> Type) stdin stdout stderr a.
(MonadTypedProcess m, HasCallStack) =>
ProcessConfig stdin stdout stderr
-> (Process stdin stdout stderr -> NaviT e m a) -> NaviT e m a
forall (m :: Type -> Type).
Monad m =>
(forall stdin stdout stderr.
HasCallStack =>
ProcessConfig stdin stdout stderr -> m ExitCode)
-> (forall stdin stdoutIgnored stderrIgnored.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderrIgnored
-> m (ExitCode, ByteString, ByteString))
-> (forall stdin stdoutIgnored stderr.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderr
-> m (ExitCode, ByteString))
-> (forall stdin stdoutIgnored stderr.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderr
-> m (ExitCode, ByteString))
-> (forall stdin stdoutIgnored stderr.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderr
-> m (ExitCode, ByteString))
-> (forall stdin stdout stderr a.
HasCallStack =>
ProcessConfig stdin stdout stderr
-> (Process stdin stdout stderr -> m a) -> m a)
-> (forall stdin stdout stderr a.
HasCallStack =>
ProcessConfig stdin stdout stderr
-> (Process stdin stdout stderr -> m a) -> m a)
-> (forall stdin stdout stderr.
HasCallStack =>
ProcessConfig stdin stdout stderr
-> m (Process stdin stdout stderr))
-> (forall stdin stdout stderr.
HasCallStack =>
Process stdin stdout stderr -> m ())
-> (forall stdin stdout stderr.
HasCallStack =>
ProcessConfig stdin stdout stderr -> m ())
-> (forall stdin stdoutIgnored stderrIgnored.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderrIgnored
-> m (ByteString, ByteString))
-> (forall stdin stdoutIgnored stderr.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderr -> m ByteString)
-> (forall stdin stdoutIgnored stderr.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderr -> m ByteString)
-> (forall stdin stdoutIgnored stderr.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderr -> m ByteString)
-> (forall stdin stdout stderr a.
HasCallStack =>
ProcessConfig stdin stdout stderr
-> (Process stdin stdout stderr -> m a) -> m a)
-> (forall stdin stdout stderr a.
HasCallStack =>
ProcessConfig stdin stdout stderr
-> (Process stdin stdout stderr -> m a) -> m a)
-> (forall stdin stdout stderr.
HasCallStack =>
Process stdin stdout stderr -> m ExitCode)
-> (forall stdin stdout stderr.
HasCallStack =>
Process stdin stdout stderr -> m (Maybe ExitCode))
-> (forall stdin stdout stderr.
HasCallStack =>
Process stdin stdout stderr -> m ())
-> MonadTypedProcess m
$crunProcess :: forall e (m :: Type -> Type) stdin stdout stderr.
(MonadTypedProcess m, HasCallStack) =>
ProcessConfig stdin stdout stderr -> NaviT e m ExitCode
runProcess :: forall stdin stdout stderr.
HasCallStack =>
ProcessConfig stdin stdout stderr -> NaviT e m ExitCode
$creadProcess :: forall e (m :: Type -> Type) stdin stdoutIgnored stderrIgnored.
(MonadTypedProcess m, HasCallStack) =>
ProcessConfig stdin stdoutIgnored stderrIgnored
-> NaviT e m (ExitCode, ByteString, ByteString)
readProcess :: forall stdin stdoutIgnored stderrIgnored.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderrIgnored
-> NaviT e m (ExitCode, ByteString, ByteString)
$creadProcessStdout :: forall e (m :: Type -> Type) stdin stdoutIgnored stderr.
(MonadTypedProcess m, HasCallStack) =>
ProcessConfig stdin stdoutIgnored stderr
-> NaviT e m (ExitCode, ByteString)
readProcessStdout :: forall stdin stdoutIgnored stderr.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderr
-> NaviT e m (ExitCode, ByteString)
$creadProcessStderr :: forall e (m :: Type -> Type) stdin stdoutIgnored stderr.
(MonadTypedProcess m, HasCallStack) =>
ProcessConfig stdin stdoutIgnored stderr
-> NaviT e m (ExitCode, ByteString)
readProcessStderr :: forall stdin stdoutIgnored stderr.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderr
-> NaviT e m (ExitCode, ByteString)
$creadProcessInterleaved :: forall e (m :: Type -> Type) stdin stdoutIgnored stderr.
(MonadTypedProcess m, HasCallStack) =>
ProcessConfig stdin stdoutIgnored stderr
-> NaviT e m (ExitCode, ByteString)
readProcessInterleaved :: forall stdin stdoutIgnored stderr.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderr
-> NaviT e m (ExitCode, ByteString)
$cwithProcessWait :: forall e (m :: Type -> Type) stdin stdout stderr a.
(MonadTypedProcess m, HasCallStack) =>
ProcessConfig stdin stdout stderr
-> (Process stdin stdout stderr -> NaviT e m a) -> NaviT e m a
withProcessWait :: forall stdin stdout stderr a.
HasCallStack =>
ProcessConfig stdin stdout stderr
-> (Process stdin stdout stderr -> NaviT e m a) -> NaviT e m a
$cwithProcessTerm :: forall e (m :: Type -> Type) stdin stdout stderr a.
(MonadTypedProcess m, HasCallStack) =>
ProcessConfig stdin stdout stderr
-> (Process stdin stdout stderr -> NaviT e m a) -> NaviT e m a
withProcessTerm :: forall stdin stdout stderr a.
HasCallStack =>
ProcessConfig stdin stdout stderr
-> (Process stdin stdout stderr -> NaviT e m a) -> NaviT e m a
$cstartProcess :: forall e (m :: Type -> Type) stdin stdout stderr.
(MonadTypedProcess m, HasCallStack) =>
ProcessConfig stdin stdout stderr
-> NaviT e m (Process stdin stdout stderr)
startProcess :: forall stdin stdout stderr.
HasCallStack =>
ProcessConfig stdin stdout stderr
-> NaviT e m (Process stdin stdout stderr)
$cstopProcess :: forall e (m :: Type -> Type) stdin stdout stderr.
(MonadTypedProcess m, HasCallStack) =>
Process stdin stdout stderr -> NaviT e m ()
stopProcess :: forall stdin stdout stderr.
HasCallStack =>
Process stdin stdout stderr -> NaviT e m ()
$crunProcess_ :: forall e (m :: Type -> Type) stdin stdout stderr.
(MonadTypedProcess m, HasCallStack) =>
ProcessConfig stdin stdout stderr -> NaviT e m ()
runProcess_ :: forall stdin stdout stderr.
HasCallStack =>
ProcessConfig stdin stdout stderr -> NaviT e m ()
$creadProcess_ :: forall e (m :: Type -> Type) stdin stdoutIgnored stderrIgnored.
(MonadTypedProcess m, HasCallStack) =>
ProcessConfig stdin stdoutIgnored stderrIgnored
-> NaviT e m (ByteString, ByteString)
readProcess_ :: forall stdin stdoutIgnored stderrIgnored.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderrIgnored
-> NaviT e m (ByteString, ByteString)
$creadProcessStdout_ :: forall e (m :: Type -> Type) stdin stdoutIgnored stderr.
(MonadTypedProcess m, HasCallStack) =>
ProcessConfig stdin stdoutIgnored stderr -> NaviT e m ByteString
readProcessStdout_ :: forall stdin stdoutIgnored stderr.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderr -> NaviT e m ByteString
$creadProcessStderr_ :: forall e (m :: Type -> Type) stdin stdoutIgnored stderr.
(MonadTypedProcess m, HasCallStack) =>
ProcessConfig stdin stdoutIgnored stderr -> NaviT e m ByteString
readProcessStderr_ :: forall stdin stdoutIgnored stderr.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderr -> NaviT e m ByteString
$creadProcessInterleaved_ :: forall e (m :: Type -> Type) stdin stdoutIgnored stderr.
(MonadTypedProcess m, HasCallStack) =>
ProcessConfig stdin stdoutIgnored stderr -> NaviT e m ByteString
readProcessInterleaved_ :: forall stdin stdoutIgnored stderr.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderr -> NaviT e m ByteString
$cwithProcessWait_ :: forall e (m :: Type -> Type) stdin stdout stderr a.
(MonadTypedProcess m, HasCallStack) =>
ProcessConfig stdin stdout stderr
-> (Process stdin stdout stderr -> NaviT e m a) -> NaviT e m a
withProcessWait_ :: forall stdin stdout stderr a.
HasCallStack =>
ProcessConfig stdin stdout stderr
-> (Process stdin stdout stderr -> NaviT e m a) -> NaviT e m a
$cwithProcessTerm_ :: forall e (m :: Type -> Type) stdin stdout stderr a.
(MonadTypedProcess m, HasCallStack) =>
ProcessConfig stdin stdout stderr
-> (Process stdin stdout stderr -> NaviT e m a) -> NaviT e m a
withProcessTerm_ :: forall stdin stdout stderr a.
HasCallStack =>
ProcessConfig stdin stdout stderr
-> (Process stdin stdout stderr -> NaviT e m a) -> NaviT e m a
$cwaitExitCode :: forall e (m :: Type -> Type) stdin stdout stderr.
(MonadTypedProcess m, HasCallStack) =>
Process stdin stdout stderr -> NaviT e m ExitCode
waitExitCode :: forall stdin stdout stderr.
HasCallStack =>
Process stdin stdout stderr -> NaviT e m ExitCode
$cgetExitCode :: forall e (m :: Type -> Type) stdin stdout stderr.
(MonadTypedProcess m, HasCallStack) =>
Process stdin stdout stderr -> NaviT e m (Maybe ExitCode)
getExitCode :: forall stdin stdout stderr.
HasCallStack =>
Process stdin stdout stderr -> NaviT e m (Maybe ExitCode)
$ccheckExitCode :: forall e (m :: Type -> Type) stdin stdout stderr.
(MonadTypedProcess m, HasCallStack) =>
Process stdin stdout stderr -> NaviT e m ()
checkExitCode :: forall stdin stdout stderr.
HasCallStack =>
Process stdin stdout stderr -> NaviT e m ()
MonadTypedProcess
)
via (ReaderT e m)
instance
( MonadDBus m,
MonadSTM m,
MonadTime m,
MonadThread m,
MonadTypedProcess m
) =>
MonadNotify (NaviT Env m)
where
sendNote :: HasCallStack => NaviNote -> NaviT Env m ()
sendNote NaviNote
naviNote =
(Env -> NoteSystem 'ConfigPhaseEnv)
-> NaviT Env m (NoteSystem 'ConfigPhaseEnv)
forall r (m :: Type -> Type) a. MonadReader r m => (r -> a) -> m a
asks (Optic' A_Lens NoIx Env (NoteSystem 'ConfigPhaseEnv)
-> Env -> NoteSystem 'ConfigPhaseEnv
forall k (is :: IxList) s a.
Is k A_Getter =>
Optic' k is s a -> s -> a
view Optic' A_Lens NoIx Env (NoteSystem 'ConfigPhaseEnv)
#notifySystem) NaviT Env m (NoteSystem 'ConfigPhaseEnv)
-> (NoteSystem 'ConfigPhaseEnv -> NaviT Env m ()) -> NaviT Env m ()
forall a b. NaviT Env m a -> (a -> NaviT Env m b) -> NaviT Env m b
forall (m :: Type -> Type) a b. Monad m => m a -> (a -> m b) -> m b
>>= \case
NoteSystem 'ConfigPhaseEnv
AppleScript -> Text -> NaviT Env m () -> NaviT Env m ()
forall (m :: Type -> Type) env a k.
(Is k A_Setter, LabelOptic' "namespace" k env Namespace,
MonadReader env m) =>
Text -> m a -> m a
addNamespace Text
"apple-script" (NaviT Env m () -> NaviT Env m ())
-> NaviT Env m () -> NaviT Env m ()
forall a b. (a -> b) -> a -> b
$ do
let noteTxt :: Text
noteTxt = NaviNote -> Text
naviToAppleScript NaviNote
naviNote
$(logDebug) Text
noteTxt
NaviT Env m (ExitCode, ByteString, ByteString) -> NaviT Env m ()
forall (f :: Type -> Type) a. Functor f => f a -> f ()
void (NaviT Env m (ExitCode, ByteString, ByteString) -> NaviT Env m ())
-> NaviT Env m (ExitCode, ByteString, ByteString) -> NaviT Env m ()
forall a b. (a -> b) -> a -> b
$ ProcessConfig () () ()
-> NaviT Env m (ExitCode, ByteString, ByteString)
forall stdin stdoutIgnored stderrIgnored.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderrIgnored
-> NaviT Env m (ExitCode, ByteString, ByteString)
forall (m :: Type -> Type) stdin stdoutIgnored stderrIgnored.
(MonadTypedProcess m, HasCallStack) =>
ProcessConfig stdin stdoutIgnored stderrIgnored
-> m (ExitCode, ByteString, ByteString)
TP.readProcess (Text -> ProcessConfig () () ()
mkProc Text
noteTxt)
DBus DBusF 'ConfigPhaseEnv
client -> Text -> NaviT Env m () -> NaviT Env m ()
forall (m :: Type -> Type) env a k.
(Is k A_Setter, LabelOptic' "namespace" k env Namespace,
MonadReader env m) =>
Text -> m a -> m a
addNamespace Text
"dbus" (NaviT Env m () -> NaviT Env m ())
-> NaviT Env m () -> NaviT Env m ()
forall a b. (a -> b) -> a -> b
$ do
$(logDebug) (NaviNote -> Text
forall a. Show a => a -> Text
showt NaviNote
naviNote)
NaviT Env m () -> NaviT Env m ()
forall (f :: Type -> Type) a. Functor f => f a -> f ()
void (NaviT Env m () -> NaviT Env m ())
-> NaviT Env m () -> NaviT Env m ()
forall a b. (a -> b) -> a -> b
$ Client -> NaviNote -> NaviT Env m ()
forall (m :: Type -> Type).
(MonadDBus m, HasCallStack) =>
Client -> NaviNote -> m ()
DBus.notify Client
DBusF 'ConfigPhaseEnv
client NaviNote
naviNote
NoteSystem 'ConfigPhaseEnv
NotifySend -> Text -> NaviT Env m () -> NaviT Env m ()
forall (m :: Type -> Type) env a k.
(Is k A_Setter, LabelOptic' "namespace" k env Namespace,
MonadReader env m) =>
Text -> m a -> m a
addNamespace Text
"notify-send" (NaviT Env m () -> NaviT Env m ())
-> NaviT Env m () -> NaviT Env m ()
forall a b. (a -> b) -> a -> b
$ do
let noteTxt :: Text
noteTxt = NaviNote -> Text
naviToNotifySend NaviNote
naviNote
$(logDebug) Text
noteTxt
NaviT Env m (ExitCode, ByteString, ByteString) -> NaviT Env m ()
forall (f :: Type -> Type) a. Functor f => f a -> f ()
void (NaviT Env m (ExitCode, ByteString, ByteString) -> NaviT Env m ())
-> NaviT Env m (ExitCode, ByteString, ByteString) -> NaviT Env m ()
forall a b. (a -> b) -> a -> b
$ ProcessConfig () () ()
-> NaviT Env m (ExitCode, ByteString, ByteString)
forall stdin stdoutIgnored stderrIgnored.
HasCallStack =>
ProcessConfig stdin stdoutIgnored stderrIgnored
-> NaviT Env m (ExitCode, ByteString, ByteString)
forall (m :: Type -> Type) stdin stdoutIgnored stderrIgnored.
(MonadTypedProcess m, HasCallStack) =>
ProcessConfig stdin stdoutIgnored stderrIgnored
-> m (ExitCode, ByteString, ByteString)
TP.readProcess (Text -> ProcessConfig () () ()
mkProc Text
noteTxt)
where
mkProc :: Text -> ProcessConfig () () ()
mkProc = String -> ProcessConfig () () ()
TP.shell (String -> ProcessConfig () () ())
-> (Text -> String) -> Text -> ProcessConfig () () ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> Type) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Text -> String
unpackText
instance
( MonadSTM m,
MonadTime m,
MonadThread m
) =>
MonadLogger (NaviT Env m)
where
monadLoggerLog :: forall msg.
ToLogStr msg =>
Loc -> Text -> LogLevel -> msg -> NaviT Env m ()
monadLoggerLog Loc
loc Text
_src LogLevel
lvl msg
msg = do
Maybe LogEnv
mLogEnv <- (Env -> Maybe LogEnv) -> NaviT Env m (Maybe LogEnv)
forall r (m :: Type -> Type) a. MonadReader r m => (r -> a) -> m a
asks Env -> Maybe LogEnv
forall env. HasLogEnv env => env -> Maybe LogEnv
getLogEnv
case Maybe LogEnv
mLogEnv of
Just LogEnv
logEnv -> do
let logQueue :: TBQueue LogStr
logQueue = LogEnv
logEnv LogEnv
-> Optic' A_Lens NoIx LogEnv (TBQueue LogStr) -> TBQueue LogStr
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx LogEnv (TBQueue LogStr)
#logQueue
logLevel :: LogLevel
logLevel = LogEnv
logEnv LogEnv -> Optic' A_Lens NoIx LogEnv LogLevel -> LogLevel
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx LogEnv LogLevel
#logLevel
Bool -> NaviT Env m () -> NaviT Env m ()
forall (f :: Type -> Type). Applicative f => Bool -> f () -> f ()
when (LogLevel
logLevel LogLevel -> LogLevel -> Bool
forall a. Ord a => a -> a -> Bool
<= LogLevel
lvl) (NaviT Env m () -> NaviT Env m ())
-> NaviT Env m () -> NaviT Env m ()
forall a b. (a -> b) -> a -> b
$ do
LogStr
formatted <- LogFormatter -> LogLevel -> msg -> NaviT Env m LogStr
forall (m :: Type -> Type) env msg k.
(HasCallStack, Is k A_Getter,
LabelOptic' "namespace" k env Namespace, MonadReader env m,
MonadThread m, MonadTime m, ToLogStr msg) =>
LogFormatter -> LogLevel -> msg -> m LogStr
formatLog LogFormatter
formatter LogLevel
lvl msg
msg
TBQueue LogStr -> LogStr -> NaviT Env m ()
forall (m :: Type -> Type) a.
(HasCallStack, MonadSTM m) =>
TBQueue a -> a -> m ()
writeTBQueueA TBQueue LogStr
logQueue LogStr
formatted
Maybe LogEnv
Nothing -> () -> NaviT Env m ()
forall a. a -> NaviT Env m a
forall (f :: Type -> Type) a. Applicative f => a -> f a
pure ()
where
formatter :: LogFormatter
formatter = Optic A_Lens NoIx LogFormatter LogFormatter Bool Bool
-> Bool -> LogFormatter -> LogFormatter
forall k (is :: IxList) s t a b.
Is k A_Setter =>
Optic k is s t a b -> b -> s -> t
set' Optic A_Lens NoIx LogFormatter LogFormatter Bool Bool
#threadLabel Bool
True (Loc -> LogFormatter
defaultLogFormatter Loc
loc)
runNaviT :: NaviT env m a -> env -> m a
runNaviT :: forall env (m :: Type -> Type) a. NaviT env m a -> env -> m a
runNaviT (MkNaviT ReaderT env m a
rdr) = ReaderT env m a -> env -> m a
forall r (m :: Type -> Type) a. ReaderT r m a -> r -> m a
runReaderT ReaderT env m a
rdr
{-# INLINEABLE runNaviT #-}