FWIW modern Free/Object Pascal is miles away from the principles of simplicity found in Oberon. For example in Oberon a string is basically a series of characters whereas in Free Pascal there is a refcounted copy-on-write string type that keeps the string encoding and does automatic conversion (e.g. UTF8 to UTF16 or UTF32 or native codepage where available) where needed.