 		return label.linkAtPoint(touch.locationInView(label)) != nil
 	}
 }
+
+
+public func == (a: Label.Kerning, b: Label.Kerning) -> Bool {
+	switch (a, b) {
+	case let (.Absolute(a), .Absolute(b)): return a == b
+	case let (.Relative(a), .Relative(b)): return a == b
+	default:                               return false
+	}
+}

		paragraphStyle.lineBreakMode = .ByWordWrapping
		paragraphStyle.lineHeightMultiple = lineHeightMultiple

		let attributedText = self.attributedText
		let finalizedText = NSMutableAttributedString(string: attributedText.string, attributes: [
			NSFontAttributeName: font,
			NSForegroundColorAttributeName: UIColor(CGColor: finalTextColor),
			NSParagraphStyleAttributeName: paragraphStyle
		])

		var attributedTextUsesTintColor = false
		var hasLinks = false

}


extension Label.DelegateProxy: UIGestureRecognizerDelegate {

	@objc
