Thread.dumpStack();
  public static Value implode(Env env,			      Value glueV,                              Value piecesV)  {    StringValue glue;    ArrayValue pieces;    if (piecesV instanceof ArrayValue) {      pieces = (ArrayValue) piecesV;      glue = glueV.toStringValue();    }    else if (glueV instanceof ArrayValue) {      pieces = (ArrayValue) glueV;      glue = piecesV.toStringValue();    }    else {      env.error(L.l("neither argument to implode is an array: {0}, {1}",		    glueV.getClass().getName(), piecesV.getClass().getName()));      return BooleanValue.FALSE;    }    StringBuilderValue sb = new StringBuilderValue();    boolean isFirst = true;    for (ArrayValue.Entry entry = pieces.getHead();	 entry != null;	 entry = entry.getNext()) {      if (! isFirst)        sb.append(glue);      isFirst = false;      entry.getValue().appendTo(sb);    }    return sb;  }