    (concat ":cd "
            (read-directory-name "Change Intero directory: "))))
 
+(defun intero-fontify-expression (expression)
+  "Return a haskell-fontified version of EXPRESSION."
+  (with-temp-buffer
+    (when (fboundp 'haskell-mode)
+      (haskell-mode))
+    (insert expression)
+    (if (fboundp 'font-lock-ensure)
+        (font-lock-ensure)
+      (font-lock-fontify-buffer))
+    (buffer-string)))
+
 (defun intero-type-at (insert)
   "Get the type of the thing or selection at point.
 

    (if insert
        (save-excursion
          (goto-char (line-beginning-position))
          (insert
           (format "%s\n"
                   (with-temp-buffer
                     (when (fboundp 'haskell-mode)
                       (haskell-mode))
                     (insert ty)
                     (font-lock-fontify-buffer)
                     (buffer-string)))))
      (message
       "%s"
       (with-temp-buffer
         (when (fboundp 'haskell-mode)
           (haskell-mode))
         (insert ty)
         (font-lock-fontify-buffer)
         (buffer-string))))))

(defun intero-info (ident)
  "Get the info of the thing at point."

        (with-help-window (help-buffer)
          (with-current-buffer (help-buffer)
            (insert
             (intero-fontify-expression ident)
             " in `"
             origin
             "'"
             " (" package ")"
             "\n\n"
             (intero-fontify-expression info))
            (goto-char (point-min))))))))

(defun intero-goto-definition ()
