```python
def fold_ends(values: list) -> list:
    if not values:
        return []

    total = values[0]
    for i in range(1, len(values)):
        total += values[i]

    return [total] + fold_ends(values[1:])

# Example usage:
print(fold_ends([]))  # []
print(fold_ends([1]))  # [1]
print(fold_ends([1, 2]))  # [1, 3]
print(fold_ends([1, 2, 3]))  # [1, 3, 6]
print(fold_ends([1, 2, 3, 4]))  # [1, 3, 6, 10]
print(fold_ends([1, 2, 3, 4, 5]))  # [1, 3, 6, 10, 15]
print(fold_ends([1, 2, 3, 4, 5, 6]))  # [1, 3, 6, 10, 15, 21]
print(fold_ends([1, 2, 3, 4, 5, 6, 7]))  # [1, 3, 6, 10, 15, 21, 28]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8]))  # [1, 3, 6, 10, 15, 21, 28, 36]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45, 60]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45, 60, 75]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45, 60, 75, 90]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45, 60, 75, 90, 105]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45, 60, 75, 90, 105, 120]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45, 60, 75, 90, 105, 120, 135]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45, 60, 75, 90, 105, 120, 135, 150]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45, 60, 75, 90, 105, 120, 135, 150, 165]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45, 60, 75, 90, 105, 120, 135, 150, 165, 175]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45, 60, 75, 90, 105, 120, 135, 150, 165, 175, 185]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45, 60, 75, 90, 105, 120, 135, 150, 165, 175, 185, 195]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45, 60, 75, 90, 105, 120, 135, 150, 165, 175, 185, 195, 205]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45, 60, 75, 90, 105, 120, 135, 150, 165, 175, 185, 195, 