checkAnswer :: IO Bool
checkAnswer = do
    putStrLn "Was this classification correct? Y(es)/N(o)"
    putStr "> "
    answer <- getLine
    case answer of
        "" -> checkAnswer
        _ -> do
            let c = toLower $ head answer
            case c of
                'y' -> return True
                'n' -> return False
                _ -> checkAnswer
checkAnswer :: IO Bool
checkAnswer = do
    putStrLn "Was this classification correct? Y(es)/N(o)"
    putStr "> "
    answer <- getLine
    case answer of
        "" -> checkAnswer
        _ -> do
            let c = toLower $ head answer
            case c of
                'y' -> return True
                'n' -> return False
                _ -> checkAnswer
checkAnswer = do
    putStrLn "Was this classification correct? Y(es)/N(o)"
    putStr "> "
    answer <- getLine
    case answer of
        "" -> checkAnswer
        _ -> do
            let c = toLower $ head answer
            case c of
                'y' -> return True
                'n' -> return False
                _ -> checkAnswer