(let if (fn (cond iftrue iffalse) (Bool T T) T (case cond (true iftrue) (_ iffalse)) ) ) (let ++ (fn x Int Int (+ x 1) ) ) (let -- (fn x Int Int (- x 1) ) ) (let sum (fix (fn sum' ((Int ...) -> Int) ((Int ...) -> Int) (fn vec (Int ...) Int (case vec ((h ..t) (+ h (sum' t))) (_ 0)) ) ) ))