(module ;; recursive, more compact version (func $fac_f64 (export "fac_f64") (param f64) (result f64) get_local 0 f64.const 1 f64.lt if (result f64) f64.const 1 else get_local 0 get_local 0 f64.const 1 f64.sub call $fac_f64 f64.mul end ) )