Index: xldmem.h
===================================================================
RCS file: /NOKOMIS/users/luke/SRC/xlispstat/xldmem.h,v
retrieving revision 1.16
diff -r1.16 xldmem.h
265a266
> #define WEAKBOX 13
268,269c269,270
< #define CONS  13
< #define COMPLEX 14
---
> #define CONS  16
> #define COMPLEX 17
271c272
< #define RATIO 15
---
> #define RATIO 18
273,275c274,276
< #define USTREAM 16
< #define DARRAY  17
< #define RNDSTATE 18
---
> #define USTREAM 19
> #define DARRAY  20
> #define RNDSTATE 21
277c278
< #define BCCLOSURE 19
---
> #define BCCLOSURE 22
Index: xldmem.c
===================================================================
RCS file: /NOKOMIS/users/luke/SRC/xlispstat/xldmem.c,v
retrieving revision 1.32
diff -r1.32 xldmem.c
12a13
> static VOID check_weak_boxes(V);
223a225,226
>     type_info[WEAKBOX].allocated = FALSE;
>     type_info[WEAKBOX].has_children = FALSE;
1130a1134
>   check_weak_boxes();
2938a2943,2965
> static void check_weak_boxes()
> {
>   LVAL last = NIL, next = xlweakboxes;
> 
>   while (ntype(next) == WEAKBOX) {
>     if (is_new_node(next)) {
>       /* delete box from weak box list */
>       LVAL tail = cdr(next);
>       if (null(last))
>         xlweakboxes = tail;
>       else
>         Rplacd(last, tail);
>       next = tail;
>     }
>     else {
>       if (is_new_node(car(next)))
>       Rplaca(next, NIL);
>       last = next;
>       next = cdr(next);
>     }
>   }
> }
> 
2946a2974,2993
> }
> 
> LVAL xmkweakbox(V)
> {
>   LVAL val = xlgetarg();
>   LVAL box = consa(val);
>   xllastarg();
>   ntype(box) = WEAKBOX;
>   Rplacd(box, xlweakboxes);
>   xlweakboxes = box;
>   return box;
> }
> 
> #define weakboxp(x) (ntype(x) == WEAKBOX)
> #define xlgaweakbox()    (testarg(typearg(weakboxp)))
> LVAL xweakboxval(V)
> {
>   LVAL box = xlgaweakbox();
>   xllastarg();
>   return car(box);
Index: xlftab.h
===================================================================
RCS file: /NOKOMIS/users/luke/SRC/xlispstat/xlftab.h,v
retrieving revision 1.32
diff -r1.32 xlftab.h
125c125,126
<     xgc(V),xexpand(V),xalloc(V),xmem(V),xregfinal(V);
---
>     xgc(V),xexpand(V),xalloc(V),xmem(V),xregfinal(V),
>     xmkweakbox(V),xweakboxval(V);
Index: xlftab.c
===================================================================
RCS file: /NOKOMIS/users/luke/SRC/xlispstat/xlftab.c,v
retrieving revision 1.37
diff -r1.37 xlftab.c
312a313,314
> {   "MAKE-WEAK-BOX",    S, xmkweakbox   },
> {   "WEAK-BOX-VALUE",   S, xweakboxval  },
865,866d866
< {   NULL,               S, xnotimp      },
< {   NULL,               S, xnotimp      },
Index: xlglob.h
===================================================================
RCS file: /NOKOMIS/users/luke/SRC/xlispstat/xlglob.h,v
retrieving revision 1.19
diff -r1.19 xlglob.h
115a116
> XLGLOBAL LVAL a_weakbox;
206a208,210
> 
> /* Weak box list */
> XLGLOBAL LVAL xlweakboxes;
Index: xlglob.c
===================================================================
RCS file: /NOKOMIS/users/luke/SRC/xlispstat/xlglob.c,v
retrieving revision 1.22
diff -r1.22 xlglob.c
144a145
> LVAL a_weakbox=NULL;
195a197,199
> 
> /* Weak box list */
> LVAL xlweakboxes = NIL;
Index: xlimage.c
===================================================================
RCS file: /NOKOMIS/users/luke/SRC/xlispstat/xlimage.c,v
retrieving revision 1.22
diff -r1.22 xlimage.c
110a111,113
>     /* write out the weak box list head */
>     writeptr(cvoptr(xlweakboxes));
> 
132a136
>           case WEAKBOX:
321a326,328
>     /* read in the weak box list head */
>     xlweakboxes = cviptr(readptr());
> 
340a348
>       case WEAKBOX:
Index: xlprin.c
===================================================================
RCS file: /NOKOMIS/users/luke/SRC/xlispstat/xlprin.c,v
retrieving revision 1.33
diff -r1.33 xlprin.c
562a563,569
>     case WEAKBOX:
> #ifdef PRINTCIRCLE
>           if (checkcircle(fptr, vptr)) break;
> #endif /* PRINTCIRCLE */
>           checkreadable(vptr);
>           putatm(fptr,"Weak Box",vptr);
>           break;
Index: xlinit.c
===================================================================
RCS file: /NOKOMIS/users/luke/SRC/xlispstat/xlinit.c,v
retrieving revision 1.33
diff -r1.33 xlinit.c
555a556
>     a_weakbox    = xlenter("SYSTEM:WEAK-BOX");
Index: xlsys.c
===================================================================
RCS file: /NOKOMIS/users/luke/SRC/xlispstat/xlsys.c,v
retrieving revision 1.24
diff -r1.24 xlsys.c
131a132
>     case WEAKBOX:     return (a_weakbox);
175a177
>   if (arg == a_weakbox)   return WEAKBOX;
