falias.scm 722 B

12345678910111213141516171819202122232425262728
  1. (define-module (language elisp falias)
  2. #:export (falias?
  3. make-falias
  4. falias-function
  5. falias-object))
  6. (define <falias-vtable>
  7. (make-struct <applicable-struct-vtable>
  8. 0
  9. (make-struct-layout "pwpw")
  10. (lambda (object port)
  11. (format port "#<falias ~S>" (falias-object object)))))
  12. (set-struct-vtable-name! <falias-vtable> 'falias)
  13. (define (falias? object)
  14. (and (struct? object)
  15. (eq? (struct-vtable object) <falias-vtable>)))
  16. (define (make-falias f object)
  17. (make-struct <falias-vtable> 0 f object))
  18. (define (falias-function object)
  19. (struct-ref object 0))
  20. (define (falias-object object)
  21. (struct-ref object 1))