loadJournal
  :: (MonadError Msg m, MonadIO m) =>
     [Ledgers -> Maybe FilePath]
     -> Options User config env -> m Journal
loadJournal journals options = do
  liftIO $ printf "(Reading journal from \n%s)\n...\n\n"
    $ intercalateL "\n" $ show <$> jfiles
  journal <- liftIO $
      -- to conquer problems with the `instance Monoid Journal`
     right mconcat' . sequence <$> mapM (readJournalFile definputopts) jfiles
  either (throwError . T.pack) return journal
  where jfiles = runReader (catMaybes <$> mapM (mapM absolute <=< readLedger)
                           journals) options
        jfiles :: [FilePath]
loadJournal
  :: (MonadError Msg m, MonadIO m) =>
     [Ledgers -> Maybe FilePath]
     -> Options User config env -> m Journal
loadJournal journals options = do
  liftIO $ printf "(Reading journal from \n%s)\n...\n\n"
    $ intercalateL "\n" $ show <$> jfiles
  journal <- liftIO $
      -- to conquer problems with the `instance Monoid Journal`
     right mconcat' . sequence <$> mapM (readJournalFile definputopts) jfiles
  either (throwError . T.pack) return journal
  where jfiles = runReader (catMaybes <$> mapM (mapM absolute <=< readLedger)
                           journals) options
        jfiles :: [FilePath]
loadJournal journals options = do
  liftIO $ printf "(Reading journal from \n%s)\n...\n\n"
    $ intercalateL "\n" $ show <$> jfiles
  journal <- liftIO $
      -- to conquer problems with the `instance Monoid Journal`
     right mconcat' . sequence <$> mapM (readJournalFile definputopts) jfiles
  either (throwError . T.pack) return journal
  where jfiles = runReader (catMaybes <$> mapM (mapM absolute <=< readLedger)
                           journals) options
        jfiles :: [FilePath]