/// <summary>
        ///  Creates a FactoryFactory container from this <see cref="IServiceCollection"/>
        ///  instance.
        /// </summary>
        /// <param name="collection"></param>
        /// <returns>
        ///  The root container.
        /// </returns>
        public static IContainer CreateFactoryFactory
            (this IServiceCollection collection, ConfigurationOptions options = default)
        {
            IRegistry registry = collection as Registry ?? new Registry(collection);

            return(registry.CreateContainer(options));
        }
        /// <summary>
        ///  Creates a root container from the curremmt <see cref="IRegistry"/> instance.
        /// </summary>
        /// <param name="registry">The registry instance containing our type definitions.</param>
        /// <param name="configure">
        ///  An action to configure the container.
        /// </param>
        /// <returns>
        ///  The root container.
        /// </returns>
        public static IContainer CreateContainer
            (this IRegistry registry, Action <ConfigurationOptions> configure)
        {
            var options = new ConfigurationOptions();

            configure(options);
            return(registry.CreateContainer(options));
        }