diff --git a/exe/Main.hs b/exe/Main.hs
--- a/exe/Main.hs
+++ b/exe/Main.hs
@@ -152,7 +152,7 @@
                 Core.sendFunc lf . RspCompletion $ Core.makeResponseMessage req none
 
               Right symbols -> do
-                let render txt = J.CompletionItem txt Nothing (J.List []) Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing
+                let render (txt, typInfo) = J.CompletionItem txt Nothing (J.List []) typInfo Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing
                 Core.sendFunc lf . RspCompletion $ Core.makeResponseMessage req (J.Completions . J.List $ render <$> symbols)
           Nothing -> do
             Core.sendFunc lf . RspCompletion $ Core.makeResponseMessage req none
diff --git a/hsinspect-lsp.cabal b/hsinspect-lsp.cabal
--- a/hsinspect-lsp.cabal
+++ b/hsinspect-lsp.cabal
@@ -1,6 +1,6 @@
 cabal-version: 2.2
 name:          hsinspect-lsp
-version:       0.0.4
+version:       0.0.5
 synopsis:      LSP interface over the hsinspect binary.
 license:       GPL-3.0-or-later
 license-file:  LICENSE
@@ -9,7 +9,7 @@
 copyright:     2020 Tseen She
 tested-with:   GHC ^>=8.4.4 || ^>=8.6.5 || ^>=8.8.3
 category:      Building
-description:   Inspect @.hs@ files using the ghc api.
+description:   Inspect @.hs@ files using the ghc api over LSP.
 
 source-repository head
   type:     git
diff --git a/library/HsInspect/LSP/Impl.hs b/library/HsInspect/LSP/Impl.hs
--- a/library/HsInspect/LSP/Impl.hs
+++ b/library/HsInspect/LSP/Impl.hs
@@ -131,7 +131,7 @@
        in (range,) <$> firstJust matcher symbols
 
 -- TODO use the index to add optional type information
-completionProvider :: Caches -> FilePath -> Text -> (Int, Int) -> ExceptT String IO [Text]
+completionProvider :: Caches -> FilePath -> Text -> (Int, Int) -> ExceptT String IO [(Text, Maybe Text)]
 completionProvider caches file contents position = do
   ctx <- cachedContext caches file
   symbols <- cachedImports caches ctx file
@@ -140,13 +140,13 @@
   pure $ case traceShow (found, symbols) found of
     Nothing -> []
     Just (_, sym) -> do
-      let findNameAndType :: Text -> Import -> Text
+      let findNameAndType :: Text -> Import -> (Text, Maybe Text)
           findNameAndType name imp =
             case findType (_full imp) index of
-              Just typ -> name <> " :: " <> typ
-              Nothing -> name
+              Just typ -> (name, Just typ)
+              Nothing -> (name, Nothing)
 
-          matcher :: (Import -> Maybe Text) -> Import -> Maybe Text
+          matcher :: (Import -> Maybe Text) -> Import -> Maybe (Text, Maybe Text)
           matcher key imp = do
             pref <- key imp
             if T.isPrefixOf sym pref
