fn parse_arguments<I, R, F>(args: I, f: F) -> Result<(), Error> where I: Iterator<Item = R>, R: AsRef<str>, F: FnMut(&str, Option<&str>) -> Result<(), Error>,