anchor.diff:  inform_dist* inform_dist_infer(int const *events, size_t n);
   ----
   Infer a distribution from a collection of observed events.
  +
  +*Examples:*
  +[source,c]
  +----
  +inform_dist *dist = inform_dist_infer((int[]){0,0,1,0,1}, 5);
  +assert(dist);
  +// dist->histogram ~ {3,2}
  +inform_dist_free(dist);
  +----
  +[source,c]
  +----
  +inform_dist *dist = inform_dist_infer((int[]){0,0,1,0,1,2,2,1}, 8);
  +// dist->histogram ~ {3,3,2}
  +inform_dist_free(dist);
  +----
   ****
   
   ****
  
positive.code: for whatever reason.
  
  Immediately following allocation, the distribution is invalid.
  ****
  
  ****
  
negative.code: 
  In the event that the destination is `NULL` or has a different size from that of the source,
  the destination is reallocated, and the result is returned.
  
  *Examples:*
  [source,c]
  ----
  inform_dist *source = inform_dist_alloc(5);
  assert(source);
  for (int i = 0; i < (int) source->size; ++i)
      source->histogram[i] = i;
  // source->histogram ~ {0,1,2,3,4};
  
  inform_dist *target = inform_dist_alloc(5);
  assert(target);
  
  inform_dist_copy(source, target);
  // target->histogram ~ {0,1,2,3,4};
  
  inform_dist_free(target);
  inform_dist_free(source);
  ----
  ****
  
  ****
  