   ^{:stack-types [:float]}
   (fn [state]
     (if (not (empty? (:float state)))
-      (push-item (inc (stack-ref :float 0 state))
+      (push-item (keep-number-reasonable (inc (stack-ref :float 0 state)))
                  :float
                  (pop-item :float state))
       state)))

  (fn [state]
    (if (not (empty? (:string state)))
      (try (pop-item :string
                     (push-item (Integer/parseInt (top-item :string state))
                                :integer state))
        (catch Exception e state))
      state)))

  ^{:stack-types [:integer]}
  (fn [state]
    (if (not (empty? (:integer state)))
      (push-item (keep-number-reasonable (dec (stack-ref :integer 0 state)))
                 :integer
                 (pop-item :integer state))
      state)))
