All Versions
Latest Version
Avg Release Cycle
77 days
Latest Release

Changelog History
Page 1

  • v0.9.1.0 Changes

    • ๐Ÿ›  Fix conIdToString (it was completely broken)
    • โž• Add conIdMin and conIdMax representing the leftmost and rightmost constructors of a data type.
    • โž• Add NonEmptyType and IsEmptyType to express the constraint that a generic type must or must not be empty.
    • Reexport Generic and Generic1 for convenience.
  • v0.9.0.0 Changes

    • ๐Ÿ‘Œ Improved definition of gfoldMap, gtraverse, and sequenceA. The optimized Core of Traversable instances eliminates all GHC.Generic instance boilerplate. In many cases, it is identical to the result of GHC's DeriveFoldable and DeriveTraversable extensions (note: this was already not a problem for gfmap).

    It's worth noting that there are currently issues with inlining which prevent optimizations that generic-data would ideally rely on.

    + The biggest issue is that GHC will not even inline the `to` and `from`
      methods of the `Generic` instance it derives for large types (this shows
      up at around 5 constructors and 10 fields, which is indeed not really
      big). This will be fixed by a patch for GHC (WIP):
    + There appear to be some more inlining issues beyond that (issue #40).
  • v0.8.3.0 Changes

    • โž• Add generic Read. Thanks to RyanGlScott.
  • v0.8.2.0 Changes

    • โž• Add microsurgery CopyRep.
    • ๐Ÿ‘Œ Improve documentation of Microsurgery module.
    • ๐Ÿ›  Fix a bug where gshowsPrec would incorrectly display prefix uses of symbol data constructors or record selectors (e.g., data R = (:!:) Int Int or data S = MkS { (##) :: Int -> Int }). Thanks to RyanGlScott.
    • ๐Ÿ›  Fix a bug where gshowsPrec would incorrectly display infix uses of alphanumeric data constructors (e.g., data T = Int `MkT` Int). Thanks to RyanGlScott.
  • v0.8.1.0 Changes

    • โž• Add Old type family mapping newtypes to their underlying type.
  • v0.8.0.0 Changes

    February 16, 2020
    • โž• Add GenericProduct, for deriving via GenericProduct B when B is not the type A you want the derived instance for. Note this used to be Generically's behavior for Monoid before
    • โž• Add generic implementations for Ix. Thanks to Topsii.

    • โž• Add conIdNamed, to get a ConId by its type-level name

    • โž• Add instance Show (ConId a)

    • ๐Ÿ‘Œ Improve type errors for deriving Semigroup and Monoid via Generically. Thanks to yairchu.

  • v0.7.0.0 Changes

    May 04, 2019
    • ๐Ÿ”„ Changed Monoid instance for Generically, to be compatible with users' non-generic instances of Semigroup. Thanks to yairchu.
    • โž• Add gcoerce, gcoerceBinop.
  • v0.6.0.1 Changes

    April 25, 2019
    • ๐Ÿ›  Fix derivation of Show1 for (:.:)
  • v0.6.0.0 Changes

    March 27, 2019
    • โž• Add Surgery newtype for DerivingVia
    • Derecordify, Typeage, RenameFields, RenameConstrs, OnFields are no longer type families, but defunctionalized symbols to be applied using GSurgery.
  • v0.5.0.0 Changes

    January 04, 2019
    • Specialize onData to Data
    • โž• Add some instances for U1 and V1 in Microsurgery
    • โž• Add OnFields and DOnFields surgeries ("higher-kindification")