import System.IO

responseFor :: String -> String
responseFor prompt -- implement here

main :: IO ()
main = do
    inputContent <- readFile "example-input"
    outputContent <- readFile "example-output"

    let prompts = lines inputContent
        expectedResults = lines outputContent
        actualResults = map responseFor prompts
        results = zip3 prompts expectedResults actualResults

    let incorrectResults = filter (\(_, expected, actual) -> expected /= actual) results

    if null incorrectResults
        then putStrLn "All tests passed successfully!"
        else do
            putStrLn "The following tests failed:"
            mapM_ (\(prompt, expected, actual) -> 
                putStrLn $ "Prompt: " ++ show prompt ++ 
                           "\nExpected: " ++ show expected ++ 
                           "\nActual: " ++ show actual ++ "\n") incorrectResults

    -- let results = map (show . responseFor) (lines inputContent)
    -- writeFile "example-output" (unlines results)
    