decode = rawTree => {
    // eslint-disable-next-line no-use-before-define
    return recur(rawTree);
  }
This is the second pass recursion after the first pass `prepare`.
The first pass did some input validation so
here we can safely assume everything those things are validated.

@param {Encoding} rawTree
@returns {number}