testRule :: RapidFire m => Expression -> AppianT m Value
testRule (Expression expr) = do
  v <- newRule
  assign appianValue v
  sendRuleUpdates "Sending blank expression" (MonadicFold $ getExpressionInfoPanel . traverse . editor . to (expwValue .~ "") . to toUpdate . to Right)
  sendRuleUpdates "Sending arbitrary list" (MonadicFold $ getExpressionInfoPanel . traverse . editor . to (expwValue .~ expr) . to toUpdate . to Right)
  sendRuleUpdates "Click 'Test Rule'" (MonadicFold $ to $ buttonUpdate "Test Rule")
  use appianValue  
testRule :: RapidFire m => Expression -> AppianT m Value
testRule (Expression expr) = do
  v <- newRule
  assign appianValue v
  sendRuleUpdates "Sending blank expression" (MonadicFold $ getExpressionInfoPanel . traverse . editor . to (expwValue .~ "") . to toUpdate . to Right)
  sendRuleUpdates "Sending arbitrary list" (MonadicFold $ getExpressionInfoPanel . traverse . editor . to (expwValue .~ expr) . to toUpdate . to Right)
  sendRuleUpdates "Click 'Test Rule'" (MonadicFold $ to $ buttonUpdate "Test Rule")
  use appianValue  
testRule (Expression expr) = do
  v <- newRule
  assign appianValue v
  sendRuleUpdates "Sending blank expression" (MonadicFold $ getExpressionInfoPanel . traverse . editor . to (expwValue .~ "") . to toUpdate . to Right)
  sendRuleUpdates "Sending arbitrary list" (MonadicFold $ getExpressionInfoPanel . traverse . editor . to (expwValue .~ expr) . to toUpdate . to Right)
  sendRuleUpdates "Click 'Test Rule'" (MonadicFold $ to $ buttonUpdate "Test Rule")
  use appianValue  