axel-0.0.12: src/Axel/Eff/App.hs
module Axel.Eff.App where
import Axel.Prelude
import Axel.Eff.Console (Console, runConsole)
import Axel.Eff.Error (Error, renderError, unsafeRunError)
import Axel.Eff.FileSystem (FileSystem, runFileSystem)
import Axel.Eff.Ghci (Ghci, runStackGhci)
import Axel.Eff.Log (Log, runLogAsFileSystem)
import Axel.Eff.Process (Process, runProcess)
import Axel.Eff.Random (Random, runRandom)
import Axel.Eff.Resource (Resource, runResource)
import Axel.Eff.Time (Time, runTime)
import qualified Polysemy as Sem
import qualified Polysemy.Error as Sem
type AppEffs
= '[ Log, Console, Sem.Error Error, FileSystem, Ghci, Process, Resource, Random, Time, Sem.Embed IO]
runApp :: Sem.Sem AppEffs a -> IO a
runApp =
Sem.runM .
runTime .
runRandom .
runResource .
runProcess .
runStackGhci .
runFileSystem .
unsafeRunError renderError .
runConsole . runLogAsFileSystem (FilePath "axelCompilation.log")