Dica de tipo não imposta em construtores de desfragmentação

Eu criei um tipo usandodefrecord com dicas de tipo para os campos. No entanto, descobri que essas dicas de tipo não são aplicadas nos construtores e sou capaz de fazer algumas coisas estranhas com elas. Veja o snippet abaixo, por exemplo:

user=> (defrecord Person [#^String name #^Integer age])
user.Person
user=> (seq (.getConstructors Person))
(#<Constructor public user.Person(java.lang.Object,java.lang.Object,
java.lang.Object,java.lang.Object)>
#<Constructor public user.Person(java.lang.Object,java.lang.Object)>)
user=> (Person. (Integer. 123) "abhinav")
#:user.Person{:name 123, :age "abhinav"}

As assinaturas de construtor mostradas não correspondem às dicas de tipo fornecidas (elas usamObject para ambosString eInteger) e sou capaz de construir objetos com tipos de campo incorretos.

Existe algo errado com o meu código ou é um bug no Clojure?

Estou no Clojure 1.2.0-beta1.

questionAnswers(2)

yourAnswerToTheQuestion