;;;; An unannotated defn, called at two different types. ;;;; ;;;; [(defn add [x y] dyn (+ x y))] states no type for either parameter, so both ;;;; are dyn, and the + in the body is the dyn one: a call into the runtime that ;;;; decides on what the two words actually hold. The same function serves the ;;;; integer call and the float call, which is the whole of what the feature ;;;; buys and is not something the typed language could express at all. (defn add [x y] dyn (+ x y)) (defn main [] () (print (add 2 3)) (print "\n") (print (add 1.5 2.25)) (print "\n"))