¿Tiene = significado en OCaml?

Parece ser una comparación de equivalencia para algunos tipos, pero no para cadenas.

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

Esto es lo esperado.

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

Por que"odp" != "odp" evaluar atrue? ¿Qué está haciendo realmente? ¿No debería generar un error de tipo?

Respuestas a la pregunta(5)

Su respuesta a la pregunta