diff --git a/src/Text/Printf/TH.hs b/src/Text/Printf/TH.hs
--- a/src/Text/Printf/TH.hs
+++ b/src/Text/Printf/TH.hs
@@ -35,7 +35,7 @@
 
 data Specifier = SignedDec | Octal | UnsignedHex | UnsignedHexUpper
                | FloatS | FloatUpper | Sci | SciUpper | ShorterFloat | ShorterFloatUpper
-               | CharS | Str | Percent deriving (Eq, Show, Data, Typeable)
+               | CharS | Str | Percent | Showable deriving (Eq, Show, Data, Typeable)
 
 data Flag = Minus | Plus | Space | Hash | Zero deriving (Eq, Show, Data, Typeable)
 
@@ -121,6 +121,7 @@
     <|> CharS <$ char 'c'
     <|> Str <$ char 's'
     <|> Percent <$ char '%'
+    <|> Showable <$ char '?'
 
 data PrintfArg = PrintfArg
                { paSpec :: Chunk
@@ -170,6 +171,7 @@
         ShorterFloatUpper -> 'showUpperShorter
         CharS -> 'showCharP
         Str -> 'showStringP
+        Showable -> 'showShowP
         m -> error $ "Unhandled specifier: " ++ show m
 arg m = error $ "Unhandled argument: " ++ show m
 
@@ -236,6 +238,9 @@
 
 showStringP :: ToString a => Chunk -> Integer -> Integer -> a -> String
 showStringP pa w _ n = space pa . pad w pa $ toString n
+
+showShowP :: Show a => Chunk -> Integer -> Integer -> a -> String
+showShowP pa w _ n = space pa . pad w pa $ show n
 
 space :: Chunk -> String -> String
 space c = if Space `elem` flags c && Plus `notElem` flags c then (' ':) else id
diff --git a/th-printf.cabal b/th-printf.cabal
--- a/th-printf.cabal
+++ b/th-printf.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                th-printf
-version:             0.1.0.0
+version:             0.2.0.0
 synopsis:            Compile-time printf
 description:         Quasiquoters for printf: string, bytestring, text.
 homepage:            https://github.com/joelteon/th-printf
