    (seqable? thing) (set thing),
    :else            (illegal-argument "Cannot create set from " thing)))
 
+(defn subsets
+  "Returns all subsets of the given base-set."
+  [base-set]
+  (map set (comb/subsets (seq base-set))))
+
 
 ;;; Next Closure
 



;;; Common Math Algorithms

(defn subsets
  "Returns all subsets of set."
  [set]
  (all-closed-sets set identity))

(defn transitive-closure
  "Computes transitive closure of a given set of pairs."

;; You must not remove this notice, or any other, from this software.

(ns conexp.base
  "Basic definitions for conexp-clj."
  (:require [clojure.math.combinatorics :as comb]))

;;; def macros, inspired and partially copied from clojure.contrib.def, 1.3.0-SNAPSHOT

