# Composing Event Migrations with Default Implementations - Hindsight

**URL:** <https://discourse.haskell.org/t/composing-event-migrations-with-default-implementations-hindsight/13259>\
**Category:** Links\
**Created:** [November 12, 2025, 12:54pm UTC](https://discourse.haskell.org/t/composing-event-migrations-with-default-implementations-hindsight/13259 "2025-11-12T12:54:38Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![gdeest](https://avatars.discourse-cdn.com/v4/letter/g/b487fb/32.png) [@gdeest](https://discourse.haskell.org/u/gdeest)\
**Post date:** [November 12, 2025, 12:54pm UTC](https://discourse.haskell.org/t/composing-event-migrations-with-default-implementations-hindsight/13259/1 "2025-11-12T12:54:38Z")

</div>

Here is a blog post focusing on how Hindsight’s event versioning system, notably how consecutive upcast functions are automatically composed.

It is mostly a technical Haskell blog post about type class (meta-)programming. I believe you might benefit from it even if you are not interested in event sourcing at all. 🙂

> **[Composing Event Migrations with Default Implementations - Hindsight](https://hindsight.events/content/posts/composing-event-migrations-with-default-implementations.html)**
