replace listof contracts with predicates