fndraw['y':bin16]{std::print.useful["drawing ",'y',newln];}MAIN{# A guardrail the compiler can see: past the `if`, the value is inside bin16's range,# so the narrowing below is proven and `check` says so. A name never changes numeric# family (`types.md`), so the value is a bin from the start — `to.bin16` would be the# way to cross from an integer, and it would fail rather than round silently.let'x':bin32=70000.0;if'x'>65_504.0{std::print.stored["too big",newln];}else{checklet'y':bin16='x';draw['y'];}let'xs':=[1,2,3];check{for'i'from1tolist.length[lend'xs']by1{std::print.useful['xs'[pos'i']," "];}}std::print.stored[newln];no_checkchange'xs'[pos2]=9;# crossing families is spelled, and it fails rather than rounds (`types.md`)checkif'x'>0.0{change'xs'[pos1]=to.int32['x'div.near2.0]otherwise0;}std::print.useful['xs',newln];}