Split list y hacer la suma de la sublist?

Estoy buscando una solución para mi clase de Haskell.

Tengo una lista de números y necesito devolver SUM para cada parte de la lista. Las partes se dividen entre 0. Necesito usar la función FOLDL.

Ejemplo
lista inicial: [1,2,3,0,3,4,0,5,2,1]
sublist [[1,2,3], [3,4], [5,2,1]]
resultado [6,7,7]


Tengo una función para encontrar 0 en la lista inicial:

findPos list = [index+1 | (index, e) <- zip [0..] list, e == 0] 

(devuelve [4,6] para la lista inicial del ejemplo)

y función para hacer SUMA con FOLDL:

sumList list = foldl (+) 0 list

Pero no pude armarlo por completo: /

---- MI SOLUCIÓ
Al final encontré algo completamente diferente que ustedes sugirieron.
Me llevó todo el día hacerlo: /

groups :: [Int] -> [Int]
groups list = [sum x | x <- makelist list]

makelist :: [Int] -> [[Int]]
makelist xs = reverse (foldl (\acc x -> zero x acc) [[]] xs)  

zero :: Int -> [[Int]] -> [[Int]]
zero x acc | x == 0 = addnewtolist acc
           | otherwise = addtolist x acc

addtolist :: Int -> [[Int]] -> [[Int]]
addtolist i listlist = (i : (head listlist)) : (drop 1 listlist)

addnewtolist :: [[Int]] -> [[Int]]
addnewtolist listlist = [] : listlist