add Opaque predicate and support for it in equiv, as it's possible to get opaque values in comparisons (like in check blocks) and otherwise it gives a really ugly error