diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,4 +1,8 @@
-# 0.4.0
+# 0.4.1 — 2020.11.01
+
+- Allow no options for `[a]`
+
+# 0.4.0 — 2020.11.01
 
 ## Breaking changes
 
diff --git a/optparse-declarative.cabal b/optparse-declarative.cabal
--- a/optparse-declarative.cabal
+++ b/optparse-declarative.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.2
 name:                optparse-declarative
-version:             0.4.0
+version:             0.4.1
 synopsis:            Declarative command line option parser
 description:         Declarative and easy to use command line option parser
 homepage:            https://github.com/tanakh/optparse-declarative
diff --git a/src/Options/Declarative.hs b/src/Options/Declarative.hs
--- a/src/Options/Declarative.hs
+++ b/src/Options/Declarative.hs
@@ -123,9 +123,7 @@
     argRead xs = Just <$> argRead xs
 
 instance {-# OVERLAPPABLE #-} ArgRead a => ArgRead [a] where
-    argRead xs = case mapMaybe (argRead . (:[])) xs of
-                 [] -> Nothing
-                 xs -> Just xs
+    argRead xs = Just $ mapMaybe (argRead . (:[])) xs
 
 -- | The argument which has default value
 newtype Def (defaultValue :: Symbol) a =
