public static T Value <T>(this IMatcher matcher, IToken <T> token) => matcher.All(token) .Select(x => x.Value) .FirstOrDefault();
public static T Value <T>(this IMatcher matcher, string name) => matcher.All <T>(name) .Select(x => x.Value) .FirstOrDefault();
public static IEnumerable <IResolutionContext <T> > All <T>(this IMatcher matcher, IHaveToken <T> token) => matcher.All(token.Token);