 
     case Match(Character, CodeWordCollection)
 
+    case Description(Character, String)
+
     case Unknown(Character)
 
 }

        switch (lhs, rhs) {
        case (let .Match(lhsCharacter, lhsCodeWordCollection), let .Match(rhsCharacter, rhsCodeWordCollection)):
            return lhsCharacter == rhsCharacter && lhsCodeWordCollection == rhsCodeWordCollection
        case (let .Unknown(lhsCharacter), let .Unknown(rhsCharacter)):
            return lhsCharacter == rhsCharacter
        default:

        switch self {
        case .Match(let character, let codeWordCollection):
            return "\(character): \(codeWordCollection.mainCodeWord)"
        case .Description(let character, let description):
            return "\(character): \(description)"
        case .Unknown(let character):
            return "\(character): unknown code word"
        }
