makeMeasureBounds = (specials) => {
  const _measureBounds = (solids) => {
    // we create a preemptive cache
    const cache = cacheWithInvalidation()
    const operands = cachedGenerator([solids], cache)
    const bounds = measureBounds(operands)
    specials.push({ cache, result: bounds })
    return bounds
  }
  return _measureBounds
}
Unlike most 'virtual' functions measurement of bounds pre-computes the needed geometric data
needed: so it forces pre-evaluation of the given geometry, before the normal vtree evaluation

@see http://
@param {Object} specials - hash of 'specials'
@returns {Function} the actual function made for measuring bounds