chiasma-0.12.2.0: lib/Chiasma/TmuxNative.hs
module Chiasma.TmuxNative where
import Polysemy.Internal.Sing (KnownList)
import Chiasma.Data.CodecError (CodecError)
import Chiasma.Data.Panes (Panes, TmuxPanes)
import Chiasma.Data.TmuxRequest (TmuxRequest)
import Chiasma.Data.TmuxResponse (TmuxResponse)
import Chiasma.Effect.Codec (NativeCodecE)
import Chiasma.Effect.TmuxApi (TmuxApi)
import Chiasma.Effect.TmuxClient (NativeTmux, TmuxClient)
import Chiasma.Interpreter.TmuxApi (InterpretApisNative, RestopApisNative, TmuxApis, type (<$>))
import Chiasma.Tmux (withTmux, withTmuxApis, withTmuxApis', withTmuxApis_, withTmux_)
withTmuxApisNative' ::
∀ commands r a .
InterpretApisNative commands r =>
Member NativeTmux r =>
Sem (TmuxApis commands CodecError ++ TmuxClient TmuxRequest TmuxResponse : r) a ->
Sem r a
withTmuxApisNative' =
withTmuxApis' @commands @CodecError
withTmuxApisNative ::
∀ commands r .
KnownList (TmuxApis commands CodecError) =>
InterpretApisNative commands r =>
Member NativeTmux r =>
InterpretersFor (TmuxApis commands CodecError) r
withTmuxApisNative =
withTmuxApis @commands @CodecError
withTmuxApisNative_ ::
∀ commands r .
KnownList (TmuxApi <$> commands) =>
RestopApisNative commands r =>
Member NativeTmux r =>
InterpretersFor (TmuxApi <$> commands) r
withTmuxApisNative_ =
withTmuxApis_ @commands @CodecError
withTmuxNative ::
∀ command r .
Members [NativeTmux, NativeCodecE command] r =>
InterpreterFor (TmuxApi command !! CodecError) r
withTmuxNative =
withTmux
withTmuxNative_ ::
∀ command r .
Members [NativeTmux, NativeCodecE command, Stop CodecError] r =>
InterpreterFor (TmuxApi command) r
withTmuxNative_ =
withTmux_
withPanesNative ::
∀ p r .
Members [NativeTmux, NativeCodecE (Panes p)] r =>
InterpreterFor (TmuxPanes p !! CodecError) r
withPanesNative =
withTmuxNative
withPanesNative_ ::
∀ p r .
Members [NativeTmux, NativeCodecE (Panes p), Stop CodecError] r =>
InterpreterFor (TmuxPanes p) r
withPanesNative_ =
withTmuxNative_