@lscrd: The `initElement` is also a setter despite its name ;). You cannot stop 
users from calling `element.initElement("different id")` and mutating the field 
at any point in time, which is what I'm trying to avoid.

In fact that is also true for my template constructor idea via 
`newElement("different id", existingElement)`. If anything the template makes 
it a bit less obvious. Maybe what I really need is a macro taking a 
typedesc/generic and a list of constructor args that are forwarded to the 
subtype construction. Then the macro can really only be used for constructing 
new elements with injected `id` modifications.

Reply via email to