.setType( _accumType( elementType ) ) ;
.setType( accumType ) ;
    Tree[] getTrace() {                 initializeSyms();        Tree tb = code_body();        theDefDef = gen.DefDef( this.funSym,                                 tb );                Vector v = new Vector();                v.addAll( helpVarDefs );                //                                   // `def leftTracer(...) = ...'                 the function definition        v.add( theDefDef );                Tree emptyAcc    = gen.Nil( cf.pos ); //cf._seqTraceNil( elementType );                // the valdef is needed, because passing emptyAcc as a parameter        //   results in a ClassCastException at runtime (?!)                Symbol emptyAccSym = new TermSymbol( pos,                                             cf.fresh.newName("acc"),                                             owner,                                             0 )            .setType( _accumType( elementType ) ) ;                // `val acc = SeqNil[ elementType ]'                 init accumulator        v.add( gen.ValDef( emptyAccSym, emptyAcc) );                 Tree run = callFun( new Tree[] {            gen.Ident( pos, emptyAccSym ),            cf.newIterator( selector, selector.type() ),             gen.mkIntLit( cf.pos, 0 )  });                                        run = gen.ValDef( resultSym, run );        v.add( run );         // vars...        for( Iterator it = helpMap.keySet().iterator(); it.hasNext(); ) {            v.add( bindVar( (Symbol) it.next()) );        }        /* IF YOU NEED DEBUG OUTPUT AT RUNTIME           v.add( cf.debugPrintRuntime( "the trace is" ) );           v.add( cf.debugPrintRuntime( gen.Ident( pos, resultSym ) ) );           v.add( cf.debugPrintNewlineRuntime( "" ) );        */        Tree res[] = new Tree[ v.size() ];        int j = 0;        for( Iterator it = v.iterator(); it.hasNext(); )            res[ j++ ] = (Tree) it.next();        _m.varMap = nestedMap;        return res;    }