using opencode as an example, i often see rejected tool calls because the type checker requested an integer for a range of read lines and the model provides 1.0; naively, sure, the program asked for an integer and was given a flow.
but if the float can easily be corrced to a integer, why fail the tool call?
we are essentially reopening the debate about typed or strict languages and LLMs are closer to how javascript was developed than rust.
using opencode as an example, i often see rejected tool calls because the type checker requested an integer for a range of read lines and the model provides 1.0; naively, sure, the program asked for an integer and was given a flow.
but if the float can easily be corrced to a integer, why fail the tool call?
we are essentially reopening the debate about typed or strict languages and LLMs are closer to how javascript was developed than rust.