diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,11 @@
 # doclayout
 
+## 0.3.0.2
+
+ * NOINLINE `literal` instead of `fromString` (#2, sjakobi).
+   This produces a further reduction in allocations and
+   pandoc compile time.
+
 ## 0.3.0.1
 
  * NOINLINE `fromString` (#1).
diff --git a/doclayout.cabal b/doclayout.cabal
--- a/doclayout.cabal
+++ b/doclayout.cabal
@@ -1,5 +1,5 @@
 name:                doclayout
-version:             0.3.0.1
+version:             0.3.0.2
 synopsis:            A prettyprinting library for laying out text documents.
 description:         doclayout is a prettyprinting library for laying out
                      text documents, with several features not present
diff --git a/src/Text/DocLayout.hs b/src/Text/DocLayout.hs
--- a/src/Text/DocLayout.hs
+++ b/src/Text/DocLayout.hs
@@ -165,7 +165,6 @@
 
 instance HasChars a => IsString (Doc a) where
   fromString = text
-  {-# NOINLINE fromString #-}
 
 -- | Unfold a 'Doc' into a flat list.
 unfoldD :: Doc a -> [Doc a]
@@ -489,6 +488,7 @@
                     then Empty
                     else Text (realLength s) s) $
         splitLines x
+{-# NOINLINE literal #-}
 
 -- | A literal string.  (Like 'literal', but restricted to String.)
 text :: HasChars a => String -> Doc a
