If you goal is to understand programming language design, then I don’t know any one book, but for learning about functional languages and types it is hard to beat the Brick book. “Types and programming languages” (WorldCat) This will touch on Hindley–Milner type system which uses inferencing to decide types; wonder where I heard the word inferencing before? (That’s a rhetorical question).
Shriram Krishnamurthi is a well-known researcher in programming languages and also very interested in teaching pedagogy. See also: https://www.pyret.org/
If you contact him (Twitter, Facebook, email), there’s a good chance he’d give you his opinion of your project.
The more I look at some of the code examples in the book you noted, the more I think you might want to switch to using LogTalk (I have never used LogTalk but keep it in mind often). Paulo hangs out here.