 		}
 	}
 
-	/// Queues action to be performed on main queue. If action is called on main
-	/// thread and no work is queued, no scheduling takes place and the action
-	/// is called instantly.
-	///
-	/// - parameters:
-	///   - action: Closure to perform on main thread.
-	///
-	/// - returns: Disposable that can be used to cancel the work before it
+	/// Queues an action to be performed on main queue. If the action is called
+	/// on the main thread and no work is queued, no scheduling takes place and
+	/// the action is called instantly.
+	///
+	/// - parameters:
+	///   - action: Closure of the action to perform on the main thread.
+	///
+	/// - returns: `Disposable` that can be used to cancel the work before it
 	///            begins.
 	public func schedule(action: () -> Void) -> Disposable? {
 		let disposable = SimpleDisposable()

public protocol DateSchedulerType: SchedulerType {
	/// The current date, as determined by this scheduler.
	///
	/// This can be implemented to deterministicly return a known date (e.g.,
	/// for testing purposes).
	var currentDate: NSDate { get }

	/// Schedules an action for execution at or after the given date.
	///
	/// - parameters:
	///   - date: Starting date.
	///   - action: Closure to perform.
	///
	/// - returns: Optional disposable that can be used to cancel the work
	///            before it begins.
	func scheduleAfter(date: NSDate, action: () -> Void) -> Disposable?

	/// Schedules a recurring action at the given interval, beginning at the
	/// given start time.
	///
	/// - parameters:
	///   - date: Starting date.
	///   - repeatingEvery: Repetition interval.
	///   - withLeeway: Some delta for repetition.
	///   - action: Closure to perform.
	///
	/// - returns: Optional disposable that can be used to cancel the work
	///            before it begins.
	func scheduleAfter(date: NSDate, repeatingEvery: NSTimeInterval, withLeeway: NSTimeInterval, action: () -> Void) -> Disposable?
}

	///
	/// - parameters:
	///   - date: Starting date.
	///   - action: Closure of the action to perform.
	///
	/// - returns: Optional disposable that can be used to cancel the work
	///            before it begins.
