Sub-lista de soma máxima?

Estou me confundindo com essa questão com o que ela está tentando perguntar.

Função de escritamssl() (sub-lista de soma mínima) que recebe como entrada uma lista de números inteiros. Em seguida, calcula e retorna a soma da sub-lista de soma máxima da lista de entrada. A sub-lista de soma máxima é uma sub-lista (fatia) da lista de entrada cuja soma de entradas é maior. A sub-lista vazia é definida para ter soma 0. Por exemplo, a sub-lista de soma máxima da lista[4, -2, -8, 5, -2, 7, 7, 2, -6, 5] é[5, -2, 7, 7, 2] e a soma de suas entradas é19.

Se eu fosse usar essa função, deveria retornar algo semelhante a

>>> l = [4, -2, -8, 5, -2, 7, 7, 2, -6, 5]
>>> mssl(l)
19
>>> mssl([3,4,5])
12
>>> mssl([-2,-3,-5])
0

Como eu posso fazer isso?

Aqui está a minha tentativa atual, mas não produz o resultado esperado:

def mssl(x):
    ' list ==> int '
    res = 0
    for a in x:
        if a >= 0:
            res = sum(x)
        return res
    else:
        return 0