(shared
((NAME EXPRESSION) ...) EXPRESSION)
letrec
, but when a binding cons
, list
, vector
, quasiquoted expression, or make-STRUCTNAME
, the expression can refer to any name bound by the shared
form, not just the names bound earlier. Thus, shared
can be used to create cyclic data structures.