Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
48 lines (29 sloc) 1.02 KB


Clojure-contracts is a library for contract programming in Clojure.

WARNING: this is a work in progress. It's not feature complete and may contain bugs.


See the tutorial.

A quick example:

user> (defn foo [x] (+ x 5))
user> (foo nil) ;=>
 No message.
 [Thrown class java.lang.NullPointerException]
user> (provide-contract foo (c/=> number? number?))
user> (foo nil) ;=>
 Precondition failed for var #'user/foo 
 Expecting: number? 
 Given: nil

See the tutorial for details.


Add [clojure-contracts "0.0.1-SNAPSHOT"] to your project's dependecies. Clojars page.


Copyright (C) 2012 Dmitri Naumov

Distributed under the Eclipse Public License, the same as Clojure.