lensref v0.3 Release Notes

    • โšก๏ธ Updated semantics which make possible onChange without an Eq constraint This semantics handles more tricky situations than the previous one.

    Interface changes:

    • Data.LensRef provides a restricted (and probably less confusing) interface The hidden functions can be accessed via Data.LensRef.Class
    • ๐Ÿ“‡ Renamed onChange combinators
    • onChange don't have the Eq constraint; there is an new onChangeEq function with the interface of the previous onChange function
    • Most of the methods of the MonadRegister type class went to the MonadRefCreator type class
    • Simplification: provide askPostpone instead of registerCallback
    • Correction references (still experimental)

    Implementation changes:

    • Completed fast implementation
    • ๐ŸŽ Fast implementation was tuned for performance It is now just ~10 times slower than IORefs.
    • The pure implementation is also quite fast now (but asymptotically slower than the fast implementation)
    • โœ… More test cases
    • ๐Ÿ‘‰ Use Applicative instead of Monad in ReadRef where possible
    • Eliminate lens dependency, use a compatible custom module instead

    ๐Ÿ“š Documentation:

    • Begin to write an introduction to state-based FRP (still under construction)
    • ๐Ÿ“š graphviz support for documentation
    • โž• Added a criterion performance test