Noem drie problemen die kunnen optreden als een module een publiek type bevat.
De applicatiecode kan de representatie van het type direct benaderen. Als de representatie gewijzigd wordt, dan moet de applicatiecode ook gewijzigd worden.
De representatie van het type kan in een ongeldige toestand komen; wijzigingen kunnen buiten de standaardoperaties om ongecontroleerd plaatsvinden.
De representatie van het type is niet gegarandeerd uniek, zodat een vergelijking van twee gelijke types een verkeerde uitkomst kan geven.