Fix some impossible method signatures

`as_ref` and `as_mut` must create references for both `T` and `E` at once because `self` is taken by-reference