diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,10 @@
 # Changelog
 
+## 1.0.0.1
+
+* Reduced .cabal file version to 3.0, no newer features are
+  actually required.
+
 ## 1.0.0.0
 
 First public release of `idna2008`.  See `README.md` for the
diff --git a/idna2008.cabal b/idna2008.cabal
--- a/idna2008.cabal
+++ b/idna2008.cabal
@@ -1,7 +1,7 @@
-cabal-version: 3.8
+cabal-version: 3.0
 
 name:           idna2008
-version:        1.0.0.0
+version:        1.0.0.1
 synopsis:       Strict IDNA2008 for Haskell
 description:
     A Haskell library for parsing and validating internationalized domain
diff --git a/tests/unicode_conformance.hs b/tests/unicode_conformance.hs
--- a/tests/unicode_conformance.hs
+++ b/tests/unicode_conformance.hs
@@ -502,7 +502,7 @@
     | OCpDisagreement !IdnaError
       -- ^ Library rejection traces back to a codepoint UTS \#46
       --   would have preprocessed away (or accepted) but strict
-      --   IDNA2008 can't.  Covers three flavours:
+      --   IDNA2008 can't.  Three cases:
       --
       --   * 'DisallowedCodepoint' (direct or via 'DecodedInvalid')
       --     -- the NV8\/XV8 cases the file header explicitly tells
diff --git a/tests/vectors.json b/tests/vectors.json
--- a/tests/vectors.json
+++ b/tests/vectors.json
@@ -754,7 +754,7 @@
     },
     {
       "name": "a3-middle-dot-l-l",
-      "input": "l·l.example",
+      "input": "l\u00b7l.example",
       "classes": "all",
       "expect": {
         "ok": {
@@ -768,7 +768,7 @@
     },
     {
       "name": "a3-middle-dot-leading",
-      "input": "·l.example",
+      "input": "\u00b7l.example",
       "classes": "all",
       "expect": {
         "err": {
@@ -781,7 +781,7 @@
     },
     {
       "name": "a3-middle-dot-trailing",
-      "input": "l·.example",
+      "input": "l\u00b7.example",
       "classes": "all",
       "expect": {
         "err": {
@@ -794,7 +794,7 @@
     },
     {
       "name": "a3-middle-dot-bad-neighbours",
-      "input": "x·y.example",
+      "input": "x\u00b7y.example",
       "classes": "all",
       "expect": {
         "err": {
@@ -901,7 +901,7 @@
     },
     {
       "name": "a7-katakana-middle-dot-with-hiragana",
-      "input": "あ・あ.example",
+      "input": "あ\u30fbあ.example",
       "classes": "all",
       "expect": {
         "ok": {
@@ -915,7 +915,7 @@
     },
     {
       "name": "a7-katakana-middle-dot-with-han",
-      "input": "一・一.example",
+      "input": "一\u30fb一.example",
       "classes": "all",
       "expect": {
         "ok": {
@@ -929,7 +929,7 @@
     },
     {
       "name": "a7-katakana-middle-dot-alone",
-      "input": "・.example",
+      "input": "\u30fb.example",
       "classes": "all",
       "expect": {
         "err": {
@@ -942,7 +942,7 @@
     },
     {
       "name": "a7-katakana-middle-dot-without-hkh",
-      "input": "a・b.example",
+      "input": "a\u30fbb.example",
       "classes": "all",
       "expect": {
         "err": {
@@ -1481,6 +1481,21 @@
             "LDH"
           ]
         }
+      }
+    },
+    {
+      "name": "map-width-fullwidth-digits-and-letters",
+      "input": "０-９Ａ-Ｚａ-ｚ.example",
+      "classes": "all",
+      "flags": "+map-width",
+      "expect": {
+	"ok": {
+	  "wireHex": "09302d39412d5a612d7a076578616d706c6500",
+	  "classes": [
+	    "LDH",
+	    "LDH"
+	  ]
+	}
       }
     },
     {
