The types precedence explained