This is a very useful enhancement indeed. I wonder if it is feasible (or if 
it makes sense) to extend this to have type based overloading:
(defn foo
  ([^TypeA a] ..)
  ([^TypeB b] ..))

Shantanu

On Friday, 7 August 2015 11:40:42 UTC+5:30, Alex Miller wrote:
>
> Hey Reid, 
>
> I've forwarded this over to Rich and Stu to take a look at.
>
> Alex
>
> On Thursday, August 6, 2015 at 11:46:09 AM UTC-5, Reid McKenzie wrote:
>>
>> Hello all,
>>
>> Alan Malloy and I recently implemented[1] and contributed[2] an opt-in
>> strict tags mode to Alexander Yakushev's Skummet compiler. To
>> summarize the linked blog post and merge request, we created the
>> `clojure.core/*strict-tags*` dynamic var which may either be set by
>> users at the namespace level a la `clojure.core/*warn-on-reflection*`
>> or set on a per-fn basis with the `^:strict` metadata annotation. When
>> in strict mode, type hints are interpreted not as optional and late
>> checked hints (the Clojure default) but as eagerly checked static
>> types on tagged locals and expressions.
>>
>> The effect of these changes is to greatly reduce the number of
>> checkcast instructions emitted when performing tagged interop should
>> users opt into using strict mode and accept the requisite
>> responsibility for managing their types.
>>
>> While the odds that these changes will be accepted as-is are slim, we
>> think they represent a valuable addition to the language and so
>> present them for your consideration.
>>
>> - Reid
>>
>> [1] - http://blog.factual.com/strictly-tagged-clojure
>> [2] - https://github.com/alexander-yakushev/clojure/pull/1
>>
>>

-- 
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