# API Overview -

Generic versions of commonly used functions, implemented as multimethods that can be implemented for any data type.

## clojure.algo.generic.arithmetic

by Konrad Hinsen

Detailed API documentation
Generic arithmetic interface
This library defines generic versions of + - * / as multimethods
that can be defined for any type. The minimal required
implementations for a type are binary + and * plus unary - and /.
Everything else is derived from these automatically. Explicit
binary definitions for - and / can be provided for
efficiency reasons.

Contents:

* + - ->one-type ->zero-type / defmethod* map->one-type map->zero-type one-type qsym zero-type

## clojure.algo.generic.collection

by Konrad Hinsen

Detailed API documentation
Generic collection interface
This library defines generic versions of common
collection-related functions as multimethods that can be
defined for any type.

Contents:

assoc conj dissoc empty get into seq

## clojure.algo.generic.comparison

by Konrad Hinsen

Detailed API documentation
Generic comparison interface
This library defines generic versions of = not= < > <= >= zero?
as multimethods that can be defined for any type. Of the
greater/less-than relations, types must minimally implement >.

Contents:

< <= = > >= max min neg? not= pos? zero?

## clojure.algo.generic.functor

by Konrad Hinsen

Detailed API documentation
Generic functor interface (fmap)

Contents:

fmap

## clojure.algo.generic.math-functions

by Konrad Hinsen

Detailed API documentation
Generic math function interface
This library defines generic versions of common mathematical
functions such as sqrt or sin as multimethods that can be
defined for any type.

Contents:

abs acos approx= asin atan atan2 ceil conjugate cos defmacro- exp floor log pow rint round sgn sin sqr sqrt tan