/// <summary>
            /// Walk the given TypedExpression, collecting type parameter resolution dictionaries relevant to
            /// the type parameter resolutions of the topmost expression. Returns the resolution dictionaries
            /// ordered from the innermost expression's resolutions to the outermost expression's resolutions.
            /// </summary>
            public static IEnumerable <TypeParameterResolutions> Apply(TypedExpression expression)
            {
                var walker = new GetTypeParameterResolutions();

                walker.OnTypedExpression(expression);
                return(walker.SharedState.Resolutions);
            }
            public static TypeParameterResolutions[] Apply(TypedExpression expression)
            {
                var walker = new GetTypeParameterResolutions();

                walker.OnTypedExpression(expression);
                return(walker.SharedState.Resolutions.ToArray());
            }