@leobm How comfortable do you feel with the general idea that type level programming limits the implementation level programming to only those programs that are valid?
One hurdle for me was watching all the type level razzle-dazzle and not understanding what the motivation behind it was. What was helpful to my understanding was starting with the question, "How is this preventing invalid code from type-checking?"