In the new Haskell Interlude, we talk to Manuel Chakravarty - specifically, his work on the ghc backend such as data-parallel Haskell and the FFI and how that work segued into type system design. We also discussed Manuel’s perspective on Haskell from the language design of Swift.
[Short follow-up to Haskell Interlude 71: Stefan Wehr]
The Buzzsprout player is present on the page (and download via Share works).
The name of the downloaded file is “processed_audio.mp3”. Not just with this podcast, but previous ones as well. So it requires manual renaming. Not a big deal, but would be nice if the downloaded file has the title of the episode as its name. (In particular for people downloading multiple episodes at once.)
So I’m not sure we can fix this one - the file I uploaded was called `stefan-wehr-final.wav`, so the name comes from Buzzsprout.
No problem. Only mentioned it in case it was an easy fix (or oversight). And there won’t be too many who will download via the Buzzsprout player Share option.
At some point in the talk (which I can’t now find), Manuel talks about the work on Type Families and Type Equality constraint ~ and Coercible. Something about forcing existential types to be equal, which unification-based type inference will never do. Is there a more technical description of the why and how?
It’s somewhat covered in the 2008 ICFP paper, wrt TFs and GADTS. But you can use ~ between type expressions that are neither of those.
Pre-dating TFs there was ‘folk art’ using FunDeps to typeCast, but there are situations where ~ succeeds and typeCast gets stuck. What extra is ~ doing?