diff --git a/library/OptparseApplicative/Simple/Parser.hs b/library/OptparseApplicative/Simple/Parser.hs
--- a/library/OptparseApplicative/Simple/Parser.hs
+++ b/library/OptparseApplicative/Simple/Parser.hs
@@ -2,6 +2,7 @@
 (
   Parser,
   argument,
+  lenientArgument,
 )
 where
 
@@ -10,6 +11,7 @@
 import qualified Options.Applicative as A
 import qualified Data.Attoparsec.Text as B
 import qualified Data.Text as C
+import qualified Attoparsec.Data as D
 
 
 {-|
@@ -36,6 +38,21 @@
   where
     readM =
       A.eitherReader (B.parseOnly parser . C.pack)
+    mods =
+      A.long (C.unpack longName) <>
+      foldMap A.short shortName <>
+      foldMap (A.help . C.unpack) description <>
+      foldMap (\(value, text) -> A.value value <> A.showDefaultWith (const (C.unpack text))) defaultValue
+
+{-|
+Same as 'argument', only provided with a default parser.
+-}
+lenientArgument :: D.LenientParser a => Text -> Maybe Char -> Maybe Text -> Maybe (a, Text) -> A.Parser a
+lenientArgument longName shortName description defaultValue =
+  A.option readM mods
+  where
+    readM =
+      A.eitherReader (B.parseOnly D.lenientParser . C.pack)
     mods =
       A.long (C.unpack longName) <>
       foldMap A.short shortName <>
diff --git a/optparse-applicative-simple.cabal b/optparse-applicative-simple.cabal
--- a/optparse-applicative-simple.cabal
+++ b/optparse-applicative-simple.cabal
@@ -1,7 +1,7 @@
 name:
   optparse-applicative-simple
 version:
-  1.0.1
+  1.0.2
 category:
   CLI, Parsing, Options
 synopsis:
@@ -54,6 +54,7 @@
     -- 
     optparse-applicative >= 0.14 && < 0.15,
     attoparsec == 0.13.*,
+    attoparsec-data == 1.*,
     -- 
     text == 1.*,
     base-prelude < 2
