getProp :: FilePath -> IO Expr
getProp file =
  do txt <- L.readFile file
     case parse txt of
       Right a  -> return a
       Left err -> do hPutStrLn stderr (file ++ ": " ++ err)
                      exitFailure
getProp :: FilePath -> IO Expr
getProp file =
  do txt <- L.readFile file
     case parse txt of
       Right a  -> return a
       Left err -> do hPutStrLn stderr (file ++ ": " ++ err)
                      exitFailure
getProp file =
  do txt <- L.readFile file
     case parse txt of
       Right a  -> return a
       Left err -> do hPutStrLn stderr (file ++ ": " ++ err)
                      exitFailure