Contracted predicates

Predicates module now contracts its exported API