While the first experiment took long to implement, it was fairly easy to 
understand and I think we can move on to the second one.

Second Dunaj experiment adds support for optional type signatures that can 
be used to annotate functions, protocol methods, type fields and local 
bindings. These type signatures are then used to automatically generate 
host type hints. At run-time, type signatures are stored in vars' metadata, 
available for third party type checking, data validation and documentation 
tools.

Goals of the second Dunaj experiment are as follows:

- Provide developers with a means to document type signatures for 
functions, protocol methods, let-like bindings and deftype fields.

- Automatically generate type hints from provided type signatures, 
including primitive ones.

- Open up type signatures for custom extensions and use in third party data 
validation and type checking tools.

Dunaj aims to decomplect type declarations from type checking tools. It 
provides conventions and syntax extensions for defining type signatures, 
while leaving their exact interpretation to other libraries. Existing 
protocols, types and host classes can all be used as type declarations. By 
generating type hints automatically, users do not have to write types twice 
(first time as a type signature and second time as a type hint). Specifying 
type signatures does not produce any run-time overhead, as all processing 
is done at a macro expansion time.

As I don't want to write long emails here, you can read more about this 
experiment at http://www.dunaj.org .

Best,
Jozef

On Thursday, March 5, 2015 at 10:33:53 PM UTC+1, Jozef Wagner wrote:
>
> I'm happy to announce a project called Dunaj [1], which provides an 
> alternative core API for Clojure. Its main aim is to experimentally test 
> major additions to the language. 
>
> Dunaj /ˈdunaɪ/ is a set of core language experiments aimed to improve 
> Clojure language and its core API. It deals with language features that 
> require changes across different parts of Clojure and which cannot be 
> evaluated in isolation. Dunaj aims to bring Clojure even more towards 
> simplicity, consistency and performance. 
> It is intended to be used by regular Clojure developers, either for 
> application or library development.
>
> Dunaj was created to test 10 experiments that bring significant changes to 
> the Clojure language. As there is a substantial number of additions and 
> changes, I want to try a bit unconventional approach here. Before I'll 
> release the actual library, I will introduce Dunaj's experiments in a 
> series of individual posts. Every part states the motivation behind the 
> experiment, introduces changes and additions to the language and 
> demonstrates its intended use. If you do not want to miss any of this, you 
> may want to register for a mailing list at [1] or follow @dunajproject at 
> Twitter.
>
> -- Jozef Wagner
>
> [1] http://www.dunaj.org/ 
>
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to