public IEnumerable <KeyValuePair <string, string> > GetRichDescription()
        {
            yield return(new KeyValuePair <string, string>(WellKnownRichDescriptionKinds.Type, ClassInfo.Name));

            if (KeyType.Any() || ValueType.Any())
            {
                yield return(new KeyValuePair <string, string>(WellKnownRichDescriptionKinds.Misc, "["));

                foreach (var kv in KeyType.GetRichDescriptions(unionPrefix: "[", unionSuffix: "]"))
                {
                    yield return(kv);
                }
                foreach (var kv in ValueType.GetRichDescriptions(prefix: ", ", unionPrefix: "[", unionSuffix: "]"))
                {
                    yield return(kv);
                }
            }
        }