CLN: core.computation, mostly typing
cc @simonjayhawkins 

Largely using annotations as an excuse to put eyeballs on parts of the code that would otherwise be left alone.
can you  rebase this; like @simonjayhawkins to eyeball. Closing to clear the queue @jbrockmendel we should in general limit the number of asserts added to silence mypy.

for our established code base with extensive testing, then many mypy errors are false positives and it is frustrating to deal with them.

but in a few cases mypy is highlighting a potential issue where we would just move the failure to the assert by adding it.

The benefit of type checking will come downstream. (promise!) when new code is added, then mypy errors are more likely to pinpoint issues. This will  hopefully reduced the amount of time reviewing PRs since these issues will already have been picked up by mypy and hopefully the OP fixed it.