module Sum where {-@ ssum :: forall
Bool, q :: a -> Bool>.
{{v:a | v == 0} <: a |- {v:a | x <= v} <: a | 0 <= v}] -> {v:a}
{x::a
}
xs:[{v:a
| len xs >= 0 && 0 <= v } @-}
ssum :: Num a => [a] -> a
ssum [] = 0
ssum [x] = x
ssum (x:xs) = x + ssum xs