 (defvar lfe-font-lock-keywords lfe-font-lock-keywords-1
   "Default expressions to highlight in LFE modes.")
 
+;;; Lisp indent
+
 (defvar calculate-lisp-indent-last-sexp)
 
-;; Copied from lisp-indent-function, but with gets of
-;; lfe-indent-{function,hook}.
 (defun lfe-indent-function (indent-point state)
+  "`INDENT-POINT' is the position where the user typed TAB, or equivalent.
+Point is located at the point to indent under;
+`STATE' is the `parse-partial-sexp' state for that position.
+
+Copied from function `lisp-indent-function',
+but with gets of lfe-indent-{function,hook}."
   (let ((normal-indent (current-column)))
     (goto-char (1+ (elt state 1)))
     (parse-partial-sexp (point) calculate-lisp-indent-last-sexp 0 t)

    "LFE builtin functions (BIFs)"))

(defconst lfe-font-lock-keywords-2
  (append lfe-font-lock-keywords-1
   (eval-when-compile
     (list
      ;; Control structures.
      (cons
       (concat
	"(" (regexp-opt
	     '(;; Core forms.
	       "cons" "car" "cdr" "list" "tuple" "binary"
	       "after" "call" "case" "catch"
	       "if" "lambda" "let" "let-function" "letrec-function"
	       "let-macro" "match-lambda"
	       "receive" "try" "funcall" "when" "progn"
	       "eval-when-compile"
	       ;; Default macros
	       "caar" "cadr" "cdar" "cddr"
	       "andalso" "cond" "do" "fun" "list*" "let*" "flet*" "macro"
	       "orelse" "syntax-rules" "lc" "bc" "flet" "fletrec"
	       "macrolet" "syntaxlet" "begin" "let-syntax"
	       ;; Should the map forms be here or as type bifs?
	       "map" "mref" "mset" "mupd" "map-get" "map-set" "map-update"
	       "match-spec" "qlc"
	       ":" "?" "++") t)
	"\\>") '(1 font-lock-keyword-face))
      ;; Type tests.
      (cons
       (concat
	"(" (regexp-opt (append lfe-type-tests lfe-type-bifs) t) "\\>")
       '(1 font-lock-builtin-face))
      )))
  "Gaudy expressions to highlight in LFE modes.")

	'((lfe-font-lock-keywords
	   lfe-font-lock-keywords-1 lfe-font-lock-keywords-2)
	  nil nil (("+-*/.<>=!?$%_&~^:@" . "w")) beginning-of-defun
	  (font-lock-mark-block-function . mark-defun)))
  (setq-local prettify-symbols-alist lfe--prettify-symbols-alist))

;;; Font locking

(defconst lfe-font-lock-keywords-1
  (eval-when-compile
