Add validation guards at input time for the ops (new/1, graft/3, combine/3, harmonise/4, compose/3) — use the same predicates so failure happens at the call site, not five steps downstream. This is the "early failure means easier debug" direction we just discussed on engines.
Add validation guards at input time for the ops (new/1, graft/3, combine/3, harmonise/4, compose/3) — use the same predicates so failure happens at the call site, not five steps downstream. This is the "early failure means easier debug" direction we just discussed on engines.