diff --git a/Text/HJson.hs b/Text/HJson.hs
--- a/Text/HJson.hs
+++ b/Text/HJson.hs
@@ -71,12 +71,9 @@
 	fromJson (JString s) = Just s
 	fromJson _ = Nothing
 instance (Jsonable a) => Jsonable (Map.Map String a) where
-	toJson = JObject . Map.mapWithKey (\_ v -> (toJson v))
-	fromJson (JObject m) = Just $ Map.fromList $ catMaybes $ map (\(k, v) -> maybe (Nothing) (\jv -> Just (k, jv)) (fromJson v)) $ Map.toList m
-	fromJson _ = Nothing
-instance (Jsonable a) => [a] where
-	toJson = undefined
-	fromJson = undefined
+ 	toJson = JObject . Map.mapWithKey (\_ v -> (toJson v))
+ 	fromJson (JObject m) = Just $ Map.fromList $ catMaybes $ map (\(k, v) -> maybe (Nothing) (\jv -> Just (k, jv)) (fromJson v)) $ Map.toList m
+ 	fromJson _ = Nothing
 
 -- private functions
 
diff --git a/Text/HJson/Pretty.hs b/Text/HJson/Pretty.hs
new file mode 100644
--- /dev/null
+++ b/Text/HJson/Pretty.hs
@@ -0,0 +1,19 @@
+module Text.HJson.Pretty (toString) where
+
+import Data.List
+import qualified Data.Map as Map
+import qualified Text.HJson as JSON
+import Text.HJson (Json(..))
+
+-- | Pretty-prints JSON with given indenter
+toString :: String -> Json -> String
+toString s j = toString' s 0 j
+
+toString' :: String -> Integer -> Json -> String
+
+toString' indenter levels (JArray xs) = "[" ++ (intercalate ", " $ map (toString' indenter levels) xs) ++ "]"
+
+toString' indenter levels (JObject mp) = let
+	currentIndent = (concat (genericReplicate levels indenter))
+		in intercalate "\n" $ ["{", intercalate ",\n" (map (((currentIndent ++ indenter) ++) . (\(key, value) -> toString' indenter levels (JString key) ++ ": " ++ toString' indenter (levels + 1) value)) $ Map.toList mp), currentIndent ++ "}"]
+toString' _ _ a = JSON.toString a
diff --git a/hjson.cabal b/hjson.cabal
--- a/hjson.cabal
+++ b/hjson.cabal
@@ -1,5 +1,5 @@
 Name: hjson
-Version: 1.1.3
+Version: 1.2
 Synopsis: JSON parsing library
 Category: Text
 Description: JSON parsing library with simple and sane API
@@ -15,5 +15,5 @@
     Location: git://git.bitcheese.net/hjson
 
 library
- Exposed-Modules: Text.HJson
+ Exposed-Modules: Text.HJson, Text.HJson.Pretty
  Build-Depends: base >= 4 && < 5, parsec >= 3.0.0, containers, safe
