         let lexer = Lexer(source: source)
         let testIR = TestIR()
         
-        
-        
-        do {
-            switch try rule.match(with: lexer, for: testIR){
+        do {
+            let matchResult = try rule.match(with: lexer, for: testIR)
+            switch matchResult{
             case .success(let context):
-                print(context.matchedString)
-            case .consume(let context):
                 //Test stuff
                 XCTAssertEqual("H", context.matchedString)
             default:

    
    func testKnownAnnotations(){
        let error = "Valid error"
        let rule = LabelledToken(withLabel: "test").oneOrMore(of: CharacterSet.letters)
        let validError = rule.instance(with: [
            RuleAnnotation.error : RuleAnnotationValue.string(error),
            RuleAnnotation.void  : RuleAnnotationValue.set,

    }
    
    func testInstanceTokenModification(){
        let rule = CharacterSet.letters.token(LabelledToken(withLabel: "letter"), from: .oneOrMore)
        let newRule = rule.instance(with: transientTokenValue.token)
        
        XCTAssertEqual(newRule.produces.rawValue, transientTokenValue)
