Question: Compiler:-Compile and complex floats

With Maple 12 the compiler accepts complex complex floats.
However there is some limitation in using compiled results:

  # a simple function to be called by another
  foo1:=proc(z::complex[8])::complex[8]; return z*I end proc;
  foo:=proc(z::complex[8])::complex[8]; return foo1(z); end proc;

Now compile:

  cp1:=Compiler:-Compile(foo1);
  cp:=Compiler:-Compile(foo);

The first call works, the second gives an error:

    Error, (in printtab[CodeGeneration:-Names:-FunctionCall])
    unable to handle return values of type `complex[8]'

What can one do? Is there a need to define such foo1 to be of
type 'void' (by what I mean: put the desired result to the list
of arguments and use call by reference to have it update [which
makes code ugly to read])? Or decompose it to real and imaginary?

BTW: the above also does not work for 'float[8]'. Here I could
simplfy omit it, but for the complex case the compiler can not
recognize that the called function returns complex floats.
Please Wait...