public static DefinitionToken FromNumber(double value) { if (CachedNumbers.TryGetValue(value, out var existing)) { return(existing); } var newNumber = new DefinitionToken(Number, value); CachedNumbers.Add(value, newNumber); return(newNumber); }