  Protocol that should be implemented by types representing launch argument that accepts single
  argument value.
  */
-public protocol SingleArgumentOption: ArgumentOption {
+public protocol SingleArgumentOption: LaunchArgumentOption {
     var value: LaunchArgumentValue { get }
 }
 

 Protocol that should be implemented by types representing launch argument that accepts collection
 of values.
 */
public protocol CollectionArgumetOption: ArgumentOption, ArrayLiteralConvertible {
    var values: [LaunchArgumentValue] { get }
    init(_ values: [LaunchArgumentValue])


 For more info about launch arguments variables check:
 [here](https://developer.apple.com/library/ios/recipes/xcode_help-scheme_editor/Articles/SchemeRun.html)
 */
public protocol LaunchArgumentOption: LaunchOption, CustomStringConvertible {
    var argumentKey: String { get }
}

public extension LaunchArgumentOption {
    public var uniqueIdentifier: Int {
        return argumentKey.hashValue
    }
