Faz! = Tem significado no OCaml?

Parece ser uma comparação de equivalência para alguns tipos, mas não para strings.

# 3 != 3;;
- : bool = false
# 3 != 2;;
- : bool = true

Isso é como esperado.

# "odp" = "odp";;
- : bool = true
# "odp" != "odp";;
- : bool = true
# "odp" <> "odp";;
- : bool = false

Porque"odp" != "odp" avaliar paratrue? O que está realmente fazendo? Não deveria gerar um erro de tipo?

questionAnswers(5)

yourAnswerToTheQuestion