Вспомнилось, На 4clojure была задачка одна
Нужно было написать функцию, которая кушает вектор, сет, мапу или лист (одно из 4х), и определяет, что из этого она съела
Нельзя использовать предикаты, instance?, type, class и иже с ними
Чисто по операциям и поведению определить