   [array]
   (seq array))
 
+(defmacro when-mask
+  "Takes two bitmasks and checks whether their bitwise-and is not 0,
+   if so, calls all other expressions in an implicit do."
+  [bit-mask-1 bit-mask-2 & exprs]
+  `(when (not= 0 (bit-and ~bit-mask-1 ~bit-mask-2) ~@exprs)))
+
 
 ;;;
 ;;; java & swing utils

    conexp.util
    conexp.util.hookable
    conexp.util.multimethods
    [clojure.contrib.string :only (join split-lines split)]))

;; set polymorphism-namespace
(def- *poly-ns* 'conexp.polymorphisms)

      TreeSelectionModel]
    [java.util Vector]
    [java.awt Toolkit Dimension]
    [java.awt.event KeyEvent ActionEvent ActionListener MouseEvent 
      MouseListener InputEvent]
    [java.awt.datatransfer DataFlavor StringSelection]
    [javax.swing.event TreeSelectionListener TableModelListener]
    [javax.swing.table DefaultTableModel])
