public static void cppOutputFuncallFunctionSignature(Cons signature) {
    { Cons returntypes = ((Cons)(signature.value));
      StringWrapper returntype = ((StringWrapper)(returntypes.value));
      Cons parametertypes = ((Cons)(signature.rest.value));
      int nofparameters = parametertypes.length();

      { String result000 = null;

        { Object old$CurrentStream$000 = Stella.$CURRENT_STREAM$.get();

          try {
            Native.setSpecial(Stella.$CURRENT_STREAM$, OutputStringStream.newOutputStringStream());
            {
              ((OutputStream)(Stella.$CURRENT_STREAM$.get())).nativeStream.print(" (*) (");
              { StringWrapper partype = null;
                Cons iter000 = parametertypes;
                int i = Stella.NULL_INTEGER;
                int iter001 = 1;
                int upperBound000 = nofparameters;
                boolean unboundedP000 = upperBound000 == Stella.NULL_INTEGER;

                for (;(!(iter000 == Stella.NIL)) &&
                          (unboundedP000 ||
                           (iter001 <= upperBound000)); iter000 = iter000.rest, iter001 = iter001 + 1) {
                  partype = ((StringWrapper)(iter000.value));
                  i = iter001;
                  ((OutputStream)(Stella.$CURRENT_STREAM$.get())).nativeStream.print(partype.wrapperValue);
                  if (i < nofparameters) {
                    ((OutputStream)(Stella.$CURRENT_STREAM$.get())).nativeStream.print(", ");
                  }
                }
              }
              ((OutputStream)(Stella.$CURRENT_STREAM$.get())).nativeStream.print(")");
            }
            result000 = ((OutputStringStream)(((OutputStream)(Stella.$CURRENT_STREAM$.get())))).theStringReader();

          } finally {
            Stella.$CURRENT_STREAM$.set(old$CurrentStream$000);
          }
        }
        { String baresignature = result000;

          ((OutputStream)(Stella.$CURRENT_STREAM$.get())).nativeStream.print("(");
          Stella_Object.cppOutputTypedEntity(returntype, StringWrapper.wrapString(baresignature), null);
          ((OutputStream)(Stella.$CURRENT_STREAM$.get())).nativeStream.print(")");
        }
      }
    }
  }