(module mut_sum_floats (fn main (doc "Float twin of mut_counter via a tail-recursive helper. Expected stdout: 55 (Float-55.0 via %g).") (type (fn-type (params) (ret (con Unit)) (effects IO))) (params) (body (app print (app sum_helper 1.0 10.0 0.0)))) (fn sum_helper (doc "Accumulator-style tail-recursive Float helper — sum from lo through hi inclusive.") (type (fn-type (params (con Float) (con Float) (con Float)) (ret (con Float)))) (params lo hi acc) (body (if (app > lo hi) acc (tail-app sum_helper (app + lo 1.0) hi (app + acc lo))))))