type Schema { Integer(Int) List(List) } fn sum(schema: Schema) -> Int { when schema is { Integer(i) -> i List(xs) -> sum_list(xs) } } fn sum_list(list: List) -> Int { when list is { [] -> 0 [x, ..xs] -> sum(x) + sum_list(xs) } } test foo() { // False // Can't enable the "real" test because it puts the UPLC evaluator in an infinite loop. // - sum(List([List([Integer(1), Integer(2)]), Integer(3), Integer(4)])) == 10 }