-- >>> flipMaybe [Just 1, Just 2, Just 3]
    -- Just [1, 2, 3]
    -- >>> flipMaybe [Just 1, Nothing, Just 3]
    -- Nothing
    flipMaybe :: [Maybe a] -> Maybe [a]
    flipMaybe list =
        if difference > 0 then Nothing
        else Just justValues
        where
            justValues = catMaybes list
            difference = length list - length justValues
flipMaybe :: [Maybe a] -> Maybe [a]
flipMaybe list =
        if difference > 0 then Nothing
        else Just justValues
        where
            justValues = catMaybes list
            difference = length list - length justValues
flipMaybe list =
        if difference > 0 then Nothing
        else Just justValues
        where
            justValues = catMaybes list
            difference = length list - length justValues