hsdev-0.3.2.3: Haskell development library

Safe HaskellNone
LanguageHaskell98

HsDev.Database.Update.Types

Synopsis

Documentation

newtype UpdateM m a Source #

Instances
MonadTrans UpdateM Source # 
Instance details

Defined in HsDev.Database.Update.Types

Methods

lift :: Monad m => m a -> UpdateM m a #

Monad m => MonadReader UpdateState (UpdateM m) Source # 
Instance details

Defined in HsDev.Database.Update.Types

Methods

ask :: UpdateM m UpdateState #

local :: (UpdateState -> UpdateState) -> UpdateM m a -> UpdateM m a #

reader :: (UpdateState -> a) -> UpdateM m a #

MonadBase b m => MonadBase b (UpdateM m) Source # 
Instance details

Defined in HsDev.Database.Update.Types

Methods

liftBase :: b α -> UpdateM m α #

MonadBaseControl b m => MonadBaseControl b (UpdateM m) Source # 
Instance details

Defined in HsDev.Database.Update.Types

Associated Types

type StM (UpdateM m) a :: Type #

Methods

liftBaseWith :: (RunInBase (UpdateM m) b -> b a) -> UpdateM m a #

restoreM :: StM (UpdateM m) a -> UpdateM m a #

Monad m => Monad (UpdateM m) Source # 
Instance details

Defined in HsDev.Database.Update.Types

Methods

(>>=) :: UpdateM m a -> (a -> UpdateM m b) -> UpdateM m b #

(>>) :: UpdateM m a -> UpdateM m b -> UpdateM m b #

return :: a -> UpdateM m a #

fail :: String -> UpdateM m a #

Functor m => Functor (UpdateM m) Source # 
Instance details

Defined in HsDev.Database.Update.Types

Methods

fmap :: (a -> b) -> UpdateM m a -> UpdateM m b #

(<$) :: a -> UpdateM m b -> UpdateM m a #

MonadFail m => MonadFail (UpdateM m) Source # 
Instance details

Defined in HsDev.Database.Update.Types

Methods

fail :: String -> UpdateM m a #

Applicative m => Applicative (UpdateM m) Source # 
Instance details

Defined in HsDev.Database.Update.Types

Methods

pure :: a -> UpdateM m a #

(<*>) :: UpdateM m (a -> b) -> UpdateM m a -> UpdateM m b #

liftA2 :: (a -> b -> c) -> UpdateM m a -> UpdateM m b -> UpdateM m c #

(*>) :: UpdateM m a -> UpdateM m b -> UpdateM m b #

(<*) :: UpdateM m a -> UpdateM m b -> UpdateM m a #

MonadPlus m => MonadPlus (UpdateM m) Source # 
Instance details

Defined in HsDev.Database.Update.Types

Methods

mzero :: UpdateM m a #

mplus :: UpdateM m a -> UpdateM m a -> UpdateM m a #

Alternative m => Alternative (UpdateM m) Source # 
Instance details

Defined in HsDev.Database.Update.Types

Methods

empty :: UpdateM m a #

(<|>) :: UpdateM m a -> UpdateM m a -> UpdateM m a #

some :: UpdateM m a -> UpdateM m [a] #

many :: UpdateM m a -> UpdateM m [a] #

MonadIO m => MonadIO (UpdateM m) Source # 
Instance details

Defined in HsDev.Database.Update.Types

Methods

liftIO :: IO a -> UpdateM m a #

MonadThrow m => MonadThrow (UpdateM m) Source # 
Instance details

Defined in HsDev.Database.Update.Types

Methods

throwM :: Exception e => e -> UpdateM m a #

MonadCatch m => MonadCatch (UpdateM m) Source # 
Instance details

Defined in HsDev.Database.Update.Types

Methods

catch :: Exception e => UpdateM m a -> (e -> UpdateM m a) -> UpdateM m a #

MonadMask m => MonadMask (UpdateM m) Source # 
Instance details

Defined in HsDev.Database.Update.Types

Methods

mask :: ((forall a. UpdateM m a -> UpdateM m a) -> UpdateM m b) -> UpdateM m b #

uninterruptibleMask :: ((forall a. UpdateM m a -> UpdateM m a) -> UpdateM m b) -> UpdateM m b #

generalBracket :: UpdateM m a -> (a -> ExitCase b -> UpdateM m c) -> (a -> UpdateM m b) -> UpdateM m (b, c) #

(MonadIO m, MonadMask m) => MonadLog (UpdateM m) Source # 
Instance details

Defined in HsDev.Database.Update.Types

