When we need to convert an expression that may or may not be wrapped in a Result on the read
path, we can rely on the fact that we’ll eventually be assigning the value to a field with a
concrete type and we can rely on type inference in order to figure out what that should be.
Because of that we don’t want/need the ParselyWrite trait bounds on the impl like we have
above for the writable side, so we need a different trait here.
Helper trait to coerce values of both T: ParselyWrite and Result<T, E>: E: Into<anyhow::Error> into ParselyResult<T>. We need a trait specifically for writing because
if we don’t bound the impl for T in some way there’s ambiguity: the compiler doesn’t know if
we want ParselyResult<T> or ParselyResult<Result<T, E>>.