Rattus v0.3.1 Release Notes

  • Guarded recursive types Str and Event are now fully strict (i.e. in particular, they are strict in the component that is of a later type) as they should be.


    Rattus code is now checked just after GHC's type checking phase (instead of after desugaring to Core). As a consequence, error messages for some corner cases are much improved and we don't need to use the -g2 compiler option anymore to get good error messages.


    • ⚠ the use of lazy data structures will now cause a warning (can be disabled by 'AllowLazyData' annotation); this check for lazy data is rather ad hoc and needs to be refined
    • 👍 allow functions under ticks (but with limitations, see paper)
    • strictness transformation is now similar to the 'Strict' language extension
    • optimisations using custom rewrite rules