runPreProcessor
  :: Monad m
  => Source m ByteString -> UTCTime -> PreProcessorT m ()
  -> m (PreProcessorOutput m)
runPreProcessor source time
  = flip runReaderT env . execWriterT . unPreProcessorT
  where env = PreProcessorEnv {ppeTime=time, ppeSource=source}
runPreProcessor
  :: Monad m
  => Source m ByteString -> UTCTime -> PreProcessorT m ()
  -> m (PreProcessorOutput m)
runPreProcessor source time
  = flip runReaderT env . execWriterT . unPreProcessorT
  where env = PreProcessorEnv {ppeTime=time, ppeSource=source}
runPreProcessor source time
  = flip runReaderT env . execWriterT . unPreProcessorT
  where env = PreProcessorEnv {ppeTime=time, ppeSource=source}