fclabels 1.1.5 → 1.1.6
raw patch · 2 files changed
+15/−9 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Data.Label.Derive: defaultMakeLabel :: String -> String
+ Data.Label.Derive: gDerive :: (String -> String) -> Bool -> Bool -> Info -> Q [Dec]
+ Data.Label.Derive: instance IsString (Q Exp)
+ Data.Label.Derive: instance IsString (Q Pat)
+ Data.Label.Derive: instance IsString Exp
+ Data.Label.Derive: mkLabel :: Name -> Q [Dec]
+ Data.Label.Derive: mkLabels :: [Name] -> Q [Dec]
+ Data.Label.Derive: mkLabelsMono :: [Name] -> Q [Dec]
+ Data.Label.Derive: mkLabelsNoTypes :: [Name] -> Q [Dec]
+ Data.Label.Derive: mkLabelsWith :: (String -> String) -> [Name] -> Q [Dec]
Files
- fclabels.cabal +8/−6
- src/Data/Label/Derive.hs +7/−3
fclabels.cabal view
@@ -1,5 +1,5 @@ Name: fclabels-Version: 1.1.5+Version: 1.1.6 Author: Sebastiaan Visser, Erik Hesselink, Chris Eidhof, Sjoerd Visscher with lots of help and feedback from others. Synopsis: First class accessor labels.@@ -20,11 +20,14 @@ . See the "Data.Label.Maybe" module for the use of partial labels. .- > 1.1.4.3 -> 1.1.5- > - Added `modifyAndGet` helper function.- > Thanks to Nikita Volkov.+ > 1.1.5 -> 1.1.6+ > - Exposed generic TH derive function.+ > Thanks to Bram Schuur. Maintainer: Sebastiaan Visser <code@fvisser.nl>+Homepage: https://github.com/sebastiaanvisser/fclabels+Bug-Reports: http://github.com/sebastiaanvisser/fclabels/issues+ License: BSD3 License-File: LICENSE Category: Data, Lenses@@ -34,11 +37,10 @@ Library HS-Source-Dirs: src - Other-Modules:- Data.Label.Derive Exposed-Modules: Data.Label Data.Label.Abstract+ Data.Label.Derive Data.Label.Maybe Data.Label.MaybeM Data.Label.Pure
src/Data/Label/Derive.hs view
@@ -13,6 +13,8 @@ , mkLabelsWith , mkLabelsMono , mkLabelsNoTypes+, defaultMakeLabel+, gDerive ) where import Control.Arrow@@ -72,9 +74,11 @@ -- Helpers to generate all labels for one datatype. derive1 :: (String -> String) -> Bool -> Bool -> Name -> Q [Dec]-derive1 makeLabel signatures concrete datatype =- do i <- reify datatype- let -- Only process data and newtype declarations, filter out all+derive1 makeLabel signatures concrete = reify >=> gDerive makeLabel signatures concrete++gDerive :: (String -> String) -> Bool -> Bool -> Info -> Q [Dec]+gDerive makeLabel signatures concrete i =+ do let -- Only process data and newtype declarations, filter out all -- constructors and the type variables. (tyname, cons, vars) = case i of