Instead of the special form being "function" perhaps it should be definefunction and defineconstant that way it is a scalable construct and can be used for other things down the road: definepuppy, etc.
Also it makes a simple convention. If a form starts with "define" it is a special form. Users are discouraged to add things that start with define since it will conflict with the special form.
Instead of the special form being "function" perhaps it should be
definefunction
anddefineconstant
that way it is a scalable construct and can be used for other things down the road:definepuppy
, etc.