import Data.List rle list = map (\list -> (length list, head list)) (group list) catMaybes :: [Maybe a] -> [a] catMaybes xs = [r | Just r <- xs]