Не знаю, что такое "based", но стандартная рекомендация — изучить TAPL Пирса. Впрочем, у Scala довольно сложная система типов, TAPL не хватит, скорее всего понадобиться читать и Advanced Topics in PL того же автора.
Впрочем, это "понять систему типов" в смысле "с целью контрибьютить в компилятор или разрабатывать свой аналогичняй ЯП". Если цель — научиться пользоваться системой типов Scala, то для этого должно быть достаточно изучить официальную документацию и примеры + документацию, примеры и исходники библиотек, активно использующих типы, как Zio, Cats и что там ещё.