A generic extracting predicate.
A predicate checks if the given element satisfies some properties
and extracts its attribute values. You can compose predicates using
Functor, Applicative and Alternative operators:
Note, that it doesn't really have sense to use function like
some, since the extracting predicate doesn't consume any input.