replace `listof` contracts with predicates