public abstract void out_array_end(ref ChValue bVal, int msize);
// for pointed objects public abstract void out_ref(ref ChValue bVal, bool already_inserted, int obj_ID, int ext_ID);
public abstract void out_array_between(ref ChValue bVal, int msize);
// for custom C++ objects - see 'wrapping' trick below public abstract void outs(ref ChValue bVal, bool tracked, int obj_ID);