One thing to keep in mind in any proposed solution: CLR allows overloading a ref/out param against a non-ref/out param.
class Test { static void m(int x) { ... } static void m(ref int x) { ... } } So not just result handling is needed, but also interop calls themselves sometimes need a hint: (Test/m a) // which method is being called? Overloading a ref and an out together is not allowed: class TestBad { static void m(ref int x) { ... } static void m(out int x) { ... } // will yield a compiler error } --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---