summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorBrett Gilio <brettg@gnu.org>2020-08-07 20:26:37 -0500
committerBrett Gilio <brettg@gnu.org>2020-08-07 20:26:37 -0500
commit1218114e0d56c8f73da78bc04d0b5caf02c6b784 (patch)
tree34f39fde4f769fc06e63102c7ff543ce8f42c319 /gnu
parent5b73b22bb1c49039518eb3c8ed570f22b16174b7 (diff)
downloadguix-1218114e0d56c8f73da78bc04d0b5caf02c6b784.tar.gz
gnu: Add emacs-multi.
* gnu/packages/emacs-xyz.scm (emacs-multi): New variable.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/emacs-xyz.scm25
1 files changed, 25 insertions, 0 deletions
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 6dbe6025ff..6e7a57d883 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -24141,6 +24141,31 @@ read-only, constant database that maps Emacs Lisp symbols to
 arbitrary Emacs Lisp objects.")
     (license license:gpl3+)))
 
+
+(define-public emacs-multi
+  (package
+    (name "emacs-multi")
+    (version "2.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/kurisuwhyte/emacs-multi")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "11zabs7qpdhri6n90ck7pgwcbz46d813nyl73h5m1i8jvz1wzx7v"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/kurisuwhyte/emacs-multi")
+    (synopsis "Clojure-style multi-methods for Emacs Lisp")
+    (description "Provides Emacs Lisp with a form of polymorphism
+by way of predicate dispatching.  Methods consist of a dispatch
+function, and a series of branches.  The dispatch function is
+applied to the arguments, and the result value is checked against
+the expectations of each branch to define which one to invoke.")
+    (license license:expat)))
+
 (define-public emacs-highlight
   (let ((commit "9258a2b8362d737115cbd87618f947eadb140411")
         (revision "1"))