Supponiamo di avere più istanze I1 , I2 , I3 , ecc. di un insieme di classi C1 , C2 , ecc. Supponiamo che queste classi ereditino tutte da una super-classe S .
Supponiamo che ci sia un'operazione O(a, b) che richiede due istanze di S e verifica se sono compatibili (in alcuni casi è compatibile.) Per verificare la compatibilità, tuttavia, O deve conoscere il tipo di a e b ( C1 , o C2 , ...) e l'operazione può essere eseguita solo una volta che i tipi sono noti.
Il modo basilare per implementare O sarebbe quello di scrivere se le istruzioni ovunque per controllare i tipi e quindi eseguire l'operazione. Questo non è l'ideale perché ci sono molti casi da coprire e perché non è estendibile.
Esiste un modello associato a questo tipo di problemi? È possibile scrivere un'operazione estensibile basata sui tipi?