(let ((h (make-hash-table :test 'eql)))
(dolist (f fields)
(ematch f
- ((list (and fn (typep symbol)) fv)
+ ((list (and fn (type symbol)) fv)
(setf (gethash fn h) fv))))
h))
(defun init-bib-entry (m kind ident fields)
(warn "Discarding duplicate bibliography entry ~A" ident))))
(defun bib-add! (table entry)
(match entry
- ((list* (and kind (typep symbol))
- (and ident (typep (or string symbol)))
+ ((list* (and kind (type symbol))
+ (and ident (type (or string symbol)))
fields)
(let* ((ident (conc-string ident))
(old (gethash ident table)))
((tag :br _ _) (space))
((tag :footnote _ _) nil)
((tag _ _ x) (walk x))
- ((typep string) (emit x))
+ ((type string) (emit x))
((cons x y) (walk x) (walk y))
(_ nil))))
(walk node)
(process a)
(process b))
- ((typep character)
+ ((type character)
(process (string x)))
- ((typep string)
+ ((type string)
(emit (if *significant-whitespace*
`(verbatim ,x)
`(put-string ,x))))
;; having full blown closures generated in order to print a single character which can just be included as-is seems like a gratuitious complexity to me. or is there a deeper reason, maybe for other backends?
- ((typep function)
+ ((type function)
(emit `(verbatim ,(with-output-to-string (s) (funcall x s)))))
((tag :p options list)