; Fieldtest — Floats milestone, axis 4: reach for float_to_str. ; ; Natural task: build a label like "result = " by concatenating ; a Str prefix with the float's text. The LLM-author who looks at ; `ail builtins` sees `float_to_str : (Float) -> Str`, reaches for it, ; and gets a codegen-deferred error per DESIGN.md §"Float semantics": ; ; `float_to_str` (Float → Str) is type-installed but codegen- ; deferred to a follow-up milestone: ... Calling it typechecks but ; produces a structured `CodegenError::Internal`. ; ; This fixture pins the reach-and-bounce. Expected: `ail check` ; succeeds; `ail build` fails with a clear, structured codegen error ; that names `float_to_str` and points at the missing runtime path. ; ; (No string-concat builtin exists either; we just print the result of ; float_to_str directly via io/print_str. The first failure point is ; codegen, before any concat would be needed.) (module floats_4_float_to_str_reach (fn main (type (fn-type (params) (ret (con Unit)) (effects IO))) (params) (body (do io/print_str (app float_to_str 3.14)))))