module Chiasma.Api.Class( TmuxApi(..), DecodeTmuxResponse(..), ) where import Control.Monad.IO.Class (MonadIO) import Control.Monad.Trans.Except (ExceptT) import Chiasma.Codec.Decode (TmuxDecodeError) import Chiasma.Data.TmuxThunk (Cmds, TmuxError) class TmuxApi a where runCommands :: MonadIO m => a -> ([String] -> Either TmuxDecodeError b) -> Cmds -> ExceptT TmuxError m [b] class DecodeTmuxResponse a where decode :: String -> Either TmuxError a