...and to answer the original question, the syntax:
declare a() as binary-char unsigned occurs any = type Encoding::UTF8::GetBytes(SourceText)
...is not quite right. Should be:
declare a as binary-char unsigned occurs any = type Encoding::UTF8::GetBytes(SourceText)
(i.e. same thing without the parentheses following 'a').
In fact, for this and similar declare statements it is not necessary to define the type explicitly as the compiler is able to infer the type from the value expression, so the following is equally good:
declare a = type Encoding::UTF8::GetBytes(SourceText)
This is similar to the use of 'var' in C# and it is of course a matter of opinion as to whether it's better to state the type explicitly.