hsdev-0.1.3.4: Haskell development library and tool with support of autocompletion, symbol info, go to declaration, find references etc.

Safe HaskellNone
LanguageHaskell98

HsDev.Tools.GhcMod

Synopsis

Documentation

ghcModWorker :: Either Project Cabal -> IO (Worker (GhcModT IO)) Source

Create ghc-mod worker for project or for sandbox

ghcModMultiWorker :: IO (Worker (ReaderT WorkerMap IO)) Source

Manage many ghc-mod workers for each project/sandbox

data GhcModT m a :: (* -> *) -> * -> *

This is basically a newtype wrapper around StateT, ErrorT, JournalT and ReaderT with custom instances for GhcMonad and it's constraints that means you can run (almost) all functions from the GHC API on top of GhcModT transparently.

The inner monad m should have instances for MonadIO and MonadBaseControl IO, in the common case this is simply IO. Most mtl monads already have MonadBaseControl IO instances, see the monad-control package.