var ima []int64
        var fma []float64
        var sma []string
-       if mv.Type() == v.Type() {
+
+       if mv.Kind() == v.Kind() {
                switch v.Kind() {
                case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
                        iv := v.Int()
 
 
 import (
        "fmt"
+       "html/template"
        "reflect"
        "strings"
        "testing"
                        key: "b", match: 2.0, op: ">=",
                        expect: []map[string]float64{{"a": 1, "b": 2}, {"a": 3, "b": 3}},
                },
+               // Issue #8353
+               // String type mismatch.
+               {
+                       seq: []map[string]interface{}{
+                               {"a": "1", "b": "2"}, {"a": "3", "b": template.HTML("4")}, {"a": "5", "x": "4"},
+                       },
+                       key: "b", match: "4",
+                       expect: []map[string]interface{}{
+                               {"a": "3", "b": template.HTML("4")},
+                       },
+               },
                {
                        seq: []TstX{
                                {A: "a", B: "b"}, {A: "c", B: "d"}, {A: "e", B: "f"},