Clojure Design Patterns > Factory Method, Abstract Factory