main :: IO ()
main = do
  args <- getArgs
  case processArgs args of
    Left msg -> putStrLn $ "Design Matching: " ++ msg ++ "\n\n" ++ dmUsage
    Right st -> runProg st >>= putStrLn
main :: IO ()
main = do
  args <- getArgs
  case processArgs args of
    Left msg -> putStrLn $ "Design Matching: " ++ msg ++ "\n\n" ++ dmUsage
    Right st -> runProg st >>= putStrLn
main = do
  args <- getArgs
  case processArgs args of
    Left msg -> putStrLn $ "Design Matching: " ++ msg ++ "\n\n" ++ dmUsage
    Right st -> runProg st >>= putStrLn