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

 .. sequence + asum did it:

do
            lm2 <- sequence m1
            asum lm2 `shouldBe` (Just 1)
            where m1 = [pure Nothing, pure (Just 1), pure (Just 2), pure Nothing]::[IO (Maybe Int)]

thank you Oliver. good tip.