-- | USA graph coloring, but with fewer states (to make computation times more acceptable).
main :: IO ()
main = let (numToState, bdd) = usa in
       let (bdd', context)   = runState bdd mkContext in
       case getSat context bdd' >>= (return . outputColors numToState) of
       Nothing -> return ()
       Just s  -> putStrLn s

-- | Outputs the color of a state on the format "STATE Color\n\r"
main :: IO ()
main = let (numToState, bdd) = usa in
       let (bdd', context)   = runState bdd mkContext in
       case getSat context bdd' >>= (return . outputColors numToState) of
       Nothing -> return ()
       Just s  -> putStrLn s

-- | Outputs the color of a state on the format "STATE Color\n\r"
main = let (numToState, bdd) = usa in
       let (bdd', context)   = runState bdd mkContext in
       case getSat context bdd' >>= (return . outputColors numToState) of
       Nothing -> return ()
       Just s  -> putStrLn s

-- | Outputs the color of a state on the format "STATE Color\n\r"