Idea: use undefined in place of anytype

What do you think about using undefined in place of anytype?
It mirrors the use of undefined when assigning a value:

// not assigning a value right now, will be determined later.
// also implies that the value of foo can change.
// (Not really, but undefined constants are useless)
var foo: usize = undefined;

const Bar = struct {
    // not assigning a type right now, will be determined later.
    // also implies that the type of foo can change.
    foo: undefined;
};

// not assigning a type right now, will be determined later.
// also implies that the type of foo can change (between function calls).
fn bar(foo: undefined) void {}

Maybe not the most immediately intuitive way, but seems pretty logically consistent to me.
anytype is not a real type, but just a placeholder for one.
undefined is not a real value, but just a placeholder for one.
Seeing as zig is already treating types as values at least at comptime, why not unify the two?
Also saves on a keyword.

Relevant discussions:

Currently, undefined in Zig is also a type that can be coerced into any type.

We can find that undefined is one of the kinds of types in std.builtin.Type.

I’m not opposed to your suggestion, it’s just that this might conflict somewhat with the current undefined mechanism, and adopting it would require some other changes.

I originally replied to you in another post, but then I found that you deleted that reply and added a new topic. I tried to delete my reply and move it here, but ran into some trouble with similar replies. Well, so I added some nonsense to avoid being considered a similar reply.

Oh, I didn’t realize that undefined was an actual type. Thank you for the info.
undefined and anytype seem to be implemented very differently, but I still think they are quite close conceptually, aside from operating on different levels.

It’s not that undefined is an actual type. But it coerces into one (as it does into anything). Having a type that’s undefined until the call site is different than having a type that’s undefined at all.