Suchwow 6.0.0

Such functions! Such doc strings! Much utility!

such.better-doc

Requiring this file will replace some clojure.core docstrings with better versions.

such.casts

“Be conservative in what you send, be liberal in what you accept.”
(Postel’s Robustness Principle)

Some Clojure functions require specific types of arguments, such as a symbol representing a namespace. You can use the following functions to convert from what you’ve got to what Clojure requires. Or you can use them to build more accepting variants of those Clojure functions.

such.control-flow

Public variables and functions:

such.doc

Links to, and support for, online documentation.

Public variables and functions:

such.environment

Public variables and functions:

such.function-makers

Functions that make other functions.

such.immigration

Potemkin’s import-vars is the most reliable way I know to make a namespace that gathers vars from several namespaces and presents them as a unified API. This namespace builds on it. See the tests and commons.clojure.core for two examples of creating a “favorite functions” namespace that can be included everywhere with (for example) (ns my.ns (:use my.clojure.core)).

such.imperfection

Were we perfect, we wouldn’t need to test or debug. Since we’re not, a few helpers organized around printing.

such.maps

Various functions on key-value structures

such.metadata

Convenience functions for working with metadata. Intended to be used with (:require [such.metadata :as meta]).

Public variables and functions:

such.ns

Makes working with namespaces easier.

Public variables and functions:

such.ns-state

Manipulate, in a stateful way, a key-value store that belongs to a particular namespace.

such.random

Random numbers and crypographic hashes

Public variables and functions:

such.readable

Stringify nested structures such that all functions - and particular values of your choice - are displayed in a more readable way. value-string and fn-symbol are the key functions.

such.relational

This namespace provides two things: better documentation for relational functions in clojure.set, and an experimental set of functions for “pre-joining” relational tables for a more tree-structured or path-based lookup. See the wiki for more about the latter.

such.sequences

Public variables and functions:

such.shorthand

Explicit functions for what could be done easily - but less clearly - by composing clojure.core functions. Anti-shibboleths such as using not-empty? instead of seq.

Public variables and functions:

such.symbols

Symbol utilities, such as different ways to create symbols.

Public variables and functions:

such.types

Type (and “type-like”) predicates not included in clojure.core.

such.vars

Common operations on vars.

such.versions

Which version of Clojure am I running in?

Public variables and functions:

such.wide-domains

Variants of clojure.core functions that accept more types of inputs. This is a catch-all namespace that collects core-overriding functions from other namespaces. It has two purposes:

Public variables and functions:

such.wrongness

Public variables and functions: