A type is abstract if its name is exposed in the interface, but its definition is not.

OCaml