type compare