We create many `useDebugValue` helpers, loggers and so one now, so we can feel less pain.

What matter (**Updated**)
- previewing complex values brifely like chrome devtools does it for arrays, sets, maps, objects,,,

I [wrote related twit](https://twitter.com/mxtnr/status/1178271362890240001) recently with one of my DebugValue helpers. screenshot out here:
<img width="556" alt="Screenshot 2019-09-29 at 14 01 53" src="https://user-images.githubusercontent.com/6201068/66700775-5648bf80-ecfd-11e9-93fe-089d451bcffa.png">
_my named hooks currently require a `label` option unless react babel cannot transform name of variable automatically_
case 'typed_array':
      return `${name}[${data[meta.size]}]`;
    default:
      return null;
  }
}
function sanitize(data: Object): void {
  for (const key in data) {
    const value = data[key];
    if (value && value[meta.type]) {
      data[key] = getMetaValueLabel(value);
    } else if (value != null) {
      if (Array.isArray(value)) {
        sanitize(value);
      } else if (typeof value === 'object') {
        sanitize(value);
      }
    }
  }
}
export function serializeDataForCopy(props: Object): string {
  const cloned = Object.assign({}, props);
  sanitize(cloned);
  try {
    return JSON.stringify(cloned, null, 2);
  } catch (error) {
    return '';
  }
}
export function serializeHooksForCopy(hooks: HooksTree | null): string {