Le lingue con le coercizioni ( ie conversioni di tipo implicito ) consentono di esprimere cose del genere (indipendentemente da qualsiasi sintassi):
f : int32 → int32 = λx.x+x
a : int16 = 42
b : int64 = f(a)
Dove le conversioni di tipo non sono esplicitamente indicate nel codice. Il controllo del tipo si basa su: int16 <: int32 <: int64
. Esiste un linguaggio di programmazione in cui si estende a sottotipi di tipi di funzione ? Permettere di scrivere:
g : int16 → int64 = f