For a long time I avoided to use the same name for a type and a value because I was afraid of possible breaking change in the feature.
And then I realized that this is an intended feature of TypeScript: type merging. Here the type `Role` merges with the type of the value `Role :)