I think that a way to back up your claims is to compare the type errors from your approach with type errors from vanilla bidirectional type inference, in the same language.
Also: won't this type less programs than bidirectional type inference?