Yes, I actually ran into that gotcha myself: AppliedPredicate is not an instance of Predicate (assumedly because making Predicate a class instead of an object would limit it too much). 

So how do you feel about my second idea, which is to basically associate a special symbol object with each predicate?