--This will work (already tested):
zipMaybe :: [a] -> [b] -> [(Maybe a, Maybe b)]
zipMaybe [] [] = []
zipMaybe (x:xs) [] = [(Just x, Nothing)] ++ zipMaybe xs []
zipMaybe [] (y:ys) = [(Nothing, Just y)] ++ zipMaybe [] ys
zipMaybe (x:xs) (y:ys) = [(Just x, Just y)] ++ zipMaybe xs ys