Need to learn a simpler way to debug? Find compile time and type level programming difficult? In his talk at Lambda World, Aditya Siram suggests that we should use static introspection, taken from languages like Nim and D to solve these issues we have and he explains why it might be easier than you think.
What if compile time and type level programming in functional programming languages were easy, something you reach for without even thinking about it? Write highly flexible systems by being able to introspect into types at compile time? Pre-calculate large portions of your programs for great efficiency? Typed functional programming is a great and fun way to write resilient software, and as type systems have become more and more expressive in recent years, we are able to program sophisticated and useful properties at the type level for even better compile time safety. Just one problem: It is very difficult, requires advanced knowledge of the type system, the syntax is convoluted, the error messages are impenetrable, and it is nearly impossible to debug.