likely_compile now takes optional type, no need to explicitly use dynamic keyword