something even simpler:

cheers Oliver. asum is better.

how is it possible to (<|>) results in:


type Am m  = (Alternative m, Monad m)

(Am m, Am n) => (a -> m (n b)) -> [a] -> m (n b)

?

say, m (n b) is 
IO (Maybe b)