     /// Returns a new Attributed String, with the TextListItem formatting removed.
     ///
     func attributedStringByRemovingTextListItemAtributes() -> NSAttributedString {
+// TODO: Unit Test!
         let clean = NSMutableAttributedString(attributedString: self)
 
         let range = clean.rangeOfEntireString

    /// - Return: An NSAttributedString.
    ///
    func attributedStringByAddingTextListItemAtributes(kind: TextList.Kind, number: Int) -> NSAttributedString {
        let output = NSMutableAttributedString(attributedString: self)

        // Remove any existing list marker.

    ///
    func textListAttribute(atIndex index: Int) -> TextList? {
        return attribute(TextList.attributeName, atIndex: index, effectiveRange: nil) as? TextList
    }


    /// Returns the TextList attribute, assuming that there is one, spanning the specified Range.
    ///
    /// - Parameter range: Range to check for TextLists
    ///
    /// - Returns: A TextList optional.
    ///
    func textListAttribute(spanningRange range: NSRange) -> TextList? {
// TODO: Unit Test!
        var effectiveRange = NSRange()
        guard let list = attribute(TextList.attributeName, atIndex: range.location, effectiveRange: &effectiveRange) as? TextList else {
            return nil
        }

        guard NSEqualRanges(range, NSIntersectionRange(range, effectiveRange)) else {
            return nil
        }

        return list
    }


