Witchcraft brings algebraic and category-theoretic abstractions—like semigroups, monoids, functors, applicatives, and monads—to Elixir in a pragmatic, protocol-driven way. It introduces a set of typeclass-style protocols and laws so data types can declare the operations they support and have those behaviors verified. The library encourages composability and pure transformations, letting you build pipelines where effects are modeled explicitly rather than hidden in ad-hoc helpers. Because the...