This post explores how set-theoretic types in Elixir can address issues with data evolution in statically typed languages, focusing on maintaining backwards compatibility in library data definitions. It discusses challenges with breaking changes, illustrates the use of structural subtyping, explains a proposed versioning

20m read timeFrom dashbit.co
Post cover image
Table of contents
Breaking changes: libraries vs applicationsReplicating the problem in ElixirData instantiation with structural subtypingType checking with revisionsMulti-field revisionsExplicit revision controlTransitive dependenciesA pinch of formalizationData evolutionSumming up

Sort: