(module sum (fn sum (doc "rekursive Summe 0..=n") (type (fn-type (params (own (con Int))) (ret (own (con Int))))) (params n) (body (if (app eq n 0) 0 (app + n (app sum (app - n 1)))))) (fn main (type (fn-type (params) (ret (own (con Unit))) (effects IO))) (params) (body (app print (app sum 10)))))