-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | A server process that runs hint.
--
-- This library provides a server process (implemented using eprocess)
-- that can receive and run actions in the Interpreter monad.
@package hint-server
@version 1.2.2
-- | This module provides a server process (implemented using eprocess)
-- that can receive and run actions in the Interpreter monad.
module Language.Haskell.Interpreter.Server
-- | The server handle. It's returned on process creation and should be
-- used afterwards to send messages to it
data ServerHandle
-- | Starts the server. Usage: handle <- start
start :: IO ServerHandle
-- | Stops the server. Usage: stop serverhandle
stop :: ServerHandle -> IO ()
-- | Runs the action. Usage: result <- runIn serverhandle action
--
runIn :: ServerHandle -> InterpreterT IO a -> IO (Either InterpreterError a)
-- | Asynchronically runs an action and returns the MVar that will
-- be filled with the result when it's there. Usage: mvar <-
-- asyncRunIn serverhandle action
asyncRunIn :: ServerHandle -> InterpreterT IO a -> IO (MVar (Either InterpreterError a))
-- | Runs all the pending actions (those that where run using
-- asyncRunIn. Usage: flush serverhandle
flush :: ServerHandle -> IO (Either InterpreterError ())
instance MonadInterpreter m => MonadInterpreter (ReceiverT r m)