6932b66ef1
Types need to be declare to be cross-referenceable. Use the opportunity to reorganise the symbols in subsections. (cherry picked from commit 95be47bc2aeea208c28d7df0b82aa63cc132f71e)