publish type inference part 1 post