TraverseBreadthFirst<T>(T, Func<T, IEnumerable<T>>)public static IEnumerable<T> TraverseBreadthFirst<T>(T root, Func<T, IEnumerable<T>> childrenSelector)Func<T, IEnumerable<T>> delegate type, I know that T is the argument and IEnumerable<T>> is the return type