Added more idiomatic version of bag definition following Clojure's immutable style