# Haskell Interlude 72: Manuel Chakravarty

**URL:** <https://discourse.haskell.org/t/haskell-interlude-72-manuel-chakravarty/13190>\
**Category:** Links\
**Created:** [October 30, 2025, 1:42pm UTC](https://discourse.haskell.org/t/haskell-interlude-72-manuel-chakravarty/13190 "2025-10-30T13:42:01Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![sperber](https://avatars.discourse-cdn.com/v4/letter/s/59ef9b/32.png) [@sperber](https://discourse.haskell.org/u/sperber)\
**Post date:** [October 30, 2025, 1:42pm UTC](https://discourse.haskell.org/t/haskell-interlude-72-manuel-chakravarty/13190/1 "2025-10-30T13:42:01Z")

</div>

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.

> **[Manuel Chakravarty](https://haskell.foundation/podcast/72/)**
>
> In this episode, 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...

---

<div class="post-metadata">

**Author:** ![arpl](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/arpl/32/1713_2.png) [@arpl](https://discourse.haskell.org/u/arpl)\
**Post date:** [October 31, 2025, 4:35am UTC](https://discourse.haskell.org/t/haskell-interlude-72-manuel-chakravarty/13190/2 "2025-10-31T04:35:54Z")

</div>

[Short follow-up to [Haskell Interlude 71: Stefan Wehr](https://discourse.haskell.org/t/haskell-interlude-71-stefan-wehr/13129/2)]

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.)

---

<div class="post-metadata">

**Author:** ![sperber](https://avatars.discourse-cdn.com/v4/letter/s/59ef9b/32.png) [@sperber](https://discourse.haskell.org/u/sperber)\
**Post date:** [October 31, 2025, 7:57am UTC](https://discourse.haskell.org/t/haskell-interlude-72-manuel-chakravarty/13190/3 "2025-10-31T07:57:38Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![arpl](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/arpl/32/1713_2.png) [@arpl](https://discourse.haskell.org/u/arpl)\
**Post date:** [November 1, 2025, 1:37am UTC](https://discourse.haskell.org/t/haskell-interlude-72-manuel-chakravarty/13190/4 "2025-11-01T01:37:00Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![AntC2](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/antc2/32/1872_2.png) [@AntC2](https://discourse.haskell.org/u/AntC2)\
**Post date:** [November 5, 2025, 12:56am UTC](https://discourse.haskell.org/t/haskell-interlude-72-manuel-chakravarty/13190/5 "2025-11-05T00:56:19Z")

</div>

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?
