labels

[magic form] labels ((identifier (lambda args form)) ...) body)

RRS: evaluate the body in an environment where all the identifiers evaluate to the values of the respective lambda expressions. Furthermore, lambda expressions is also closed in that environment; this allows procedures to call themselves and each other.

[syntax] labels ((name (arg ...) body) ...) body ...

Bigloo: Define mutually recursive local procedures, similarly to the CommonLisp. The created bindings are immutable.