¿Cómo agregar metadatos al System.Type?

He estado trabajando en un lenguaje, pero en términos de integración .NET solo he logrado que los tipos primitivos funcionen hasta ahora. Anoche tuve una buena idea, en lugar de tratar de averiguar cuál era exactamenteSystem.Type para tuplas, módulos y funciones deben estar durante la verificación de tipos, lo que podría hacer en su lugar es obtener elSystem.Type deSystem.Object y agrego algunos metadatos que corresponden a mis propios tipos de idiomas complejos. Lo que importa no es exactamenteSystem.Type Estaría agregando los metadatos a, pero que cada uno de los sustitutos de los tipos en mi idioma son distintos entre sí.

La razón por la que necesito esto es porque estoy usando las funciones del espacio de nombres de reflexión para la integración que implica hacer malabaresSystem.Types.

type SpiralType =
    | IntT
    | StringT
    | TupleT of SpiralType list
,

Como ejemplo, lo que me gustaría agregar a laSystem.Type serían las instancias del tipo de unión discriminada F # anterior para garantizar la unicidad.

¿Cuál sería la mejor manera de hacer esto?