%(A:*) %(B:*) @(a:(IO A)) @(f:@(:A) (IO B)) (IO B)