https://123dok.net/document/ky6on94y-raffinement-classes-langages-objets-statiquement-typ.html