При разработке Clojure 1.3 Рич хотел добавить возможность для функций возвращать типы, отличные от Object.Это позволило бы использовать собственные математические операторы без необходимости объединять все в одну функцию.
Первоначальная реализация требовала, чтобы функции, которые поддерживали это, были отмечены :static
.эти метаданные заставили компилятор создать две версии функции: одну, которая возвращала объект, и другую, которая возвращала этот конкретный тип.в случаях, когда компилятор определил, что типы всегда будут соответствовать более конкретной версии, будет использоваться.
Позже это было сделано полностью автоматически, поэтому вам больше не нужно добавлять это.