diff --git a/Setup.hs b/Setup.hs
deleted file mode 100644
--- a/Setup.hs
+++ /dev/null
@@ -1,2 +0,0 @@
-import Distribution.Simple
-main = defaultMain
diff --git a/Setup.lhs b/Setup.lhs
new file mode 100644
--- /dev/null
+++ b/Setup.lhs
@@ -0,0 +1,3 @@
+#!/usr/bin/env runhaskell
+> import Distribution.Simple
+> main = defaultMain
diff --git a/js-good-parts.cabal b/js-good-parts.cabal
--- a/js-good-parts.cabal
+++ b/js-good-parts.cabal
@@ -1,10 +1,10 @@
 Name:                js-good-parts
-Version:             0.0.3
+Version:             0.0.4
 Cabal-Version:       >= 1.6
 Synopsis:            Javascript: The Good Parts -- AST & Pretty Printer
 Category:            Language, Javascript
 Description:
-  An AST for the "the good parts" of Javascript (as defined by Douglas Crockford) 
+  An AST for the \"the good parts\" of Javascript (as defined by Douglas Crockford) 
   and a pretty printer for that AST. Designed to be the target of a code generator.
   Does not include a parser.
 
diff --git a/src/Language/JavaScript/AST.hs b/src/Language/JavaScript/AST.hs
--- a/src/Language/JavaScript/AST.hs
+++ b/src/Language/JavaScript/AST.hs
@@ -561,8 +561,16 @@
   = JSProperty  JSName
   | JSSubscript JSExpression
 
+--
+-- | Interestingly, the syntax diagrams presented in the book don't include
+--   boolean literals. I can only assume this is an oversight as they
+--   are used throughout the book.
+--
+
+
 data JSLiteral
   = JSLiteralNumber   JSNumber          -- ^ @\<JSNumber\>@
+  | JSLiteralBool     Bool              -- ^ @\<true | false\>@
   | JSLiteralString   JSString          -- ^ @\<JSString\>@
   | JSLiteralObject   JSObjectLiteral   -- ^ @\<JSObjectLiteral\>@
   | JSLiteralArray    JSArrayLiteral    -- ^ @\<JSArrayLiteral\>@
diff --git a/src/Language/JavaScript/Pretty.hs b/src/Language/JavaScript/Pretty.hs
--- a/src/Language/JavaScript/Pretty.hs
+++ b/src/Language/JavaScript/Pretty.hs
@@ -1,4 +1,7 @@
-module Language.JavaScript.Pretty where
+module Language.JavaScript.Pretty (
+ -- | This module just defines and exports 'Pretty' and 'PrettyPrec' instances
+ Pretty(..)
+) where
 
 -- System libraries
 import Text.PrettyPrint.Leijen
@@ -102,7 +105,7 @@
 instance PrettyPrec JSNumber -- default
 
 instance Pretty JSVarStatement where
-  pretty (JSVarStatement varDecls) = sepWith' (text ", ") varDecls
+  pretty (JSVarStatement varDecls) = sepWith' (comma <+> empty) varDecls
 
 instance PrettyPrec JSVarStatement -- default
 
@@ -274,7 +277,7 @@
   prettyPrec = error "we never print an operator by itself"
 
 instance Pretty JSInvocation          where
-  pretty = error "undefined"
+  pretty (JSInvocation es) = lparen <> sepWith (comma <+> empty) es <> rparen
 
 instance PrettyPrec JSInvocation -- default
 
@@ -308,7 +311,7 @@
 instance PrettyPrec JSObjectField -- default
 
 instance Pretty JSArrayLiteral        where
-  pretty (JSArrayLiteral es) = sepWith (comma <+> empty) es
+  pretty (JSArrayLiteral es) = lbracket <> sepWith (comma <+> empty) es <> rbracket
 
 instance PrettyPrec JSArrayLiteral -- default
 
