# ModuleMixins.jl: seamless data composition

**URL:** <https://discourse.julialang.org/t/modulemixins-jl-seamless-data-composition/142905>\
**Category:** Package Announcements\
**Tags:** package, design\
**Created:** [November 12, 2026, 10:35am UTC](https://discourse.julialang.org/t/modulemixins-jl-seamless-data-composition/142905 "2026-11-12T10:35:43Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![jhidding](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jhidding/32/212015_2.png) [@jhidding](https://discourse.julialang.org/u/jhidding)\
**Post date:** [November 12, 2026, 10:35am UTC](https://discourse.julialang.org/t/modulemixins-jl-seamless-data-composition/142905/1 "2026-11-12T10:35:43Z")

</div>

I’m happy to announce [ModuleMixins.jl](https://jhidding.github.io/ModuleMixins.jl) v0.4! This package is used to compose data structures and methods from smaller components. The new release is a complete rewrite using only (compile time) method dispatch (instead of more macro heavy approach in earlier versions) and a sprinkle of macros to reduce boiler plate. This module makes some high level design easier:

- Build complex data structures from small components
- Solves the diamond dependency problem for composition
- Swap out functionality using abstract roles
- Apply methods to all parts of a composite type
- Plays nice with Revise

Examples and tutorials are found in the [ModuleMixins documentation](https://jhidding.github.io/ModuleMixins.jl/dev/).

Cheers!  
Johan Hidding

---

<div class="post-metadata">

**Author:** ![sylvaticus](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sylvaticus/32/203883_2.png) [@sylvaticus](https://discourse.julialang.org/u/sylvaticus)\
**Post date:** [November 12, 2026, 3:53pm UTC](https://discourse.julialang.org/t/modulemixins-jl-seamless-data-composition/142905/2 "2026-11-12T15:53:54Z")

</div>

Very much OT: I saw you use a non-default way to build documentation in `CarboKitten.jl`, using Entangled for documentation.  
What’s it gives you more/different than Literate.jl / Documenter.jl ?
