tvl-depot/configs/shared/.emacs.d/wpc/polymorphism.el
William Carroll 6b456c1b7a Massive configuration overhaul
Currently paying the price of months of non-diligent git usage.

Here's what has changed.

- Theming support in Gvcci and wpgtk
- Dropping support for i3
- Supporting EXWM
- Many Elisp modules
- Collapsed redundant directories in ./configs
2019-12-24 15:21:34 +00:00

37 lines
854 B
EmacsLisp

;;; polymorphism.el --- Sketching my ideas for polymorphism in Elisp -*- lexical-binding: t -*-
;; Author: William Carroll <wpcarro@gmail.com>
;;; Commentary:
;; Once again: modelled after Elixir.
;;; Code:
;; More sketches of Elisp polymorphism initiative.
;;
;; Two macros:
;; - `defprotocol'
;; - `definstance'
;;
;; Is it just a coincidence that these two macros have the same number of
;;characters or is that fate? I say fate.
;;
;; (defprotocol monoid
;; :functions (empty concat))
;;
;; (definstance monoid vector
;; :empty
;; (lambda () [])
;; :concat
;; #'vector/concat)
;;
;; More sketching...
;; (defun monoid/empty ()
;; "Sketch."
;; (funcall #'(,(monoid/classify)/empty)))
;; (defun monoid/concat (xs)
;; "Sketch."
;; (apply #'(,(monoid/classify)/concat) args))
(provide 'polymorphism)
;;; polymorphism.el ends here