Methods

askLog :: UpdateM m Log #

localLog :: (Log -> Log) -> UpdateM m a -> UpdateM m a #

ServerMonadBase m => CommandMonad (UpdateM m) Source # 
Instance details

Defined in HsDev.Database.Update.Types

ServerMonadBase m => SessionMonad (UpdateM m) Source # 
Instance details

Defined in HsDev.Database.Update.Types

Monad m => MonadWriter [ModuleLocation] (UpdateM m) Source # 
Instance details

Defined in HsDev.Database.Update.Types

Methods

writer :: (a, [ModuleLocation]) -> UpdateM m a #

tell :: [ModuleLocation] -> UpdateM m () #

listen :: UpdateM m a -> UpdateM m (a, [ModuleLocation]) #

pass :: UpdateM m (a, [ModuleLocation] -> [ModuleLocation]) -> UpdateM m a #

type StM (UpdateM m) a Source # 
Instance details

Defined in HsDev.Database.Update.Types

class FromCmd a where Source #

Methods

cmdP :: Parser a Source #

Instances
FromCmd SearchQuery Source # 
Instance details

Defined in HsDev.Server.Types

FromCmd TargetFilter Source # 
Instance details

Defined in HsDev.Server.Types

FromCmd FileSource Source # 
Instance details

Defined in HsDev.Server.Types

FromCmd Command Source # 
Instance details

Defined in HsDev.Server.Types

FromCmd ClientOpts Source # 
Instance details

Defined in HsDev.Server.Types

FromCmd ServerOpts Source # 
Instance details

Defined in HsDev.Server.Types

FromCmd ServerCommand Source # 
Instance details

Defined in HsDev.Server.Types

data ClientOpts Source #

Client options

Instances
Show ClientOpts Source # 
Instance details

Defined in HsDev.Server.Types

Default ClientOpts Source # 
Instance details

Defined in HsDev.Server.Types

Methods

def :: ClientOpts #

FromCmd ClientOpts Source # 
Instance details

Defined in HsDev.Server.Types

newtype ClientM m a Source #

Constructors

ClientM 
Instances
MonadTrans ClientM Source # 
Instance details

Defined in HsDev.Server.Types

Methods

lift :: Monad m => m a -> ClientM m a #

MonadBase b m => MonadBase b (ClientM m) Source # 
Instance details

Defined in HsDev.Server.Types

Methods

liftBase :: b α -> ClientM m α #

MonadBaseControl b m => MonadBaseControl b (ClientM m) Source # 
Instance details

Defined in HsDev.Server.Types

Associated Types

type StM (ClientM m) a :: Type #

Methods

liftBaseWith :: (RunInBase (ClientM m) b -> b a) -> ClientM m a #

restoreM :: StM (ClientM m) a -> ClientM m a #

Monad m => Monad (ClientM m) Source # 
Instance details

Defined in HsDev.Server.Types

Methods

(>>=) :: ClientM m a -> (a -> ClientM m b) -> ClientM m b #

(>>) :: ClientM m a -> ClientM m b -> ClientM m b #

return :: a -> ClientM m a #

fail :: String -> ClientM m a #

Functor m => Functor (ClientM m) Source # 
Instance details

Defined in HsDev.Server.Types

Methods

fmap :: (a -> b) -> ClientM m a -> ClientM m b #

(<$) :: a -> ClientM m b -> ClientM m a #

MonadFail m => MonadFail (ClientM m) Source # 
Instance details

Defined in HsDev.Server.Types

Methods

fail :: String -> ClientM m a #

Applicative m => Applicative (ClientM m) Source # 
Instance details

Defined in HsDev.Server.Types

Methods

pure :: a -> ClientM m a #

(<*>) :: ClientM m (a -> b) -> ClientM m a -> ClientM m b #

liftA2 :: (a -> b -> c) -> ClientM m a -> ClientM m b -> ClientM m c #

(*>) :: ClientM m a -> ClientM m b -> ClientM m b #

(<*) :: ClientM m a -> ClientM m b -> ClientM m a #

MonadPlus m => MonadPlus (ClientM m) Source # 
Instance details

Defined in HsDev.Server.Types

Methods

mzero :: ClientM m a #

mplus :: ClientM m a -> ClientM m a -> ClientM m a #

Alternative m => Alternative (ClientM m) Source # 
Instance details

Defined in HsDev.Server.Types

Methods

empty :: ClientM m a #

(<|>) :: ClientM m a -> ClientM m a -> ClientM m a #

some :: ClientM m a -> ClientM m [a] #

