We could go the C route and only apply auto-deref via `->` on all pointer types (i.e. `(~int).foo()` would be trying to call `foo` on `~int`, but `(~int)->foo()` would attempt to auto-deref.)