+
+(defsimpleprim := :reporter cl:equalp)
+(defprim :!= :reporter (lambda (a b) `(not (equalp ,a ,b))))
+(defsimpleprim :<= :reporter cl:<=)
+(defsimpleprim :< :reporter cl:<)
+(defsimpleprim :- :reporter cl:-)
+(defsimpleprim :+ :reporter cl:+)
+(defsimpleprim :* :reporter cl:*)
+(defsimpleprim :/ :reporter cl:/)
+(defprim :any? :reporter (lambda (agentset) `(> (clnl-nvm:count ,agentset) 0)))
+(defsimpleprim :ask :command clnl-nvm:ask)
+(defagentvalueprim :color)
+(defsimpleprim '(:clear-all :ca) :command clnl-nvm:clear-all)
+(defsimpleprim :count :reporter clnl-nvm:count)
+(defprim '(:crt :create-turtles) :command (lambda (num &optional fn) `(clnl-nvm:create-turtles ,num nil ,fn)))
+(defsimpleprim :die :command clnl-nvm:die)
+(defsimpleprim :display :command clnl-nvm:display)
+(defsimpleprim :fd :command clnl-nvm:forward)
+(defsimpleprim :hatch :command clnl-nvm:hatch)
+(defprim :if :command (lambda (pred a) `(when ,pred ,@(make-command-block-inline a))))
+(defprim '(:ifelse :if-else)
+ :command (lambda (pred a b)
+ (let
+ ((then (make-command-block-inline a))
+ (else (make-command-block-inline b)))
+ `(if ,pred
+ ,@(if (= (length then) 1) then `((progn ,@then)))
+ ,@(if (= (length else) 1) else `((progn ,@else)))))))
+
+(defagentvalueprim :label)
+(defagentvalueprim :label-color)
+(defsimpleprim :let :command nil)
+(defsimpleprim :lt :command clnl-nvm:turn-left)
+(defsimpleprim :not :reporter cl:not)
+(defkeywordprim :nobody)
+(defsimpleprim :one-of :reporter clnl-nvm:one-of)
+(defsimpleprim :of :reporter clnl-nvm:of)
+(defsimpleprim :patches :reporter clnl-nvm:patches)
+(defagentvalueprim :pcolor)
+(defsimpleprim :reset-ticks :command clnl-nvm:reset-ticks)
+(defsimpleprim :random :reporter clnl-nvm:random)
+(defsimpleprim :random-float :reporter clnl-nvm:random-float)
+(defsimpleprim :random-xcor :reporter clnl-nvm:random-xcor)
+(defsimpleprim :random-ycor :reporter clnl-nvm:random-ycor)
+(defprim :round :reporter (lambda (n) `(ffloor (+ ,n 0.5d0))))
+(defsimpleprim :rt :command clnl-nvm:turn-right)
+(defsimpleprim :set :command cl:setf)
+(defsimpleprim :set-default-shape :command clnl-nvm:set-default-shape)
+(defsimpleprim :setxy :command clnl-nvm:setxy)
+(defsimpleprim :show :command clnl-nvm:show)
+(defsimpleprim :stop :command clnl-nvm:stop)
+(defagentvalueprim :size)
+(defsimpleprim :tick :command clnl-nvm:tick)
+(defsimpleprim :ticks :reporter clnl-nvm:ticks)
+(defsimpleprim :turtles :reporter clnl-nvm:turtles)
+(defsimpleprim :turtles-here :reporter clnl-nvm:turtles-here)
+(defagentvalueprim :who)
+(defsimpleprim :with :reporter clnl-nvm:with)
+
+; Colors
+(defmacro defcolorprim (color) `(defprim ,color :reporter (lambda () `(clnl-nvm:lookup-color ,,color))))
+(defcolorprim :black)
+(defcolorprim :blue)
+(defcolorprim :brown)
+(defcolorprim :green)
+(defcolorprim :white)
+
+; Boleans
+(defprim :true :reporter (lambda () t))
+(defprim :false :reporter (lambda () nil))