Predicates like Subpacket::signature_alive should return a Result<()>, not a bool
Returning a bool
obscures why higher-level functionality fails. Returning a Result
allows us to specify exactly what went wrong. Using context allows high-level functions to provide appropriate context.
If we had used this with Subpacket::signature_alive
, we might have found the bug that pep uncovered faster.