fclabels 0.4.0 → 0.4.1
raw patch · 2 files changed
+8/−5 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Data.Record.Label: instance Iso ((:<->:) i)
Files
- Data/Record/Label.hs +3/−0
- fclabels.cabal +5/−5
Data/Record/Label.hs view
@@ -104,6 +104,9 @@ instance Iso ((:->) i) where iso l (Label a) = Label (Point (fw l . _get a) (_set a . bw l)) +instance Iso ((:<->:) i) where+ iso = (.)+ dimap :: (o' -> o) -> (i -> i') -> Point f i' o' -> Point f i o dimap f g l = Point (f . _get l) (_set l . g)
fclabels.cabal view
@@ -1,17 +1,17 @@ Name: fclabels-Version: 0.4.0+Version: 0.4.1 Author: Sebastiaan Visser, Erik Hesselink, Chris Eidhof, Sjoerd Visscher. Synopsis: First class accessor labels. -Description: First class labels that act as bidirectional records fields.+Description: First class labels that act as bidirectional record fields. The labels are fully composable and can be used to get, set- and modify part of datatypes in a consistent way. The label+ and modify parts of a datatype in a consistent way. The label datatype, conveniently called `:->', is an instance of the `Category' type class meaning it has a proper identity and composition. The library has support for automatically deriving labels from record selectors that start with an- underscore. Labels can be used in a pure functional setting or- be applied to mutable state in some state monad.+ underscore. Labels can be used in a purely functional setting+ or be applied to mutable state in some state monad. . To illustrate this package take the following two example datatypes (somehow Haddock removes the braces):