Affects Version/s: Release 1.4
Fix Version/s: None
Discovered this issue working through https://github.com/relevance/labrepl when trying to use the new factory sytax for records:
(update-strategy [p me you]))
(defrecord Mean [last-winner]
(choose [_] (if last-winner last-winner (random-choice)))
(update-strategy [_ me you] (->Mean (when (iwon? me you) me))))
Notice that Mean returns a new instance with a different strategy. However, the factory methods are not defined until after the record has been created thus this results in a syntax error. To fix this I updated the macro to declare the factory methods before the record is emitted.