public static string FormatName(this IReturnType type)
        {
            if (type == null)
            {
                return(string.Empty);
            }

            if (type.Name == "Nullable")
            {
                return(string.Format("{0}?", type.CastToConstructedReturnType().TypeArguments[0].FormatName()));
            }

            var formattedName = type.GetFormattedNameOrNull();

            if (formattedName != null)
            {
                return(formattedName);
            }

            var underlyingClass = type.GetUnderlyingClass();

            if (underlyingClass != null)
            {
                return(underlyingClass.FormatName());
            }

            return(type.Name);
        }