         return nextPage != nil
     }
     
-    public func fetchIfNeeded()
+    public func fetchIfNeeded(input: FetchInput)
     {
         if willFetchNextPage && hasNextPage.value
         {
-            fetchAction.apply().start()
+            fetchAction.apply(input).start()
         }
     }
 }

    
    var nextPage: PaginationType? { get }
    
    var refreshAction: Action<(), [Element], FetchError> { get }
    var fetchAction: Action<(), [Element], FetchError> { get }
    
    func fetchIfNeeded()
}

public extension FetchedArrayViewModelType

/// ArrayViewModel which its array is lazily fetched, or even paginated.
public protocol FetchedArrayViewModelType: class, ArrayViewModelType
{
    typealias FetchInput
    typealias PaginationType
    typealias FetchError: ViewModelErrorType
    
