diff --git a/plugins/hls-tactics-plugin/src/Wingman/KnownStrategies/QuickCheck.hs b/plugins/hls-tactics-plugin/src/Wingman/KnownStrategies/QuickCheck.hs
index 4cc1d4afb8b9ae65649930d81a2fe7d5789fe691..b14e4b8348024ab3f133715c92a96166d27d51e0 100644
--- a/plugins/hls-tactics-plugin/src/Wingman/KnownStrategies/QuickCheck.hs
+++ b/plugins/hls-tactics-plugin/src/Wingman/KnownStrategies/QuickCheck.hs
@@ -43,8 +43,9 @@ deriveArbitrary = do
               mempty
               mempty
               mempty
-          $ noLoc $
-              let' [valBind (fromString "terminal") $ list $ fmap genExpr terminal] $
+          $ noLoc $ case terminal of
+            [onlyCon] -> genExpr onlyCon -- See #1879
+            _ -> let' [valBind (fromString "terminal") $ list $ fmap genExpr terminal] $
                 appDollar (mkFunc "sized") $ lambda [bvar' (mkVarOcc "n")] $
                   case' (infixCall "<=" (mkVal "n") (int 1))
                     [ match [conP (fromString "True") []] $
diff --git a/plugins/hls-tactics-plugin/test/CodeAction/AutoSpec.hs b/plugins/hls-tactics-plugin/test/CodeAction/AutoSpec.hs
index 9322b0912b3b149b00dd968f46daf038e7e54fe3..4075183ee61ec95933fb75c64faf7ea475b40288 100644
--- a/plugins/hls-tactics-plugin/test/CodeAction/AutoSpec.hs
+++ b/plugins/hls-tactics-plugin/test/CodeAction/AutoSpec.hs
@@ -72,6 +72,7 @@ spec = do
 
   describe "known" $ do
     autoTest 25 13 "GoldenArbitrary"
+    autoTest  6 13 "GoldenArbitrarySingleConstructor"
     autoTestNoWhitespace
               6 10 "KnownBigSemigroup"
     autoTest  4 10 "KnownThetaSemigroup"
diff --git a/plugins/hls-tactics-plugin/test/golden/GoldenArbitrarySingleConstructor.expected.hs b/plugins/hls-tactics-plugin/test/golden/GoldenArbitrarySingleConstructor.expected.hs
new file mode 100644
index 0000000000000000000000000000000000000000..786e381ca89d3a111a1c5762a65b1dfdd013cc90
--- /dev/null
+++ b/plugins/hls-tactics-plugin/test/golden/GoldenArbitrarySingleConstructor.expected.hs
@@ -0,0 +1,7 @@
+data Gen a
+
+data Obj = Obj Int Bool Char String
+
+arbitrary :: Gen Obj
+arbitrary
+  = (((Obj <$> arbitrary) <*> arbitrary) <*> arbitrary) <*> arbitrary
\ No newline at end of file
diff --git a/plugins/hls-tactics-plugin/test/golden/GoldenArbitrarySingleConstructor.hs b/plugins/hls-tactics-plugin/test/golden/GoldenArbitrarySingleConstructor.hs
new file mode 100644
index 0000000000000000000000000000000000000000..a6a7d171a33326c44bbb55b9e6e89e09db668fd6
--- /dev/null
+++ b/plugins/hls-tactics-plugin/test/golden/GoldenArbitrarySingleConstructor.hs
@@ -0,0 +1,6 @@
+data Gen a
+
+data Obj = Obj Int Bool Char String
+
+arbitrary :: Gen Obj
+arbitrary = _
\ No newline at end of file