Basic M function: M(variadic) is same as Taro's multivariable Ackermann function. Any variadic functions is available, but Ackermann is nice because it has the growth of w^w.

Notations:

- You must start with M.
- A number must come after M.
- Last thing must be a number.
- ^'s and brackets, which means {}, comes between.

Rules:

- If you see ^'s before the last number
- If what is before the ^'s is a number:
- It is just an arrow notation.

- Else (,which means what is before is brackets):
- It must be "M sth {x}^^..^^y" (a ^'s).
- That is equal to M sth {x}^^..^{x}^^..^{x}...{x}^^..^{x}^^..^{x} (a-1 ^'s each and y {x}'s).

- If what is before the ^'s is a number:
- If you see bracket(s) before the last number
- If the last bracket is {0}
- If the before {0} is a number
- You can use basic function rules, ignoring what is before x{0}y.

- If the before is bracket (,which means M sth{x}{0}y)
- Let (the last number in sth) (sb),
- It is "M sth{x}sth{x}...sth{x}sb" (y {x}'s).

- If the before is ^ (,which can be written as sth^^..^^{0}y (x ^'s)),
- It is "sth^^..^{0}sth^^..^{0}...sth^^..^{0}sth^^..^{0}sb". (y {0}'s)

- If the before {0} is a number
- Else (if the last bracket is {n}),
- If the before {n} is a number
- a{n}b=a{n-1}^^...^^{n-1}a (b ^'s)

- If the before is bracket (,which means M sth{x}{n}y)
- Let (the last number in sth) (sb),
- It is "M sth{x}{n-1}sth{x}{n-1}...sth{x}{n-1}sb" (y {x}'s).

- If the before is ^ (,which can be written as sth^^..^^{n}y (x ^'s)),
- It is "sth^^..^{n}sth^^..^{n}...sth^^..^{n}sth^^..^{n}sb". (y {n}'s)

- If the before {n} is a number

- If the last bracket is {0}

I don't know if this is well-defined.

(I think it's completed but I don't even know how big it is.)