If your concern is passing around associative data, contracts and general membership functions are the two most common approaches.
If you're dealing with some unknown thing, you can see what protocols it satisfies and what functions/operations those protocols specify. Doc strings should be found on the protocols. The combination of protocols, contracts, and generative testing will get you very far. Paul - - - - FWIW, I'm currently working towards unifying test.generative and core.contract under a single "spec" backend. The spec can also be used to generate documentation, perform verification via Alloy, and be queried with core.logic. -- 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