 		return left == right
 
 	case let (.Value(left), .Value(right)):
+		return left == right
+
+	case let (.Flag(left), .Flag(right)):
 		return left == right
 
 	default:


	/// Initializes the generator from a simple list of command-line arguments.
	public init(_ arguments: [String]) {
		var permitKeys = true

		for arg in arguments {
			// Check whether this is a keyed argument.
			if permitKeys && arg.hasPrefix("--") {
				// Check for -- by itself, which should terminate the keyed
				// argument list.
				let keyStartIndex = arg.startIndex.successor().successor()
				if keyStartIndex == arg.endIndex {
					permitKeys = false
				} else {
					let key = arg.substringFromIndex(keyStartIndex)
					rawArguments.append(.Key(key))
				}
			} else {
				rawArguments.append(.Value(arg))
			}
		}
	}



		case let .Value(value):
			return "\"\(value)\""

		case let .Flag(flags):
			return "-\(flags)"
		}
	}
}
