# Data evolution with set-theoretic types

DevFeed: [Data evolution with set-theoretic types](<https://devfeed.tech/articles/data-evolution-with-set-theoretic-types-43993.md>)

Original publisher: [Read original article](<https://dashbit.co/blog/data-evolution-with-set-theoretic-types>)

Author: José Valim

Published: 2025-01-14T00:00:00Z

Content type: article

Language: en

Sources: [Dashbit Blog](<https://devfeed.tech/sources/dashbit-blog.md>)

Topics: [Elixir](<https://devfeed.tech/topics/elixir.md>), [Library](<https://devfeed.tech/topics/library.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>), [Rust](<https://devfeed.tech/topics/rust.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [compatibility](<https://devfeed.tech/tags/compatibility.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [data](<https://devfeed.tech/tags/data.md>), [elixir](<https://devfeed.tech/tags/elixir.md>), [languages](<https://devfeed.tech/tags/languages.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [programming](<https://devfeed.tech/tags/programming.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>), [rust](<https://devfeed.tech/tags/rust.md>), [structs](<https://devfeed.tech/tags/structs.md>), [types](<https://devfeed.tech/tags/types.md>)

## AI overview

This article examines how set-theoretic types could help libraries evolve public data definitions without breaking backward compatibility. It discusses an interoperability issue involving Elixir, C, and Rust, and presents a compiler-verified, type-safe approach while inviting discussion rather than proposing an official Elixir language change.

## Source excerpt

We explore how set-theoretic types could address how many statically typed languages do not allow libraries to evolve their public data definitions in a backwards compatible manner. The proposed solution aims to be automatically verified by the compiler and type safe.