 
 extension Composable {
     public func setupSubviews(with style: Style) {}
-}
-
-public extension Composable {
-    typealias Element = Style.Element
-    init(arrayLiteral elements: Style.Attribute...) {
-        self.init(Style(elements))
-    }
 }
 
 public extension Styleable {

    static func createEmpty() -> Styled
}

public protocol Makeable: EmptyInitializable, Styleable, ExpressibleByArrayLiteral {
    static func make(_ attributes: [Style.Attribute]) -> Styled
    func postMake(_ style: Style)
    associatedtype Element = Style.Attribute
}

public extension Makeable where Self.Styled == Self, Self.Style.Attribute == Element {
    init(arrayLiteral elements: Self.Element...) {
        self = Self.make(elements)
    }
}



import Foundation

public protocol Styleable: ExpressibleByArrayLiteral {
    associatedtype Style: Attributed
    func setup(with style: Style)
    associatedtype Element = Style.Attribute
}

public protocol EmptyInitializable {
