       (push (cons "Exception" merlin-imenu--exception-list) index))
     (when merlin-imenu--type-list
       (push (cons "Type" merlin-imenu--type-list) index))
+    (when merlin-imenu--module-list
+      (push (cons "Module" merlin-imenu--module-list) index))
+    (when merlin-imenu--signature-list
+      (push (cons "Signature" merlin-imenu--signature-list) index))
+    (when merlin-imenu--class-list
+      (push (cons "Class" merlin-imenu--class-list) index))
     index))
 
 ;;;###autoload

(defvar-local merlin-imenu--value-list nil)
(defvar-local merlin-imenu--type-list nil)
(defvar-local merlin-imenu--exception-list nil)

(defun merlin-imenu-compute-position (line col)
  "Get location of the item."

  ;; Reset local vars
  (setq merlin-imenu--value-list nil
        merlin-imenu--type-list nil
        merlin-imenu--module-list nil
        merlin-imenu--signature-list nil
        merlin-imenu--class-list nil
        merlin-imenu--exception-list nil)
  ;; Read outline tree
  (merlin-imenu-parse-outline "" (merlin-call "outline"))
