так может это тайпклассы только с херовым названием?
This proposal assumes some version of extension everything, and consists of a trio of features:
Roles: Lightweight "transparent wrapper types" that can be applied to individual objects of a given type, can add additional members to them, and allow them to implement given interfaces.
Extensions: A generalization of "extension everything" that can extend a given type not just with new members but also to implement additional interfaces. The relationship is in force within a certain static scope (just like extension methods today).
Static interface members: Allow static members to be specified in interfaces. A class or struct implementing the interface must implement a corresponding static member.