many :: ClientM m a -> ClientM m [a] #

MonadIO m => MonadIO (ClientM m) Source # 
Instance details

Defined in HsDev.Server.Types

Methods

liftIO :: IO a -> ClientM m a #

MonadThrow m => MonadThrow (ClientM m) Source # 
Instance details

Defined in HsDev.Server.Types

Methods

throwM :: Exception e => e -> ClientM m a #

MonadCatch m => MonadCatch (ClientM m) Source # 
Instance details

Defined in HsDev.Server.Types

Methods

catch :: Exception e => ClientM m a -> (e -> ClientM m a) -> ClientM m a #

MonadMask m => MonadMask (ClientM m) Source # 
Instance details

Defined in HsDev.Server.Types

Methods

mask :: ((forall a. ClientM m a -> ClientM m a) -> ClientM m b) -> ClientM m b #

uninterruptibleMask :: ((forall a. ClientM m a -> ClientM m a) -> ClientM m b) -> ClientM m b #

generalBracket :: ClientM m a -> (a -> ExitCase b -> ClientM m c) -> (a -> ClientM m b) -> ClientM m (b, c) #

(MonadIO m, MonadMask m) => MonadLog (ClientM m) Source # 
Instance details

Defined in HsDev.Server.Types

Methods

askLog :: ClientM m Log #

localLog :: (Log -> Log) -> ClientM m a -> ClientM m a #

ServerMonadBase m => CommandMonad (ClientM m) Source # 
Instance details

Defined in HsDev.Server.Types

ServerMonadBase m => SessionMonad (ClientM m) Source # 
Instance details

Defined in HsDev.Server.Types

MFunctor ClientM Source # 
Instance details

Defined in HsDev.Server.Types

Methods

hoist :: Monad m => (forall a. m a -> n a) -> ClientM m b -> ClientM n b #

type StM (ClientM m) a Source # 
Instance details

Defined in HsDev.Server.Types

newtype ServerM m a Source #

Constructors

ServerM 

Fields

Instances
MonadTrans ServerM Source # 
Instance details

Defined in HsDev.Server.Types

Methods

lift :: Monad m => m a -> ServerM m a #

Monad m => MonadReader Session (ServerM m) Source # 
Instance details

Defined in HsDev.Server.Types

Methods

ask :: ServerM m Session #

local :: (Session -> Session) -> ServerM m a -> ServerM m a #

reader :: (Session -> a) -> ServerM m a #

MonadBase b m => MonadBase b (ServerM m) Source # 
Instance details

Defined in HsDev.Server.Types

Methods

liftBase :: b α -> ServerM m α #

MonadBaseControl b m => MonadBaseControl b (ServerM m) Source # 
Instance details

Defined in HsDev.Server.Types

Associated Types

type StM (ServerM m) a :: Type #

Methods

liftBaseWith :: (RunInBase (ServerM m) b -> b a) -> ServerM m a #

restoreM :: StM (ServerM m) a -> ServerM m a #

Monad m => Monad (ServerM m) Source # 
Instance details

Defined in HsDev.Server.Types

Methods

(>>=) :: ServerM m a -> (a -> ServerM m b) -> ServerM m b #

(>>) :: ServerM m a -> ServerM m b -> ServerM m b #

return :: a -> ServerM m a #

fail :: String -> ServerM m a #

Functor m => Functor (ServerM m) Source # 
Instance details

Defined in HsDev.Server.Types

Methods

fmap :: (a -> b) -> ServerM m a -> ServerM m b #

(<$) :: a -> ServerM m b -> ServerM m a #

MonadFail m => MonadFail (ServerM m) Source # 
Instance details

Defined in HsDev.Server.Types

Methods

fail :: String -> ServerM m a #

Applicative m => Applicative (ServerM m) Source # 
Instance details

Defined in HsDev.Server.Types

Methods

pure :: a -> ServerM m a #

(<*>) :: ServerM m (a -> b) -> ServerM m a -> ServerM m b #

liftA2 :: (a -> b -> c) -> ServerM m a -> ServerM m b -> ServerM m c #

(*>) :: ServerM m a -> ServerM m b -> ServerM m b #

(<*) :: ServerM m a -> ServerM m b -> ServerM m a #

MonadPlus m => MonadPlus (ServerM m) Source # 
Instance details

Defined in HsDev.Server.Types

Methods

mzero :: ServerM m a #

mplus :: ServerM m a -> ServerM m a -> ServerM m a #

Alternative m => Alternative (ServerM m) Source # 
Instance details

Defined in HsDev.Server.Types

Methods

empty :: ServerM m a #

