Contract-based CoffeeScript

Contract-based CoffeeScript

Very interesting fork of CoffeeScript that allows you to do programming by contract. Simple example which specify that a function takes a number as argument, and also returns a number:

id :: (Num) -> Num

id = (x) -> x * x

Some discussion on Hacker News.