chiasma-0.10.0.0: lib/Chiasma/Effect/TmuxClient.hs
module Chiasma.Effect.TmuxClient where
import Prelude hiding (send)
import Chiasma.Data.TmuxRequest (TmuxRequest)
import Chiasma.Data.TmuxResponse (TmuxResponse)
data TmuxClient (i :: Type) (o :: Type) :: Effect where
Send :: i -> TmuxClient i o m o
Schedule :: i -> TmuxClient i o m ()
makeSem ''TmuxClient
type ScopedTmux i o =
Scoped_ (TmuxClient i o)
type NativeTmux =
ScopedTmux TmuxRequest TmuxResponse
flush ::
Member (TmuxClient e d) r =>
InterpreterFor (TmuxClient e d) r
flush =
interpret \case
Send cmd ->
send cmd
Schedule cmd ->
void (send cmd)