This version introduces "Natural Inference" which requires a couple more type annotations to make Flow pass.