It wouldn't be at all the same thing anymore. The real purpose and challenge behind designing it was providing memory safety without a garbage collection scheme. If someone wants a high level language, Rust isn't a good fit. It's not ML with type classes. It's a C replacement.
Garbage collection is an extremely core part of ML. If you look at Rust as ML with type classes, you're going to be very disappointed, because you're missing that the language is entirely designed around being low level with low-level control, no GC and zero cost abstractions.
the whole point is that it wouldn't be the same any more
the big part for rust, for me, is the single ownership. things like preemptive gc wouldn't change the language too much but it would change every program written in it
to the point where most would be easier
How would garbage collection simplify it if you're going to keep the same model for ownership and borrowing ownership? It would effectively be an implementation detail. You could certainly implement the safe subset of Rust with a GC but what makes that different than how it is?