diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -10,6 +10,6 @@
 ```
 which prints:
 
-    (a) = 2   (a+1) = 3       (map (+1) [1..3]) = [2,3,4]
+    (a) = 2   (a+1) = 3       (map (+a) [1..3]) = [3,4,5]
 
 
diff --git a/dump.cabal b/dump.cabal
--- a/dump.cabal
+++ b/dump.cabal
@@ -2,7 +2,7 @@
 -- see http://haskell.org/cabal/users-guide/
 
 name:               dump
-version:            0.2.0
+version:            0.2.1
 synopsis:           Dumps the names and values of expressions to ease debugging.
 description:        Example: "let a=1 in [d|a, a+1|] == \"(a) = 1, (a+1) = 2\""
 license:            MIT
@@ -21,7 +21,7 @@
 
 library
   exposed-modules:    Debug.Dump
-  other-modules:      Utils
+  other-modules:      Utils, Internal.Parse
   -- other-extensions:
   build-depends:      base >=4 && <5
                     , template-haskell
diff --git a/src/Internal/Parse.hs b/src/Internal/Parse.hs
new file mode 100644
--- /dev/null
+++ b/src/Internal/Parse.hs
@@ -0,0 +1,40 @@
+module Internal.Parse where
+
+import Debug.Trace
+
+parseSimple :: String -> [String]
+parseSimple "" = []
+parseSimple str = match : parseSimple rest
+  where
+    match = pExp str
+    rest = drop (length match + 1) str
+
+pExp :: String -> String
+pExp = pUntil 0 ','
+
+pUntil :: Int -> Char -> String -> String
+pUntil _ _ "" = ""
+pUntil i c (x : xs)
+  | x == c    = ""
+  | x == '('  = x : matchAndRest ')'
+  | x == '['  = x : matchAndRest ']'
+  | x == '\'' = x : leaf '\''
+  | x == '"'  = x : leaf '"'
+  | otherwise = x : pUntil i c xs
+    where
+      matchAndRest = factory $ pUntil $ i + 1
+      leaf = factory pLeaf
+      factory :: (Char -> String -> String) -> Char -> String
+      factory f cc = match ++ [cc] ++ pUntil i c rest
+        where
+          match = f cc xs
+          rest = drop (length match + 1) xs
+
+pLeaf :: Char -> String -> String
+pLeaf _  ""   = ""
+pLeaf cc (x:xs)
+  | x == cc   = ""
+  | x == '\\' = x : case xs of
+    ""       -> ""
+    (y:ys)   -> y : pLeaf cc ys
+  | otherwise = x : pLeaf cc xs
