                 && CharacterSet.whitespacesAndNewlines.contains(nextScalar)
             {
                 tokenText = self.enDash
+                fixingResult = .enDash
             }
         default: ()
         }

            case "´",
                 "`":
                // FIXME: Replacing a combining accent only works for the very first scalar in a string
                return TypographizerToken(.fixable, "’")
            case "\"",
                 "'",
                 "-":


struct Typographizer {

    enum TypographizerTokenResult: String {
        case openingSingle = "opening-single"
        case closingSingle = "closing-single"
        case openingDouble = "opening-double"
        case closingDouble = "closing-double"
        case apostrophe = "apostrophe"
        case enDash = "en-dash"
        // Unchanged text because it doesn’t contain the trigger characters:
        case unchanged = "unchanged"
        // It’s one of the trigger characters but didn’t need changing:
        case ignored = "ignored"
        // Was skipped because it was either a tag, or protected text between tags.
        case skipped = "skipped"
    }
    
    struct TypographizerToken {
        let result: TypographizerTokenResult
        let text: String
        
        init(_ result: TypographizerTokenResult, _ text: String) {
            self.result = result
            self.text = text
        }
    }
