      (zomp-toplevel)
      (get-buffer-process zomp-toplevel-buffer-name))))
 
+(defun zomp-tl-move-point-to-end ()
+  "Will move the point to the end of the toplevel buffer for all
+windows displaying it"
+  (let ((original-window (selected-window)))
+    (dolist (wnd (get-buffer-window-list (get-buffer zomp-toplevel-buffer-name)))
+      (select-window wnd)
+      (goto-char (point-max)))
+    (select-window original-window)))
+
 (defun zomp-make-buffer-local-toplevel ()
   (make-variable-buffer-local 'zomp-toplevel-buffer-name)
   (setq zomp-toplevel-buffer-name (format "*zomp-toplevel<%s>*" (buffer-name))))

  (message "Evaluating buffer")
  (process-send-region (zomp-get-toplevel-buffer 'create) (buffer-end -1) (buffer-end 1))
  (process-send-string (zomp-get-toplevel-buffer) "
"))

(defun zomp-tl-run-test ()
  (interactive)
  (message "Running function test")
  (zomp-tl-do "!run test"))

(defun zomp-run (&optional prefix)

  (interactive "MName of function: ")
  (when (= 0 (length funcname))
    (setq funcname "main"))
  (zomp-tl-move-point-to-end)
  (zomp-tl-do (concat "!run " funcname)))

(defun zomp-tl-list-bindings (regexps)
