Poiché esiste un calcolo lambda non tipizzato e un calcolo lambda tipicamente semplice (come descritto, ad esempio, nel libro Tipi e linguaggi di programmazione di Benjamin Pierce), esiste una logica combinatoria tipizzata semplicemente?
Ad esempio, sembrerebbe che sarebbero i tipi naturali per i combinatori S, K e io
S : (a -> b -> c) -> (a -> b) -> a -> c
K : a -> b -> a
I : a -> a
dove a, b e c sono variabili di tipo che vanno oltre una serie di tipi T. Ora, forse potremmo iniziare con un solo tipo di base, Bool. La nostra serie di tipi T è quindi Bool insieme a qualsiasi tipo che può essere formato utilizzando i tre modelli
(a -> b -> c) -> (a -> b) -> a -> c
a -> b -> a
a -> a
dove a, b, c in T.
Ci sarebbero due nuove costanti nella lingua.
T : Bool
F : Bool
Quindi, questa lingua è composta dai simboli S, K, I, T e F, insieme alle parentesi. Ha un tipo di base Bool e i "tipi di funzione" che possono essere creati dai modelli combinatori S, K e I.
Questo sistema può funzionare? Ad esempio, esiste una costruzione if-then-else ben tipizzata che può essere formata solo da S, K, I, T, F?