add type checker from chapter 15