parseTopExpr :: String -> RuntimeM (Either String TopExpr)
parseTopExpr expr = do
  isSExpr <- asks optSExpr
  if isSExpr
     then return (SExpr.parseTopExpr expr)
     else NonS.parseTopExpr expr
parseTopExpr :: String -> RuntimeM (Either String TopExpr)
parseTopExpr expr = do
  isSExpr <- asks optSExpr
  if isSExpr
     then return (SExpr.parseTopExpr expr)
     else NonS.parseTopExpr expr
parseTopExpr expr = do
  isSExpr <- asks optSExpr
  if isSExpr
     then return (SExpr.parseTopExpr expr)
     else NonS.parseTopExpr expr