Every programmer I’ve talked to who’s into types and programming language development has the shared trauma of being recommended to read “Complete and Easy Bidirectional Typechecking for Higher-Rank Polymorphism” only to discover it not being complete nor easy at all
@zack_overflow This paper is infamous for being “easy”
@zack_overflow "Bidirectional PTSD for type theorists: Completely and easily inducing higher-rank dread"
@zack_overflow Reminds me of this book: “Topics include categories, universal algebra, modules, basic structure theory of rings, classical representation theory of finite groups, elements of homological algebra with applications, commutative ideal theory, and formally real fields”
@zack_overflow give me a list of 5 papers you recommend every programmer reads
@zack_overflow The bad joke is that the implementation is just a compiler with a bunch of if-else's with exceptions.
@zack_overflow very straight forward, also recommend Knuth's The Art of Programming, great beginner texts...
@zack_overflow I recall the context splitting/holes being the tricky thing about implementing it, with the rest being relatively straightforward if you're read TAPL/other PL lit
@zack_overflow source code and corresponding binary or it doesn't real
@zack_overflow Proof of ease remains as exercise for the reader.
My (RichardKCollin2, The Internet Foundation) perspective might be unique. Looking at the needs of all humans, related specie and the emerging AI species - I have to deal with all types and formats on the Internet, including the vast majority that are fragmented, incomplete, error-riddled, actively chaotic, inefficiently monetized. With many that have bureaucratic, dreadful, overexcited, or existential connections. x.com/i/grok/share/5…
@zack_overflow In high level terms, what is this about ? It's on my read list, but i'm not sure what "bidirectional typechecking" even means
@zack_overflow @grok can you summarize the reading recommendation above and give a quick synopsis for normal people what it talks about?