Ah great catch. Here's the justification for our surprise. 1) Occurrence typing was not designed with multimethods in mind. 2) Multimethods are surprisingly easy to formalise, and straightforward to understand (B-DefMulti, B-DefMethod, B-BetaMulti in figure 9 model the core semantics for multimethods) 3) `isa?` is surprisingly easy to support with occurrence typing, even though it is the core dispatch mechanism for multimethods. Complicated tests like (isa? [(class a) (class b)] [Number Boolean]) naturally learn that `a` is a Number and `b` is a Boolean. 4) Relating the dispatch function with the current dispatch value to learn new types via normal occurrence typing is almost always sufficient to type check the current defmethod body.
Thanks for the feedback. Ambrose On Fri, Mar 13, 2015 at 5:20 PM, Chris Ford <christophertf...@gmail.com> wrote: > I like the paper. > > One small piece of feedback - I didn't understand what about the > multimethods section justifies the claim of "surprising synergy" in the > introduction. Perhaps you could elaborate on the novelty? > > Chris > El 12/03/2015 02:50, "Ambrose Bonnaire-Sergeant" < > abonnaireserge...@gmail.com> escribió: > >> Hi, >> >> Please check out our new paper draft >> <http://frenchy64.github.io/papers/typed-clojure-draft.pdf> on >> core.typed's type system. >> >> The first few pages has a lot of executable code and is intended to be >> accessible >> to anyone. Feedback welcome! >> >> Thanks, >> Ambrose >> >> -- >> 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. >> > -- > 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. > -- 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.