||This paper answers the open problem of finding a
type system that characterizes hereditary permutators,
which is the problem 20 in the TLCA list of open problems.
First this paper shows that there does not exist such a
type system by showing that the set of hereditary permutatos
is not recursively enumerable.
The set of positive primitive recursive functions is used to prove it.
Secondly this paper gives a best-possible solution by
providing a set of types such that
a term has every type in the set
if and only if the term is a hereditary permutator.
Intersection types and the Omega type is used to handle infinite
computation in lambda terms.