void RemoveEdgesWhereSourceIs(ISet<EquatableEdge<IBuilder>> graph, IBuilder source) { var toRemove = new HashSet<EquatableEdge<IBuilder>>(graph.Where(edge => edge.Source == source)); RemoveEdges(graph, toRemove); }