Remember that if you are unsure about how to implement certain functionality, you can always investigate the sources of real-world metaprograms such as Datatype99 and Interface99. Alternatively, you can submit a GitHub issue and I will try to answer as soon as possible.