This is a strange issue, inference is failing, but only when I remove a useless ...args: evil parameter from a callback
playground
This works:
visit: (ref: ref, children: () => val[] | undefined | false, ...args: evil) => val,
but
visit: (ref: ref, children: () => val[] | undefined | false) => val,
does not.
Can anyone figure out how to keep inference without the spread parameter?