Comme il existe un calcul lambda non typé et un calcul lambda simplement tapé (comme décrit, par exemple, dans le livre Types et langages de programmation de Benjamin Pierce), existe-t-il une logique combinatoire simplement tapée?
Par exemple, il semblerait que les types naturels des combinateurs S, K et I seraient
S : (a -> b -> c) -> (a -> b) -> a -> c
K : a -> b -> a
I : a -> a
où a, b et c sont des variables de type s'étendant sur un ensemble de types T. Maintenant, nous pourrions peut-être commencer avec un seul type de base, Bool. Notre ensemble de types T est alors Bool avec tous les types qui peuvent être formés en utilisant les trois modèles
(a -> b -> c) -> (a -> b) -> a -> c
a -> b -> a
a -> a
où a, b, c dans T.
Il y aurait deux nouvelles constantes dans le langage.
T : Bool
F : Bool
Ainsi, ce langage se compose des symboles S, K, I, T et F, ainsi que des parenthèses. Il a un type de base Bool et les "types de fonctions" qui peuvent être créés à partir des modèles de combinateur S, K et I.
Ce système peut-il fonctionner? Par exemple, existe-t-il une construction bien typée si-alors-autre qui peut être formée uniquement de S, K, I, T, F?