(defn ^Class box
"If the argument is a primitive Class, returns its boxed equivalent,
otherwise returns the argument"
[c]
({Integer/TYPE Integer
Float/TYPE Float
Double/TYPE Double
Long/TYPE Long
Character/TYPE Character
Short/TYPE Short
Byte/TYPE Byte
Boolean/TYPE Boolean
Void/TYPE Void}
c c))