@b0rk_reruns besides cd exit and source, which ones really HAVE TO be builtins?
@f4grx @b0rk_reruns echo and printf don't need to be builtins, and they're actually also programs. Builtins are just faster.
I guess you could theoretically make alias a program, but it would have different semantics.
read and declare also need to be builtins. And since you can't completely eliminate builtins, you need type to be a builtin in order to identify other builtins.