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)