Partly. Because it is a closure, each instance of gran_voice() in the GenExpr code will create new History memory in the generated code, hence the auto-naming. However this is partly an implementation detail; e.g. in earlier implementations we generated functor structs. We want to preserve the possibility of changing the implementation in the future too: it’s not clear yet what the optimal implementation is, and thus what kind of interface it could support.