BlogLiterately-0.5.4: A tool for posting Haskelly articles to
blogs  MaintainerBrent Yorgey <> Safe HaskellNone     Format
specially marked blocks as interactive ghci sessions. Uses some
ugly but effective code for interacting with an external ghci
process taken from lhs2TeX.   Running ghci  type ProcessInfo =
(Handle, Handle, Handle, ProcessHandle)Source  Information about
a running process: stdin, stdout, stderr, and a handle.
ghciEval :: GhciInput -> ReaderT ProcessInfo IO GhciOutputSource
Evaluate an expression using an external ghci process.
withGhciProcess :: FilePath -> ReaderT ProcessInfo IO a -> IO
aSource  Start an external ghci process, run a computation with
access to it, and finally stop the process.  isLiterate ::
FilePath -> IO BoolSource  Poor man's check to see whether we
have a literate Haskell file.  stopGhci :: ProcessInfo -> IO
()Source  Stop a ghci process by passing it :q and waiting for
it to exit.  Extracting output  To extract the answer from
ghci's output we use a simple techniqu