(module ;; recursive, refactored to use s-expressions and named variables (func $fact_f64 (export "fact_f64") (param $n f64) (result f64) (if (result f64) (f64.lt (get_local $n) (f64.const 1)) (then f64.const 1) (else (f64.mul (get_local $n) (call $fact_f64 (f64.sub (get_local $n) (f64.const 1))) ) ) ) ) )