 
 ///  A `CollectionSupplementaryViewFactory` is a concrete `CollectionSupplementaryViewFactoryType`.
 ///  This factory is responsible for producing and configuring supplementary views for a collection view for a specific data item.
+///  <br/><br/>
+///  **The factory has the following type parameters:**
+///  <br/>
+///  ````
+///  <SupplementaryView: UICollectionReusableView, DataItem>
+///  ````
 public struct CollectionSupplementaryViewFactory <SupplementaryView: UICollectionReusableView, DataItem>: CollectionSupplementaryViewFactoryType {
 
     ///  Configures the supplementary view for the specified data item, collection view, and index path.

///  and the type of cells in the collection view, respectively. 
public protocol CollectionViewCellFactoryType {

    /// The type of the instance (model object) backing the collection view.
    typealias DataItem

    /// The type of `UICollectionViewCell` that the factory produces.
    typealias Cell: UICollectionViewCell

    ///  Creates and returns a new `Cell` instance, or dequeues an existing cell for reuse.

///  An instance conforming to `CollectionViewSectionInfo` represents a section of items in a collection view.
public protocol CollectionViewSectionInfo {

    ///  The type of elements stored in the section.
    typealias DataItem

    ///  Returns the elements in the collection view section.
    var dataItems: [DataItem] { get }
}

