     
     // MARK: Initializers
     
-    init(unicodeScalarLiteral value: UnicodeScalarLiteralType) {
+    public init(unicodeScalarLiteral value: UnicodeScalarLiteralType) {
         self.init(value)
     }
     
-    init(extendedGraphemeClusterLiteral value: ExtendedGraphemeClusterLiteralType) {
+    public init(extendedGraphemeClusterLiteral value: ExtendedGraphemeClusterLiteralType) {
+        self.init(value)
+    }
+
+    public init(stringLiteral value: StringLiteralType) {
         self.init(value)
     }
     
-    init(stringLiteral value: StringLiteralType) {
-        self.init(value)
-    }
-    
-    init?(rawValue: RawValue) {
+    public init?(rawValue: RawValue) {
         self.init(rawValue)
     }
     

    }
}

func ==(lhs: ColorDescriptor, rhs: ColorDescriptor) -> Bool {
    return lhs.rawValue == rhs.rawValue
}


import UIKit

public enum ColorDescriptor {
    case PatternImage(imageName: String)
    case RGB(r: Int, g: Int, b: Int, a: Int)
    case Hex(hex: String)
}

extension ColorDescriptor : StringLiteralConvertible, RawRepresentable, Equatable {
    public typealias RawValue = StringLiteralType
    public typealias ExtendedGraphemeClusterLiteralType = StringLiteralType
    public typealias UnicodeScalarLiteralType = StringLiteralType
    
    public var color: UIColor {
        switch self {
        case let .PatternImage(imageName: imageName):
            let image = UIImage(named: imageName)!
