The forced polymorphism in handlePersonalAuthMapQuery was preventing use of ErrorV for handling authorization failures (because its operations are intentionally monomorphic).
liftErrorV was not a good primitive to make queries, it would have been fine for reporting success, but did not explicitly register interest in the error part. Because of that, cropV would have quietly deleted the errors from the view. I'd be surprised if anything using this managed to avoid this pitfall.
As such, liftErrorV has been replaced by two new primitives: queryErrorV for registering interest in a view wrapped in ErrorV, and successErrorV for constructing a successful Identity view.
I also removed unsafeProjectE / unsafeProjectV from ErrorV rather than reworking them because the things they did were not entirely sensible to begin with:
unsafeProjectE was requesting only errors from the backend, but then discarding those errors from the corresponding view on the way back. If you want that, you ought to avoid registering interest in the ErrorV in the first place, rather than making the backend work to discover that there's an error you're going to ignore.
unsafeProjectV was treating failures the same way as lag (which is maybe on a rare occasion something you'd want, but let's not encourage it).
The forced polymorphism in handlePersonalAuthMapQuery was preventing use of ErrorV for handling authorization failures (because its operations are intentionally monomorphic).
liftErrorV was not a good primitive to make queries, it would have been fine for reporting success, but did not explicitly register interest in the error part. Because of that, cropV would have quietly deleted the errors from the view. I'd be surprised if anything using this managed to avoid this pitfall.
As such, liftErrorV has been replaced by two new primitives: queryErrorV for registering interest in a view wrapped in ErrorV, and successErrorV for constructing a successful Identity view.
I also removed unsafeProjectE / unsafeProjectV from ErrorV rather than reworking them because the things they did were not entirely sensible to begin with: