rxjs has streams that might never end but it doesn't apparently have enough typing to statically tell you which things won't actually ever call the 'completed' callback.
ha ha.
do we have static type systems that don't fall off the DX cliff? or run hard into DX brick walls?
not that i know of: they don't even have an interactive debugger tool. cue P. T. saying it is all empirically a fool's errand therefore :-)