pub fn optional<S, E: Display>( prompt: &str, parser: impl for<'a> FnMut(&'a str) -> Result<S, E>, ) -> Option<S>