With the following declarations: chan c; typedef struct{int b;} B; B d; and a template with heading Template(chan& b) with one transition with the update d.b= req.b, where req is local of type B the system p := Template(c); system p; results in the instantion of p with the update: d.c= req.c It looks like textual substitution that does not respect bindings.