A sample of algebraic objects is a set of data collected by a random generating process, necessarily captured by a formal statistical model. The type Sample defined here stores a set of data generated using an object of type Model. This allows for a streamlined way to sample random objects, store the data as a proper statistical sample, and study their algebraic properties under the probabilistic regime.
An object of type Sample is a hash table with the following keys: name of the model used to generate the sample, values of the model's parameters used to generate the sample, the size of the sample (that is, the number of data points in it), and the data itself.

The object Sample is a type, with ancestor classes MutableHashTable < HashTable < Thing.