Foundations for a Rust-Like Borrow Checker for C | Synapse