* doc/lispref/variables.texi (Local Variables): Document letrec
(bug#21048).
* lisp/subr.el (letrec): Expand the doc string slightly.
@result{} (1 1)
@end group
@end example
+@end defspec
+
+@defspec letrec (bindings@dots{}) forms@dots{}
+This special form is like @code{let}, but all the variables are bound
+before any of the local values are computed. The values are then
+assigned to the locally bound variables. This is only useful when
+lexical binding is in effect, and you want to create closures that
+refer to bindings that would otherwise not yet be in effect when using
+@code{let}.
@end defspec
Here is a complete list of the other facilities that create local
The value of the last form in BODY is returned.
Each element of BINDERS is a list (SYMBOL VALUEFORM) which binds
SYMBOL to the value of VALUEFORM.
-All symbols are bound before the VALUEFORMs are evalled."
+
+The main difference between this macro and `let'/`let*' is that
+all symbols are bound before any of the VALUEFORMs are evalled."
;; Only useful in lexical-binding mode.
;; As a special-form, we could implement it more efficiently (and cleanly,
;; making the vars actually unbound during evaluation of the binders).