Fixtype of names.
This is a tagged union type, introduced by fty::deftagsum.
Names are used for variables and relations.
We define name as either (wrapped) strings or (wrapped) pairs consisting of a string and a natural number. The former are simple names, while the latter are indexed names. Our current concrete syntax only covers simple names, but we may extend it to also cover indexed names at some point, as part of a larger extension to add syntax for parameterized circuits. In the meanwhile, indexed names are useful to construct parameterized circuits directly in abstract syntax.