-- | Execute some actions within specific context.
withContext :: Monad m => Maybe Context -> LocalizeT m a -> LocalizeT m a
withContext ctxt actions = do
  oldContext <- gets lsContext
  setContext ctxt
  result <- actions
  setContext oldContext
  return result
withContext :: Monad m => Maybe Context -> LocalizeT m a -> LocalizeT m a
withContext ctxt actions = do
  oldContext <- gets lsContext
  setContext ctxt
  result <- actions
  setContext oldContext
  return result
withContext ctxt actions = do
  oldContext <- gets lsContext
  setContext ctxt
  result <- actions
  setContext oldContext
  return result