     /* Shortcut for converting an NSPersonNameComponents object into a string without explicitly creating an instance.
         Create an instance for greater customizability.
      */
-    public class func localizedStringFromPersonNameComponents(_ components: NSPersonNameComponents, style nameFormatStyle: NSPersonNameComponentsFormatterStyle, options nameOptions: NSPersonNameComponentsFormatterOptions) -> String { NSUnimplemented() }
+    public class func localizedStringFromPersonNameComponents(_ components: NSPersonNameComponents, style nameFormatStyle: Style, options nameOptions: Options) -> String { NSUnimplemented() }
     
     /* Convenience method on stringForObjectValue:. Returns a string containing the formatted value of the provided components object.
      */

    
    /* Specify the formatting style for the formatted string on an instance. ShortStyle will fall back to user preferences and language-specific defaults
     */
    public var style: NSPersonNameComponentsFormatterStyle
    
    /* Specify that the formatter should only format the components object's phoneticRepresentation
     */

//


extension PersonNameComponentsFormatter {
    public enum Style : Int {
        
        case `default`
        
        /* Relies on user preferences and language defaults to display shortened form appropriate
          for display in space-constrained settings, e.g. C Darwin */
        case short
        
        /* The minimally necessary features for differentiation in a casual setting , e.g. Charles Darwin */
        case medium
        
        /* The fully-qualified name complete with all known components, e.g. Charles Robert Darwin, FRS */
        case long
        
        /* The maximally-abbreviated form of a name suitable for monograms, e.g. CRD) */
        case abbreviated
    }

    public struct Options : OptionSet {
        public let rawValue : UInt
        public init(rawValue: UInt) { self.rawValue = rawValue }
        
        /* Indicates that the formatter should format the component object's phoneticRepresentation components instead of its own components.
         The developer must have populated these manually. e.g.: Developer creates components object with the following properties:
         <family:"Family", given:"Given", phoneticRepresentation:<family:"FamilyPhonetic", given:"GivenPhonetic">>.
         If this option is specified, we perform formatting operations on <family "FamilyPhonetic", given "GivenPhonetic"> instead. */
        public static let phonetic = Options(rawValue: 1 << 1)
    }
}

public class PersonNameComponentsFormatter : NSFormatter {
    
    public required init?(coder: NSCoder) {
        NSUnimplemented()
