Contracts for non-Void-safe users (take 1)