Changelog of @hackage/generic-data-functions 0.5.1

0.5.1 (2024-04-10)

  • remove spurious constraint in Traverse.Sum (should be same semantics)
  • bump text upper bound for GHC 9.8 compatibility

0.5.0 (2024-04-05)

  • Remove SumOpts type used for switching whether or not to permit "singleton sum types" for sum handlers. This was a type-level switch which changed runtime behaviour. generic-data-asserts provides type-level asserts which fail at compile time. Now you can't fail at runtime on a singleton sum -- you must either allow it, or fail at compile time -- but I don't see this as a problem.
  • Add "checked constructor names" to generic traverse fail.
  • Clean up some errors, error usage:
    • V1 errors are handled using absurdV1 :: V1 p -> a (like absurd :: Void -> a) instead of error messages -- since I suppose that's what you want if you're thrusting void data types at us
    • except for generic traverse, where the user can choose to wrap it into their functor (e.g. as a parse error)

0.4.1 (2024-04-04)

  • Remove generic representation asserts. We can handle them elsewhere without cluttering type signatures here. (I strongly recommend them, but that's not a reason to keep them here.)
  • Unwrap D1 in generic type classes rather than handing off to user. This was never really clever or useful, as it turns out. Saved a an extra type class per function, but requires the user to write more weird stuff.

0.3.1 (2024-04-03)

  • fix error in traverse types

0.3.0 (2024-04-03)

  • Use type tags, push actual target types into a type family. It means more required type annotations, but this is fine by me as I think this library should be implemented using GHC 9.10 TypeApplications.
  • Swap NoRec0, EmptyRec0 for uninstantiated data types. Less unwrapping, more consistent to the rest of the type-heavy interface. (They were labelled "via" but never used with DerivingVia.)

0.2.0 (2023-08-04)

  • Redesign interface, pushing certain checks out of type classes into top-level generic function type signature. It means busier top-level types and more code for wrapping them, but it allows for more flexibility and cleans up implementation. (And the busyness simply makes explicit the implicit checks that were being done before.)

0.1.1 (2023-07-20)

  • add work-in-progress store-style generic foldMap, encoding constructors by their index, at Generic.Data.Function.FoldMap.SumConsByte

0.1.0 (2023-06-23)

Initial release.

  • extracted from binrep