aboutsummaryrefslogtreecommitdiff
path: root/src/clojure/contrib/generic.clj
diff options
context:
space:
mode:
Diffstat (limited to 'src/clojure/contrib/generic.clj')
-rw-r--r--src/clojure/contrib/generic.clj54
1 files changed, 0 insertions, 54 deletions
diff --git a/src/clojure/contrib/generic.clj b/src/clojure/contrib/generic.clj
deleted file mode 100644
index dc4ef572..00000000
--- a/src/clojure/contrib/generic.clj
+++ /dev/null
@@ -1,54 +0,0 @@
-;; Support code for generic interfaces
-
-;; by Konrad Hinsen
-;; last updated May 4, 2009
-
-;; Copyright (c) Konrad Hinsen, 2009. All rights reserved. The use
-;; and distribution terms for this software are covered by the Eclipse
-;; Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)
-;; which can be found in the file epl-v10.html at the root of this
-;; distribution. By using this software in any fashion, you are
-;; agreeing to be bound by the terms of this license. You must not
-;; remove this notice, or any other, from this software.
-
-(ns
- #^{:author "Konrad Hinsen"
- :skip-wiki true
- :doc "Generic interfaces
- This library provides generic interfaces in the form of
- multimethods that can be implemented for any type.
- The interfaces partly duplicate existing non-generic
- functions in clojure.core (arithmetic, comparison,
- collections) and partly provide additional functions that
- can be defined for a wide variety of types (functors, math
- functions). More functions will be added in the future."}
- clojure.contrib.generic
- (:use [clojure.contrib.types :only (defadt)]))
-
-;
-; A dispatch function that separates nulary, unary, binary, and
-; higher arity calls and also selects on type for unary and binary
-; calls.
-;
-(defn nary-dispatch
- ([] ::nulary)
- ([x] (type x))
- ([x y]
- [(type x) (type y)])
- ([x y & more] ::nary))
-
-;
-; We can't use [::binary :default], so we need to define a root type
-; of the type hierarcy. The derivation for Object covers all classes,
-; but all non-class types will need an explicit derive clause.
-; Ultimately, a macro might take care of this.
-;
-(def root-type ::any)
-(derive Object root-type)
-
-;
-; Symbols referring to ::nulary and ::n-ary
-;
-(def nulary-type ::nulary)
-(def nary-type ::nary)
-