Я хочу реализовать transient
и persistent!
в моем типе Clojure. Насколько я могу судить, это означает, что еще один deftype, TransientMyThing, реализует необходимые методы. Хорошо, пока, но эти два класса должны знать друг о друге, чтобы возвращать экземпляры друг друга.
Я думаю, что могу сделать это, предварительно объявив функции Clojure make-transient и make-persistent, затем определив deftype (ссылаясь на эту функцию), затем реализовав функции с уже существующими типами, но это выглядит довольно брутто для меня. Есть ли лучший вариант?
Редактировать: это работает, но все равно брутто.