module Commons where import GHC.IO.Handle (isEOF) type CalibrationLine = String type CalibrationDocument = [CalibrationLine] parseLine :: IO CalibrationLine parseLine = do getLine parse :: IO CalibrationDocument parse = do done <- isEOF if done then return [] else do line <- parseLine doc <- parse return (line:doc)