partitionM is:exact

A version of partition that works with a monadic predicate.
partitionM (Just . even) [1,2,3] == Just ([2], [1,3])
partitionM (const Nothing) [1,2,3] == Nothing
Monadic version of partition
A `monadic' version of @partition :: (a -> Bool) -> [a] -> ([a],[a])