Help on understanding why uvm_macros.svh code is not present in uvm_pkg or vice versa

import uvm_pkg::*;
include “uvm_macros.svh”

could you please help me to understand why uvm code is present in the package and uvm_macros.svh .why code can not be present in either of package or uvm_macros.svh

In reply to srbeeram:

https://verificationacademy.com/forums/uvm/necessity-writing-include-uvmmacros.svh#reply-68392

In reply to dave_59:

Thanks Dave for the explanation.