diff --git a/elisp/shm.el b/elisp/shm.el
index dfb469b..5e9a6de 100644
--- a/elisp/shm.el
+++ b/elisp/shm.el
@@ -36,6 +36,7 @@
 (require 'shm-context-menu)
 
 (require 'cl)
+(require 'json)
 
 (defvar shm-current-node-overlay nil
   "Overlay to highlight the current node.")
@@ -266,7 +267,7 @@
                                      "Emacs")
               ((file-error)
                (error "Unable to find structured-haskell-mode executable! See README for help.")))))
-        (read (buffer-string))))))
+        (json-read-from-string (buffer-string))))))
 
 (defun shm-lint-ast (type start end)
   "Get refactor suggestions for the region of TYPE from START to END."
diff --git a/src/HSrcQuery.hs b/src/HSrcQuery.hs
index 3a1a381..fc08f96 100644
--- a/src/HSrcQuery.hs
+++ b/src/HSrcQuery.hs
@@ -68,7 +68,6 @@
                         pkgConfigDirPath 
                         cabalFilePath 
                         buildTargetName
-                        client
                         code
 
 ------------------------------------------------------------------------------
@@ -93,22 +92,22 @@
      -> FilePath
      -> FilePath
      -> String
-     -> Client
      -> String
      -> IO String
-runQuery FreeVariables srcFile 
-                       pkgConfigPath 
-                       cabalFilePath 
-                       buildTargetName 
-                       client 
-                       code = 
-  freeVariables srcFile 
+runQuery FreeVariables srcFile
+                       pkgConfigPath
+                       cabalFilePath
+                       buildTargetName
+                       code =
+  freeVariables srcFile
                 pkgConfigPath
                 cabalFilePath
                 buildTargetName
-                client
                 code
-runQuery LambdaBody _ _ _ _ _ code = return $ lambdaBody code
-runQuery LambdaArgs _ _ _ _ _ code = return $ lambdaArgs code
-runQuery HLint      _ _ _ _ _ code = hlint code
-runQuery ParseAST   _ _ _ _ _ code = return $ parseAST code
+runQuery LambdaBody _ _ _ _ code = return $ lambdaBody code
+runQuery LambdaArgs _ _ _ _ code = return $ lambdaArgs code
+runQuery HLint      _ _ _ _ code = hlint code
+runQuery ParseAST   _ _ _ _ code = return $ parseAST code
+
+------------------------------------------------------------------------------
+fn c = (\a b -> a + b) c
diff --git a/src/Lambda.hs b/src/Lambda.hs
index 29fce06..93b7381 100644
--- a/src/Lambda.hs
+++ b/src/Lambda.hs
@@ -7,14 +7,14 @@
 import Data.Generics.Aliases
 import Data.Generics.Schemes
 import Data.List
+import Data.Char
 import Language.Haskell.Exts
 ------------------------------------------------------------------------------
 import HDevTools
-import Client
 
 ------------------------------------------------------------------------------
-freeVariables :: FilePath -> FilePath -> FilePath -> String -> Client -> String -> IO String
-freeVariables srcPath pkgConfigPath cabalFilePath buildTargetName client code = case parseExp code of
+freeVariables :: FilePath -> FilePath -> FilePath -> String -> String -> IO String
+freeVariables srcPath pkgConfigPath cabalFilePath buildTargetName code = case parseExp code of
   ParseOk ast -> do
    names <- dropModuleVariableNames srcPath
                                     pkgConfigPath
diff --git a/src/ParseAST.hs b/src/ParseAST.hs
index 472f820..996e040 100644
--- a/src/ParseAST.hs
+++ b/src/ParseAST.hs
@@ -6,16 +6,17 @@
 
 import Control.Applicative
 import Data.Data
+import Data.List
 import Data.Maybe
 import Language.Haskell.Exts.Annotated
 
------------------------------------------------------------------------------------------
+------------------------------------------------------------------------------
 data D = forall a. Data a => D a
 
------------------------------------------------------------------------------------------
+------------------------------------------------------------------------------
 parseAST :: String -> [Char]
 parseAST code = case parseTopLevel parseMode code of
-  ParseOk (D ast) -> ("[" ++ concat (genHSE ast) ++ "]")
+  ParseOk (D ast) -> "[" ++  (intercalate "," (genHSE ast)) ++ "]"
   ParseFailed _ _ -> "[]"
 
 -----------------------------------------------------------------------------------------
@@ -72,7 +73,7 @@
 -----------------------------------------------------------------------------------------
 -- | Generate a span from a HSE SrcSpan.
 spanHSE :: String -> String -> SrcSpan -> String
-spanHSE typ cons SrcSpan{..} = "[" ++ spanContent ++ "]"
+spanHSE typ cons SrcSpan{..} = "[" ++ (intercalate "," spanContent) ++ "]"
   where unqualify   = dropUntilLast '.'
         spanContent =
           unwords [unqualify typ
