docs: public boolean tryUnpackNil()
              throws IOException
      {
          // makes sure that buffer has at least 1 byte
          if (!ensureBuffer()) {
              throw new MessageInsufficientBufferException();
          }
          byte b = buffer.getByte(position);
          if (b == Code.NIL) {
              readByte();
              return true;
          }
          return false;
      }