 (require 'geiser-impl)
 (require 'geiser-eval)
 (require 'geiser-connection)
+(require 'geiser-menu)
 (require 'geiser-custom)
 (require 'geiser-base)
 

(define-key geiser-repl-mode-map [return] 'geiser-repl--send-input)
(define-key geiser-repl-mode-map "\C-j" 'geiser-repl--newline-and-indent)

(define-key geiser-repl-mode-map "\C-ck" 'geiser-repl-nuke)
(define-key geiser-repl-mode-map "\C-c\C-k" 'geiser-repl-nuke)

(define-key geiser-repl-mode-map "\C-cz" 'switch-to-geiser)
(define-key geiser-repl-mode-map "\C-c\C-z" 'switch-to-geiser)
(define-key geiser-repl-mode-map "\C-a" 'geiser-repl--bol)
(define-key geiser-repl-mode-map (kbd "<home>") 'geiser-repl--bol)
(define-key geiser-repl-mode-map "\C-ca" 'geiser-autodoc-mode)
(define-key geiser-repl-mode-map "\C-cd" 'geiser-doc-symbol-at-point)
(define-key geiser-repl-mode-map "\C-cm" 'geiser-repl--doc-module)
(define-key geiser-repl-mode-map "\C-cl" 'geiser-load-file)

(define-key geiser-repl-mode-map "\M-p"
  'comint-previous-matching-input-from-input)
(define-key geiser-repl-mode-map "\M-n"
  'comint-next-matching-input-from-input)
(define-key geiser-repl-mode-map "\C-c\M-p" 'comint-previous-input)
(define-key geiser-repl-mode-map "\C-c\M-n" 'comint-next-input)

(define-key geiser-repl-mode-map (kbd "M-TAB")
  'geiser-completion--complete-symbol)
(define-key geiser-repl-mode-map (kbd "M-`")
  'geiser-completion--complete-module)
(define-key geiser-repl-mode-map (kbd "C-.")
  'geiser-completion--complete-module)
(define-key geiser-repl-mode-map "\M-." 'geiser-edit-symbol-at-point)
(define-key geiser-repl-mode-map "\M-," 'geiser-edit-pop-edit-symbol-stack)



  (setq geiser-autodoc--inhibit-function 'geiser-con--is-debugging)
  (geiser-company--setup geiser-repl-company-p)
  (setq geiser-smart-tab-mode-string "")
  (geiser-menu--provide)
  ;; enabling compilation-shell-minor-mode without the annoying highlighter
  (compilation-setup t))

