> So taking up the task of insuring correctness/consistency but leaving aside > static typing as is typically practiced. How can we best catch errors and > inconsistencies in our code before our end users do? How can we do this > better than any competing system (like Haskell)? How quickly can errors be > caught - run time, compile time, edit time?
Dialyzer (a tool widely used in Erlang) may provide some ideas in this direction. It can be used to infer types and to check for type violations, in some cases without any annotations. I don't think it's quite what you want, but like I said, perhaps more food for thought. More interesting is the work Kostis et al have done with Purity (http://user.it.uu.se/~kostis/Papers/purity.pdf) which uses static analysis to determine whether functions are referentially transparent in order to have user-defined guard functions for Erlang's pattern matching. If you look at the other tools he and his colleagues have made (http://www.erlang-factory.com/upload/presentations/347/Kostis.pdf) you'll see that the Clojure community has already been busy along the same lines (test.generative, the various semi-automated refactoring tools, etc). jack. -- 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