 ;; state management functions and transducer operations
 ;; minimizing destructuring as much as possible...
 
-(deftype StateWithS [^double sample state]) ; sample and effect state, StateWithF or vector of StateWithF
+(deftype StateWithS [^double sample state]
+  Object
+  (toString [_] (str sample))) ; sample and effect state, StateWithF or vector of StateWithF
 (deftype StateWithF [f state]) ; effect and its state
 
 (defn- next-effect

(def make-effects-filter (partial make-filter-fn apply-effects))
(def make-effect-filter (partial make-filter-fn apply-effect))

;;; multimethod - effect creators

(defmulti make-effect (fn [m conf] m))

            [clojure2d.color :as c]
            [clojure.java.io :refer :all]
            [clojure2d.math.joise :as j]
            [clojure2d.math.vector :as v]
            [criterium.core :as bench]
            [clojure2d.math.random :as r])
  (:import [clojure2d.pixels Pixels]
           [clojure2d.math.vector Vec2 Vec3]))

