diff --git a/examples/Constants.hs b/examples/Constants.hs
new file mode 100644
--- /dev/null
+++ b/examples/Constants.hs
@@ -0,0 +1,17 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+import Text.Tabl
+
+import qualified Data.Text.IO as T
+
+-- | Table containing few physics constants.
+main :: IO ()
+main = T.putStrLn $ tabl EnvAscii hdecor vdecor aligns cells 
+  where
+    hdecor = DecorUnion [DecorOuter, DecorOnly [1]]
+    vdecor = DecorAll
+    aligns = [AlignLeft, AlignLeft, AlignRight]
+    cells  = [ ["Name", "SI Unit", "Value"]
+             , ["Speed of light", "m/s", "299792458"]
+             , ["Atmosphere", "Pa", "101325"]
+             , ["Absolute zero", "C", "-273.15"] ]
diff --git a/examples/Multiply.hs b/examples/Multiply.hs
new file mode 100644
--- /dev/null
+++ b/examples/Multiply.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+import System.Environment
+import Text.Tabl
+
+import qualified Data.Text as T
+import qualified Data.Text.IO as T
+
+-- | Create the multiplication table.
+numbers :: Int        -- ^ table side size
+        -> [[T.Text]] -- ^ multiplication table
+numbers n = header : zipWith (:) digits content
+  where
+    header  = " " : digits
+    digits  = map (T.pack . show) [1..n]
+    content = map (map (T.pack . show)) mults
+    mults   = map (flip map [1..n] . (*)) [1..n]
+
+-- | Table containing basic integer products.
+main :: IO ()
+main = do
+  [n] <- getArgs
+  let cells = numbers (read n)
+  T.putStrLn $ tabl EnvAscii hdecor vdecor aligns cells
+    where
+      hdecor = DecorOnly [1]
+      vdecor = DecorOnly [1]
+      aligns = repeat AlignRight
diff --git a/examples/TicTacToe.hs b/examples/TicTacToe.hs
new file mode 100644
--- /dev/null
+++ b/examples/TicTacToe.hs
@@ -0,0 +1,22 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+import Control.Monad
+import Data.List.Split
+import Data.Word
+import Safe
+import System.Random
+import Text.Tabl
+
+import qualified Data.Text.IO as T
+
+-- | Table containing the play grid of tic-tac-toe.
+main :: IO ()
+main = do
+  xs <- replicateM 9 randomIO :: IO [Word8]
+  let cells = chunksOf 3 $ map (mark . (`mod` 3)) xs
+  T.putStrLn $ tabl EnvAscii hdecor vdecor aligns cells
+  where
+    mark x = lookupJust x [(0, " "), (1, "X"), (2, "O")]
+    hdecor = DecorAll
+    vdecor = DecorAll
+    aligns = []
diff --git a/examples/Users.hs b/examples/Users.hs
new file mode 100644
--- /dev/null
+++ b/examples/Users.hs
@@ -0,0 +1,22 @@
+import System.Posix.User
+import Text.Tabl
+
+import qualified Data.Text as T
+import qualified Data.Text.IO as T
+
+-- | Create a table row for one user entry.
+createRow :: UserEntry -- ^ user
+          -> [T.Text]  -- ^ table row
+createRow ue = map T.pack [show $ userID ue, userName ue, userGecos ue]
+
+-- | Table containing all system users and their respective basic
+-- information.
+main :: IO ()
+main = do
+  users <- getAllUserEntries
+  let cells = map createRow users
+  T.putStrLn $ tabl EnvAscii hdecor vdecor aligns cells
+  where
+    hdecor = DecorNone
+    vdecor = DecorNone
+    aligns = [AlignRight]
diff --git a/src/Text/Tabl/Ascii.hs b/src/Text/Tabl/Ascii.hs
--- a/src/Text/Tabl/Ascii.hs
+++ b/src/Text/Tabl/Ascii.hs
@@ -88,7 +88,8 @@
       -> [Alignment] -- ^ column alignments
       -> [[T.Text]]  -- ^ table cell data
       -> T.Text      -- ^ table
-ascii hpres vpres aligns cells = T.intercalate "\n" drows
+ascii hpres vpres aligns cells = T.intercalate "\n" decorated
   where
-    drows  = applyDecoration hpres vpres acells
-    acells = alignCells cells (columnWidths cells) aligns
+    decorated = applyDecoration hpres vpres aligned
+    aligned   = alignCells escaped (columnWidths escaped) aligns
+    escaped   = map (map (T.replace "\n" "\\n" . T.replace "\t" "\\t")) cells
diff --git a/tabl.cabal b/tabl.cabal
--- a/tabl.cabal
+++ b/tabl.cabal
@@ -1,5 +1,5 @@
 name:                tabl
-version:             0.1.0.0
+version:             1.0.1
 synopsis:            Table layout
 description:         Text.Tabl arranges multiple Text instances into a
                      table layout while providing means of alignment
@@ -25,6 +25,42 @@
                      , Text.Tabl.Util
   build-depends:       base >= 4.7 && < 5
                      , safe
+                     , text
+  default-language:    Haskell2010
+
+executable tabl-example-users
+  hs-source-dirs:      examples
+  main-is:             Users.hs
+  build-depends:       base
+                     , unix
+                     , tabl
+                     , text
+  default-language:    Haskell2010
+
+executable tabl-example-multiply
+  hs-source-dirs:      examples
+  main-is:             Multiply.hs
+  build-depends:       base
+                     , tabl
+                     , text
+  default-language:    Haskell2010
+
+executable tabl-example-tictactoe
+  hs-source-dirs:      examples
+  main-is:             TicTacToe.hs
+  build-depends:       base
+                     , random
+                     , safe
+                     , split
+                     , tabl
+                     , text
+  default-language:    Haskell2010
+
+executable tabl-example-constants
+  hs-source-dirs:      examples
+  main-is:             Constants.hs
+  build-depends:       base
+                     , tabl
                      , text
   default-language:    Haskell2010
 
