diff --git a/language-lua.cabal b/language-lua.cabal
--- a/language-lua.cabal
+++ b/language-lua.cabal
@@ -1,6 +1,6 @@
 Name:                language-lua
 Description:         Lua 5.2 lexer, parser and pretty-printer.
-Version:             0.1
+Version:             0.1.1
 Synopsis:            Lua parser and pretty-printer
 Homepage:            http://github.com/osa1/language-lua
 Bug-reports:         http://github.com/osa1/language-lua/issues
@@ -13,7 +13,7 @@
 Stability:           Experimental
 Cabal-version:       >= 1.9.2
 
-Extra-source-files:src/Text/PrettyPrint/LICENSE
+Extra-source-files:  src/Text/PrettyPrint/LICENSE
 
 Source-repository head
   type:              git
@@ -31,7 +31,7 @@
 
   Other-modules:     Text.PrettyPrint.Leijen
 
-  Build-depends:     base >= 4.5 && < 4.6,
-                     mtl >= 2.0 && < 2.1,
+  Build-depends:     base >= 4.5 && < 4.7,
+                     mtl >= 2.0 && < 2.2,
                      parsec >= 3.1.3 && < 3.2,
                      array >= 0.4 && < 0.5
diff --git a/src/Language/Lua/PrettyPrinter.hs b/src/Language/Lua/PrettyPrinter.hs
--- a/src/Language/Lua/PrettyPrinter.hs
+++ b/src/Language/Lua/PrettyPrinter.hs
@@ -5,7 +5,6 @@
 {-# LANGUAGE FlexibleInstances #-}
 
 -- | Lua pretty-printer.
--- This is a work in progress.
 module Language.Lua.PrettyPrinter (pprint, Printer(..), LPretty) where
 
 import Prelude hiding (EQ, GT, LT)
diff --git a/src/Language/Lua/Token.hs b/src/Language/Lua/Token.hs
--- a/src/Language/Lua/Token.hs
+++ b/src/Language/Lua/Token.hs
@@ -56,7 +56,64 @@
             | LTokSLit      String   -- ^string constant
             | LTokIdent     String   -- ^identifier
             | LTokEof                -- ^end of file
-    deriving (Show, Eq)
+    deriving Eq
+
+instance Show LToken where
+    show LTokPlus          = "`+`"
+    show LTokMinus         = "`-`"
+    show LTokStar          = "`*`"
+    show LTokSlash         = "`/`"
+    show LTokPercent       = "`%`"
+    show LTokExp           = "`^`"
+    show LTokSh            = "`#`"
+    show LTokEqual         = "`=`"
+    show LTokNotequal      = "`~=`"
+    show LTokLEq           = "`<=`"
+    show LTokGEq           = "`>=`"
+    show LTokLT            = "`<`"
+    show LTokGT            = "`>`"
+    show LTokAssign        = "`=`"
+    show LTokLParen        = "`(`"
+    show LTokRParen        = "`)`"
+    show LTokLBrace        = "`{`"
+    show LTokRBrace        = "`}`"
+    show LTokLBracket      = "`[`"
+    show LTokRBracket      = "`]`"
+    show LTokDColon        = "`::`"
+    show LTokSemic         = "`;`"
+    show LTokColon         = "`:`"
+    show LTokComma         = "`,`"
+    show LTokDot           = "`.`"
+    show LTokDDot          = "`..`"
+    show LTokEllipsis      = "`...`"
+
+    show LTokAnd           = "`and`"
+    show LTokBreak         = "`break`"
+    show LTokDo            = "`do`"
+    show LTokElse          = "`else`"
+    show LTokElseIf        = "`elseif`"
+    show LTokEnd           = "`end`"
+    show LTokFalse         = "`false`"
+    show LTokFor           = "`for`"
+    show LTokFunction      = "`function`"
+    show LTokGoto          = "`goto`"
+    show LTokIf            = "`if`"
+    show LTokIn            = "`in`"
+    show LTokLocal         = "`local`"
+    show LTokNil           = "`nil`"
+    show LTokNot           = "`not`"
+    show LTokOr            = "`or`"
+    show LTokRepeat        = "`repeat`"
+    show LTokReturn        = "`return`"
+    show LTokThen          = "`then`"
+    show LTokTrue          = "`true`"
+    show LTokUntil         = "`until`"
+    show LTokWhile         = "`while`"
+
+    show (LTokNum   n)     = "number: " ++ show n
+    show (LTokSLit  s)     = "string: " ++ show s
+    show (LTokIdent i)     = "identifier: " ++ show i
+    show LTokEof           = "EOF"
 
 -- | Partial function, returns value of `LTokNum`, `LTokSLit` and `LTokIdent`.
 tokenValue :: LToken -> String
