add macro of typecheck