Hello All! Is it possible to write Monad for such type: data Allpass w m a = Nopass (m a) w | Allpass (m a) w I can write (>>=), IMHO such type can not be Monad due to `w` is not under `m` monad, right? === Best regards, Paul