View Source Changelog

[0.3.0] - Unreleased

Added

Introduced a Funx.Tap protocol and migrated all monads to use protocol-based tap.

Changed

tap implementations for Identity, Maybe, Either, Reader, and Effect now delegate through the Funx.Tap protocol.

Breaking

Existing direct tap/2 implementations have been removed. Code relying on the previous module-specific tap implementations require updates.

[0.2.3] - Unreleased

Updated

  • Refactored the Either DSL implementation to make it safer and easier to maintain.

[0.2.2] - Unreleased

Added

  • Add tap behavior across Identity, Maybe, Either, Reader, and Effect Monads
  • Add tap behavior to Either DSL

[0.2.0] - Unreleased

Added

  • Either DSL for writing declarative error-handling pipelines with support for bind, map, ap, validate, and Either functions (filter_or_else, or_else, map_left, flip)

Beta Status (v0.1.x)

โš ๏ธ Funx is in active development. APIs may change until version 1.0.

We're currently in beta, focusing on:

  • Core functionality implementation and stabilization
  • Comprehensive usage rules and documentation for humans and LLMs
  • Real-world testing and feedback incorporation
  • API refinement based on practical usage patterns

Current Status: Feature-complete beta with comprehensive documentation. Ready for experimentation and feedback, but expect potential API changes before 1.0.

Feedback Welcome

  • ๐Ÿ› Issues: Report bugs and suggest improvements
  • ๐Ÿ“– Documentation: Help us improve usage rules and examples
  • ๐Ÿงช Real-world usage: Share your experience using Funx in projects
  • ๐Ÿ’ฌ Discussion: Join conversations about functional programming patterns in Elixir

Detailed changelog will begin with version 1.0. Until then, see GitHub releases for version-specific changes.