var as a global lexical variable, and if
val is supplied and
var is not already bound, initializes it to
doc, if supplied,
is taken as a documentation string. In some implementations (e.g. Scieneer),
locally rebinding the same name is not permitted; in most, it is permitted
but creates a new lexical variable, with no effect on the global one.