I think it would be nice if the `compact_data*` ptr was consistently named `cdata` from out.  It seems to sometimes be