diff options
Diffstat (limited to 'src/clojure/contrib/generic.clj')
-rw-r--r-- | src/clojure/contrib/generic.clj | 54 |
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) - |