     public func styled(with style: StringStyle, _ overrideParts: StringStyle.Part...) -> NSAttributedString {
         let string = NSMutableAttributedString()
         let newStyle = style.byAdding(stringStyle: StringStyle(overrideParts))
-        append(to: string, baseStyle: newStyle)
+        append(to: string, baseStyle: newStyle, isLastElement: !Thread.current.isCurrentlyComposing)
         return string
     }
 

    /// - parameter separator: The separator to insert between every pair of
    ///                        elements in `composables`.
    /// - returns: A new `NSAttributedString`.
    @nonobjc public static func composed(of composables: [Composable], baseStyle: StringStyle = StringStyle(), separator: Composable? = nil) -> NSAttributedString {
        let string = NSMutableAttributedString()
        string.beginEditing()
        let lastComposableIndex = composables.endIndex
        for (index, composable) in composables.enumerated() {
            composable.append(to: string, baseStyle: baseStyle, isLastElement: index == lastComposableIndex - 1)
            if let separator = separator {
                if index != composables.indices.last {
                    separator.append(to: string, baseStyle: baseStyle)
                }
            }

            attributedString.append(newString)
        }

        if isLastElement {
            attributedString.removeKerningFromLastCharacter()
        }
    }

