diff --git a/testsuite/tests/typecheck/should_fail/T9323.hs b/testsuite/tests/typecheck/should_fail/T9323.hs
new file mode 100644
index 0000000000000000000000000000000000000000..1aea288bbea08d99ae60df37e08f61c18c825fb7
--- /dev/null
+++ b/testsuite/tests/typecheck/should_fail/T9323.hs
@@ -0,0 +1,7 @@
+module T9323 where
+
+broken :: [Int]
+broken = ()
+
+ambiguous :: a -> String
+ambiguous _ = show 0
diff --git a/testsuite/tests/typecheck/should_fail/T9323.stderr b/testsuite/tests/typecheck/should_fail/T9323.stderr
new file mode 100644
index 0000000000000000000000000000000000000000..f98ce7bafe039a7fa4a47c4b49eb33bc5176e69a
--- /dev/null
+++ b/testsuite/tests/typecheck/should_fail/T9323.stderr
@@ -0,0 +1,5 @@
+
+T9323.hs:4:10:
+    Couldn't match expected type ‘[Int]’ with actual type ‘()’
+    In the expression: ()
+    In an equation for ‘broken’: broken = ()
diff --git a/testsuite/tests/typecheck/should_fail/all.T b/testsuite/tests/typecheck/should_fail/all.T
index c1dbd58f545104db52f13550dc41d1893444640c..cf2af3090d47d6f93e7904301a7339a3f3f7edbb 100644
--- a/testsuite/tests/typecheck/should_fail/all.T
+++ b/testsuite/tests/typecheck/should_fail/all.T
@@ -335,3 +335,4 @@ test('T9033', normal, compile_fail, [''])
 test('T8883', normal, compile_fail, [''])
 test('T9196', normal, compile_fail, [''])
 test('T9305', normal, compile_fail, [''])
+test('T9323', normal, compile_fail, [''])