User blog comment:Ynought/Hyper extended array hierarchy/@comment-35470197-20190129040854

It is better to secify whether \(\bullet\) and \(Q\) stand for strings or the result of the corresponding numbers. I guess that \(\bullet\) is always used as strings in your blogs, while \(Q\) seems to be treated as the corresponding number. (In order to avoid such ambiguity, people often define a function which assigns a number to each valid expression so that it helps us to distinguish numbers and strings expressing them.)

Also, it is better to specify the associativity law. For example, \((1,1)^{(1,1)^{(1,1)}}_{(1,1)_{(1,1)}}\) has many meanings: Such ambiguity is also removed if you use function symbols. Another way to deal with such nesting is to define rules which directly gives a way to compute arrays with nests.
 * 1) \(\left((1,1)^{\left((1,1)^{(1,1)})}\right)_{(1,1)_{(1,1)}}\)
 * 2) \(\left(\left((1,1)^{\left((1,1)^{(1,1)})}\right)_{(1,1)} \right)_{(1,1)}\)
 * 3) \((1,1)^{\left((1,1)^{(1,1)}\right)}_{\left((1,1)_{(1,1)}\right)}\)
 * 4) \(\ldots\)