Source: https://perso.limos.fr/ffoucaud/Teaching/2011-2012/UMLAS/collections_tp.pdf