protected T GetId(VisitableStream stream) { if (ids.TryGetValue(stream, out T value)) { return(value); } else { T newId = GenerateNewId(); ids.Add(stream, newId); return(newId); } }
public R Visit(VisitableStream stream) { return(stream.Accept(this)); }