%(M:@(:*) *) @(m:(Monad M)) %(A:*) %(B:*) @(:(M A)) @(:@(:A) (M B)) (M B)