Distinguish between finalize and write annotations in SAP at the type level
Distinguish between finalize and write annotations in SAP at the type level

This simplifies a few things and makes reasoning a bit easier.

travitch/foreign-inference,travitch/foreign-inference