 
 import CDBus
 
+/// DBus Signature
 public struct DBusSignature {
     
     @_versioned
-    internal var elements: [ValueType]
+    internal private(set) var elements: [ValueType]
+    
+    public init(_ elements: [ValueType]) {
+        
+        self.elements = elements
+    }
+}
+
+extension DBusSignature: Equatable {
+    
+    public static func == (lhs: DBusSignature, rhs: DBusSignature) -> Bool {
+        
+        return lhs.elements == rhs.elements
+    }
+}
+
+extension DBusSignature: Hashable {
+    
+    public var hashValue: Int {
+        
+        return rawValue.hashValue
+    }
+}
+
+extension DBusSignature: CustomStringConvertible {
+    
+    public var description: String {
+        
+        return rawValue
+    }
 }
 
 extension DBusSignature: RawRepresentable {

        
        /// Dictionary
        case dictionary(ValueType)
    }
}


        fatalError()
    }
}
