no quotes around non-string keys
diff --git a/diff.go b/diff.go
index 645f4e2..64fac64 100644
--- a/diff.go
+++ b/diff.go
@@ -89,15 +89,15 @@
 	case reflect.Map:
 		ak, both, bk := keyDiff(av.MapKeys(), bv.MapKeys())
 		for _, k := range ak {
-			w := w.relabel(fmt.Sprintf("[%q]", k.String()))
+			w := w.relabel(fmt.Sprintf("[%#v]", k.Interface()))
 			w.printf("%q != (missing)", av.MapIndex(k))
 		}
 		for _, k := range both {
-			w := w.relabel(fmt.Sprintf("[%q]", k.String()))
+			w := w.relabel(fmt.Sprintf("[%#v]", k.Interface()))
 			w.diff(av.MapIndex(k), bv.MapIndex(k))
 		}
 		for _, k := range bk {
-			w := w.relabel(fmt.Sprintf("[%q]", k.String()))
+			w := w.relabel(fmt.Sprintf("[%#v]", k.Interface()))
 			w.printf("(missing) != %q", bv.MapIndex(k))
 		}
 	case reflect.Interface: