 
 ;; Continuing
 
-(defvar ocaml-info-alist nil
+(defvar ocaml-info-alist 'ocaml-ocamldoc-info
   "A-list binding module names to info entries: 
 
   nil means do not use info.
 
   A function to build the list lazily (at the first call). The result of
 the function call will be assign permanently to this variable for future
-uses. We provide two default functions `ocaml-hevea-info' and
-`ocaml-ocamldoc-info'. 
+uses. We provide two default functions \\[ocaml-info-default-function]
+(info produced by HeVeA is the default) and \\[ocaml-info-default-function] 
+(info produced by ocamldoc). 
 
   Otherwise, this value should be an alist binding module names to info
-entries of the form to \"(entry)section\" be taken by the `info'
+entries of the form to \"(entry)section\" be taken by the \\[info] 
 command. An entry may be an info module or a complete file name."
 )
 

(defun ocaml-goto-help (&optional module entry)
  "Searches info manual for MODULE and ENTRY in MODULE.
If unspecified, MODULE and ENTRY are inferred from the position in the
current buffer using `ocaml-qualified-identifier'."
  (interactive)
  (let ((info-section (assoc module (ocaml-info-alist))))
    (if info-section (info (cdr info-section))
      (ocaml-visible-modules)
      (let* ((module-info
              (or (assoc module (ocaml-module-alist))
                  (and (file-exists-p
                        (concat (ocaml-uncapitalize module) ".mli"))
                       (ocaml-get-or-make-module module))))                  
             (location (cdr (cadr module-info))))
        (cond
         (location
          (view-file (concat location (ocaml-uncapitalize module) ".mli"))
          (bury-buffer (current-buffer)))
         (info-section (error "Aborted"))
         (t (error "No help for module %s" module))))
      ))
  (if (stringp entry)
      (let ((here (point)))
        (goto-char (point-min))
        (or (re-search-forward
             (concat "\\(val\\|exception\\|external\\|[|{;]\\) +"
                     (regexp-quote entry))
             (point-max) t)
            (search-forward entry (point-max) t)
            (progn
              (message "Help for entry %s not found in module %s"
                       entry module)
              (goto-char here)))))
  )

(defun caml-help (arg)
  "Find help for qualified identifiers. 

It attemps to recognize an qualified identifier of the form Module . entry 
around point using function `ocaml-qualified-identifier'.

If Module is undefined it finds it from indentifier and visible modules, 
or asks the user interactively. 

                       nil)
                      ((equal (length modules) 1)
                       (caar modules))
                      ((equal (length visible) 1)
                       (caar visible))
                      (t
                       (setq hist (mapcar 'car modules))
                       (completing-read "Module: " modules nil t
