     /// - note: This value is interpreted in the context of the calendar in which it is used.
     public var era: Int? {
         get { return _handle.map { _getter($0.era) } }
-        set { _applyMutation { $0.era = _setter(newValue) } }
+        set { _applyMutation { $0.era = DateComponents._setter(newValue) } }
     }
     
     /// A year or count of years.
     /// - note: This value is interpreted in the context of the calendar in which it is used.
     public var year: Int? {
         get { return _handle.map { _getter($0.year) } }
-        set { _applyMutation { $0.year = _setter(newValue) } }
+        set { _applyMutation { $0.year = DateComponents._setter(newValue) } }
     }
     
     /// A month or count of months.
     /// - note: This value is interpreted in the context of the calendar in which it is used.
     public var month: Int? {
         get { return _handle.map { _getter($0.month) } }
-        set { _applyMutation { $0.month = _setter(newValue) } }
+        set { _applyMutation { $0.month = DateComponents._setter(newValue) } }
     }
     
     /// A day or count of days.
     /// - note: This value is interpreted in the context of the calendar in which it is used.
     public var day: Int? {
         get { return _handle.map { _getter($0.day) } }
-        set { _applyMutation { $0.day = _setter(newValue) } }
+        set { _applyMutation { $0.day = DateComponents._setter(newValue) } }
     }
     
     /// An hour or count of hours.
     /// - note: This value is interpreted in the context of the calendar in which it is used.
     public var hour: Int? {
         get { return _handle.map { _getter($0.hour) } }
-        set { _applyMutation { $0.hour = _setter(newValue) } }
+        set { _applyMutation { $0.hour = DateComponents._setter(newValue) } }
     }
     
     /// A minute or count of minutes.
     /// - note: This value is interpreted in the context of the calendar in which it is used.
     public var minute: Int? {
         get { return _handle.map { _getter($0.minute) } }
-        set { _applyMutation { $0.minute = _setter(newValue) } }
+        set { _applyMutation { $0.minute = DateComponents._setter(newValue) } }
     }
     
     /// A second or count of seconds.
     /// - note: This value is interpreted in the context of the calendar in which it is used.
     public var second: Int? {
         get { return _handle.map { _getter($0.second) } }
-        set { _applyMutation { $0.second = _setter(newValue) } }
+        set { _applyMutation { $0.second = DateComponents._setter(newValue) } }
     }
     
     /// A nanosecond or count of nanoseconds.
     /// - note: This value is interpreted in the context of the calendar in which it is used.
     public var nanosecond: Int? {
         get { return _handle.map { _getter($0.nanosecond) } }
-        set { _applyMutation { $0.nanosecond = _setter(newValue) } }
+        set { _applyMutation { $0.nanosecond = DateComponents._setter(newValue) } }
     }
     
     /// A weekday or count of weekdays.
     /// - note: This value is interpreted in the context of the calendar in which it is used.
     public var weekday: Int? {
         get { return _handle.map { _getter($0.weekday) } }
-        set { _applyMutation { $0.weekday = _setter(newValue) } }
+        set { _applyMutation { $0.weekday = DateComponents._setter(newValue) } }
     }
     
     /// A weekday ordinal or count of weekday ordinals.

    /// - note: This value is interpreted in the context of the calendar in which it is used.
    public var yearForWeekOfYear: Int? {
        get { return _handle.map { _getter($0.yearForWeekOfYear) } }
        set { _applyMutation { $0.yearForWeekOfYear = _setter(newValue) } }
    }
    
    /// Set to true if these components represent a leap month.

    private func _getter(_ x : Int) -> Int? { return x == NSDateComponentUndefined ? nil : x }
    
    /// Translate from the proper Swift optional value into an NSDateComponentUndefined
    private static func _setter(_ x : Int?) -> Int { if let xx = x { return xx } else { return NSDateComponentUndefined } }

    /// The `Calendar` used to interpret the other values in this structure.
    ///
