   (eduction
     (filter #(= (get-cell-at board %) :empty))
     cst/all-positions))
+
+;; (s/check-asserts true)
+
+;; You can test this function by using
+;; (empty-cells (first (gen/sample (s/gen ::board) 1)))

  (:require
    [cljs.spec :as s :include-macros true]
    [cljs.spec.test :as stest :include-macros true]
    [triboard.logic.constants :as cst]
    ))


;; Public Types
;; -----------------------------------------

(s/def ::board (s/coll-of (s/coll-of cst/cell? :count 11) :count 16))
(s/def ::coord (s/tuple integer? integer?))

(s/fdef new-board :ret ::board)

(s/fdef to-iterable
  :args (s/cat :board ::board)
  :ret (s/coll-of (s/tuple ::coord cst/cell?)))

(s/fdef empty-cells
  :args (s/cat :board ::board)
  :ret (s/coll-of ::coord))

(defn board?
  "A board is a vector of vector of cells"
