Use signed int8s for enums as these are less bug-prone (e.g. infinite loops like while rank >= 0...)