extractFlag :: String -> [String] -> (Bool, [String]) extractFlag flag args = (flag `elem` args, delete flag args) main :: IO () main = do args <- getArgs (verbose, args) <- pure $ extractFlag "--verbose" args