                         {:state st
                          :error e}))))))
 
-(defn m-destructor
+(defn- m-destructor
   "returns a monadic value which destroys key
    k and removes it from the system state"
   [k destructor-fn]

           (or base-system-builder (new-system))
           key-factoryfn-argspecs-list)))

(defn system-destructor
  "given a system (including the ::system key) create a
   system-destructor which will apply the individual object
   destructors for all the objects in the system in

      (return
       (filter-system-map new-st)))))

(defn- m-constructor
  "returns a monadic value which creates key k,
   and adds it to the system state"
  [k factory-fn arg-specs]
