 			.drp_adding(1, component: component, calendar: calendar)
 	}
 	
-	public func drp_components(_ component: Calendar.Component, since startDate: Date, calendar: Calendar = Calendar.current) -> Int? {
+	func drp_components(_ component: Calendar.Component, since startDate: Date, calendar: Calendar = Calendar.current) -> Int? {
 		guard let fromDate = startDate.drp_beginning(of: component, calendar: calendar),
 			let toDate = self.drp_beginning(of: component, calendar: calendar) else { return nil }
 		return calendar.dateComponents(Set(arrayLiteral: component), from: fromDate, to: toDate)


// Required for backwards compatibility with Objective-C.
public extension NSDate {
	public func drp_addCalendarUnits(_ count: Int, unit: NSCalendar.Unit, calendar: Calendar = Calendar.current) -> NSDate? {
		return (self as Date).drp_addCalendarUnits(count, unit: unit, calendar: calendar) as NSDate?
	}
	
	public func drp_beginning(ofCalendarUnit unit: NSCalendar.Unit, calendar: Calendar = Calendar.current) -> NSDate? {
		return (self as Date).drp_beginning(ofCalendarUnit: unit, calendar: calendar) as NSDate?
	}
	
	public func drp_end(ofCalendarUnit unit: NSCalendar.Unit, calendar: Calendar = Calendar.current) -> NSDate? {
		return (self as Date).drp_end(ofCalendarUnit: unit, calendar: calendar) as NSDate?
	}
	
	public func drp_calendarUnits(since: NSDate, unit: NSCalendar.Unit, calendar: Calendar = Calendar.current) -> Int? {
		return (self as Date).drp_calendarUnits(since: since as Date, unit: unit, calendar: calendar)
	}
	
	// Returns the number of calendar days between the argument and the receiver.
	public func drp_daysSince(_ since: NSDate, calendar: Calendar = Calendar.current) -> Int? {
		return (self as Date).drp_daysSince(since as Date, calendar: calendar)
	}
}


//! CLEANUP: Migrate these APIs from NSCalendar.Unit to Calendar.Component.
public extension Date {
	func drp_addCalendarUnits(_ count: Int, unit: NSCalendar.Unit, calendar: Calendar = Calendar.current) -> Date? {
		let advancedDate: Date?
		if unit == .quarter {
			// There seems to be a bug where adding one quarter to a date in the 3rd quarter does not return the
