Noem twee overwegingen die een rol spelen bij de afweging tussen structurele equivalentie en naamequivalentie.
Naamequivalentie dwingt af dat elk afzonderlijk type maar op één plaats gedefinieerd wordt. Dit kan onpraktisch zijn, maar komt uiteindelijk de onderhoudbaarheid van het programma ten goede.
Structurele equivalentie kan tot verwarring leiden als twee typen toevallig dezelfde structuur hebben.