      ;; regular imperfect sense
      (and (= (get-in word '(:infl)) :imperfect)
           (get-in word '(:italiano)))
-     (let [infinitive (if (get-in word [:infinitive])
+     (let [infinitive (if (get-in word [:infinitive]) ;; imperfect
                         (get-in word [:infinitive])
                         (get-in word [:italiano]))
            ;; e.g.: lavarsi => lavare

                lexeme))
        (get lexicon surface-form))))

(defn exception-generator [lexicon]
  (reduce
   concat

     (and
      (= (get-in word '(:infl)) :future)
      (map? (get-in word '(:future))))
     (let [infinitive (get-in word '(:italiano)) ;; future irregular
           ;; e.g.: lavarsi => lavare
           infinitive (if (re-find #"[aei]rsi$" infinitive)
                        (string/replace infinitive #"si$" "e")
