Perhaps type parameters to roles could also be written in (T) notation: role Tree[(Returns)] {...}
but that would imply the parameter name is "Returns" rather than "returns". Maybe that's okay, since it's usually a positional parameter or a special "of" form anyway. Larry