         return style?.styleString(text: attributedString, range: range, defaultParagraphStyle: defaultParagraphStyle) ?? attributedString
     }
     
+    /**
+        Merges array of styles
+     
+        - parameter withStyles: Array of SKStyle objects
+     
+        - returns: Single SKStyle object, application of which gives the same result as application of styles from given array (in FIFO order)
+    */
     public class func style(withStyles styles: [SKStyle]) -> SKStyle? {
         
         guard let styleKit = sharedInstance else {

        return style?.styleString(text: attributedString, range: range, defaultParagraphStyle: defaultParagraphStyle) ?? attributedString
    }
    
    public class func string(withStyle style: SKStyle?,
                             string: String?,
                             range: NSRange? = nil,

        return styleKit.complexStyle(withStyles: styles, name: styles.map({ $0.name }).joined(separator: "."))
    }
    
    // MARK: - Objective C Compatible methods -
    /**
        Applies style to string (Objective C compatible method)

        - parameter style: Style to apply
        - parameter attributedString: String to apply style to
     
        - returns: Styled attributed string
    */
    @objc public class func objc_stringWithStyle(_ style: SKStyle?, attributedString: NSAttributedString?) -> NSAttributedString? {
        return StyleKit.string(withStyle: style, attributedString: attributedString)
    }
    
    /**
        Applies style to string (Objective C compatible method)
     
        - parameter style: Style to apply
        - parameter attributedString: String to apply style to
        - parameter range: Range in string to apply style, nil - apply to whole string (default nil)
     
        - returns: Styled attributed string
    */
    @objc public class func objc_stringWithStyle(_ style: SKStyle?, attributedString: NSAttributedString?, range: NSRange) -> NSAttributedString? {
        return StyleKit.string(withStyle: style, attributedString: attributedString, range: range)
    }
    
    /**
        Applies style to string (Objective C compatible method)
     
        - parameter style: Style to apply
        - parameter attributedString: String to apply style to
        - parameter range: Range in string to apply style, nil - apply to whole string (default nil)
        - parameter defaultParagraphStyle: Paragraph style to apply before applying style (mainly for internal purposes) (default nil)
     
        - returns: Styled attributed string
    */
    @objc public class func objc_stringWithStyle(_ style: SKStyle?, attributedString: NSAttributedString?, range: NSRange, defaultParagraphStyle: NSParagraphStyle?) -> NSAttributedString? {
        return StyleKit.string(withStyle: style, attributedString: attributedString, range: range, defaultParagraphStyle: defaultParagraphStyle)
    }
    
    /**
         Applies style to string (Objective C compatible method)
     
         - parameter style: Style to apply
         - parameter string: String to apply style to
     
         - returns: Styled attributed string
    */
    @objc public class func objc_stringWithStyle(_ style: SKStyle?, string: String?) -> NSAttributedString? {
        return StyleKit.string(withStyle: style, string: string)
    }
    
    /**
        Applies style to string (Objective C compatible method)
     
        - parameter style: Style to apply
        - parameter string: String to apply style to
        - parameter range: Range in string to apply style, nil - apply to whole string (default nil)

        - returns: Styled attributed string
    */
    @objc public class func objc_stringWithStyle(_ style: SKStyle?, string: String?, range: NSRange) -> NSAttributedString? {
        return StyleKit.string(withStyle: style, string: string, range: range)
    }
    
    /**
        Applies style to string (Objective C compatible method)
     
        - parameter style: Style to apply
        - parameter string: String to apply style to
        - parameter range: Range in string to apply style, nil - apply to whole string (default nil)
        - parameter defaultParagraphStyle: Paragraph style to apply before applying style (mainly for internal purposes) (default nil)
     
        - returns: Styled attributed string
    */
    @objc public class func objc_stringWithStyle(_ style: SKStyle?, string: String?, range: NSRange, defaultParagraphStyle: NSParagraphStyle) -> NSAttributedString? {
        return StyleKit.string(withStyle: style, string: string, range: range, defaultParagraphStyle: defaultParagraphStyle)
    }
