What main's effect can still fail with, given E, the errors its screen
actions and edges declare: everything but the challenge. Inside an
AndroidIgpapi call a challenge never reaches main — the screens answer it
with otherwise and run the interrupted action again, and what the branches
cannot settle rejects the call, never main's channel — so a program that
answers every error by tag checks AndroidMainError<Effect.Error<typeof program>>
against never and needs no catchTag('IgCheckpointError').
It covers what the screens run (actions, edges, pages, swipes). A raw request
brick a program runs on its own is not the screens' effect, and its
IgCheckpointError stays its own failure.
What
main's effect can still fail with, givenE, the errors its screen actions and edges declare: everything but the challenge. Inside anAndroidIgpapicall a challenge never reachesmain— the screens answer it withotherwiseand run the interrupted action again, and what the branches cannot settle rejects the call, nevermain's channel — so a program that answers every error by tag checksAndroidMainError<Effect.Error<typeof program>>againstneverand needs nocatchTag('IgCheckpointError').It covers what the screens run (actions, edges, pages, swipes). A raw request brick a program runs on its own is not the screens' effect, and its
IgCheckpointErrorstays its own failure.