 import UIKit
 
 protocol ComponentType {
-    var styles: [AnyStyle] { get }
+    var styles: Set<AnyStyle> { get }
     func configure(view: UIView)
     func isEqual(to other: ComponentType) -> Bool
 }

    }
    
    public func add<S: StyleType>(styles: [S]) -> Component<T> {
        return Component<T>(styles: self.styles + styles.map(AnyStyle.init), children: children)
    }
    
    public func configure(view: T) {

        self.access = { view in access(view as! T) }
    }
    
    var styles: Set<AnyStyle> {
        return component.styles
    }
    
