 ///  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.
+    ///  The type of elements stored in the section.
     typealias DataItem
 
-    /// Returns the elements in the collection view section.
+    ///  Returns the elements in the collection view section.
     var dataItems: [DataItem] { get }
 }
 


///  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.
public struct CollectionSupplementaryViewFactory <SupplementaryView: UICollectionReusableView, DataItem>: CollectionSupplementaryViewFactoryType {

    ///  Configures the supplementary view for the specified data item, collection view, and index path.

}


///  A `CollectionViewDataSourceProvider` is responsible for providing a data source for a collection view.
///  An instance of `CollectionViewDataSourceProvider` owns an array of section instances, a cell factory, and a supplementary view factory.
///  Clients are responsbile for registering cells and supplementary views with the collection view.
///  Clients are also responsible for adding, removing, or reloading cells and sections as the provider's `sections` are modified.
///  Sections may be accessed or replaced via the provider's subscripting interface.
///  <br/><br/>
///  **The data source provider has the following type parameters:**
///  <br/>
///  ````
///  <DataItem, SectionInfo: CollectionViewSectionInfo, CellFactory: CollectionViewCellFactoryType, SupplementaryViewFactory: CollectionSupplementaryViewFactoryType
///  where
///  SectionInfo.DataItem == DataItem,
///  CellFactory.DataItem == DataItem,
///  SupplementaryViewFactory.DataItem == DataItem>
///  ````
public final class CollectionViewDataSourceProvider <DataItem, SectionInfo: CollectionViewSectionInfo,
                                                     CellFactory: CollectionViewCellFactoryType, SupplementaryViewFactory: CollectionSupplementaryViewFactoryType
                                                     where
