- Rebuilding Racket on Chez Scheme (experience report). A very applied and very readable report on an impressive project to re-target a significant existing compiler. Especially recommended if you normally don't like reading academic papers, since this reads more like a very good technical report.
- Efficient differentiable programming in a functional array-processing language. A cool technique for applying automatic differentiation to a small functional language. Surprising how well it seems to work in practice. Easy to read. Also, it's the first paper I have seen that actually contains an empirical comparison against Futhark (albeit only sequential code)!
- Selective applicative functors. A really cool technique for working with asynchronous effects. The kind of thing that is obvious (and obviously a good idea) in retrospect, but nobody put together the pieces before. Probably requires good Haskell knowledge to understand.
Papers I have not read yet but which look interesting:
- Lambda Calculus with Algebraic Simplification for Reduction Parallelization by Equational Reasoning. Writing parallel reductions with nontrivial operators has so far mostly been a case of thinking really hard, and then maybe proving associativity and commutativity by hand. I'm curious whether this paper can provide a more systematic approach.
- Demystifying differentiable programming: shift/reset the penultimate backpropagator. Automatic differentiation from a functional perspective is usually interesting.
Confusingly and beautifully, there is also "mechanical differentiation" on the algebra of data of types, another computer application of the same abstract mathematical concept of differentiation: https://en.m.wikibooks.org/wiki/Haskell/Zippers#Mechanical_D...
Read about both at
I have come across differentiation of ADTs and very strange it is too. I can't understand how it works, it's so weird. I'll try to follow your links. Thanks!
"We encountered bugs in GHC at a higher rate than other projects." heh not unexpected