private static ParserResult <object> MatchVerb( Func <IEnumerable <string>, IEnumerable <OptionSpecification>, StatePair <IEnumerable <Token> > > tokenizer, IEnumerable <Tuple <Verb, Type> > verbs, IEnumerable <string> arguments, StringComparer nameComparer, CultureInfo parsingCulture) { return(verbs.Any(a => nameComparer.Equals(a.Item1.Name, arguments.First())) ? InstanceBuilder.Build( () => Activator.CreateInstance(verbs.Single(v => nameComparer.Equals(v.Item1.Name, arguments.First())).Item2), tokenizer, arguments.Skip(1), nameComparer, parsingCulture) : ParserResult.Create <object>( ParserResultType.Verbs, new NullInstance(), new[] { new BadVerbSelectedError(arguments.First()) }, Maybe.Just(verbs.Select(v => v.Item2)))); }