From 1218114e0d56c8f73da78bc04d0b5caf02c6b784 Mon Sep 17 00:00:00 2001
From: Brett Gilio <brettg@gnu.org>
Date: Fri, 7 Aug 2020 20:26:37 -0500
Subject: gnu: Add emacs-multi.

* gnu/packages/emacs-xyz.scm (emacs-multi): New variable.
---
 gnu/packages/emacs-xyz.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

(limited to 'gnu/packages/emacs-xyz.scm')

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 @@ (define-public emacs-extmap
 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"))
-- 
cgit v1.2.3