All Versions
Latest Version
Avg Release Cycle
34 days
Latest Release
2144 days ago

Changelog History

  • v0.4.2.0 Changes

    August 17, 2016
    • Rec instances for Eq1, Ord1, Show1, Eq, Ord, and Show. Instances for Eq1, Ord1 and Show1 are available only with transformers ==0.5.* or with base >=4.9 (i.e. GHC >=8). (new)
    • Introducing WrappedLensLike data type along with a simplified type WrappedLensLike'. For each of these we have corresponding lns and lns' operation for unpacking WrappedLensLike. (new)
      • lns :: WrappedLensLike f s t a b -> (a -> f b) -> s -> f t
      • lns' :: WrappedLensLike' f s a -> (a -> f a) -> s -> f s
    • ๐Ÿ‘ Allowing fields\/accessors to occur in multiple data constructors by not creating duplicit instances, thanks to Andy Morris. See pull request #2. (change)
    • Data type Label (l :: Symbol) that can be used to pass label value around. (new)
    • Instances for fst, snd, thd and curry fields for 11-tuples, 12-tuples up to 15-tuples. (new)
    • ๐Ÿ†• Instances for head and tail fields for NonEmpty list. (new)
    • Instances for HasField and ModifyField Rec context r where r is monomorphic. This is just a poor man's instance, since its usability is very limited, but helpful in those special cases. Hopefully we will be able to find a way how to define overloaded records machinery for Rec context r in general. (new)
  • v0.4.1.0 Changes

    April 03, 2016
    • ๐Ÿ†• Introducing Getter newtype along with get function. (new)
      • get :: Getter s a -> s -> a
    • Introducing Rec data type that allows passing polymorphic record along with its instances as a normal value. (new)
    • ๐Ÿ”„ Corrections and updates in documentation (change)
    • Uploaded to [Hackage][]:
  • v0.4.0.0 Changes

    April 01, 2016
    • ๐Ÿ“‡ Renamed SetField type class to ModifyField, it now contains following methods (breaking change):
      • modifyField :: Proxy# l -> (a -> b) -> s -> t
      • setField :: Proxy# l -> s -> b -> t
      • fieldLens :: Functor f => Proxy# l -> (a -> f b) -> s -> f t
    • Instances for tuples (i.e. (a, b), (a, b, c), ...) and lists (i.e. [a]). (new)
    • ๐Ÿšš Definitions from Data.OverloadedRecords.TH were moved to Data.OverloadedRecords.TH.Internal, so that API can be split in to stable and unstable (internal) API. (change)
    • Aliases HasField' and ModifyField' that enforce s = t and a = b. This is similar to definitions like Lens'. Simplified versions of methods and functions are included using the same naming convention. (new)
    • Setter and Setter' changed to type aliases for Modifier type. (breaking change)
    • Introducing Setting type alias for Modifier along with setting, which is an alternative to set operation. (new)
      • setting :: Setting a s t b -> Proxy a -> b -> s -> t
    • ๐Ÿ”„ Changed order of arguments of functions set and set' (breaking change):
      • set :: Setter s t b -> b -> s -> t
      • set' :: Setter' s a -> a -> s -> s
    • Introduced type family R that can be used to define more compact type signatures when mentioning multiple record fields in it. (new)
    • Uploaded to [Hackage][]:
  • v0.3.0.0 Changes

    March 02, 2016
    • ๐Ÿ›  Fixed defaultMakeFieldName, which actually behaved correctly only in very few cases. (bug fix)
    • Added missing HAVE_OVERLOADED_LABELS macro, that actually allows us to use GHC's IsLabel on GHC >8. (bug fix)
    • ๐Ÿ”„ Exposing previously hidden FromArrow and IsFieldAccessor. (change)
    • ๐Ÿ†• Few simple unit tests. (new)
    • Uploaded to [Hackage][]:
  • v0.2.0.0 Changes

    March 01, 2016
    • Function overloadedRecords renamed to overloadedRecord. There is also new overloadedRecords function, that behaves as overloadedRecord, but for multiple types at once. (breaking change)
    • It is now possible to customize overloadedRecord* family of functions with custom getter and setter implementation. (new)
    • ๐Ÿ”„ Types and functions follow, hopefully, better naming conventions. (change)
    • More low-level template haskell functions for those cases when it is necessary to build your own higher-level ones, or when you need much more control over the result. (new)
    • Uploaded to [Hackage][]:
  • v0.1.0.0 Changes

    February 28, 2016