public override void ForEachWithContext <T>(T context)
        {
            context.PreChildrenVisit(this);

            Declaration.ForEachWithContext(context);

            if (Elements != null)
            {
                Elements.ForEachWithContext(context);
            }

            context.PostChildrenVisit(this);
        }