There is one string type:
A string is a sequence of characters encoded using either the UTF-8 or UTF-16 encoding of Unicode.
The choice between the two encodings is implementation dependent.
In the Melbourne Mercury implementation,
strings are represented
using UTF-8 when generating code for C or Erlang,
and using UTF-16 when generating code for C# or Java.