Gradual typing in Clojure, as a library.
Latest stable release is 0.3.0-alpha2.
Leiningen dependency information:
[org.clojure/core.typed "0.3.0-alpha2"]
...
; for very recent releases
:repositories {"sonatype-oss-public" "https://oss.sonatype.org/content/groups/public/"}
; for slim jars, follow version string with: :classifier "slim"
Maven dependency information:
<dependency>
<groupId>org.clojure</groupId>
<artifactId>core.typed</artifactId>
<version>0.3.0-alpha2</version>
<!-- slim jar -->
<!-- <classifier>slim</classifier> -->
</dependency>
The default jars contain AOT files for faster loading. If jar size is a concern, consider using the slim jar in production.
core.typed
supports Clojure 1.6.0 and JDK 1.7+.
Use the core.typed mailing list for core.typed discussion, or try #typed-clojure on Freenode (the main developer is ambrosebs).
IRC Logs (Thanks to Anthony Grimes!)
See wiki.
(clojure.core.typed/ann v t)
gives var v
the static type t
.
(clojure.core.typed/ann-form f t)
ensures form f
is of the static type t
.
(clojure.core.typed/check-ns)
type checks the current namespace.
(clojure.core.typed/cf t)
type checks the form t
.
core.async Rock-paper-scissors
Thanks to the following people for contributing to core.typed:
- Stephen Compall (S11001001)
- Andrew Brehaut (brehaut)
- Christopher Spencer (cspencer)
- Reid McKenzie (arrdem)
- Di Xu (xudifsd)
- Nicola Mometto (Bronsa)
- Chas Emerick (cemerick)
- Jake Goulding (shepmaster)
- Andy Fingerhut
- Aravind K N (arav93)
- Allen Rohner (arohner)
- Minori Yamashita (ympbyc)
- Kyle Kingsbury (aphyr)
- Nathan Sorenson
Development is sponsored (via crowdfunding) by
YourKit is kindly supporting core.typed and other open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of innovative and intelligent tools for profiling Java and .NET applications. Take a look at YourKit's leading software products:
Copyright © Ambrose Bonnaire-Sergeant, Rich Hickey & contributors.
Licensed under the EPL (see the file epl.html).