How to list parametric type instances(?

I have a bit of code that can result in the recursive combination of types. Where the below mytype can be type with A & B being primitive types as well as mytype. Is there anyway to list out all the different variations of mytype that are created during a given run?

struct mytype{A,B}