public static IEnumerable <T> BestCandidates <T>(this IMatcher matcher, string name) => matcher.Candidates <T>(name) .Where(x => x.Item1 == matcher.GetFailure()) .Select(x => x.Item2);
public static IEnumerable <T> BestCandidates <T>(this IMatcher matcher, IToken <T> token) => matcher.Candidates(token) .Where(x => x.Item1 == matcher.GetFailure()) .Select(x => x.Item2);
public static IEnumerable <Tuple <IFailure, T> > Candidates <T>(this IMatcher matcher, IHaveToken <T> token) => matcher.Candidates(token.Token);