I can't be exactly sure what this instruction is meant to do based on its name alone, but something seems off. Seems wrong to have (not (not ...)) anywhere.
(define-registered
code_null
^{:stack-types [:code :boolean]}
(fn [state]
(if (not (empty? (:code state)))
(push-item (let [item (first (:code state))]
(not (not (and (seq? item) (empty? item))))) ;; <-- Seems redundant.
:boolean
(pop-item :code state))
state)))
Link to full code:
https://github.com/lspector/Clojush/blob/master/src/clojush/instructions/code.clj#L386