private IEnumerable<string> Format(Value value)
        {
            var type = value.GetType();

            if (type == typeof(LiteralValue))
            {
                return this.Format((LiteralValue)value);
            }

            if (type == typeof(MarkupExtension))
            {
                return this.Format((MarkupExtension)value);
            }

            throw new ArgumentException($"Unhandled type {type.FullName}", nameof(value));
        }