Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
;; This file:
;;   http://angg.twu.net/AGDA/find-agdatype.el.html
;;   http://angg.twu.net/AGDA/find-agdatype.el
;;           (find-angg "AGDA/find-agdatype.el")
;; Author: Eduardo Ochs <eduardoochs@gmail.com>
;; Date: 2022feb04
;; Public domain.
;; Status: not thoroughly tested.
;;
;; See: http://angg.twu.net/eev-agda.html
;; This is a cleaned-up version of:
;;   (find-angg "AGDA/find-agdatype-2021.el")
;;
;; I've tried to make this version independent of eev.
;; If you don't have eev you will probably have to use something like
;; `C-e C-x C-e' to the execute sexps in comments; with eev you can
;; execute them with `M-e'. See:
;;   (find-eev-quick-intro "2. Evaluating Lisp" "When you type `M-e'")
;;   (find-eev-quick-intro "3. Elisp hyperlinks" "eek")
;;   http://angg.twu.net/eev-intros/find-eev-quick-intro.html#2
;;   http://angg.twu.net/eev-intros/find-eev-quick-intro.html#3

(if (not (fboundp 'eek))

(defun eek (str)
  "Execute STR as a keyboard macro. See `edmacro-mode' for the exact format.\n
An example: (eek \"C-x 4 C-h\")"
  (interactive "sKeys: ")
  (execute-kbd-macro (read-kbd-macro str)))

)

(defun eek-at-agda-pg (str)
  "Go to the previous goal, run (eek STR) there, and go back."
  (save-excursion
    (agda2-previous-goal)
    (eek str)))

;; Test: (ee-agda-eekify "  foo  bar  ")
;;   --> "foo SPC bar"
;;
(defun ee-agda-eekify (str)
  "Convert STR - an expression in Agda - to a sequence of keys for `eek'."
  (let* ((str1 (string-trim str))
	 (str2 (replace-regexp-in-string "[ \t]+" " " str1))
         (str3 (replace-regexp-in-string " " " SPC " str2)))
    str3))

(defun find-agdatype (agdaexpr &rest rest)
  "Show the type of AGDAEXPR in the buffer \"*Inferred Type*\".
This function runs `C-c C-d AGDAEXPR RET' at point using `eek'.
This only works in agda2-mode. This is a quick hack!"
  (eek (format "C-c C-d %s RET" (ee-agda-eekify agdaexpr)))
  '(See the buffer "*Inferred Type*"))

(defun find-agdanorm (agdaexpr &rest rest)
  "Show the normalized value of AGDAEXPR in the buffer \"*Normal Form*\".
This function runs `C-c C-n AGDAEXPR RET' at point using `eek'.
This only works in agda2-mode. This is a quick hack!"
  (eek (format "C-c C-n %s RET" (ee-agda-eekify agdaexpr)))
  '(See the buffer "*Normal Form*"))

(defun find-agdatypep (agdaexpr &rest rest)
  "Show the type of AGDAEXPR in the buffer \"*Inferred Type*\".
This function runs `C-c C-d AGDAEXPR RET' at the previous goal using `eek'.
This only works in agda2-mode. This is a quick hack!"
  (eek-at-agda-pg (format "C-c C-d %s RET" (ee-agda-eekify agdaexpr)))
  '(See the buffer "*Inferred Type*"))

(defun find-agdanormp (agdaexpr &rest rest)
  "Show the normalized value of AGDAEXPR in the buffer \"*Normal Form*\".
This function runs `C-c C-n AGDAEXPR RET' at the previous goal using `eek'.
This only works in agda2-mode. This is a quick hack!"
  (eek-at-agda-pg (format "C-c C-n %s RET" (ee-agda-eekify agdaexpr)))
  '(See the buffer "*Normal Form*"))







;;
;; (defun e () (interactive) (find-angg "AGDA/find-agdatype.el"))

;; Local Variables:
;; coding:  utf-8-unix
;; End: