- case CONSTR:
- case CONSTR_1_0: case CONSTR_0_1:
- case CONSTR_1_1: case CONSTR_0_2: case CONSTR_2_0:
- case CONSTR_INTLIKE:
- case CONSTR_CHARLIKE:
- case CONSTR_STATIC:
- case CONSTR_NOCAF_STATIC:
- {
- /* We can't use printStdObject because we want to print the
- * tag as well.
- */
- StgWord i, j;
-#ifdef PROFILING
- fprintf(stderr,"%s(", info->prof.closure_desc);
- fprintf(stderr,"%s", obj->header.prof.ccs->cc->label);
-#else
- fprintf(stderr,"CONSTR(");
- printPtr((StgPtr)obj->header.info);
- fprintf(stderr,"(tag=%d)",info->srt_len);
-#endif
- for (i = 0; i < info->layout.payload.ptrs; ++i) {
- fprintf(stderr,", ");
- printPtr((StgPtr)obj->payload[i]);
- }
- for (j = 0; j < info->layout.payload.nptrs; ++j) {
- fprintf(stderr,", %p#", obj->payload[i+j]);
- }
- fprintf(stderr,")\n");
- break;
- }
-
-#ifdef XMLAMBDA
-/* rows are mutarrays in xmlambda, maybe we should make a new type: ROW */
- case MUT_ARR_PTRS_FROZEN:
- {
- StgWord i;
- StgMutArrPtrs* p = stgCast(StgMutArrPtrs*,obj);
-
- fprintf(stderr,"Row<%i>(",p->ptrs);
- for (i = 0; i < p->ptrs; ++i) {
- if (i > 0) fprintf(stderr,", ");
- printPtr((StgPtr)(p->payload[i]));
- }
- fprintf(stderr,")\n");
- break;
- }
-#endif
-
- case FUN:
- case FUN_1_0: case FUN_0_1:
- case FUN_1_1: case FUN_0_2: case FUN_2_0:
- case FUN_STATIC:
- fprintf(stderr,"FUN/%d(",itbl_to_fun_itbl(info)->arity);
- printPtr((StgPtr)obj->header.info);
-#ifdef PROFILING
- fprintf(stderr,", %s", obj->header.prof.ccs->cc->label);