Copyright | (c) Adam Conner-Sax 2019 |
---|---|
License | BSD-3-Clause |
Maintainer | adam_conner_sax@yahoo.com |
Stability | experimental |
Safe Haskell | None |
Language | Haskell2010 |
Polysemy PandocMonad effect. Allows a polysemy monad to handle functions actions with a PandocMonad contraint via polysemy effects and IO.
Synopsis
- data Pandoc m r
- type PandocEffects effs = (Member Pandoc effs, Member (Error PandocError) effs, Member PrefixLog effs, Member (Logger LogEntry) effs)
- type PandocEffectsIO effs = (PandocEffects effs, Member (Lift IO) effs)
- lookupEnv :: forall r. Member Pandoc r => String -> Sem r (Maybe [Char])
- getCurrentTime :: forall r. Member Pandoc r => Sem r UTCTime
- getCurrentTimeZone :: forall r. Member Pandoc r => Sem r TimeZone
- newStdGen :: forall r. Member Pandoc r => Sem r StdGen
- newUniqueHash :: forall r. Member Pandoc r => Sem r Int
- openURL :: forall r. Member Pandoc r => String -> Sem r (ByteString, Maybe [Char])
- readFileLazy :: forall r. Member Pandoc r => FilePath -> Sem r ByteString
- readFileStrict :: forall r. Member Pandoc r => FilePath -> Sem r ByteString
- glob :: forall r. Member Pandoc r => String -> Sem r [[Char]]
- fileExists :: forall r. Member Pandoc r => FilePath -> Sem r Bool
- getDataFileName :: forall r. Member Pandoc r => FilePath -> Sem r [Char]
- getModificationTime :: forall r. Member Pandoc r => FilePath -> Sem r UTCTime
- getCommonState :: forall r. Member Pandoc r => Sem r CommonState
- putCommonState :: forall r. Member Pandoc r => CommonState -> Sem r ()
- getsCommonState :: forall r r. Member Pandoc r => (CommonState -> r) -> Sem r r
- modifyCommonState :: forall r. Member Pandoc r => (CommonState -> CommonState) -> Sem r ()
- logOutput :: forall r. Member Pandoc r => LogMessage -> Sem r ()
- trace :: forall r. Member Pandoc r => String -> Sem r ()
- interpretInPandocMonad :: forall m effs a. (PandocMonad m, Member (Lift m) effs, Member (Logger LogEntry) effs) => Sem (Pandoc ': effs) a -> Sem effs a
- interpretInIO :: forall effs a. (Member (Logger LogEntry) effs, Member (Lift IO) effs, Member (Error PandocError) effs) => Sem (Pandoc ': effs) a -> Sem effs a
- runIO :: [LogSeverity] -> Sem '[Pandoc, Logger LogEntry, PrefixLog, Error PandocError, Lift IO] a -> IO (Either PandocError a)
- absorbPandocMonad :: Members '[Error PandocError, Pandoc] r => (PandocMonad (Sem r) => Sem r a) -> Sem r a
- data PandocError
Types
type PandocEffects effs = (Member Pandoc effs, Member (Error PandocError) effs, Member PrefixLog effs, Member (Logger LogEntry) effs) Source #
Constraint helper for using this set of effects in IO.
type PandocEffectsIO effs = (PandocEffects effs, Member (Lift IO) effs) Source #
Constraint helper for using this set of effects in IO.
Actions
readFileLazy :: forall r. Member Pandoc r => FilePath -> Sem r ByteString Source #
readFileStrict :: forall r. Member Pandoc r => FilePath -> Sem r ByteString Source #
Interpreters
interpretInPandocMonad :: forall m effs a. (PandocMonad m, Member (Lift m) effs, Member (Logger LogEntry) effs) => Sem (Pandoc ': effs) a -> Sem effs a Source #
Interpret the Pandoc effect in another monad (which must satisy the PandocMonad constraint) and Knit.Effect.Logger
interpretInIO :: forall effs a. (Member (Logger LogEntry) effs, Member (Lift IO) effs, Member (Error PandocError) effs) => Sem (Pandoc ': effs) a -> Sem effs a Source #
Interpret the Pandoc effect using IO
, Knit.Effect.Logger
and PolySemy.Error PandocError
Runners
runIO :: [LogSeverity] -> Sem '[Pandoc, Logger LogEntry, PrefixLog, Error PandocError, Lift IO] a -> IO (Either PandocError a) Source #
Run the Pandoc effects, and log messages with the given severity, over IO. If there is a Pandoc error, you will get a Left in the resulting Either.
Interop
absorbPandocMonad :: Members '[Error PandocError, Pandoc] r => (PandocMonad (Sem r) => Sem r a) -> Sem r a Source #
absorb a PandocMonad
constraint into
Members [Pandoc, Error PandocError] r => Sem r
Re-Exports
data PandocError #