main = do
    args <- getArgs
    case args of
        [] -> interact interpret
        [fileName] -> putStr . interpret =<< readFile fileName
        _ -> error "Too many arguments, only one supported"
main = do
    args <- getArgs
    case args of
        [] -> interact interpret
        [fileName] -> putStr . interpret =<< readFile fileName
        _ -> error "Too many arguments, only one supported"
main = do
    args <- getArgs
    case args of
        [] -> interact interpret
        [fileName] -> putStr . interpret =<< readFile fileName
        _ -> error "Too many arguments, only one supported"