modify to merge function specialization phase into compiling phase into compiling phase in order to solve TYPE-OF problem in compiling phase