diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,9 @@
 # Revision history for execpath
 
+## 0.2.0.0 -- 2019-01-23
+
+* Extended the ExecArg typeclass to handle lists.
+
 ## 0.1.1.0 -- 2019-01-22
 
 * Generate an IO action to check for missing dependencies at runtime.
diff --git a/shh.cabal b/shh.cabal
--- a/shh.cabal
+++ b/shh.cabal
@@ -1,5 +1,5 @@
 name:                shh
-version:             0.1.1.0
+version:             0.2.0.0
 synopsis:            Simple shell scripting from Haskell
 description:         Provides a shell scripting environment for Haskell. It
                      helps you all external binaries, and allows you to
diff --git a/src/Shh/Internal.hs b/src/Shh/Internal.hs
--- a/src/Shh/Internal.hs
+++ b/src/Shh/Internal.hs
@@ -343,12 +343,18 @@
     default asArg :: Show a => a -> [String]
     asArg a = [show a]
 
-instance ExecArg String where
-    asArg s = [s]
+    -- God, I hate that String is [Char]...
+    asArgFromList :: [a] -> [String]
+    default asArgFromList :: Show a => [a] -> [String]
+    asArgFromList = concatMap asArg
 
--- TODO: Determine if `Char` flags should be prepended with a '-' or not. 
--- instance ExecArg Char where
---     asArg c = [['-', c]]
+instance ExecArg Char where
+    asArg s = [[s]]
+    asArgFromList s = [s]
+
+instance ExecArg a => ExecArg [a] where
+    asArg = asArgFromList
+    asArgFromList = concatMap asArg
 
 instance ExecArg Int
 instance ExecArg Integer
