Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Static typing has well known benefits. For example, statically typed languages catch many common programming errors at the earliest time possible: compile time. Types also serve as an excellent form of (machine checkable) documentation that almost always augment existing hand-written documentation.
Languages without static type checking (dynamically typed) bring other benefits. Without the strict rigidity of mandatory static typing, they can provide more flexible and forgiving idioms that can help in rapid prototyping. Often the benefits of static type checking are desired as the program grows.
This work adds static type checking (and some of its benefits) to Clojure, a dynamically typed language, while still preserving idioms that characterise the language. It allows static and dynamically typed code to be mixed so the programmer can use whichever is more appropriate.
(For a detailed treatment, see my Honours Dissertation, A Practical Optional Type System for Clojure)
- User Guide - Start here.
- Types - Reference for core.typed types
- Quick Guide - Short and useful cheatsheet for core.typed concepts and pitfalls.
- API Docs
- Contribution Guide - Some suggestions, requirements, and tips for contributors
- Typed Libraries - Community libraries for Typed Clojure
- Editor Integration - Extensions for Typed Clojure