The dividing line between compiler builtin, language primitive, standard library or compiler runtime doesn't really exist if you don't want it to. They're all variations on the same theme.