(<|>) :: ServerM m a -> ServerM m a -> ServerM m a #

some :: ServerM m a -> ServerM m [a] #

many :: ServerM m a -> ServerM m [a] #

MonadIO m => MonadIO (ServerM m) Source # 
Instance details

Defined in HsDev.Server.Types

Methods

liftIO :: IO a -> ServerM m a #

MonadThrow m => MonadThrow (ServerM m) Source # 
Instance details

Defined in HsDev.Server.Types

Methods

throwM :: Exception e => e -> ServerM m a #

MonadCatch m => MonadCatch (ServerM m) Source # 
Instance details

Defined in HsDev.Server.Types

Methods

catch :: Exception e => ServerM m a -> (e -> ServerM m a) -> ServerM m a #

MonadMask m => MonadMask (ServerM m) Source # 
Instance details

Defined in HsDev.Server.Types

Methods

mask :: ((forall a. ServerM m a -> ServerM m a) -> ServerM m b) -> ServerM m b #

uninterruptibleMask :: ((forall a. ServerM m a -> ServerM m a) -> ServerM m b) -> ServerM m b #

generalBracket :: ServerM m a -> (a -> ExitCase b -> ServerM m c) -> (a -> ServerM m b) -> ServerM m (b, c) #

(MonadIO m, MonadMask m) => MonadLog (ServerM m) Source # 
Instance details

Defined in HsDev.Server.Types

Methods

askLog :: ServerM m Log #

localLog :: (Log -> Log) -> ServerM m a -> ServerM m a #

ServerMonadBase m => SessionMonad (ServerM m) Source # 
Instance details

Defined in HsDev.Server.Types

MFunctor ServerM Source # 
Instance details

Defined in HsDev.Server.Types

Methods

hoist :: Monad m => (forall a. m a -> n a) -> ServerM m b -> ServerM n b #

type StM (ServerM m) a Source # 
Instance details

Defined in HsDev.Server.Types

type StM (ServerM m) a = StM (ReaderT Session m) a

class (ServerMonadBase m, MonadLog m) => SessionMonad m where Source #

Methods

getSession :: m Session Source #

localSession :: (Session -> Session) -> m a -> m a Source #

Instances
ServerMonadBase m => SessionMonad (ClientM m) Source # 
Instance details

Defined in HsDev.Server.Types

ServerMonadBase m => SessionMonad (ServerM m) Source # 
Instance details

Defined in HsDev.Server.Types

ServerMonadBase m => SessionMonad (UpdateM m) Source # 
Instance details

Defined in HsDev.Database.Update.Types

(SessionMonad m, Monoid w) => SessionMonad (WriterT w m) Source # 
Instance details

Defined in HsDev.Server.Types

SessionMonad m => SessionMonad (StateT s m) Source # 
Instance details

Defined in HsDev.Server.Types

Methods

getSession :: StateT s m Session Source #

localSession :: (Session -> Session) -> StateT s m a -> StateT s m a Source #

SessionMonad m => SessionMonad (ReaderT r m) Source # 
Instance details

Defined in HsDev.Server.Types

askSession :: SessionMonad m => (Session -> a) -> m a Source #

withSession :: Session -> ServerM m a -> m a Source #

Run action on session

serverListen :: SessionMonad m => m [Message] Source #

Listen server's log

serverSetLogLevel :: SessionMonad m => Level -> m Level Source #

Set server's log config

serverWait :: SessionMonad m => m () Source #

Wait for server

serverWaitClients :: SessionMonad m => m () Source #

Wait while clients disconnects

serverSqlDatabase :: SessionMonad m => m Connection Source #

Get sql connection

openSqlConnection :: SessionMonad m => m Connection Source #

Open new sql connection

closeSqlConnection :: SessionMonad m => Connection -> m () Source #

Close sql connection

withSqlConnection :: SessionMonad m => m a -> m a Source #

Locally opens new connection, updating Session

withSqlTransaction :: SessionMonad m => ServerM IO a -> m a Source #

With sql transaction

serverSetFileContents :: SessionMonad m => Path -> Maybe Text -> m () Source #

Set custom file contents

inSessionGhc :: SessionMonad m => GhcM a -> m a Source #

In ghc session

inSessionUpdater :: SessionMonad m => ServerM IO a -> m a Source #

In updater

postSessionUpdater :: SessionMonad m => ServerM IO a -> m (Async a) Source #

Post to updater and return

serverExit :: SessionMonad m => m () Source #

Exit session

silentOpts :: ServerOpts Source #

Silent server with no connection, useful for ghci