Rewrote hasOrdinals without generic traversal.