-- | like `atomically` but for our custom monad stacks
apptomically :: AppSTM a -> AppM a
apptomically stmAct = do
    context <- ask
    lift $ ExceptT $ liftIO $ atomically $
        runExceptT $ runReaderT stmAct context
apptomically :: AppSTM a -> AppM a
apptomically stmAct = do
    context <- ask
    lift $ ExceptT $ liftIO $ atomically $
        runExceptT $ runReaderT stmAct context
apptomically stmAct = do
    context <- ask
    lift $ ExceptT $ liftIO $ atomically $
        runExceptT $ runReaderT stmAct context