internal static IEnumerable<FormulaTree> AsEnumerable(this FormulaTree node) { return node == null ? Enumerable.Empty<FormulaTree>() : Enumerable.Repeat(node, 1).Concat(node.Children.SelectMany(child => child.AsEnumerable())); } }