I don't think it would be possible to reconstruct the original forms in general, you would need to reverse macroexpansion to provide a form that has at least a passing familiarity with the original form. Otherwise you would get fully macroexpanded forms.
That's a lot of work! On Thu, Aug 29, 2013 at 9:56 PM, Daniel <doubleagen...@gmail.com> wrote: > If you can do that, why not return the literal representation of the type > hinted function? > > For the repl you could provide a function that interns the type-hinted > function into the namespace by evaluating the literal representation first. > > From there it's easy to provide something like slamhound. Once you're > certain types have been provided to your namespace correctly at the repl, > run 'lein type <namespace>' to type hint everything in the namespace by > literally restructuring the file. > > Things type hinted with expressions would be tricky, but this could work > (or you could just leave it alone): > > myfn (original) > myfn-int > myfn-long > myfn-float > etc.... > > > > On Thursday, August 29, 2013 6:40:16 AM UTC-5, Ambrose Bonnaire-Sergeant > wrote: > >> With Clojure the lines blur between compile time and runtime. >> >> The clearest way to put it is that type checking is explicitly called at >> the REPL or in a unit test. Usually this is done during development >> iterations or testing time. >> >> Re: performance improvements: Michael is correct. Interestingly Typed >> Racket offers numeric optimisations, but leans heavily on Racket's >> metaprogramming facilities to insert them automatically. There's potential >> in Typed Clojure for *identification* of speed improvements, but not >> actually inserting them. Typed Racket's "optimisation coach" comes to mind >> in ways we can present this information ("put a type hint at line 10, col >> 20 to get full speed..."). >> >> Thanks, >> Ambrose >> >> >> On Thu, Aug 29, 2013 at 6:03 PM, Christian Sperandio < >> christian...@gmail.com**> wrote: >> >>> Ok... >>> >>> Another question, the checking is done only once (while compiling) ? Or, >>> it's done while the runtime? >>> >>> >>> >>> 2013/8/29 Michael Klishin <michael....@gmail.com> >>> >>>> 2013/8/29 Christian Sperandio <christian...@gmail.com**> >>>> >>>> Is there any perf improvement to use static typing in Clojure? >>>> >>>> >>>> core.typed is not a compiler, it's a type annotation/checker >>>> implemented >>>> as a library. >>>> >>>> If you are familiar with Erlang, it is to Clojure what Dialyzer is to >>>> Erlang. >>>> -- >>>> MK >>>> >>>> http://github.com/**michaelklishin <http://github.com/michaelklishin> >>>> http://twitter.com/**michaelklishin <http://twitter.com/michaelklishin> >>>> >>>> -- >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Clojure" group. >>>> To post to this group, send email to clo...@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+u...@**googlegroups.com >>>> >>>> For more options, visit this group at >>>> http://groups.google.com/**group/clojure?hl=en<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+u...@**googlegroups.com. >>>> >>>> For more options, visit >>>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out> >>>> . >>>> >>> >>> -- >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Clojure" group. >>> To post to this group, send email to clo...@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+u...@**googlegroups.com >>> >>> For more options, visit this group at >>> http://groups.google.com/**group/clojure?hl=en<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+u...@**googlegroups.com. >>> >>> For more options, visit >>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out> >>> . >>> >> >> -- > -- > 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/groups/opt_out. > -- -- 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/groups/opt_out.