Function: majutsu-template--specialize-lambda-node

majutsu-template--specialize-lambda-node is a natively compiled function defined in majutsu-template.el.

Signature

(majutsu-template--specialize-lambda-node LAMBDA-NODE ARG-TYPE)

Documentation

Return LAMBDA-NODE specialized for a single parameter of ARG-TYPE.

Source Code

;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-template.el
(defun majutsu-template--specialize-lambda-node (lambda-node arg-type)
  "Return LAMBDA-NODE specialized for a single parameter of ARG-TYPE."
  (let ((params (majutsu-template--lambda-params lambda-node)))
    (unless (= (length params) 1)
      (user-error "majutsu-template: only single-argument lambdas can be specialized"))
    (if-let* ((body-form (plist-get (majutsu-template-node-props lambda-node) :body-form)))
        (majutsu-template--call-with-lambda-capture
         lambda-node
         (lambda ()
           (majutsu-template--lambda-from-form params body-form arg-type)))
      lambda-node)))